Spec Preflight
Authors of AGH PRDs, TechSpecs, and _tasks.md repeatedly produce drafts that miss project-specific directives — frameworks named in PRDs, prose-only TechSpecs, "fraco" test coverage. This skill loads project memory before handing off to cy-create-prd, cy-create-techspec, or cy-create-tasks, then runs the relevant post-draft checks before approval.
Required Inputs
- phase (optional): one of
prd, techspec, tasks, or task-body. When omitted, infer from the active cy-create-* skill or from the artifact path (_prd.md, _techspec.md, _tasks.md, task_NN.md).
Procedures
Step 1: Load Project Memory
- Read
docs/_memory/spec-authoring-playbook.md in full.
- Read
docs/_memory/standing_directives.md (SD-001..SD-011).
- Read
docs/_memory/glossary.md (vocabulary discipline — capability vs recipe, AGH is/is-not).
- Read the matching lessons by phase. Read
references/phase-lessons.md for the phase → lesson mapping.
- Read
CLAUDE.md Authoring Posture, Architecture Principles, Autonomy Contracts, Security Invariants sections.
Step 2: Load Active Project Context
- Resolve the active task slug: the
.compozy/tasks/<slug>/ directory the artifact targets.
- If a
_techspec.md exists at the slug, read it before authoring tasks.
- If
adrs/*.md exist, read every one before authoring techspec/tasks.
- If
analysis/*.md exist under the slug, read before authoring techspec.
- If a prior phase artifact exists (PRD before TechSpec, TechSpec before Tasks), read it.
Step 3: Apply Phase-Specific Checks
Phase-specific checks below. Run only the relevant block. Use the "before authoring" checks before the inner skill writes a draft, and the "after draft" checks before user approval.
Phase: prd
- Read
references/prd-checks.md.
- Before authoring, confirm the active idea is framed as WHAT/WHY/WHO and not implementation detail.
- After the draft is produced, run
python3 scripts/check-prd-implementation-leak.py <prd_path> to surface framework/storage/error-code/file-format names. Strip every match unless the PRD is about the named technology.
- Confirm the PRD lists explicit Goals, Non-Goals, Success Metrics, and Open Questions using the canonical
cy-create-prd template.
- Confirm the PRD states the agent/operator manageability outcome and extension ecosystem expectation without naming implementation details.
- Do not invoke
cy-spec-peer-review for PRDs. Peer review is TechSpec-only and user-directed.
Phase: techspec
- Read
references/techspec-six-markers.md.
- After draft is produced, run
python3 scripts/check-techspec-markers.py <techspec_path> to verify the six markers are present.
- Confirm "No fallback / no compat shim / no placeholder" clauses are present where breaking changes apply.
- Confirm Test Plan is per-section bullet list with concrete assertions and verification commands.
- Confirm Public Interfaces / Types section enumerates routes, payloads, CLI verbs, config keys.
- Confirm Extensibility Integration Plan enumerates extension manifests, hooks, skills/capabilities, tools/resources, bundles, registries, bridge SDKs, MCP sidecars, and protocol docs that are added/changed/removed or explicitly unaffected.
- Confirm Agent Manageability Plan enumerates CLI verbs, HTTP endpoints, UDS routes, structured outputs, status/config discovery, and deterministic errors agents will use.
- Confirm Config Lifecycle section enumerates
config.toml keys/defaults, merge/overlay behavior, validation, examples, generated CLI/site docs, and tests that are added/changed/removed or explicitly unaffected.
- Confirm Assumptions/Defaults section closes the spec.
- Confirm Web/Docs Impact is captured if any contract surface is touched (activate
cy-web-docs-impact).
- After the user approves the baseline TechSpec draft and it has been saved, offer
cy-spec-peer-review. Invoke it only if the user explicitly opts in.
Phase: tasks
- Read
references/tasks-checks.md.
- Confirm the table column order matches
cy-create-tasks: # | Title | Status | Complexity | Dependencies.
- Confirm an MVP Boundary statement above the table.
- Confirm Dependencies column is populated for every row.
- Confirm Complexity is rated
low | medium | high | critical, with QA execution and safety primitives marked high/critical as appropriate.
- Confirm last two rows are
qa-report (high) + qa-execution (critical) per cy-tasks-tail-qa-pair.
- Confirm Web/Docs Impact subsection exists in every backend task body (activate
cy-web-docs-impact to populate).
- Confirm Extensibility / Agent Manageability / Config Lifecycle subsections exist in every feature-bearing backend task body.
- Confirm test density is proportional to behavior count per task. Reject "fraco" plans (1-2 tests for many behaviors).
- Confirm
.resources/<competitor>/path references are cited per task when the TechSpec drew on competitors.
- Confirm no TBD / placeholder rows.
Phase: task-body
- Confirm
<critical>ALWAYS READ _techspec.md ...</critical> block at the top.
- Confirm
<critical>MINIMIZE CODE, TESTS REQUIRED, NO WORKAROUNDS</critical> block.
- Confirm Files / Surfaces section enumerates touched files.
- Confirm Tests section enumerates assertions covering happy path + failure paths + concurrency stress + contract redaction (when relevant).
- Confirm Web/Docs Impact subitem.
- Confirm Extensibility / Agent Manageability / Config Lifecycle subitem.
- Confirm References section cites
.resources/<competitor>/path paths from the TechSpec.
Step 4: Coordinate With the Inner Skill
- Before authoring checks pass: hand off to the inner
cy-create-* skill.
- The inner skill produces the artifact; this preflight skill is not the author.
- After the draft exists: run the after-draft checks above before user approval or task execution.
Error Handling
- Phase cannot be inferred: ask the user explicitly. Do not guess.
- Playbook missing: halt. The playbook is mandatory context. Direct the user to restore from git or re-run the synthesis.
scripts/check-*.py fail with structural errors: the artifact does not match the expected shape. Surface the path that broke; do not auto-fix.
- PRD names AGH-Network wire format: allowed exception per
lessons/L-013 — confirm with user before stripping.
- TechSpec missing markers: do not let the user skip. Pedro will reject the spec; resolve missing markers first.
_tasks.md missing QA pair: auto-invoke cy-tasks-tail-qa-pair to repair.
_tasks.md missing Web/Docs Impact subitems: auto-invoke cy-web-docs-impact to populate.
- TechSpec/task lacks extensibility, agent-manageability, or config lifecycle analysis: block approval until the artifact names the impacted surfaces or gives explicit no-impact evidence.
1---2name: cy-spec-preflight-33description: Loads the AGH spec authoring playbook plus relevant lessons, standing directives, glossary, and active context before cy-create-prd, cy-create-techspec, or cy-create-tasks runs. Applies phase-specific checks: PRDs stay business-focused, TechSpecs carry the six quality markers, and every spec/task captures extensibility integration, agent-manageability, config lifecycle, QA tail coverage, and Web/Docs Impact. Use whenever an AGH spec authoring skill is about to run. Do not use for spec execution, review remediation, or non-spec brainstorming output.4---56# Spec Preflight78Authors of AGH PRDs, TechSpecs, and `_tasks.md` repeatedly produce drafts that miss project-specific directives — frameworks named in PRDs, prose-only TechSpecs, "fraco" test coverage. This skill loads project memory before handing off to `cy-create-prd`, `cy-create-techspec`, or `cy-create-tasks`, then runs the relevant post-draft checks before approval.910## Required Inputs1112- **phase** (optional): one of `prd`, `techspec`, `tasks`, or `task-body`. When omitted, infer from the active `cy-create-*` skill or from the artifact path (`_prd.md`, `_techspec.md`, `_tasks.md`, `task_NN.md`).1314## Procedures1516**Step 1: Load Project Memory**17181. Read `docs/_memory/spec-authoring-playbook.md` in full.192. Read `docs/_memory/standing_directives.md` (SD-001..SD-011).203. Read `docs/_memory/glossary.md` (vocabulary discipline — `capability` vs `recipe`, AGH is/is-not).214. Read the matching lessons by phase. Read `references/phase-lessons.md` for the phase → lesson mapping.225. Read `CLAUDE.md` Authoring Posture, Architecture Principles, Autonomy Contracts, Security Invariants sections.2324**Step 2: Load Active Project Context**25261. Resolve the active task slug: the `.compozy/tasks/<slug>/` directory the artifact targets.272. If a `_techspec.md` exists at the slug, read it before authoring tasks.283. If `adrs/*.md` exist, read every one before authoring techspec/tasks.294. If `analysis/*.md` exist under the slug, read before authoring techspec.305. If a prior phase artifact exists (PRD before TechSpec, TechSpec before Tasks), read it.3132**Step 3: Apply Phase-Specific Checks**3334Phase-specific checks below. Run only the relevant block. Use the "before authoring" checks before the inner skill writes a draft, and the "after draft" checks before user approval.3536### Phase: `prd`37381. Read `references/prd-checks.md`.392. Before authoring, confirm the active idea is framed as WHAT/WHY/WHO and not implementation detail.403. After the draft is produced, run `python3 scripts/check-prd-implementation-leak.py <prd_path>` to surface framework/storage/error-code/file-format names. Strip every match unless the PRD is *about* the named technology.414. Confirm the PRD lists explicit Goals, Non-Goals, Success Metrics, and Open Questions using the canonical `cy-create-prd` template.425. Confirm the PRD states the agent/operator manageability outcome and extension ecosystem expectation without naming implementation details.436. Do not invoke `cy-spec-peer-review` for PRDs. Peer review is TechSpec-only and user-directed.4445### Phase: `techspec`46471. Read `references/techspec-six-markers.md`.482. After draft is produced, run `python3 scripts/check-techspec-markers.py <techspec_path>` to verify the six markers are present.493. Confirm "No fallback / no compat shim / no placeholder" clauses are present where breaking changes apply.504. Confirm Test Plan is per-section bullet list with concrete assertions and verification commands.515. Confirm Public Interfaces / Types section enumerates routes, payloads, CLI verbs, config keys.526. Confirm Extensibility Integration Plan enumerates extension manifests, hooks, skills/capabilities, tools/resources, bundles, registries, bridge SDKs, MCP sidecars, and protocol docs that are added/changed/removed or explicitly unaffected.537. Confirm Agent Manageability Plan enumerates CLI verbs, HTTP endpoints, UDS routes, structured outputs, status/config discovery, and deterministic errors agents will use.548. Confirm Config Lifecycle section enumerates `config.toml` keys/defaults, merge/overlay behavior, validation, examples, generated CLI/site docs, and tests that are added/changed/removed or explicitly unaffected.559. Confirm Assumptions/Defaults section closes the spec.5610. Confirm Web/Docs Impact is captured if any contract surface is touched (activate `cy-web-docs-impact`).5711. After the user approves the baseline TechSpec draft and it has been saved, offer `cy-spec-peer-review`. Invoke it only if the user explicitly opts in.5859### Phase: `tasks`60611. Read `references/tasks-checks.md`.622. Confirm the table column order matches `cy-create-tasks`: `# | Title | Status | Complexity | Dependencies`.633. Confirm an MVP Boundary statement above the table.644. Confirm Dependencies column is populated for every row.655. Confirm Complexity is rated `low | medium | high | critical`, with QA execution and safety primitives marked high/critical as appropriate.666. Confirm last two rows are `qa-report` (high) + `qa-execution` (critical) per `cy-tasks-tail-qa-pair`.677. Confirm Web/Docs Impact subsection exists in every backend task body (activate `cy-web-docs-impact` to populate).688. Confirm Extensibility / Agent Manageability / Config Lifecycle subsections exist in every feature-bearing backend task body.699. Confirm test density is proportional to behavior count per task. Reject "fraco" plans (1-2 tests for many behaviors).7010. Confirm `.resources/<competitor>/path` references are cited per task when the TechSpec drew on competitors.7111. Confirm no TBD / placeholder rows.7273### Phase: `task-body`74751. Confirm `<critical>ALWAYS READ _techspec.md ...</critical>` block at the top.762. Confirm `<critical>MINIMIZE CODE, TESTS REQUIRED, NO WORKAROUNDS</critical>` block.773. Confirm Files / Surfaces section enumerates touched files.784. Confirm Tests section enumerates assertions covering happy path + failure paths + concurrency stress + contract redaction (when relevant).795. Confirm Web/Docs Impact subitem.806. Confirm Extensibility / Agent Manageability / Config Lifecycle subitem.817. Confirm References section cites `.resources/<competitor>/path` paths from the TechSpec.8283**Step 4: Coordinate With the Inner Skill**84851. Before authoring checks pass: hand off to the inner `cy-create-*` skill.862. The inner skill produces the artifact; this preflight skill is not the author.873. After the draft exists: run the after-draft checks above before user approval or task execution.8889## Error Handling9091- **Phase cannot be inferred:** ask the user explicitly. Do not guess.92- **Playbook missing:** halt. The playbook is mandatory context. Direct the user to restore from git or re-run the synthesis.93- **`scripts/check-*.py` fail with structural errors:** the artifact does not match the expected shape. Surface the path that broke; do not auto-fix.94- **PRD names AGH-Network wire format:** allowed exception per `lessons/L-013` — confirm with user before stripping.95- **TechSpec missing markers:** do not let the user skip. Pedro will reject the spec; resolve missing markers first.96- **`_tasks.md` missing QA pair:** auto-invoke `cy-tasks-tail-qa-pair` to repair.97- **`_tasks.md` missing Web/Docs Impact subitems:** auto-invoke `cy-web-docs-impact` to populate.98- **TechSpec/task lacks extensibility, agent-manageability, or config lifecycle analysis:** block approval until the artifact names the impacted surfaces or gives explicit no-impact evidence.