计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
complete-everything【效率与协作】Closure mode for one approved plan: finish every open item and connected deferral, verify each acceptance criterion, require completion-judge PASS. Use when "complete everything", "don't defer", "fix out of scope too", or a plan was falsely marked done.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Degree of freedom: MIXED. Relevance of parked items [HIGH freedom];
state-file ticks, verification ladder, and completion-judge
[LOW freedom — run exactly].
Observe: plan shipped the UI; "out of scope" noted the RLS migration file; live API 404s. Interpret: the parked migration is connected — the UI cannot work without it. Classify: previously-parked now in scope; deploy+verify the RPC. Done: state file ticked with evidence; completion-judge PASS.
completion-judge ran; CONTINUE loops backburndown-full; dirty-tree PR → workflow-release-prepDrive the approved outcome through implementation, repair, and verification in one continuous run. Do not stop at phase boundaries or ask whether to continue. Do not claim success from memory, compilation alone, or the original plan's checkboxes.
The closure set contains:
out of scope, follow-up, optional, nice-to-have, or future-work item
parked by the plan or prior completion report that is materially connected to
the approved goal;This is not permission for unrelated repository-wide cleanup. Do not silently reopen explicit user non-goals, rejected features, or unrelated pre-existing debt. Record those as baseline context, not closure items. If relevance is unclear, decide from the approved user outcome; ask only when the answer would materially change product behavior.
Only these may block execution:
Ask one precise question immediately when blocked. Effort, context length, an uncertain implementation approach, or a failing test are not blockers. Your turn ends in one of two shapes: the Phase 4 report after completion-judge PASS, or a single precise question on a real blocker. It does not end with "should I continue?", with a summary of the remaining items, with "I'll pick this up next", or with a partial ladder run. Before ending your turn, read your last paragraph: if it describes work you could do now, do it.
Read the full plan, including appendices, exclusions, acceptance criteria,
and checked items. If no path is supplied, inspect .cursor/plans/, the
conversation, and recent plan/report files.
Read the prior completion report or chat summary. Search plan and report text for parked work:
rg -n -i \
'out of scope|follow[- ]?up|nice to have|later|defer(red)?|skip(ped)?|not in this (pr|pass|phase)|left as|TODO|FIXME|won.t do|optional|future work|beyond scope' \
<plan-and-report-paths>
Inspect git status, staged and unstaged diffs, and recent commits. Do not
overwrite unrelated user work.
Discover exact verification commands from manifests, CI, AGENTS.md,
CLAUDE.md, README files, Makefiles, or equivalent project tooling.
Run the cheapest representative baseline checks before editing when practical. Record pre-existing failures so later results distinguish regressions from baseline debt.
Convert every closure item into an observable acceptance statement: what a user can do, which contract holds, or which test/command proves it.
Announce: "Closing N items (P planned + D previously parked + G discovered). No plan-related deferrals this run."
Create .cursor/complete-everything-state.md as the durable source of truth:
# Complete Everything: <approved outcome>
Plan: <path or conversation>
Baseline: <commands and pre-existing failures>
Verify: typecheck=`...` lint=`...` test=`...` build=`...` e2e=`...|none`
## Plan items
- [ ] <item> — acceptance: <observable proof>
## Previously parked — now in scope
- [ ] <item> — parked as: "<short quote>" — acceptance: <proof>
## Discovered while closing
- [ ] <item> — source: <test/diff/runtime/review> — acceptance: <proof>
## Human gates
- [ ] <item> — blocked by: <real blocker> — question: <one precise ask>
## Verification ladder
- [ ] changed-file diagnostics
- [ ] typecheck
- [ ] lint
- [ ] focused unit/integration tests
- [ ] related/full tests
- [ ] API contract verification (if applicable)
- [ ] build (if configured)
- [ ] real user-flow smoke (if applicable)
- [ ] independent completion judge
## Evidence and decisions
- <timestamp or milestone>: <command/result or decision/rationale>
A ladder rung the repo cannot run (no typecheck, no build, no UI) is written
- [-] <rung> — n/a: <evidence it is absent> when the Phase 0 baseline shows
it is missing. [-] means not applicable, never passed. The Stop hook skips a
[-] line only when it carries an n/a: reason, and completion-judge checks
that reason.
Mirror the milestones in the runtime's native task list when available. The state file wins after context compaction: re-read it before each milestone and before any completion claim.
Instruction text alone cannot reliably prevent premature stops. Use the host's continuation mechanism in addition to the state file:
Cursor and Claude Code: the packaged Stop hook reads
.cursor/complete-everything-state.md and continues the turn only while
actionable unchecked items remain. It ignores completed states, errored or
aborted turns, human-gate-only states, items marked
blocked by: <who or what>, and a state file untouched for 24 hours. Each
conversation gets three follow-ups while none of the items it saw closes;
closing one restores them, and another agent's edits neither spend nor
reset them. The counter lives outside the repo, in
~/.cache/kenji/completion-gate/. Claude Code labels each block
"Stop hook error occurred" — that is the gate working, not a failure. If
hooks are disabled, continue manually from the state file; do not lower
the completion contract.
Claude Code 2.1.139+: start the run with:
/goal All actionable items in .cursor/complete-everything-state.md are checked, every applicable verification gate has fresh passing evidence after the final edit, and completion-judge returns PASS at the claimed completion level.
/goal supplies an independent per-turn evaluator. The state file remains
the auditable source of truth. If /goal is unavailable or hooks are
disabled, continue the same workflow without pretending the evaluator ran.
Work in small, independently verifiable milestones. For each item:
If the approach is uncertain, use the research skill, record the decision and
source, then implement. Delegate to a subagent only a sizeable, independent track — a read-only inventory, a test run whose output you do not need in your context, or parallel verification — never a handful of tool calls. Brief it once with everything it needs, launch independent subagents in one message, and keep the closure set and integration in the main agent.
burndown-full for the
mechanical sweep, then return here for behavioral verification.test-unit; tests must be
capable of failing for the regression.audit-fe-api; fix every mismatch in the affected contract.debug-fe-be-integration and verify both sides.test-playwright with
protocol-browser-anti-stall; drive the real touched flow and fix failures.audit-performance when evidence shows a
performance gap. Optimize the root cause; do not add speculative complexity.full-stack-ship-discipline; keep local migration/config artifacts aligned
with the verified target environment and honor protected-surface approvals.Completion requires fresh evidence from this run. Execute every applicable step in this order:
completion-judge subagent with the approved outcome, state-file
path, relevant diff range, baseline, and fresh command/runtime evidence.
PASS permits the closure report at the judge's claimable level.CONTINUE adds every finding to the state file and returns to Phase 2.BLOCKED records the precise human gate; it is not completion.On failure: diagnose, add the repair to the state file, fix it, and restart from the failed gate. Never report "known failure, ship anyway." If a whole-project gate failed before the run, fix it when connected to the closure set or when it blocks proof; otherwise report the unchanged baseline failure separately without mislabeling the plan closure as a fully green repository.
Use this structure:
## Complete Everything — report
**Goal:** <approved outcome>
**Closed:** N planned + D previously parked + G discovered
**Blocked on you:** none | <real blocker and one precise question>
### Evidence
- diagnostics: `<tool/command>` → <result>
- typecheck: `<command>` → <result>
- lint: `<command>` → <result>
- tests: `<command>` → <result>
- API / FE-BE: ran / n/a — <result>
- performance: measured / n/a — <result>
- build: `<command>` → <result>
- user flow: `<flow>` → <result>
- completion judge: `PASS` — claimable level: <level>
### Baseline unrelated failures
- none | <failure that existed before and why it is outside the closure set>
### Intentionally unchanged
- none | <explicit user non-goal or protected human gate>
Forbidden success language: "left as follow-up", "out of scope for now", "can be done later", "should work", "probably fine", or any claim unsupported by fresh evidence.
Leave .cursor/complete-everything-state.md fully ticked as the audit trail
unless the user asks to remove it.
complete-everything closes plan intent, parked work, behavior, and evidence.housekeep-backlog inventories parked work across the repo into
BACKLOG.md; this skill executes one approved plan from that register
(or from a named plan file).burndown-full proves repo-wide mechanical pattern coverage.workflow-quality-gate assesses release readiness; it does not replace this
implementation loop.verification-before-completion defines the evidence levels and mandatory
final gate used by this workflow.completion-judge is the independent read-only verdict; the implementation
agent cannot self-certify a wide closure run.workflow-git-commit may create the scoped commit only when requested;
it never pushes. workflow-pr may push/open/manage only when requested.
Whole dirty-tree preparation is workflow-release-prep, which stops
before merge.