Remove deprecated agent types and exempt QA from spawn gate #125
No reviewers
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/claude-custom!125
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/qa-spawn-gate-exception"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
agent-spawn-requirements.json(Phase 12 consolidation)required_patternsto[]— QA can't write code, so the scoping gate was pure frictioncheck-agent-spawn.sh— schema-driven design means the hook just worksChanges
schemas/agent-spawn-requirements.json: removeddev-backend,dev-frontend,devops,dev-qa,frontend-qa,devops-qa; updatedqato empty patterns with rationale in descriptionTest Plan
plan-)Review Checklist
Related
todo-agent-spawn-qa-exception— the pal-e-docs TODO that identified this gapplan-pal-e-agency— Phase 12 deprecated the specialized agentsPR #125 Review
DOMAIN REVIEW
Tech stack: JSON schema consumed by a Bash hook (
check-agent-spawn.sh). This is a configuration-only change -- no logic changes to the hook itself.Schema correctness verified. The hook at
hooks/check-agent-spawn.shhandles emptyrequired_patternsarrays correctly (lines 44-48):PATTERN_COUNTevaluates to0, theif [ "$PATTERN_COUNT" -eq 0 ]branch fires, and the hook exits with0(allow). This is the same code path used byExploreandclaude-code-guide, both of which already haverequired_patterns: []. The QA exemption is consistent with existing patterns.Removal of 6 deprecated types is clean. The types
dev-backend,dev-frontend,devops,dev-qa,frontend-qa,devops-qawere already deprecated at the agent config level (.md.deprecatedfiles exist inagents/). Removing them from the spawn schema means any attempt to spawn these types will now hit the "Unknown agent type" deny path (line 38-41 of the hook). This is correct behavior -- it enforces the consolidation from Phase 12 (PR #108).No JSON syntax issues. The diff cleanly removes the 6 type blocks and updates the
qaentry. The remaining schema is well-formed.BLOCKERS
None.
check-agent-spawn.sh) is unchanged.NITS
Dead code in
hooks/inject-subagent-context.sh: Lines 22-30 and 34-41 still containcasebranches forfrontend-qa,dev-qa,devops-qa,dev-backend,dev-frontend, anddevops. These are unreachable now -- the spawn gate will deny these types before SubagentStart fires. Not a bug (SubagentStart is guidance-only and cannot block), but dead code that should be cleaned up in a follow-up.Stale matcher in
settings.jsonline 232: The SubagentStart matcher is"qa|dev|dev-backend|dev-frontend|devops|frontend-qa|dev-qa|devops-qa|general-purpose|dottie|penny". The deprecated types should be removed from this matcher. Again, not harmful (the hook just exits cleanly for unmatched types via the*case), but it is misleading documentation.devopstype still in schema onmainbut removed in this PR: Confirming this is intentional. Thedevopstype had"Same gate as dev"and was functionally identical todev. The consolidated model routes all dev work through the singledevtype. This is correct per Phase 12 consolidation.Both nits 1 and 2 should be tracked as a follow-up cleanup issue rather than blocking this PR, since they are pre-existing dead code that this PR's change makes more obviously stale.
SOP COMPLIANCE
fix/qa-spawn-gate-exception, not124-.... Convention expects the issue number in the branch name. However, the branch name is descriptive and the PR body explicitly referencesCloses #124. Minor deviation.plan-pal-e-agency(Phase 12).PROCESS OBSERVATIONS
Deployment frequency: This is a low-risk config change that unblocks QA agent spawning. Merging quickly improves DF by removing friction from the review-fix loop.
Change failure risk: Minimal. The hook is schema-driven, the schema change is additive (removing entries = more restrictive for deprecated types, less restrictive for QA). The empty-array code path is already exercised by two other agent types in production.
Follow-up needed: The dead code in
inject-subagent-context.shand the stalesettings.jsonmatcher should be cleaned up in a dedicated issue. This is housekeeping, not a risk.VERDICT: APPROVED