Skip to content

topic-docs: dispose of the 17 contract-slice directories on main — prune 8, graduate 3, register 6 #1424

Description

@kyle-sexton

This was generated by AI, delegated directly by the repository operator to resolve #1417's blocker.

Companion to #1417. That issue wires the docs/topics/** prune gate; this one disposes of the 17
contract-slice directories currently on main. The two are independent#1417's decision
includes a pure-deletion carve-out, so the gate never blocks a prune and the tickets may land in
either order.

Full evidence and rationale: the decision comment on #1417.

Why the 17 are not one population

Reading all 17 slices, their git history, and their linked tracker issues splits them three ways.
A mechanical bulk delete would lose durable information; a per-slice disposition does not.

Phase A — mechanical prune (8 slices, no triage needed)

Delete these outright. All phases [DONE], shipped artifacts present in the tree, no un-routed
follow-ups, zero inbound markdown links:

  • docs/topics/plugin-fleet-sync-skill/ — 6 phases [DONE] 2026-07-17; plugins/claude-ops/skills/plugins/ ships
  • docs/topics/underspecification/ — self-declares "COMPLETED (recorded 2026-07-21) … no further work"
  • docs/topics/handoff-bg-cutover/ — every step shipped; plugins/session-flow/skills/continue-in-background/ exists
  • docs/topics/plugin-organization/## Plan is literally "(unfilled)"; grammar + vocabulary graduated to docs/CATALOG-TAXONOMY.md
  • docs/topics/github-plugin-candidates/ — 7 phases [DONE]; plugins/github/skills/{audit,advise,setup} ship. Also actively stale: cites the retired consumer-config-layering path in ~6 places
  • docs/topics/dometrain-mcp/ — 7 phases [DONE], plugin ships. Two unresolved empirical questions (bad-key 401 behavior; duplicate plugin.json name behavior) are recorded only here — route to the tracker or drop them deliberately before deleting
  • docs/topics/babysit-prs-migration/ — stale [DOING]/[TODO] marks from 07-18 for an engine that already shipped (babysit-prs + babysit-loop both exist)
  • docs/topics/boris-video-absorption/ — 8 phases [DONE], "Open questions: None blocking". Its deferred-with-trigger items live only in a machine-local digest slice; decide explicitly whether any are worth a tracker issue first

Phase B — cheap graduation, then prune (3 slices)

Each needs one human-authored paragraph promoted somewhere durable before the directory goes. Do not
fold these into Phase A's delete.

  • docs/topics/commit-convention-well-known-path/ — the decision and its 3-rung precedence already
    graduated to docs/conventions/commit-convention/README.md:80-113. Not graduated: the rejected
    alternatives, and a tracked concern that "the operator does not recall ratifying
    consumer-config-layering … audit which seams were human-ratified vs agent-accreted" — that one is
    a tracker issue, not a doc paragraph. Also fix the dangling backtick ref at
    docs/conventions/commit-convention/README.md:104
  • docs/topics/plugin-audit-port/ — A1–A5 / B1–B6 [DONE], both plugins ship. B7 "operator cutover
    (post-merge, HITL)" is [TODO] and needs a home; four open questions (zone bands, stable-shim,
    zones.json org layer) are USER-RESERVED and must route to the tracker, not be deleted. Also fix
    the dangling ref at docs/adr/0005-…:326
  • docs/topics/fable-field-guide-audit/ — remediations shipped via feat(playbooks): adopt the fable field guide audit remediations into fable-5 #1261 and
    plugins/playbooks/skills/fable-5/. Not graduated: the "dropped"/"hold" rulings and
    codex-review.md §4's standing objection. Separately, this slice carries raw-capture.txt
    and source-article.md — a raw command capture and verbatim third-party article text, both
    forbidden by the convention's redaction bar (docs/conventions/topic-docs/README.md:315-320).
    That is a live violation regardless of this ticket's outcome; handle it here since the directory
    is being touched anyway

Phase C — register hygiene (6 live programs, no deletion)

These stay. They are multi-branch program slices, not violations — see #1417's decision. This phase
only ensures each one is legitimately registrable:

Slug State Action
autonomy-ignition #778 OPEN, commit today (#1363) register against #778
fresh-eyes-checkpoint-audit #304 OPEN, 0 of 4 phases executed register against #304
context-engineering-claude-5 "in progress", 5 phases [TODO] needs an open tracker issue — file one
ladder-climb-roadmap 1 of 5 phases [DONE] needs an open tracker issue — file one, or register against #778 if genuinely the same program
loop-engineering-codification 4 un-routed follow-ups, 2 open interview branches needs an open tracker issue — file one; route the four follow-ups
ai-adoption-ladder T1–T7 graduated to plugins/autonomy/reference/; 10 RESEARCH-*.md and native-vs-hook-telemetry-audit.md did not needs an open tracker issue. The telemetry audit is a version-pinned decision record with revisit triggers — it is ADR-shaped and is the strongest ADR candidate in the whole corpus

Hard constraint

Do not delete docs/topics/loop-engineering-codification/. Its PLAN holds the sole record of a
USER-RESERVED, still-open question — "whether contract slices should persist on the default branch
at all" — which is the premise of this entire ticket and which #1417's decision explicitly declined
to answer. Deleting it destroys the record of its own premise.

Verification

  • git ls-tree -d --name-only origin/main docs/topics/ returns exactly the 6 registered program
    slugs when all phases are complete
  • No new dangling references: git grep -nE '\]\([^)]*docs/topics/[^)]*\)' -- . ':!docs/topics/'
    stays empty (it is empty today — there are zero inbound markdown links, so no link-checker risk)
  • Every USER-RESERVED question and un-routed follow-up named above exists as a tracker issue before
    its slice is deleted
  • If topic-docs: the contract-slice prune gate is specified but never wired — 17 slices on main #1417 has already landed, each phase's PR passes topic-slice-prune-gate — pure-deletion diffs
    pass by the carve-out

Suggested PR shape

One PR per phase. Phase A is a single mechanical deletion PR and is CI-cheap (docs/topics/ is on
scripts/docs-only-paths.txt:43, so the heavy lanes report evaluated-and-not-applicable). Phases B
and C carry judgment and should not ride along with it.

Metadata

Metadata

Assignees

Labels

needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions