Implement programmer agent system and consolidate agent infrastructure
Programmer Agent System: - Add programmer-orchestrator (Opus) for workflow coordination - Add code-planner (Sonnet) for design and planning - Add code-implementer (Sonnet) for writing code - Add code-reviewer (Sonnet) for quality review - Add /programmer command and project registration skill - Add state files for preferences and project context Agent Infrastructure: - Add master-orchestrator and linux-sysadmin agents - Restructure skills to use SKILL.md subdirectory format - Convert workflows from markdown to YAML format - Add commands for k8s and sysadmin domains - Add shared state files (model-policy, autonomy-levels, system-instructions) - Add PA memory system (decisions, preferences, projects, facts) Cleanup: - Remove deprecated markdown skills and workflows - Remove crontab example (moved to workflows) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
1
state/autonomy-levels.json
Normal file
1
state/autonomy-levels.json
Normal file
@@ -0,0 +1 @@
|
||||
{"version":"1.0.0","description":"Shared autonomy level definitions for all agents","levels":{"conservative":{"description":"Confirm all write operations","behavior":{"read_operations":"auto-execute","write_operations":"require confirmation","destructive_operations":"require confirmation"},"suitable_for":["initial setup","unfamiliar systems","production environments"]},"moderate":{"description":"Auto-execute routine maintenance, confirm installs/removals","behavior":{"read_operations":"auto-execute","routine_maintenance":"auto-execute","package_changes":"require confirmation","destructive_operations":"require confirmation"},"suitable_for":["trusted development environments","routine maintenance"]},"trusted":{"description":"Auto-execute most operations, confirm only destructive","behavior":{"read_operations":"auto-execute","write_operations":"auto-execute","package_changes":"auto-execute","destructive_operations":"require confirmation"},"suitable_for":["well-known environments","time-sensitive operations"]}},"agent_defaults":{"linux-sysadmin":"conservative","k8s-orchestrator":"conservative","k8s-diagnostician":"conservative","argocd-operator":"conservative","prometheus-analyst":"conservative","git-operator":"conservative"},"session_override":{"file":"~/.claude/state/sysadmin/session-autonomy.json","applies_to":"current session only","reset_on":"session end"}}
|
||||
File diff suppressed because one or more lines are too long
1
state/kb.json
Normal file
1
state/kb.json
Normal file
@@ -0,0 +1 @@
|
||||
{"infra":{"cluster":"k0s","nodes":3,"arch":"arm64"},"svc":{"gitops":"argocd","mon":"prometheus","alerts":"alertmanager"},"net":{},"hw":{"pi5_8gb":2,"pi3_1gb":1}}
|
||||
68
state/model-policy.json
Normal file
68
state/model-policy.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"description": "Cost-efficient model selection policy",
|
||||
"models": {
|
||||
"opus": {
|
||||
"use_cases": [
|
||||
"Complex reasoning and analysis",
|
||||
"Cross-agent coordination",
|
||||
"Policy enforcement and validation",
|
||||
"Architectural decisions",
|
||||
"Ambiguous or nuanced tasks"
|
||||
],
|
||||
"agents": [
|
||||
"personal-assistant",
|
||||
"master-orchestrator",
|
||||
"k8s-orchestrator",
|
||||
"programmer-orchestrator"
|
||||
]
|
||||
},
|
||||
"sonnet": {
|
||||
"use_cases": [
|
||||
"Standard operations",
|
||||
"Well-defined tasks",
|
||||
"Routine automation",
|
||||
"Code generation and modification",
|
||||
"Troubleshooting with clear symptoms"
|
||||
],
|
||||
"agents": [
|
||||
"linux-sysadmin",
|
||||
"k8s-diagnostician",
|
||||
"argocd-operator",
|
||||
"prometheus-analyst",
|
||||
"git-operator",
|
||||
"code-planner",
|
||||
"code-implementer",
|
||||
"code-reviewer"
|
||||
]
|
||||
},
|
||||
"haiku": {
|
||||
"use_cases": [
|
||||
"Simple queries",
|
||||
"Status checks",
|
||||
"Log parsing",
|
||||
"Data extraction",
|
||||
"Formatting and summarization"
|
||||
],
|
||||
"agents": [],
|
||||
"delegation_note": "Any agent can delegate simple subtasks to Haiku for cost efficiency"
|
||||
}
|
||||
},
|
||||
"escalation_rules": [
|
||||
{
|
||||
"from": "haiku",
|
||||
"to": "sonnet",
|
||||
"triggers": ["task_too_complex", "context_insufficient", "reasoning_required"]
|
||||
},
|
||||
{
|
||||
"from": "sonnet",
|
||||
"to": "opus",
|
||||
"triggers": ["cross_agent_coordination", "policy_decision", "complex_analysis"]
|
||||
}
|
||||
],
|
||||
"cost_optimization": {
|
||||
"default_start": "lowest_capable",
|
||||
"log_usage": true,
|
||||
"review_frequency": "weekly"
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "Persistent PA configuration",
|
||||
"context_gathering": {
|
||||
"default_level": "moderate"
|
||||
}
|
||||
}
|
||||
{"version":"1.0","description":"Persistent PA configuration","context_gathering":{"default_level":"moderate"}}
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "User instructions optimized for agent consumption",
|
||||
"items": []
|
||||
"items": [
|
||||
{
|
||||
"id": "a1b2c3d4-5678-90ab-cdef-111111111111",
|
||||
"instruction": "Delegate technical tasks to specialized agents. Use skills and slash commands for quick technical checks.",
|
||||
"status": "active",
|
||||
"added": "2025-01-21"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
131
state/personal-assistant/history/index.json
Normal file
131
state/personal-assistant/history/index.json
Normal file
@@ -0,0 +1,131 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"sessions": [
|
||||
{
|
||||
"id": "2025-12-29_10-36-32",
|
||||
"started": "2025-12-29T10:36:32-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_10-38-46",
|
||||
"started": "2025-12-29T10:38:46-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_10-59-33",
|
||||
"started": "2025-12-29T10:59:33-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-10-38",
|
||||
"started": "2025-12-29T11:10:38-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-20-09",
|
||||
"started": "2025-12-29T11:20:09-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-20-12",
|
||||
"started": "2025-12-29T11:20:12-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-20-17",
|
||||
"started": "2025-12-29T11:20:17-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-20-25",
|
||||
"started": "2025-12-29T11:20:25-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-20-49",
|
||||
"started": "2025-12-29T11:20:49-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-25-40",
|
||||
"started": "2025-12-29T11:25:40-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-25-44",
|
||||
"started": "2025-12-29T11:25:44-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-26-31",
|
||||
"started": "2025-12-29T11:26:31-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-26-33",
|
||||
"started": "2025-12-29T11:26:33-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-28-05",
|
||||
"started": "2025-12-29T11:28:05-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-28-06",
|
||||
"started": "2025-12-29T11:28:06-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_11-47-07",
|
||||
"started": "2025-12-29T11:47:07-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_12-31-06",
|
||||
"started": "2025-12-29T12:31:06-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
},
|
||||
{
|
||||
"id": "2025-12-29_12-31-10",
|
||||
"started": "2025-12-29T12:31:10-08:00",
|
||||
"ended": null,
|
||||
"summarized": false,
|
||||
"topics": []
|
||||
}
|
||||
]
|
||||
}
|
||||
1
state/personal-assistant/kb.json
Normal file
1
state/personal-assistant/kb.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
5
state/personal-assistant/memory/decisions.json
Normal file
5
state/personal-assistant/memory/decisions.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "Decisions made with rationale",
|
||||
"items": []
|
||||
}
|
||||
5
state/personal-assistant/memory/facts.json
Normal file
5
state/personal-assistant/memory/facts.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "Factual knowledge about the environment",
|
||||
"items": []
|
||||
}
|
||||
11
state/personal-assistant/memory/meta.json
Normal file
11
state/personal-assistant/memory/meta.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"last_summarized": null,
|
||||
"total_sessions": 0,
|
||||
"total_items": {
|
||||
"decisions": 0,
|
||||
"preferences": 0,
|
||||
"projects": 0,
|
||||
"facts": 0
|
||||
}
|
||||
}
|
||||
5
state/personal-assistant/memory/preferences.json
Normal file
5
state/personal-assistant/memory/preferences.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "User preferences learned over time",
|
||||
"items": []
|
||||
}
|
||||
5
state/personal-assistant/memory/projects.json
Normal file
5
state/personal-assistant/memory/projects.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"description": "Active and recent project context",
|
||||
"items": []
|
||||
}
|
||||
@@ -1,6 +1 @@
|
||||
{
|
||||
"version": "1.0",
|
||||
"current_context_level": null,
|
||||
"set_at": null,
|
||||
"set_by": null
|
||||
}
|
||||
{"version":"1.0","current_context_level":null,"set_at":null,"set_by":null}
|
||||
|
||||
5
state/programmer/preferences.json
Normal file
5
state/programmer/preferences.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"style": {},
|
||||
"patterns": {},
|
||||
"languages": {}
|
||||
}
|
||||
4
state/programmer/session-autonomy.json
Normal file
4
state/programmer/session-autonomy.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"level": "conservative",
|
||||
"overrides": {}
|
||||
}
|
||||
1
state/sysadmin/session-autonomy.json
Normal file
1
state/sysadmin/session-autonomy.json
Normal file
@@ -0,0 +1 @@
|
||||
{"version":"1.0.0","description":"Per-session autonomy overrides for linux-sysadmin agent","current_level":"conservative","session_start":null,"overrides":{},"notes":"This file is modified by user/CLI to adjust autonomy during a session"}
|
||||
1
state/system-instructions.json
Normal file
1
state/system-instructions.json
Normal file
@@ -0,0 +1 @@
|
||||
{"version":"1.0.0","description":"Central process definitions for all agents","processes":{"model-selection":{"description":"Cost-efficient model selection","rules":["Start with lowest capable model","Escalate only when task complexity requires","Agents may request model upgrade from orchestrator","Log model usage for cost analysis"]},"cross-agent-communication":{"description":"How agents interact","flow":"Agent A → Master Orchestrator → Personal Assistant (if escalation needed)","hierarchy":"Personal Assistant → Master Orchestrator → Domain Agents","requirements":["All cross-agent requests routed through master orchestrator","Master validates, routes, and logs all requests","Personal assistant has ultimate escalation authority","No direct agent-to-agent communication"]},"autonomy-enforcement":{"description":"How autonomy levels are applied","default":"conservative","session_override_file":"~/.claude/state/sysadmin/session-autonomy.json","rules":["Master orchestrator enforces autonomy levels","Session overrides apply only for current session","Forbidden actions always blocked regardless of autonomy level"]},"file-management":{"description":"File and directory ownership","state-files":{"system-instructions.json":"master-orchestrator","future-considerations.json":"master-orchestrator","model-policy.json":"master-orchestrator","autonomy-levels.json":"master-orchestrator","session-autonomy.json":"user/CLI"},"directories":{"master-orchestrator":["agents/","state/","skills/","commands/","workflows/"],"linux-sysadmin":["state/sysadmin/","automation/"]},"override_authority":"personal-assistant"},"agent-lifecycle":{"add":["Create agents/<name>.md","Update supervisor hierarchy","Update CLAUDE.md diagram","Update model-policy.json"],"remove":["Remove agents/<name>.md","Update supervisor hierarchy","Update CLAUDE.md diagram","Update model-policy.json","Clean up state"]},"content-principles":{"no-redundancy":"Information lives in one authoritative location","lean-files":"Keep files concise - no verbose examples or unnecessary prose"},"deferral-capture":{"description":"Capture deferrals to future-considerations.json","trigger":"User says 'revisit later' or similar","behavior":"Watch user messages for items worth adding to future-considerations.json - both explicit deferrals and implicit mentions of future work"}}}
|
||||
Reference in New Issue
Block a user