UNPKG

paqad-ai

Version:

Spec-driven development framework — AI agents that think before they type

49 lines (28 loc) • 2.13 kB
# Step Classification Guide verified: 2026-11-02 Use this guide when classifying each step of a proposed solution. ## ac-satisfying The step is required to make a specific acceptance criterion observable. Removing the step would mean a stated AC cannot be verified. Cite the AC id (`AC-1.1`, `AC-2.3`) on every entry. Example: a story for AC-1.1 "creates an invite" must include the database insert step. That step is `ac-satisfying`. ## necessary-setup The step does not directly satisfy an AC, but another step (which IS `ac-satisfying`) cannot work without it. Examples: schema migration before query code, shared type before consumer, configuration value before the feature reads it. A step is only `necessary-setup` when: - another step in the same plan depends on it, AND - removing it would break that other step at compile or run time. If both conditions are not true, classify as `scaffolding` or `over-build`. ## scaffolding The step adds defensive code, abstraction, or structure that the spec did not ask for. Common scaffolding patterns: - `try/catch` around an internal call whose failure cannot occur or is already surfaced - Null guards on values from typed sources where the type already excludes null - Extra abstraction layer used in only one place - Logging or metrics not requested by an AC or NFR Recommend a leaner alternative or a deletion. Do NOT classify as scaffolding if the project's canonical module docs declare the pattern as a project convention. ## over-build The step adds a feature, optimization, or generality that no AC requested and no other step requires. Examples: - New `Repository` class for one query - Pagination added to an endpoint when no AC mentions list-size limits - Caching layer when no NFR mentions latency - Configurable strategy where the spec demands one fixed behavior Recommend deletion or splitting into a separate, explicitly out-of-scope story. ## When in doubt If a step is genuinely ambiguous, do not guess: emit it under `Open Questions` with a one-line description of the ambiguity. Do not invent justification for keeping or dropping a step.