feat: add per-repo disable via cache sentinel (ADR 0020)#44
Open
bcanfield wants to merge 1 commit into
Open
Conversation
Adds a way to turn debt-ops off for a single repo without uninstalling globally or putting a file in the working tree. The off-state lives as a `disabled` sentinel in the plugin's existing per-repo cache (`<cache>/cache/<repo_hash>/disabled`). Every hook already resolves git root -> cache_dir, so each now checks `repo_disabled(cache_dir)` there and idles silently when the marker is present — no session inject, no write-time feedback, no stop nudge. Flip it with the new `/debt-ops:disable` skill (`$debt-ops-disable` on Codex/Copilot/portable), backed by `toggle.py`, which creates/removes the sentinel and prints the resulting state. Run again to re-enable. Trade-off (per ADR 0020): the marker is per-machine, not committed, so it keeps the working tree clean at the cost of being per-developer rather than team-wide. - Hooks honor the sentinel across all adapters (claude/codex/copilot) - New disable skill + toggle.py duplicated across all four skill sets - ADR 0020 records the decision; CLAUDE.md parity lists + README updated
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a per-repo on/off switch for debt-ops that lives in the plugin cache, not the working tree. Users can now silence debt-ops for a single repo without uninstalling globally.
Summary
Implements ADR 0020: a
disabledsentinel file in each repo's cache dir (<cache>/cache/<repo_hash>/disabled). When present, all hooks idle silently — no session inject, no write-time feedback, no stop nudge. The flag is per-machine (not committed), so each developer flips it independently.Changes
New skill:
disable(all adapters)/debt-ops:disable(hidden fromnpx skillsviametadata.internal: true)$debt-ops-disable/debt-ops-disabletoggle.py— creates or removes the sentinel, prints confirmationHook updates (all adapters)
repo_disabled(cache_dir)helper to check for sentinelsession-start.py,stop.py,feedback.py,drop.pyif disabledDocumentation
Implementation notes
toggle.pyresolves cache the same wayregister.pydoes, ensuring consistency/debt-ops:add) still work while disabled; only automatic hook behaviors are silencedhttps://claude.ai/code/session_01Av3q7T4rbXaj7MuPPAjLif