implement-with-design
Installation
SKILL.md
Implement-with-design (FP-first)
Execute exactly one phase of a plan. Output is real production code plus an implementation report. The skill leaves the working tree on a clean series of atomic commits — one per acceptance criterion — and never amends.
Inputs and outputs
- Plan input:
<cwd>/.plans/<feature>/plan.md— a phased plan file. Phases are demarcated by---separators with## Phase N: <Title>headings and- [ ]acceptance criteria. - Design input (UI phases only):
<cwd>/.plans/UI-RULES.md(the project's UI rulebook — aesthetic direction, typography, colour & theme, spatial & motion decisions, project-specific bans, AI Slop Test) and<cwd>/.plans/DESIGN.md(design tokens —colors,typography,rounded,spacing). Both are loaded during precondition step 3 — see step 3 for behaviour when either is missing. - Code output: edits to project source.
- Report output:
<cwd>/.plans/<feature>/implementations/with-design/{feat,fix,refactor}/<phase_number>.md— what was built, decisions made (FP choices, complexity, design decisions for UI), and any deviations from the plan. Subdirectory choice (feat/fix/refactor) follows the dominant intent of the phase: new behaviour →feat, bug-fix →fix, internal restructure with no behaviour change →refactor. If mixed, default tofeat.
Modes
Two modes — default and TDD. Pick once at the start of the invocation; do not switch mid-phase.
- Default mode — write code, then run the narrowest automated check that proves the AC, then commit. One commit per AC.
- TDD mode — strict red → green → refactor per AC. Activated when the user's prompt contains "tdd", "use tdd", "tdd mode", or "test-first", or when (during preconditions) the user explicitly opts in. In TDD mode, each AC produces 2–3 commits (
[red]failing test,[green]passing code, optionalrefactor). Full discipline in TDD.md.
If the prompt contains a near-trigger that doesn't match the list exactly (e.g. "write tests as you go", "test everything"), ask once with AskUserQuestion during preconditions; default to non-TDD if they decline to choose. Do not ask when no trigger phrase appeared — silence means default mode.