refactor: consolidate quality vocab — handover delegates, shared sentinel, drop qa#128
Open
abdout wants to merge 3 commits into
Open
refactor: consolidate quality vocab — handover delegates, shared sentinel, drop qa#128abdout wants to merge 3 commits into
abdout wants to merge 3 commits into
Conversation
…k mode
Two consolidations in one rewrite:
(1) Delegation instead of redefinition
The 5-pass logic (console, flow, breakpoints, RTL, translation) was a
re-implementation of the niche keywords the quality agent already
owns. handover.md now invokes the niche keyword definitions instead
of writing parallel check logic:
- Pass "bug-free" → niche `debug`
- Pass "flow" → niche `flow`
- Pass "responsive" → niche `responsive`
- Pass "RTL" → niche `lang` (RTL portion)
- Pass "translation"→ niche `lang` (translation portion)
Console-check, breakpoint-check, RTL-check, translation-check now
each live in exactly one place.
(2) Polymorphic on argument shape
URL mode (argument begins with /):
/handover /admission/new → runs all 12 per-URL niche keywords
(replaces the old `qa <url>` orchestrator)
Block mode (bare word):
/handover admission → runs per-route niche subset
(debug, flow, responsive, lang)
Removes the `qa` orchestrator from the quality agent's surface —
/handover now covers both scopes via argument detection.
Refs #127
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The skip-if-recent pattern was only honored by /release. /ship
invoked alone always re-ran /check, and /check left no trace of its
own pass.
Now all three honor a shared `.claude/session-state.json` with a
10-minute TTL:
- /check writes { check: { status: PASS, at: ISO } } on green
- /ship reads it in pre-flight, skips inline /check if recent
- /release reads it for both handover and check skips
- /handover (block mode) writes its own key for /release to read
One sentinel file, all gates contribute and honor it. Eliminates
the redundant /check re-runs that were happening when a user typed
/check then /ship in the same minute.
Renamed from the planned `release-state.json` since the file is now
shared by every quality+ship gate, not just /release.
Refs #127
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
After the handover rewrite (delegation + polymorphic) and the shared sentinel cache, the surfaces that document the verbs need to match. quality agent (.claude/agents/quality.md): - Frontmatter: drop "qa" from owned orchestrators - Orchestrators table: 3 rows → 3 rows (qa removed, /handover split into URL row + block row to show the polymorphism) - "When to Invoke": replace `qa <url>` advice with `/handover <url>` - Quality Rules: "Composable" line drops qa Project CLAUDE.md: - Pipeline section: /handover now described as polymorphic on argument (url|block), not block-only Spellbook (handover spell): - Effect rewritten to describe dual-mode operation - Steps describe delegation, not parallel pass definitions Note: the global ~/.claude/CLAUDE.md keyword table also gets the qa orchestrator row replaced with handover (polymorphic). That file lives outside the repo. Refs #127 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Summary
Three consolidations that remove duplication without dropping any capability:
/handoverdelegates to niche keywords — Console-check, breakpoint-check, RTL-check, translation-check were duplicated between handover.md and the niche keyword definitions. Now/handoverinvokes the niche keywords; each check has exactly one source of truth.Shared sentinel cache —
.claude/session-state.jsonis now read by/shipand/release, written by/checkand/handover. Typing/checkthen/shipno longer re-runs the check.Drop
qaorchestrator;/handoverbecomes polymorphic —/handover /admission/newruns the 12 per-URL niche keywords (URL mode, replacesqa)./handover admissionruns the per-route subset on every route in the block. One verb, two scopes detected by argument shape.Verb count: 7 → 6.
Behavior summary
Commits
refactor(handover): delegate to niche keywords + polymorphic URL|block modefeat(check/ship/release): shared session-state.json sentinel cachedocs: sync quality agent + CLAUDE.md + spellbook to new vocabularyFiles changed
.claude/commands/{handover,check,ship,release}.md,.claude/agents/quality.md,.claude/CLAUDE.md,src/components/docs/spellbook-data.tsTest plan
/handover /admission/newruns the 12 niche keywords/handover admissiondiscovers routes and runs the per-route subset/checkthen/shipin the same minute:/shipskips its inline check.claude/session-state.jsonis the single sentinel file; norelease-state.jsonlingersgrep "qa <url>"finds zero matches in active configpnpm tsc --noEmitintroduces no new errorsCloses #127. Stacked on PR #126.
🤖 Generated with Claude Code