Skip to content

[chore] 4 specs still carry the TBD Purpose archive-stub (idd-all-chain, idd-ic-r011-checkpoint, idd-spawn-manifest, idd-worktree-isolation) #180

Description

@kiki830621

Problem

4 specs in openspec/specs/ still carry the literal Spectra archive-stub Purpose:

TBD - created by archiving change ''. Update Purpose after archive.

This is the exact opacity bug just fixed for idd-orchestrator-modes (renamed → idd-pr-hitl-modes + real Purpose; commit b6fd718, v2.76.1). The stub is opaque on sight — a reader cannot tell what the spec governs ("modes of what?").

Spec Stub origin (source change)
idd-all-chain add-idd-all-chain-skill
idd-ic-r011-checkpoint idd-ic-r011-default-file
idd-spawn-manifest add-idd-all-chain-skill
idd-worktree-isolation idd-worktree-isolation

Audit note: append-vs-modify-discipline showed up in the grep but is a false positive — its Purpose is real ("Defines the action-scoped modify discipline…"); the word "TBD" just appears in the body. NOT in scope.

Root Cause

Spectra archive materializes a new capability from a delta that has no ## Purpose (Purpose is not in the delta schema), so it writes the TBD … Update Purpose after archive stub and relies on a human to fill it later — with zero enforcement. Nobody filled these 4.

Proposed Solution

Mechanical, doc-only, zero behavior change — same move as the idd-pr-hitl-modes fix: give each of the 4 specs a real, intent-revealing one-sentence Purpose stating what the capability governs. Direct edit of each openspec/specs/<name>/spec.md Purpose section (the delta model cannot express a pure Purpose-fill — see Prevention).

Scope boundary (this is NOT "spec every skill")

Purpose-quality only, NOT spec-coverage. We are explicitly NOT speccing every idd skill — that is over-spec (per idd-diagnose Step 3.5 Layer 1: Plan/Spectra is dead weight for prose / no-external-contract skills). Skills like idd-comment / idd-config / idd-report / idd-edit being prose-only is correct, not a gap. This issue touches ONLY the Purpose text of specs that already exist.

Prevention (structural pairing)

This issue is the backlog (pre-existing stubs). The structural prevention (have archive/validate lint/flag any spec whose Purpose is still the TBD-stub, so promoted specs cannot silently ship opaque) was raised upstream as an inquiry to the Spectra maintainers: kaochenlong/spectra-app#100 — framed as questions, since Spectra is a closed app and this is a behavioral observation against spectra 2.3.1, not verified against source. (Note: the in-app spectra feedback CLI turned out to be a local echo pointing to a dead URL; the live repo is kaochenlong/spectra-app, not the kaochenlong/Spectra the binary prints.) If/when such a lint lands, no new stubs can appear; these 4 are the pre-lint backlog.

Success Criteria

  • All 4 specs above have a real Purpose (no TBD … Update Purpose after archive string remains in any openspec/specs/*/spec.md).
  • grep -rl "Update Purpose after archive" openspec/specs/ returns empty.
  • No behavior change; no requirement deltas.

Source: surfaced during /idd-diagnose #164 + /spectra-discuss (naming + Purpose lesson; sister of the idd-orchestrator-modes → idd-pr-hitl-modes rename, commit b6fd718)


Current Status

Phase: closed
Last updated: 2026-06-01 by idd-close

Key Decisions

Scope Changes

  • (none)

Blocking

  • (none)

Commits

Verification

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions