Consolidate Claude settings management

Settings creation was scattered across multiple places (createPatrolHooks,
ensurePatrolHooks, inline code). Now unified via claude.EnsureSettingsForRole().

Changes:
- Add "deacon" to autonomous roles in claude/settings.go
- Remove ensurePatrolHooks() from cmd/deacon.go, use EnsureSettingsForRole
- Remove createPatrolHooks() from rig/manager.go (no longer needed at rig add)
- Add EnsureSettingsForRole call in crew_lifecycle.go
- Add doctor check for stale/missing Claude settings files
- Wire up claude-settings check in cmd/doctor.go

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
mayor
2026-01-06 01:27:55 -08:00
committed by julianknutsen
parent 4799cb086f
commit f6f6acdb2d
7 changed files with 978 additions and 125 deletions

View File

@@ -63,6 +63,7 @@ Routing checks (fixable):
Session hook checks:
- session-hooks Check settings.json use session-start.sh
- claude-settings Check Claude settings.json match templates (fixable)
Patrol checks:
- patrol-molecules-exist Verify patrol molecules exist
@@ -137,6 +138,7 @@ func runDoctor(cmd *cobra.Command, args []string) error {
d.Register(doctor.NewSessionHookCheck())
d.Register(doctor.NewRuntimeGitignoreCheck())
d.Register(doctor.NewLegacyGastownCheck())
d.Register(doctor.NewClaudeSettingsCheck())
// Crew workspace checks
d.Register(doctor.NewCrewStateCheck())