بنقرة واحدة
improve-plan
Deep planning, dependency checks, and adversarial review
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Deep planning, dependency checks, and adversarial review
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
When planning, flag uncertain assumptions and supply a ready-to-run web-research prompt to confirm them.
Local Switchboard management console — drive the board when the VS Code extension is running
Implement with high accuracy and self-review (invest effort up front to minimize rework)
Reconcile and restructure a feature's subtasks — improve each, then merge/delete/rewrite/split to make the set coherent
Cloud-VM planning mode — plan first, do not auto-code in a remote VM
Memo capture mode — append-only, no analysis; exit with process memo
| name | improve-plan |
| description | Deep planning, dependency checks, and adversarial review |
| user-invokable | false |
Use this workflow to strengthen an existing feature plan in a single fluid pass.
Factual context — NEVER delete. Goal statements, product scope, requirements, constraints, environment details, and problem/background analysis must be preserved verbatim. This includes product scope explicitly stated in the plan's Goal or Problem Description — you must not narrow or remove supported scenarios (e.g. multi-root workspaces) even if the current session is single-repo. If you believe a goal or scope statement is wrong, flag it in chat for the user — do not unilaterally correct it.
Reasoning outputs — correct with audit marking. Conclusions, chosen approaches, design decisions, and code examples may be corrected or replaced when the improve pass produces a better alternative. Every correction MUST be marked with a superseded callout so the change is auditable:
Superseded: Reason: Replaced with:
Never silently delete a conclusion and write a new one in its place. The callout is the audit trail — without it, the change is a protocol violation.
If the target file is under .switchboard/features/ or contains an auto-generated <!-- BEGIN SUBTASKS ... --> block, this is a feature, not a single plan. Stop and use the improve-feature workflow — it improves every subtask and is authorised to restructure the set (merge/delete/rewrite/split). This improve-plan workflow is for a single plan and is deliberately non-destructive, which is the wrong contract for a feature.
Load the plan
Improve the plan
Required Sections (in order):
When creating or updating a plan, include **Project:** <name> in the Metadata section if a project is active or the user named one. The workspace/repo name is NOT a project — never pin it (the importer silently drops workspace-name pins to unassigned). If no project is active and the user didn't name one, omit the line — never ask the user which project to use. See AGENTS.md "Plan Project Pinning" for the full protocol.
## Complexity Audit
Recommended format (parser is flexible):
## Complexity Audit
### Routine
- [routine aspect 1]
- [routine aspect 2]
### Complex / Risky
- [complex aspect 1]
- [or "- None" if no complex aspects]
## Edge-Case & Dependency Audit
## Dependencies
sess_XXXXXXXXXXXXX — <topic> format## Adversarial Synthesis
## Proposed Changes
## Verification Plan
Complexity Criteria:
Scoring Guide:
Challenge the approach (architecture review) — ALWAYS run; NEVER gate on complexity
Self-assessed complexity is unreliable: the most dangerous plans are the ones an agent under-scores ("this looks small"). So this step runs on every plan regardless of the Complexity score, and BEFORE the execution-level critique in the next step.
Begin by answering in one line: does this plan embody a real approach/design choice, or is it a purely mechanical change (typo, copy, config, single-call bugfix) with no design surface?
Run the internal adversarial review
## Adversarial Synthesis section, include only a 2-3 sentence Risk Summary (e.g., "Key risks: X, Y, Z. Mitigations: A, B."). Output the adversarial critique exactly once. Do not repeat it.Update the original plan file
improve-plan workflow is triggered automatically when a card arrives in the "PLAN REVIEWED" column (which has autobanEnabled: true and role: 'planner'). The card is already in the "PLAN REVIEWED" column when this workflow runs. Do NOT instruct the user to move it there.**Plan ID:** line — it is never parsed. The importer assigns the ID (a fresh UUID, or a feature's filename UUID) and keys plan identity by the file path; a hand-written Plan ID is ignored and drifts from the real DB-assigned one.**Feature:** <feature-plan-id> and **Project:** <name> lines written directly in each plan .md — the plan watcher applies these on import with apply-if-empty semantics. If you restructured plans into a feature during review, recommend invoking the create-feature-from-plans skill (which runs create-feature.js to handle DB update, subtask linking, feature file write, and board refresh atomically) AFTER the review is finished and the user has approved. Do NOT invoke it mid-review.Placement: Inline, at the location of the original conclusion being corrected.
Format:
> **Superseded:** <original conclusion, approach, or code snippet>
> **Reason:** <concise explanation of why it was wrong or inferior>
> **Replaced with:** <new conclusion or approach>
Rules:
**Superseded:** line must contain the original text (or a faithful summary if it was long). Do not paraphrase in a way that hides what was actually said.**Reason:** line is mandatory. A correction without a stated reason is a silent deletion with extra steps.**Replaced with:** line must immediately follow. If the replacement is long (e.g. a code block), it may continue below the callout.Example:
> **Superseded:** Use a polling loop with 500ms interval to detect file changes.
> **Reason:** Polling wastes CPU and introduces up to 500ms latency. The codebase already has a file watcher utility (`src/utils/watcher.ts`) that uses native FS events.
> **Replaced with:** Use `watchFileChanges()` from `src/utils/watcher.ts` — subscribes to native FS events, zero polling overhead, sub-10ms latency.