Skip to content

toolchain/discovery/planning/verification: shared setup-skill topic-docs contract gaps (concern-file-ignore path, memory_dir root-rejection, headless-vs-forked ruling) #745

Description

@kyle-sexton

Lane: babysit. Triggering PR: #737 (fix/263-toolchain-topic-docs-relocate), head 7d3d88d1.

Worker verified the relocation's own completeness (fixed a dangling-reference gap, commit 7d3d88d1) and, while at it, surfaced 3 findings shared across the setup-skill family (/discovery:setup, /planning:setup, /verification:setup — verified verbatim-identical in all three, so not something this relocation created). Deferring per rule 3b: none of these are DEFER-FORBIDDEN classes on their own reading, but they touch the topic-docs contract's own guarantees, so fixing needs a cross-cutting pass (all setup-skill bindings, or the contract doc itself) rather than a single-plugin patch that would diverge the explicitly-mirrored family.

Category: bug (1, 2) / design-decision (3).

  1. Concern-file-ignore guard checks the wrong path. The committed-tier guard probes <contract_dir> for gitignore status, never the actual .claude/topic-docs.yaml path it's meant to protect — so an ignored topic-docs.yaml is still reported as tracked. (PR refactor(toolchain): relocate setup topic-docs offering to the verification plugin that owns it #737 review comment 3616655423.)
  2. Root-equivalent memory_dir isn't rejected up front. docs/conventions/topic-docs/README.md L259-262 documents memory_dir=. / empty / repo-root as invalid, but the skills only catch it via the downstream "never edit root .gitignore" backstop — not the mandated up-front stop the contract describes. (PR refactor(toolchain): relocate setup topic-docs offering to the verification plugin that owns it #737 review comment 3616882930.)
  3. Headless persistence vs. forked-mode rule needs a decision, not just a fix. The contract's "a fork never writes .claude/topic-docs.yaml" (L240-245) is ambiguous on whether it governs an explicit /verification:setup apply invocation with full args (a deliberate CI/user configuration action) or only incidental placement-resolution during a fork's substantive work. Needs a ruling before any binding can be brought into compliance. (PR refactor(toolchain): relocate setup topic-docs offering to the verification plugin that owns it #737 review comment 3616882934.)

Root question for whoever picks this up: fix each binding individually (3 skills × up to 3 findings), or centralize the guard/validation logic once in the shared contract doc's reference implementation and have all three skills call it? The current pattern is copy-verbatim across three skills, which is exactly why one review surfaced the same 3 gaps in all of them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.wayfind: designWayfind decision item: design-space or domain-model decision; human in the loop.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions