Repository navigation
yolo: archive only on Merge now when the answer starts a new run #85
Description
Goal
Fix yolo Landing step 11. When the message that answers the merge question also starts a new yolo run, step 11 says to merge or leave open, then archive and run Teardown. On Leave pull request open, the plan stays open and plan.mjs refuses to archive it. Make step 11 follow step 9 on Merge now and step 10 on any other answer, then start the new run. Scope: plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md only. Source: code review rounds 1 and 2 on plan #83.
Mode: plan-and-implement
Research
Request
- The owner chose "Fix in a new plan" in an in-session
ask(2026-10-21), after code review rounds 1 and 2 of plan plan-lifecycle: tear down what a plan created #83 both reported this MEDIUM finding. - Plan plan-lifecycle: tear down what a plan created #83 (PR plan-lifecycle: tear down what a plan created #84) rewrote the sentence from "archive and clean up" to "archive and run Teardown" and kept the archive call on the open path (
git show 14691074 -- plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md).
Repository facts
plugins/plan-lifecycle/skills/productivity/yolo/SKILL.mdLanding step 11 (lines 306-308): "When the message that answers the merge question also starts a new yolo run, finish this run first: merge or leave open as the answer says, then archive and run Teardown. Then start the new run."- Landing step 9 owns the
Merge nowpath: merge and archive as the contract says, run the contract's Teardown, report Kept resources, and ask before each later plan step and production cleanup. - Landing step 10 owns every other answer: leave the pull request and issue open, run Teardown's exit without a merge, report both links and Kept resources.
plugins/plan-lifecycle/skills/productivity/plan-manager/scripts/plan.mjs:935refuses archive for any status other thanfinished:archive requires finished status, found ${status}. OnLeave pull request openthe issue stays open, so its status isongoingand archive fails.- No other file restates the new-run handoff (
grep -rn 'new yolo run' plugins .codex .agentsmatches only yoloSKILL.md:306). - After a meaning change,
node scripts/skills/content-hash.mjs --backfill plugins/plan-lifecycle/skillsresyncscontent_hashandmetadata.updated(plugins/plan-lifecycle/skills/AGENTS.md).node scripts/ci.mjs --plugin plan-lifecycleis the authoritative gate;claude plugin validatein it needs the lockfile-pinned CLI (node node_modules/@anthropic-ai/claude-code/install.cjs, thennode_modules/.binonPATH, as.github/workflows/ci.ymldoes).
Decisions
- New step 11 delegates to the existing steps: on
Merge now, follow step 9; on any other answer, follow step 10; then start the new run. Reason: steps 9 and 10 already own each path, so step 11 copies no rule and cannot drift from them. - Rejected: keep "archive" and add "only on
Merge now" inside step 11. It repeats step 9's sequence and leaves a second copy to maintain.
Engineering standards
Prose-only change in one shipped skill body. It follows the plan-lifecycle authoring node and the Simplified Technical English output standard. No code, test, or error message changes.
Steps
| # | Id | Task | Files | Depends | Effect | Status | Done when |
|---|---|---|---|---|---|---|---|
| 1 | fix_step_11 | Rewrite yolo Landing step 11: finish this run first; on Merge now, follow step 9; on any other answer, follow step 10; then start the new run. |
plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md |
- | local | done | Step 11 names step 9 for Merge now and step 10 for every other answer, and it no longer says to archive on its own |
| 2 | refresh_hash | Run node scripts/skills/content-hash.mjs --backfill plugins/plan-lifecycle/skills. |
plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md |
1 | local | done | node scripts/skills/content-hash.mjs --check-only plugins/plan-lifecycle/skills exits 0 |
Acceptance
| ID | Command | Expected |
|---|---|---|
| A1 | node scripts/ci.mjs --plugin plan-lifecycle |
Exit 0 |
| A2 | node scripts/skills/content-hash.mjs --check-only plugins/plan-lifecycle/skills |
Exit 0 |
| A3 | grep -n 'archive and run Teardown' plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md |
No output, exit 1 |
| A4 | grep -A3 '^11\. ' plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md |
The step names step 9 for Merge now and step 10 for any other answer |
Do not touch
plugins/plan-lifecycle/skills/productivity/plan-manager/references/plan-contract.md, plan-managerSKILL.md, andreferences/run-summary.md: they do not hold the new-run handoff.plugins/plan-lifecycle/skills/productivity/plan-manager/scripts/plan.mjsand its tests.- Plugin manifests, marketplace catalogs, versions, tags, and releases.
Open questions
Verification Results
Run on branch 85-yolo-archive-only-on-merge-now-when-the-answer-starts-a-new-run, uncommitted candidate, 2026-10-21. node_modules/.bin was on PATH for the lockfile-pinned claude CLI, as in CI.
| ID | Result |
|---|---|
| A1 | node scripts/ci.mjs --plugin plan-lifecycle: exit 0, "All ci.mjs checks passed" |
| A2 | content-hash --check-only: exit 0, after --backfill wrote productivity/yolo |
| A3 | No output, exit 1 |
| A4 | Step 11 reads: "finish this run first. On Merge now, follow step 9. On any other answer, follow step 10. Then start the new run." |
Activity
DocksDocks commentedon Oct 21, 2026
Plan review round 1
Plan-review: pass
None.
DocksDocks commentedon Oct 21, 2026
Code review round 1
Code-review: pass
Standards
None.
Spec
None.
docs(plan-lifecycle): archive only on Merge now when yolo starts a ne…