Skip to content

SPIR spec template is dead code: no prompt, consult type, or porch check references it #1279

Closed

Description

@waleedkadous

Problem (reported from a production SPIR workspace, 2026-07-28; flagged by the owner)

codev-skeleton/protocols/spir/templates/spec.md exists but nothing in the pipeline delivers or enforces it:

  1. prompts/specify.md never references the template — it describes required content in prose only.
  2. Porch's spec-approval gate checks only that the spec file exists, not its structure.
  3. consult-types/spec-review.md has no template/structure check.

Net effect: builders never see the template unless they go looking. In the reporting workspace, the builder pattern-matched the previous spec's free-form structure, 3-way review passed it, and both of that repo's SPIR specs are off-template — discovered only when the human asked why.

Suggested fixes (any/all, from the report)

  • Reference the template explicitly in prompts/specify.md ('structure per templates/spec.md' — or better, per the deliver-don't-fetch convention, inline the required heading skeleton into the prompt).
  • Add a structure line to the spec-review consult type so reviewers check it.
  • Optionally: a porch check for required headings at spec-approval.

Audit scope

The same disease presumably applies to plan/review templates in SPIR and to ASPIR/PIR skeletons — audit all template references across protocols before fixing one.

Sequencing note

Land AFTER PR #1278 (Spec 1252) merges — that PR makes codev-skeleton/ the single owner of these files and adds the ownership map; this issue's fix should register the templates' wiring in that map rather than creating new unowned references. Conceptually this is the same class 1252 attacked: an authored artifact with no owning consumer is dead code that silently rots.

Activity

  1. added
    area/protocolsArea: Protocol definitions — distinct from area/porch (orchestration)
    on Jul 28, 2026
  2. waleedkadous commented on Jul 28, 2026

    @waleedkadous
    ContributorAuthor

    Architect verification (2026-07-28) — confirmed at the canonical source, with one correction

    Verified against codev-skeleton/ in this repo (not the reporting workspace's local copies), so this is not project-specific:

    1. ✅ Confirmed: spir/prompts/specify.md contains no template reference and no {{> }} include. The spec template is dead in the pipeline.
    2. ✅ Confirmed: spir/consult-types/spec-review.md has no structure/template check.
    3. ✅ Confirmed: porch's gate check is existence-only.

    Correction to the audit assumption: the plan template is NOT dead — both spir/prompts/plan.md:79 and aspir/prompts/plan.md:79 inline it via {{> protocols/spir/templates/plan.md}}, using exactly the include mechanism porch resolves (porch/prompts.ts:82). So the disease is an asymmetric oversight, and the fix precedent already exists in-tree:

    Template Wired?
    templates/plan.md ✅ inlined in spir + aspir plan prompts
    templates/spec.md ❌ dead — no include in spir or aspir specify prompts
    templates/review.md ❌ dead — no include in spir or aspir review prompts
    PIR plan prompt ❌ no include either

    Recommended fix shape: add the same {{> …}} include to specify/review prompts (matching the plan precedent — this also satisfies the deliver-don't-fetch convention, since porch expands the partial into the delivered prompt), plus the structure line in the spec-review/review consult types. The porch heading-check remains optional hardening.

    This also explains why the reporting workspace's plans looked fine while its specs drifted off-template.

  3. waleedkadous commented on Jul 28, 2026

    @waleedkadous
    ContributorAuthor

    On it! Working on a fix now.

  4. added 7 commits that reference this issue on Jul 28, 2026
  5. added 4 commits that reference this issue on Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/protocolsArea: Protocol definitions — distinct from area/porch (orchestration)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions