feat(coupling): add coupling plugin with /coupling:reduce skill - #2913
Conversation
New maintenance-category plugin for iterative coupling reduction at four altitudes (docs, code, application, repository). The reduce skill scans for change-transmitting dependencies typed against a coupling model (structured-design strength ladder, connascence strength x degree x locality, volatility weighting from co-change history), reproduces every finding behind a hard verification gate, then splits lanes: mechanical behavior-preserving reductions are applied under a scope budget and verified against the project's own build and tests, while cross-file and architectural candidates are surfaced and routed to design lanes, never auto-applied. A repo-scoped ledger (topic-docs memory tier, constant-slug delta) makes successive runs resume instead of restarting. Grounded in melodic-software/standards review and engineering criteria at orientation time (consumer standards win; bundled model is the fallback). Remediation catalog carries an explicit over-abstraction counterweight per mechanism. Registered in the marketplace catalog, cheat sheet, topic-docs implementers table, and dogfooding enabledPlugins. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CWMh6HAsgWWi9tLw76hZR
…ficial 100-line TOC guidance
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1ca3fd8685
ℹ️ 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".
…nch base, one repo-scoped ledger Phase E now requires the apply batch's branch to be created from the resolved default branch (never the session's feature branch, whose unrelated commits would break the structure-only invariant) and requires every target file clean in git status before editing — a target carrying pre-existing local modifications defers its finding instead of mixing foreign edits into the batch. The ledger slug is now the constant `coupling` for every run: scoped runs, unscoped runs, and `status` all resolve the same .work/coupling/coupling-ledger.md, with scope recorded inside the file rather than in the path, so a scoped run's backlog is always discoverable by later runs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016CWMh6HAsgWWi9tLw76hZR
|
All three Codex findings addressed in d80d5f1:
Generated by Claude Code |
…ing-skill-j8lc99 # Conflicts: # docs/CATALOG.md
|
Claude finished @kyle-sexton's task in 3m 44s —— View job Claude finished the code review
Review scopeRan the I was not able to execute the repo's shell scripts ( FindingsNone. This is a well-structured addition with no correctness or maintainability issues at the code-review bar. All three findings from the earlier Codex review are verifiably fixed in
Cross-checked the rest for consistency and found no gaps:
One pre-existing, out-of-scope observation for the author's awareness only (not a PR defect): the working tree at the reviewed HEAD has an uncommitted local diff removing |
|
Claude finished @kyle-sexton's task in 1m 53s —— View job 🔍 Security review complete
Scope: All 14 changed files are new plugin content (skill markdown, reference docs, manifest/CHANGELOG, marketplace/catalog registrations, and one line enabling the plugin in FindingsNo security issues found. This PR is prompt/documentation content that shapes how an agent performs git operations (branch, edit, commit, PR) in a consumer repository. I specifically checked the things that would matter for that kind of skill — unsafe branch basing, mixing in pre-existing local edits, scope creep into sensitive paths, and secret/ledger leakage — and all are handled:
Both Codex P1 findings and the P2 finding from the earlier review round are verified fixed at HEAD ( |
|
Last security-reviewed head: |
|
Claude has reviewed this PR 1 time. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
#2916) No linked issue ## Summary Structure-only apply-lane batch from the first `/coupling:reduce` dogfood pass over `scripts/`: five fixture-construction sites across three test suites hand-rolled the `git init` + identity-config block that `scripts/test-git-helpers.sh` already publishes, bypassing its inside-checkout safety guard (the class that bit as #2839) and its gpgsign/autocrlf hardening. ## Fix Source `test-git-helpers.sh` in `check-shell-portability.test.sh`, `check-skill-portability.test.sh`, and `sync-standards-contract.test.sh`, and replace each inline init+config block with `git_init_test_repo`. Net −6 lines. `check-stale-base-overlap.test.sh` is deliberately not converted — its fixture needs `init -b`, which the helper has no seam for yet (tracked in #2914's deferred item). ## Verification - `check-shell-portability.test.sh`: PASS=333 FAIL=0 - `check-skill-portability.test.sh`: PASS=89 FAIL=0 - `sync-standards-contract.test.sh`: PASS=12 FAIL=0 - `shellcheck` clean on all three files ## Related Refs #2914 (route-lane findings from the same pass); companion to #2913 (the skill that produced this batch) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016CWMh6HAsgWWi9tLw76hZR --- _Generated by [Claude Code](https://claude.ai/code/session_016CWMh6HAsgWWi9tLw76hZR)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
No linked issue
Summary
Adds a new maintenance-category
couplingplugin with one skill,/coupling:reduce— iterative coupling reduction runnable in any repo at four altitudes (documents, code modules, applications, repositories), grounded in the org's standards-repo review and engineering criteria with the bundled model as portable fallback.Fix
plugins/coupling/: plugin manifest (0.1.0), README, CHANGELOG, topic-docs binding (repo-scopedcoupling-ledger.md, memory tier, constant-slug delta), and thereduceskill: hub SKILL.md (190 lines) + three reference spokes (coupling model with strength ladder/connascence/volatility weighting, remediation catalog with per-mechanism over-abstraction counterweights, ledger schema with resume semantics) + 3 eval cases including an over-abstraction refusal case.docs/CATALOG.md+docs/SKILL-CHEAT-SHEET.md, topic-docs Implementers row, dogfoodingenabledPluginsentry.Verification
check-skill.sh --require-evals reduce: PASS, 0 errors, 0 warningscheck-evals-quality.sh+ evals schema validation: PASScheck-skill-portability.sh --pathsover all four skill files: no unexcused coupling tokensvalidate-plugins.sh(contracts, catalog--check, cheatsheet--check,claude plugin validate --strict): PASS; generator test suite 24/24/coupling:reduce dry-run scriptson this repo produced 8 verified findings and a conforming memory-tier ledger; apply-lane follow-up PR and route-lane tracker item are linked below.Related
N/A (dogfood follow-ups linked in comments once opened)
🤖 Generated with Claude Code
https://claude.ai/code/session_016CWMh6HAsgWWi9tLw76hZR
Generated by Claude Code