Move mayor files into mayor/ subdirectory
Prevents mayor-specific files (CLAUDE.md, hooks) from polluting child agent workspaces. Child agents inherit the parent's working directory, so keeping mayor files in a dedicated subdirectory ensures they don't interfere with agent operations. Includes: - MayorDir constant in templates for consistent path handling - Updated hooks.go, prime.go, role.go to use mayor/ paths - Documentation updates 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -136,6 +136,32 @@ func (t *Templates) MessageNames() []string {
|
||||
return []string{"spawn", "nudge", "escalation", "handoff"}
|
||||
}
|
||||
|
||||
// CreateMayorCLAUDEmd creates the Mayor's CLAUDE.md file at the specified directory.
|
||||
// This is used by both gt install and gt doctor --fix.
|
||||
func CreateMayorCLAUDEmd(mayorDir, townRoot, townName, mayorSession, deaconSession string) error {
|
||||
tmpl, err := New()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
data := RoleData{
|
||||
Role: "mayor",
|
||||
TownRoot: townRoot,
|
||||
TownName: townName,
|
||||
WorkDir: mayorDir,
|
||||
MayorSession: mayorSession,
|
||||
DeaconSession: deaconSession,
|
||||
}
|
||||
|
||||
content, err := tmpl.RenderRole("mayor", data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
claudePath := filepath.Join(mayorDir, "CLAUDE.md")
|
||||
return os.WriteFile(claudePath, []byte(content), 0644)
|
||||
}
|
||||
|
||||
// GetAllRoleTemplates returns all role templates as a map of filename to content.
|
||||
func GetAllRoleTemplates() (map[string][]byte, error) {
|
||||
entries, err := templateFS.ReadDir("roles")
|
||||
|
||||
Reference in New Issue
Block a user