Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"name": "overnight-multi-issue-implementation",
"source": "./plugins/overnight-multi-issue-implementation",
"description": "Overnight autonomous workflow that takes a cluster of related GitHub issues (typically a P1 review-panel finding set) and ships them to merged stacked PRs by morning. Builds on subagent-driven-development with overnight-specific discipline: stacked PRs (so PR2 doesn't wait on a human PR1-merge mid-night), pre-flight tracker-id audit (concurrent sessions on main steal IDs), final PR-level code review before proposing merge, review findings preserved as PR comments before squash. Sister to overnight-review-client-delivery and overnight-insight-discovery.",
"version": "1.3.0"
"version": "1.3.1"
},
{
"name": "large-redesign-parallel-branch-collision-audit",
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ All three plugins encode patterns from real overnight runs. `overnight-review-cl

## Version history

- **2026-08-06** — `overnight-multi-issue-implementation` → **v1.3.1** (SKILL + both manifests + bundle `VERSION`): drops an unsourceable figure from the entry below. The "never truncate a findings payload" lesson described the lost finding as sitting in a "553-line pre-registration". That was true of the document the reviewer read; five blocking findings were then fixed on the branch before it merged, roughly doubling it, and it now stands at about 1,100 lines — a figure with no vintage attached, in a document the skill's own readers cannot re-derive it from. The length was decoration; "a pre-registration that had no power statement anywhere" carries the whole point, so the count is gone rather than dated. The same audit **retracted a rate**: "about one in four" is no longer claimed, because the host repo reopened its own count (a sixth instance surfaced, and two of the five were documents written from scratch). It now reads "common enough to budget a round for, not a measured rate". Everything else checked out against the source — the six-findings/five-arrived split, the ±0.03-versus-0.17 margin behind "about five times finer", and the 269 → 314 test counts are all recorded in the run's own handoffs. This is the skill's own "a fix ships a fresh instance of the defect it repairs" rule firing on the release that introduced it.
- **2026-08-06** — `overnight-multi-issue-implementation` → **v1.3.0** (SKILL + both manifests + bundle `VERSION`, which had drifted a patch behind): seven lessons from a single overnight run of 17 items — 20 merged PRs, 4 orchestrated workflows, 91 subagents, ~11 hours. **Never `.slice()` a findings payload** (three reviewers returned six critical findings; the merging agent received five, and every visible signal still said the gate had worked — make the actor count what it received against what it answered, and keep the run journal as the recovery path). **Coordinating with sessions you do not control**: claim your intent and your file list on a shared in-repo board before you start, append rather than replace, and don't take the claim down while your PRs are open. **Amend a running orchestration through a file on disk, not the script** — editing the script changes every agent prompt and a resume then re-runs completed work instead of replaying it from cache. A **third kind of collision** neither pre-flight audit can see (the same piece of work under two names, in a live session's uncommitted tree). **Baseline numbers in your own brief go stale mid-run** — measure, never quote. **What an autonomous run may and may not decide** (an assumption is a default, not a ruling; for pre-registered questions disclose rather than compute; an un-run unit is "no result", not "inconclusive"; production changes only in the reverting direction and only on unanimous authorisation from the run's own reviewers, with anything that is not a revert still waiting for a person; merging is a separate grant from changing production). And a **verbatim line for every reviewer prompt** — "Check whether this change ships a fresh instance of the defect it repairs." — which caught five of the twenty merged PRs, every one by re-deriving a number rather than by reading the diff.
- **2026-07-17** — `overnight-multi-issue-implementation` → **v1.2.0** (SKILL + manifests, fixing a manifest-version drift): adds **Phase 0 — backlog triage + owner-ruling application** for unvalidated issue clusters (triage biased against dismissal with adversarial verification of dismissals only; owner cut-line ratification via an interactive review page; rulings baked as greppable issue comments before any build; decision-session / build-session split with a wave-ordered kickoff prompt; follow-up ruling rounds handled additively; successor-before-close sequencing). Also documents that the close-keyword issue trap fires from **docs-only planning PR bodies** ("then close #N" in a kickoff-prompt addendum closes the live tracker on merge). Extracted from a real large-backlog triage-and-rulings run. Cross-links the new [`interactive-feedback-report`](https://github.com/wan-huiyan/interactive-feedback-report) skill.
- **2026-06-02** — Standing convention added: review every **non-trivial PR** with the `roundtable:agent-review-panel` skill (all agents `model: opus`) before squash-merge; trivial/docs-only PRs may skip the full panel. Reconciled with the per-PR tier rubric (the panel is the heavyweight tier; single-reviewer tiers remain for low-risk PRs). `overnight-multi-issue-implementation` SKILL → v1.1.1, `subagent-review-tier-calibration-for-overnight-pr-chains` SKILL → v1.0.1.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.0
1.3.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "overnight-multi-issue-implementation",
"description": "Overnight autonomous workflow that takes a cluster of related GitHub issues (typically a P1 review-panel finding set) and ships them to merged stacked PRs by morning. Builds on subagent-driven-development with overnight-specific discipline: stacked PRs (so PR2 doesn't wait on a human PR1-merge mid-night), pre-flight tracker-id audit (concurrent sessions on main steal IDs), final PR-level code review before proposing merge, review findings preserved as PR comments before squash. Sister to overnight-review-client-delivery and overnight-insight-discovery. v1.2.0 adds Phase 0 for unvalidated backlogs: stale-issue triage biased against dismissal, owner cut-line ratification, rulings baked as issue comments, and a wave-ordered kickoff prompt.",
"version": "1.3.0",
"version": "1.3.1",
"author": {
"name": "wan-huiyan"
},
Expand Down
17 changes: 11 additions & 6 deletions plugins/overnight-multi-issue-implementation/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ description: |
work (use plain `subagent-driven-development`), polishing an existing deliverable (use
`overnight-review-client-delivery`), or generating insights from data (use `overnight-insight-discovery`).
author: wan-huiyan + Claude Code
version: 1.3.0
version: 1.3.1
date: 2026-05-29
---

Expand Down Expand Up @@ -174,7 +174,7 @@ still says the gate worked.
Observed: three reviewers returned **six** critical findings; the merging agent received
`JSON.stringify(reviews).slice(0, 9000)` and **five arrived**. The sixth was cut mid-object. It was
the worst of the six — a keep-or-kill decision resting on a margin about five times finer than the
data could resolve, in a 553-line pre-registration with no power statement anywhere. Three
data could resolve, in a pre-registration that had no power statement anywhere. Three
reviewers dispatched, three verdicts returned, findings commented on the PR, PR merged. Nothing
looked wrong.

Expand Down Expand Up @@ -233,9 +233,13 @@ REJECT with categorized findings.
*"Check whether this change ships a fresh instance of the defect it repairs."* On the observed run
**five of twenty merged PRs did** — a correction to a figure with no corpus named printed a figure
with no corpus named; a document about uncited copied numbers contained an uncited copied number.
About one in four, on documents. It was the single most common review finding, ahead of ordinary
regressions, and **every instance was caught by someone re-deriving a number, never by reading the
diff**. Budget a round for it.
It was the single most common review finding, ahead of ordinary regressions, and **every instance
was caught by someone re-deriving a number, never by reading the diff**.

**Don't turn that into a rate.** The run's own count of five was reopened afterwards by the repo
that hosted it: a sixth instance turned up in a PR body, and two of the five were documents written
from scratch, where "the defect it existed to repair" is a stretch. **Budget a round for it as
something common, not as a measured rate** — the number was never the useful part.

**And tell reviewers that dropping an honest POSITIVE is drift too.** A summary that omits the
reassuring facts its source carries is not "conservative" — it is inaccurate in the direction nobody
Expand Down Expand Up @@ -729,7 +733,8 @@ lessons appear:
payload, and was recovered only because the merging agent said the payload
looked cut → "Never truncate a findings payload".
- Five of the twenty merged PRs shipped a fresh instance of the defect they
repaired; every one was caught by re-deriving a number → the verbatim
repaired — a count the host repo later reopened, so read it as "common", not
as a rate. Every one was caught by re-deriving a number → the verbatim
reviewer line in the tier rubric.
- The published test counts moved under the run (`server 269` → `314`) and an
item quoted its own brief → the stale-baseline rule.
Expand Down
Loading