clarification
Use when a user's request is vague, ambiguous, or underspecified. Explores the codebase first, then runs an iterative Q&A loop…
Use when a task's scope is clear and multi-step implementation is needed, before touching code. Triggered after clarification is complete, or when the user explicitly requests plan creation with a clear prompt.
$ npx -y skills add tmdgusya/engineering-discipline --skill plan-crafting --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/plan-craftingContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when a task's scope is clear and multi-step implementation is needed, before touching code. Triggered after clarification is complete, or when the user explicitly requests plan creation with a clear prompt.
name: plan-crafting description: Use when a task's scope is clear and multi-step implementation is needed, before touching code. Triggered after clarification is complete, or when the user explicitly requests plan creation with a clear prompt.
Writes an executable plan document from a clearly defined work scope. Designed so tasks can be spawned as "worker-validator" pairs in parallel.
A plan document must be executable by a worker with zero codebase context, without any additional questions. All ambiguity must be resolved at the planning stage.
1. **Every step must be executable.** Placeholders (TBD, TODO, "implement later") are never allowed. 2. **Task conflicts must be prevented.** Tasks modifying the same file must not run in parallel. Tasks with dependencies must wait for predecessor completion. 3. **Self-Review is mandatory.** After writing the plan, verify its completeness yourself. 4. **Tasks decompose to minimal feature units.** One task produces one clear deliverable.
This skill takes a **Context Brief file** as input. The Context Brief generated by the `clarification` skill is used to populate the plan header:
| Context Brief Field | Plan Header Mapping | |---|---| | Goal | **Goal** | | Scope (In/Out) | **Work Scope** (included/excluded) | | Technical Context | **Architecture** + **Tech Stack** + basis for file structure mapping | | Constraints | Reflected as constraints during task decomposition | | Success Criteria | Used as Self-Review criteria | | Open Questions | Reflected as assumptions in the plan, then confirmed with the user |
If no Context Brief file exists (user directly requests a plan): confirm essential information (goal, work scope, tech stack) with the user before writing the plan.
docs/engineering-discipline/plans/YYYY-MM-DD-<feature-name>.md
(User preferences for plan location override this default.)
# [Feature Name] Implementation Plan > **Worker note:** Execute this plan task-by-task using the run-plan skill or subagents. Each step uses checkbox (`- [ ]`) syntax for progress tracking. **Goal:** [One sentence describing what this plan builds] **Architecture:** [2-3 sentences about approach] **Tech Stack:** [Key technologies/libraries] **Work Scope:** - **In scope:** [What will be implemented] - **Out of scope:** [What is explicitly excluded] ---
Before defining tasks, map out which files will be created or modified. Decomposition decisions are locked in at this stage.
Before decomposing tasks, discover the project's highest-level verification capability. This determines the **Final Verification Task** that closes every plan.
**Discovery order (use the first match):**
1. **Existing e2e tests** — search for `e2e/`, `tests/e2e/`, `cypress/`, `playwright/`, `test:e2e` in package.json, `e2e` targets in Makefile/Taskfile 2. **Integration tests** — search for `tests/integration/`, `integration_test`, `test:integration` scripts 3. **Verification skill or agent** — check `.claude/skills/`, `.claude/agents/`, and installed plugins for anything named `verify`, `validate`, `e2e`, or `test` 4. **Project test suite** — any test runner (`pytest`, `jest`, `go test`, `cargo test`, etc.) with broad coverage 5. **Build + lint** — if no tests exist, the highest available verification is a successful build + lint pass
**If no meaningful verification exists (level 5 only):** Add a **Task 0: Create Verification Infrastructure** that sets up the minimal verification needed for this plan:
**Record the discovery result** in the plan header:
**Verification Strategy:** - **Level:** [e2e | integration | skill/agent | test-suite | build-only] - **Command:** [exact command to run the verification] - **What it validates:** [what passing this verification proves]
Before decomposing tasks, also discover project-level agents and skills that workers can leverage:
1. **Project agents** — check `.claude/agents/` for agents relevant to the task domain (e.g., a `test-runner` agent, a `db-migration` agent) 2. **Plugin agents** — check installed plugins for specialized agents (e.g., `build-validator`, `lint-fixer`) 3. **Project skills** — check `.claude/skills/` for skills that match task operations
If useful agents/skills are found, reference them in task steps where applicable:
- [ ] **Step N: Run migration** Use the project's `db-migration` agent for this step if available. Run: `<migration command>`
Workers are not required to use discovered agents — they are hints for efficiency. The worker may execute steps directly if the ag
Engineering discipline skills for AI coding agents. Works with Claude Code, Gemini CLI, OpenCode, Codex, and Cursor.
Use when a user's request is vague, ambiguous, or underspecified. Explores the codebase first, then runs an iterative Q&A loop…
Corrective cleanup of AI-generated code — removes LLM-specific patterns while preserving behavior. Use when the user says…
Behavioral guardrails to prevent common LLM coding mistakes — enforces surgical changes, assumption verification, and scope…
Orchestrates multi-day execution of complex tasks through milestones. Each milestone goes through plan-crafting, run-plan…
Decomposes complex, multi-day tasks into optimized milestones (ultraplan). Broad parallel exploration grounds a draft milestone…
Use after run-plan completes to independently verify the implementation. Reads only the plan document and inspects the codebase…