<!-- SYNC:understand-code-first -->[IMPORTANT] Use
TaskCreateto break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ATTENTION ask user whether to skip.
<!-- /SYNC:understand-code-first --> <!-- SYNC:estimation-framework -->Understand Code First — HARD-GATE: Do NOT write, plan, or fix until you READ existing code.
- Search 3+ similar patterns (
grep/glob) — citefile:lineevidence- Read existing files in target area — understand structure, base classes, conventions
- Run
python .claude/scripts/code_graph trace <file> --direction both --jsonwhen.code-graph/graph.dbexists- Map dependencies via
connectionsorcallers_of— know what depends on your target- Write investigation to
.ai/workspace/analysis/for non-trivial tasks (3+ files)- Re-read analysis file before implementing — never work from memory alone
- NEVER invent new patterns when existing ones work — match exactly or document deviation
BLOCKED until:
- [ ]Read target files- [ ]Grep 3+ patterns- [ ]Graph trace (if graph.db exists)- [ ]Assumptions verified with evidence
<!-- /SYNC:estimation-framework -->Estimation — Modified Fibonacci: 1(trivial) → 2(small) → 3(medium) → 5(large) → 8(very large) → 13(epic, SHOULD split) → 21(MUST ATTENTION split). Output
story_pointsandcomplexityin plan frontmatter. Complexity auto-derived: 1-2=Low, 3-5=Medium, 8=High, 13+=Critical.
docs/project-reference/domain-entities-reference.md— Domain entity catalog, relationships, cross-service sync (read when task involves business entities/models) (content auto-injected by hook — check for [Injected: ...] header before reading)docs/test-specs/— Test specifications by module (read existing TCs to include test strategy in plan)
<!-- /SYNC:plan-quality -->Plan Quality — Every plan phase MUST ATTENTION include test specifications.
- Add
## Test Specificationssection with TC-{FEAT}-{NNN} IDs to every phase file- Map every functional requirement to ≥1 TC (or explicit
TBDwith rationale)- TC IDs follow
TC-{FEATURE}-{NNN}format — reference by ID, never embed full content- Before any new workflow step: call
TaskListand re-read the phase file- On context compaction: call
TaskListFIRST — never create duplicate tasks- Verify TC satisfaction per phase before marking complete (evidence must be
file:line, not TBD)Mode: TDD-first → reference existing TCs with
Evidence: TBD. Implement-first → use TBD →/tdd-specfills after.
<!-- SYNC:iterative-phase-quality -->Phase Quality:
<!-- /SYNC:iterative-phase-quality --> <!-- SYNC:fix-layer-accountability -->Iterative Phase Quality — Score complexity BEFORE planning.
Complexity signals: >5 files +2, cross-service +3, new pattern +2, DB migration +2 Score >=6 → MUST ATTENTION decompose into phases. Each phase:
- ≤5 files modified
- ≤3h effort
- Follows cycle: plan → implement → review → fix → verify
- Do NOT start Phase N+1 until Phase N passes VERIFY
Phase success = all TCs pass + code-reviewer agent approves + no CRITICAL findings.
<!-- /SYNC:fix-layer-accountability -->Fix-Layer Accountability — NEVER fix at the crash site. Trace the full flow, fix at the owning layer.
AI default behavior: see error at Place A → fix Place A. This is WRONG. The crash site is a SYMPTOM, not the cause.
MANDATORY before ANY fix:
- Trace full data flow — Map the complete path from data origin to crash site across ALL layers (storage → backend → API → frontend → UI). Identify where the bad state ENTERS, not where it CRASHES.
- Identify the invariant owner — Which layer's contract guarantees this value is valid? That layer is responsible. Fix at the LOWEST layer that owns the invariant — not the highest layer that consumes it.
- One fix, maximum protection — Ask: "If I fix here, does it protect ALL downstream consumers with ONE change?" If fix requires touching 3+ files with defensive checks, you are at the wrong layer — go lower.
- Verify no bypass paths — Confirm all data flows through the fix point. Check for: direct construction skipping factories, clone/spread without re-validation, raw data not wrapped in domain models, mutations outside the model layer.
BLOCKED until:
- [ ]Full data flow traced (origin → crash)- [ ]Invariant owner identified withfile:lineevidence- [ ]All access sites audited (grep count)- [ ]Fix layer justified (lowest layer that protects most consumers)Anti-patterns (REJECT these):
- "Fix it where it crashes" — Crash site ≠ cause site. Trace upstream.
- "Add defensive checks at every consumer" — Scattered defense = wrong layer. One authoritative fix > many scattered guards.
- "Both fix is safer" — Pick ONE authoritative layer. Redundant checks across layers send mixed signals about who owns the invariant.
Each phase file MUST ATTENTION satisfy: <=5 files per phase, <=3h effort, clear success criteria, mapped test cases.
Evidence Gate: MANDATORY IMPORTANT MUST ATTENTION — every claim, finding, and recommendation requires
file:lineproof or traced evidence with confidence percentage (>80% to act, <80% must verify first).
External Memory: For complex or lengthy work (research, analysis, scan, review), write intermediate findings and final results to a report file in
plans/reports/— prevents context loss and serves as deliverable.
Quick Summary
Goal: Research, analyze the codebase, and create a detailed phased implementation plan with user collaboration.
Workflow:
- Pre-Check — Detect active/suggested plan or create new directory
- Research — Parallel researcher subagents explore different aspects (max 5 tool calls each)
- Codebase Analysis — Read backend-patterns-reference.md, frontend-patterns-reference.md, project-structure-reference.md; scout if needed
- Plan Creation — Planner subagent creates plan.md + phase-XX files with full sections
- Post-Validation — Optionally interview user to confirm decisions via /plan-validate
Key Rules:
- PLANNING ONLY: do NOT implement or execute code changes
- Always run /plan-review after plan creation
- Ask user to confirm before any next step
- MANDATORY IMPORTANT MUST ATTENTION detect new tech/lib in plan and create validation task (see New Tech/Lib Gate below)
New Tech/Lib Gate (MANDATORY for all plans)
MANDATORY IMPORTANT MUST ATTENTION after plan creation, detect new tech/packages/libraries not in the project. If found: TaskCreate per lib → WebSearch top 3 alternatives → compare (fit, size, community, learning curve, license) → recommend with confidence % → AskUserQuestion to confirm. Skip if plan uses only existing dependencies.
Greenfield Mode
Auto-detected: If no existing codebase is found (no code directories like
src/,app/,lib/,server/,packages/, etc., no manifest files likepackage.json/*.sln/go.mod, no populatedproject-config.json), this skill switches to greenfield mode automatically. Planning artifacts (docs/, plans/, .claude/) don't count — the project must have actual code directories with content.
When greenfield is detected:
- Skip codebase analysis phase (researcher subagents that grep code)
- Replace with: market research + business evaluation phase using WebSearch + WebFetch
- Delegate architecture decisions to
solution-architectagent - Output:
plans/{id}/plan.mdwith greenfield-specific phases (domain model, tech stack, project structure) - Skip "MUST ATTENTION READ project-structure-reference.md" (won't exist)
- Enable broad web research for tech landscape, best practices, framework comparisons
- Every decision point requires AskUserQuestion with 2-4 options + confidence %
- [CRITICAL] Business-First Protocol: Tech stack decisions come AFTER full business analysis. Do NOT ask user to pick a tech stack upfront. Instead: complete business evaluation → derive technical requirements → research current market options → produce comparison report → present to user for decision. See
solution-architectagent for the full tech stack research methodology.
- Research reports <=150 lines; plan.md <=80 lines
- External Memory: Write all research and analysis to
.ai/workspace/analysis/{task-name}.analysis.md. Re-read ENTIRE analysis file before generating plan.
Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).
Activate planning skill.
Scaffolding-First Protocol (Conditional)
Activation conditions (ALL must be true):
- Active workflow is
greenfield-initORbig-feature - AI MUST ATTENTION self-investigate for existing base/foundational abstractions using these patterns:
- Abstract/base classes:
abstract class.*Base|Base[A-Z]\w+|Abstract[A-Z]\w+ - Generic interfaces:
interface I\w+<|IGeneric|IBase - Infrastructure abstractions:
IRepository|IUnitOfWork|IService|IHandler - Utility/extension layers:
Extensions|Helpers|Utils|Common(directories or classes) - Frontend foundations:
base.*component|base.*service|base.*store|abstract.*component(case-insensitive) - DI/IoC registration:
AddScoped|AddSingleton|providers:|NgModule|@Injectable
- Abstract/base classes:
- If existing scaffolding found → SKIP. Log: "Existing scaffolding detected at {file:line}. Skipping Phase 1 scaffolding."
- If NO foundational abstractions found → PROCEED with scaffolding phase.
When activated:
Phase 1 of the plan MUST ATTENTION be Architecture Scaffolding — all base abstract classes, generic interfaces, infrastructure abstractions, and DI registration with OOP/SOLID principles. Runs BEFORE feature stories. AI self-investigates what base classes the tech stack needs. All infrastructure behind interfaces with at least one concrete implementation (Dependency Inversion).
When skipped: Plan proceeds normally — feature stories build on existing base classes.
PLANNING-ONLY — Collaboration Required
DO NOT use the
EnterPlanModetool — you are ALREADY in a planning workflow. DO NOT implement or execute any code changes. COLLABORATE with the user: ask decision questions, present options with recommendations. After plan creation, ALWAYS run/plan-reviewto validate the plan. ASK user to confirm the plan before any next step.
Your mission
<task> $ARGUMENTS </task>Pre-Creation Check (Active vs Suggested Plan)
Check the ## Plan Context section in the injected context:
- If "Plan:" shows a path -> Active plan exists. Ask user: "Continue with this? [Y/n]"
- If "Suggested:" shows a path -> Branch-matched hint only. Ask if they want to activate or create new.
- If "Plan: none" -> Create new plan using naming from
## Namingsection.
Workflow
- If creating new: Create directory using
Plan dir:from## Namingsection, then runnode .claude/scripts/set-active-plan.cjs {plan-dir}If reusing: Use the active plan path from Plan Context. Make sure you pass the directory path to every subagent during the process. - Follow strictly to the "Plan Creation & Organization" rules of
planningskill. - Use multiple
researcheragents (max 2 agents) in parallel to research for this task: Each agent research for a different aspect of the task and are allowed to perform max 5 tool calls. - Analyze the codebase by reading
backend-patterns-reference.md,frontend-patterns-reference.md, andproject-structure-reference.mdfile. ONLY PERFORM THIS FOLLOWING STEP IF reference docs are placeholders or older than 3 days: Use/scout <instructions>slash command to search the codebase for files needed to complete the task. - Main agent gathers all research and scout report filepaths, and pass them to
plannersubagent with the prompt to create an implementation plan of this task. - Main agent receives the implementation plan from
plannersubagent, and ask user to review the plan
Post-Plan Validation (Optional)
After plan creation, offer validation interview to confirm decisions before implementation.
Check ## Plan Context -> Validation: mode=X, questions=MIN-MAX:
| Mode | Behavior |
| -------- | -------------------------------------------------------------------------------- |
| prompt | Ask user: "Validate this plan with a brief interview?" -> Yes (Recommended) / No |
| auto | Automatically execute /plan-validate {plan-path} |
| off | Skip validation step entirely |
If mode is prompt: Use AskUserQuestion tool with options above.
If user chooses validation or mode is auto: Execute /plan-validate {plan-path} SlashCommand.
Output Requirements
Plan Directory Structure (use Plan dir: from ## Naming section)
{plan-dir}/
├── research/
│ ├── researcher-XX-report.md
│ └── ...
├── reports/
│ ├── XX-report.md
│ └── ...
├── scout/
│ ├── scout-XX-report.md
│ └── ...
├── plan.md
├── phase-XX-phase-name-here.md
└── ...
Research Output Requirements
- Ensure every research markdown report remains concise (<=150 lines) while covering all requested topics and citations.
Plan File Specification
-
Every
plan.mdMUST ATTENTION start with YAML frontmatter:--- title: '{Brief title}' description: '{One sentence for card preview}' status: pending priority: P2 effort: { sum of phases, e.g., 4h } story_points: { sum of phase SPs, e.g., 8 } branch: { current git branch } tags: [relevant, tags] created: { YYYY-MM-DD } --- -
Save overview at
{plan-dir}/plan.md(<80 lines): list each phase with status, progress, and links to phase files. -
For each phase, create
{plan-dir}/phase-XX-phase-name-here.mdwith sections: Context links, Overview, Key Insights, Requirements, Alternatives Considered (minimum 2 approaches with pros/cons), Design Rationale (WHY chosen approach), Architecture, UI Layout (see below), Related code files, Implementation Steps, Todo list, Success Criteria, Risk Assessment, Security Considerations, Next steps. -
UI Layout: For frontend-facing phases, include ASCII wireframe. Classify components by tier (common/domain-shared/page-app). For backend-only phases:
## UI Layout→N/A — Backend-only change.
IMPORTANT Task Planning Notes (MUST ATTENTION FOLLOW)
- Always plan and break work into many small todo tasks using
TaskCreate - Always add a final review todo task to verify work quality and identify fixes/enhancements
- MANDATORY FINAL TASKS: After creating all planning todo tasks, ALWAYS add these three final tasks:
- Task: "Write test specifications for each phase" — Add
## Test Specificationswith TC-{FEAT}-{NNN} IDs to every phase file. Use/tdd-specif feature docs exist. UseEvidence: TBDfor TDD-first mode. - Task: "Run /plan-validate" — Trigger
/plan-validateskill to interview the user with critical questions and validate plan assumptions - Task: "Run /plan-review" — Trigger
/plan-reviewskill with deep 3-round protocol (R1: checklist, R2: code-proof trace, R3: adversarial simulation). Review depth based on SP: ≤3 → 2 rounds min, 4-8 → 3 rounds, >8 → 3 rounds + code-proof mandatory.
- Task: "Write test specifications for each phase" — Add
Important Notes
IMPORTANT: Analyze the skills catalog and activate the skills that are needed for the task during the process. IMPORTANT: Ensure token efficiency while maintaining high quality. IMPORTANT: Sacrifice grammar for the sake of concision when writing reports. IMPORTANT: In reports, list any unresolved questions at the end, if any.
REMINDER — Planning-Only Command
DO NOT use
EnterPlanModetool. DO NOT start implementing. ALWAYS validate with/plan-reviewafter plan creation. ASK user to confirm the plan before any implementation begins. ASK user decision questions with your recommendations when multiple approaches exist.
Standalone Review Gate (Non-Workflow Only)
MANDATORY IMPORTANT MUST ATTENTION: If this skill is called outside a workflow (standalone
/plan-hard), the generated plan MUST ATTENTION include/review-changesas a final phase/task in the plan. This ensures all implementation changes get reviewed before commit even without a workflow enforcing it.If already running inside a workflow (e.g.,
feature,bugfix), skip this — the workflow sequence handles/review-changesat the appropriate step.
Next Steps (Standalone: MUST ATTENTION ask user via AskUserQuestion. Skip if inside workflow.)
MANDATORY IMPORTANT MUST ATTENTION — NO EXCEPTIONS after completing this skill, you MUST ATTENTION use AskUserQuestion to present these options. Do NOT skip because the task seems "simple" or "obvious" — the user decides:
- "Proceed with full workflow (Recommended)" — I'll detect the best workflow to continue from here (plan created). This ensures review, validation, implementation, and testing steps aren't skipped.
- "/plan-review" — Validate plan before implementation
- "/plan-validate" — Interview user to confirm plan decisions
- "Skip, continue manually" — user decides
Post-Plan Granularity Self-Check (MANDATORY)
<!-- SYNC:plan-granularity --><!-- /SYNC:plan-granularity -->Plan Granularity — Every phase must pass 5-point check before implementation:
- Lists exact file paths to modify (not generic "implement X")
- No planning verbs (research, investigate, analyze, determine, figure out)
- Steps ≤30min each, phase total ≤3h
- ≤5 files per phase
- No open decisions or TBDs in approach
Failing phases → create sub-plan. Repeat until ALL leaf phases pass (max depth: 3). Self-question: "Can I start coding RIGHT NOW? If any step needs 'figuring out' → sub-plan it."
After creating all phase files, run the recursive decomposition loop:
- Score each phase against the 5-point criteria (file paths, no planning verbs, ≤30min steps, ≤5 files, no open decisions)
- For each FAILING phase → create task to decompose it into a sub-plan (with its own /plan → /plan-review → /plan-validate → fix cycle)
- Re-score new phases. Repeat until ALL leaf phases pass (max depth: 3)
- Self-question: "For each phase, can I start coding RIGHT NOW? If any needs 'figuring out' → sub-plan it."
Closing Reminders
MANDATORY IMPORTANT MUST ATTENTION break work into small todo tasks using TaskCreate BEFORE starting.
MANDATORY IMPORTANT MUST ATTENTION validate decisions with user via AskUserQuestion — never auto-decide.
MANDATORY IMPORTANT MUST ATTENTION add a final review todo task to verify work quality.
MANDATORY IMPORTANT MUST ATTENTION READ the following files before starting:
-
IMPORTANT MUST ATTENTION verify all phases pass 5-point granularity check. Failing phases → sub-plan. "Can I start coding RIGHT NOW?"
<!-- /SYNC:plan-granularity:reminder --><!-- SYNC:understand-code-first:reminder --> -
IMPORTANT MUST ATTENTION search 3+ existing patterns and read code BEFORE any modification. Run graph trace when graph.db exists. <!-- /SYNC:understand-code-first:reminder --> <!-- SYNC:estimation-framework:reminder -->
-
IMPORTANT MUST ATTENTION include
story_pointsandcomplexityin plan frontmatter. SP > 8 = split. <!-- /SYNC:estimation-framework:reminder --> <!-- SYNC:plan-quality:reminder --> -
IMPORTANT MUST ATTENTION include
## Test Specificationswith TC IDs per phase. CallTaskListbefore creating new tasks. <!-- /SYNC:plan-quality:reminder --> <!-- SYNC:iterative-phase-quality:reminder --> -
IMPORTANT MUST ATTENTION score complexity first. Score >=6 → decompose. Each phase: plan → implement → review → fix → verify. No skipping.
<!-- /SYNC:iterative-phase-quality:reminder --> <!-- SYNC:fix-layer-accountability:reminder --> -
IMPORTANT MUST ATTENTION trace full data flow and fix at the owning layer, not the crash site. Audit all access sites before adding
<!-- /SYNC:fix-layer-accountability:reminder -->?..