feat: adopt the uniform setup contract across 17 shape-B plugins - #360
Conversation
Tranche 3 of wave #314 (epic #313, dim 8): every existing off-contract setup skill refactored onto check/apply, preserving each plugin's own verification logic, state locations, and reference chains — plus two creates where the audit showed gaps behind the issue's shape-B listing (claude-config had no setup at all; kindle-dedrm's setup was a router action, now a dedicated skill with the router delegating). machine-health 0.6.0, source-control 0.9.0 (stale install --config reconfigure advice replaced with fresh-install-only semantics), toolchain 0.4.0, claude-config 0.6.0 (+ README bash prereq, audit dim-10 nit), claude-ops 0.12.0, skill-quality 0.5.0, songwriting 0.5.0 (one deliberate interactive exception: destructive-collision confirmation on override overwrite/removal), ai-briefing 0.6.0 (verify+install fusion split into check + apply install-build-deps; four stale --with-build-deps cross-refs in the generate skill updated), context7 0.4.0, discovery 0.7.0 (gains the non-interactive arg path), knowledge 0.8.0 (provisioners pulled behind apply install-deps), code-tidying 0.5.0, codebase-health 0.5.0, kindle-dedrm 0.4.0, planning 0.20.0, repo-fleet-hygiene 0.2.0, work-items 0.11.0. Contract refinements from tranches 1-2 are embedded throughout: opt-in absence = INFO vs broken = FAIL, verify-after-remediation, secrets presence-only, env-var changes defer verification to a fresh session, --config fresh-install-only reconfigure guidance, and non-interactive execution when complete arguments are supplied. Write-behavior evals re-routed from bare setup to explicit apply. Root README catalog regenerated for the two changed descriptions. ## Related - Part of #314 - Part of #313 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 25s —— View job PR Review: feat/setup-contract-shape-b
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6bad08e00e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Action routing: no argument or `check` runs the check; `apply` runs the check first, then | ||
| remediation. When `apply` carries a `subject_pattern=` argument it writes the convention | ||
| non-interactively; with no arguments in an interactive session it runs the convention interview | ||
| below. |
There was a problem hiding this comment.
Update setup eval prompts to request apply
The new dispatcher makes a bare /source-control:setup run the read-only check, but all six existing setup evals still invoke it without apply; several then expect an interview or a write to .claude/source-control.md (for example evals 2, 4, and 6). Those evaluations will now exercise only check and fail or stop validating the configuration path. Update their prompts to /source-control:setup apply (and likewise update the other unchanged setup eval suites that still expect mutation from a bare invocation).
Useful? React with 👍 / 👎.

Summary
Tranche 3 of wave #314 (epic #313, dim 8): all 17 remaining shape-B setups onto the uniform check/apply contract — refactors that preserve each plugin's own verification logic, plus two creates where the audit showed the listing was imprecise (claude-config shipped no setup; kindle-dedrm's setup was a router action, now a dedicated skill with the router delegating to it).
install --configreconfigure advice → fresh-install-only semanticsapplyapply install-build-deps); 4 stale cross-refs in generate updatedapply install-cligatedapply install-deps(verified standalone + idempotent)--configsemanticsContract refinements from tranches 1–2 embedded throughout: opt-in absence = INFO vs broken = FAIL; verify-after-remediation; secrets presence-only; env-var changes defer verification to a fresh session;
--configfresh-install-only reconfigure guidance; non-interactive with complete arguments. Write-behavior evals re-routed to explicitapply. Root README catalog regenerated.With this PR, 27 of 31 plugins conform. Remaining: bug-report + miro (check-only carve-out PR with its one-line doctrine sanction), disk-hygiene + guardrails (deferred for the #286/#305 lanes), then the contract-gate check/apply rule as the closing tranche.
Verification
validate-plugins.sh(incl. regenerated catalog),validate-plugin-contracts.mjs(31 setup skills, 1537 files), markdownlint (725 files),typos: all green locally. Agents additionally ran skill-quality checks on the six plugins in group D (all PASS).Related
No linked issue: tranche 3 of #314 — the issue closes with the wave's final tranche.
🤖 Generated with Claude Code