agentic-swe 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/developer.md +133 -0
- package/.claude/agents/git-ops.md +94 -0
- package/.claude/agents/panel/adversarial.md +35 -0
- package/.claude/agents/panel/architect.md +36 -0
- package/.claude/agents/panel/security.md +36 -0
- package/.claude/agents/pr-manager.md +76 -0
- package/.claude/agents/subagents/01-core-development/api-designer.md +237 -0
- package/.claude/agents/subagents/01-core-development/backend-developer.md +222 -0
- package/.claude/agents/subagents/01-core-development/electron-pro.md +251 -0
- package/.claude/agents/subagents/01-core-development/frontend-developer.md +159 -0
- package/.claude/agents/subagents/01-core-development/fullstack-developer.md +246 -0
- package/.claude/agents/subagents/01-core-development/graphql-architect.md +238 -0
- package/.claude/agents/subagents/01-core-development/microservices-architect.md +239 -0
- package/.claude/agents/subagents/01-core-development/mobile-developer.md +283 -0
- package/.claude/agents/subagents/01-core-development/ui-designer.md +200 -0
- package/.claude/agents/subagents/01-core-development/websocket-engineer.md +150 -0
- package/.claude/agents/subagents/02-language-specialists/angular-architect.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/cpp-pro.md +277 -0
- package/.claude/agents/subagents/02-language-specialists/csharp-developer.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/django-developer.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/dotnet-core-expert.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/dotnet-framework-4.8-expert.md +306 -0
- package/.claude/agents/subagents/02-language-specialists/elixir-expert.md +311 -0
- package/.claude/agents/subagents/02-language-specialists/expo-react-native-expert.md +268 -0
- package/.claude/agents/subagents/02-language-specialists/fastapi-developer.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/flutter-expert.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/golang-pro.md +277 -0
- package/.claude/agents/subagents/02-language-specialists/java-architect.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/javascript-pro.md +277 -0
- package/.claude/agents/subagents/02-language-specialists/kotlin-specialist.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/laravel-specialist.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/nextjs-developer.md +298 -0
- package/.claude/agents/subagents/02-language-specialists/php-pro.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/powershell-5.1-expert.md +59 -0
- package/.claude/agents/subagents/02-language-specialists/powershell-7-expert.md +57 -0
- package/.claude/agents/subagents/02-language-specialists/python-pro.md +277 -0
- package/.claude/agents/subagents/02-language-specialists/rails-expert.md +358 -0
- package/.claude/agents/subagents/02-language-specialists/react-specialist.md +298 -0
- package/.claude/agents/subagents/02-language-specialists/rust-engineer.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/spring-boot-engineer.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/sql-pro.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/swift-expert.md +287 -0
- package/.claude/agents/subagents/02-language-specialists/symfony-specialist.md +354 -0
- package/.claude/agents/subagents/02-language-specialists/typescript-pro.md +277 -0
- package/.claude/agents/subagents/02-language-specialists/vue-expert.md +298 -0
- package/.claude/agents/subagents/03-infrastructure/azure-infra-engineer.md +53 -0
- package/.claude/agents/subagents/03-infrastructure/cloud-architect.md +277 -0
- package/.claude/agents/subagents/03-infrastructure/database-administrator.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/deployment-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/devops-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/devops-incident-responder.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/docker-expert.md +278 -0
- package/.claude/agents/subagents/03-infrastructure/incident-responder.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/kubernetes-specialist.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/network-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/platform-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/security-engineer.md +277 -0
- package/.claude/agents/subagents/03-infrastructure/sre-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/terraform-engineer.md +287 -0
- package/.claude/agents/subagents/03-infrastructure/terragrunt-expert.md +307 -0
- package/.claude/agents/subagents/03-infrastructure/windows-infra-admin.md +52 -0
- package/.claude/agents/subagents/04-quality-security/accessibility-tester.md +277 -0
- package/.claude/agents/subagents/04-quality-security/ad-security-reviewer.md +56 -0
- package/.claude/agents/subagents/04-quality-security/architect-reviewer.md +287 -0
- package/.claude/agents/subagents/04-quality-security/chaos-engineer.md +277 -0
- package/.claude/agents/subagents/04-quality-security/code-reviewer.md +287 -0
- package/.claude/agents/subagents/04-quality-security/compliance-auditor.md +277 -0
- package/.claude/agents/subagents/04-quality-security/debugger.md +287 -0
- package/.claude/agents/subagents/04-quality-security/error-detective.md +287 -0
- package/.claude/agents/subagents/04-quality-security/penetration-tester.md +287 -0
- package/.claude/agents/subagents/04-quality-security/performance-engineer.md +287 -0
- package/.claude/agents/subagents/04-quality-security/powershell-security-hardening.md +54 -0
- package/.claude/agents/subagents/04-quality-security/qa-expert.md +287 -0
- package/.claude/agents/subagents/04-quality-security/security-auditor.md +287 -0
- package/.claude/agents/subagents/04-quality-security/test-automator.md +287 -0
- package/.claude/agents/subagents/05-data-ai/ai-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/data-analyst.md +277 -0
- package/.claude/agents/subagents/05-data-ai/data-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/data-scientist.md +287 -0
- package/.claude/agents/subagents/05-data-ai/database-optimizer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/llm-architect.md +287 -0
- package/.claude/agents/subagents/05-data-ai/machine-learning-engineer.md +277 -0
- package/.claude/agents/subagents/05-data-ai/ml-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/mlops-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/nlp-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/postgres-pro.md +287 -0
- package/.claude/agents/subagents/05-data-ai/prompt-engineer.md +287 -0
- package/.claude/agents/subagents/05-data-ai/reinforcement-learning-engineer.md +277 -0
- package/.claude/agents/subagents/06-developer-experience/build-engineer.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/cli-developer.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/dependency-manager.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/documentation-engineer.md +276 -0
- package/.claude/agents/subagents/06-developer-experience/dx-optimizer.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/git-workflow-manager.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/legacy-modernizer.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/mcp-developer.md +275 -0
- package/.claude/agents/subagents/06-developer-experience/powershell-module-architect.md +58 -0
- package/.claude/agents/subagents/06-developer-experience/powershell-ui-architect.md +135 -0
- package/.claude/agents/subagents/06-developer-experience/refactoring-specialist.md +286 -0
- package/.claude/agents/subagents/06-developer-experience/slack-expert.md +232 -0
- package/.claude/agents/subagents/06-developer-experience/tooling-engineer.md +286 -0
- package/.claude/agents/subagents/07-specialized-domains/api-documenter.md +277 -0
- package/.claude/agents/subagents/07-specialized-domains/blockchain-developer.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/embedded-systems.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/fintech-engineer.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/game-developer.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/iot-engineer.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/m365-admin.md +48 -0
- package/.claude/agents/subagents/07-specialized-domains/mobile-app-developer.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/payment-integration.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/quant-analyst.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/risk-manager.md +287 -0
- package/.claude/agents/subagents/07-specialized-domains/seo-specialist.md +184 -0
- package/.claude/agents/subagents/08-business-product/business-analyst.md +287 -0
- package/.claude/agents/subagents/08-business-product/content-marketer.md +287 -0
- package/.claude/agents/subagents/08-business-product/customer-success-manager.md +287 -0
- package/.claude/agents/subagents/08-business-product/legal-advisor.md +287 -0
- package/.claude/agents/subagents/08-business-product/product-manager.md +287 -0
- package/.claude/agents/subagents/08-business-product/project-manager.md +287 -0
- package/.claude/agents/subagents/08-business-product/sales-engineer.md +287 -0
- package/.claude/agents/subagents/08-business-product/scrum-master.md +287 -0
- package/.claude/agents/subagents/08-business-product/technical-writer.md +287 -0
- package/.claude/agents/subagents/08-business-product/ux-researcher.md +287 -0
- package/.claude/agents/subagents/08-business-product/wordpress-master.md +316 -0
- package/.claude/agents/subagents/09-meta-orchestration/agent-installer.md +97 -0
- package/.claude/agents/subagents/09-meta-orchestration/agent-organizer.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/context-manager.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/error-coordinator.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/it-ops-orchestrator.md +60 -0
- package/.claude/agents/subagents/09-meta-orchestration/knowledge-synthesizer.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/multi-agent-coordinator.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/performance-monitor.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/task-distributor.md +287 -0
- package/.claude/agents/subagents/09-meta-orchestration/workflow-orchestrator.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/competitive-analyst.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/data-researcher.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/market-researcher.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/research-analyst.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/scientific-literature-researcher.md +151 -0
- package/.claude/agents/subagents/10-research-analysis/search-specialist.md +287 -0
- package/.claude/agents/subagents/10-research-analysis/trend-analyst.md +287 -0
- package/.claude/commands/check.md +58 -0
- package/.claude/commands/ci-status.md +68 -0
- package/.claude/commands/conflict-resolver.md +76 -0
- package/.claude/commands/diff-review.md +123 -0
- package/.claude/commands/evaluate-work.md +25 -0
- package/.claude/commands/install.md +60 -0
- package/.claude/commands/lint.md +86 -0
- package/.claude/commands/plan-only.md +28 -0
- package/.claude/commands/repo-scan.md +96 -0
- package/.claude/commands/security-scan.md +98 -0
- package/.claude/commands/subagent.md +109 -0
- package/.claude/commands/test-runner.md +85 -0
- package/.claude/commands/work.md +76 -0
- package/.claude/phases/code-review.md +92 -0
- package/.claude/phases/completion.md +57 -0
- package/.claude/phases/design-review.md +66 -0
- package/.claude/phases/design.md +59 -0
- package/.claude/phases/escalate-code.md +34 -0
- package/.claude/phases/escalate-validation.md +33 -0
- package/.claude/phases/failed.md +35 -0
- package/.claude/phases/fast-implementation.md +59 -0
- package/.claude/phases/fast-path-check.md +46 -0
- package/.claude/phases/feasibility.md +80 -0
- package/.claude/phases/implementation.md +43 -0
- package/.claude/phases/permissions.md +42 -0
- package/.claude/phases/pr-created.md +50 -0
- package/.claude/phases/self-review.md +53 -0
- package/.claude/phases/subagent-selection.md +298 -0
- package/.claude/phases/test.md +68 -0
- package/.claude/phases/validation.md +58 -0
- package/.claude/phases/verification.md +45 -0
- package/.claude/references/frontend-aesthetics.md +91 -0
- package/.claude/references/github.md +73 -0
- package/.claude/templates/artifact-format.md +33 -0
- package/.claude/templates/audit.log +30 -0
- package/.claude/templates/evidence-standard.md +19 -0
- package/.claude/templates/phase-checklist.md +62 -0
- package/.claude/templates/progress.md +15 -0
- package/.claude/templates/state.json +108 -0
- package/.claude/tools/subagent-catalog/README.md +58 -0
- package/.claude/tools/subagent-catalog/config.sh +88 -0
- package/.claude/tools/subagent-catalog/fetch.md +54 -0
- package/.claude/tools/subagent-catalog/invalidate.md +47 -0
- package/.claude/tools/subagent-catalog/list.md +48 -0
- package/.claude/tools/subagent-catalog/search.md +41 -0
- package/CLAUDE.md +342 -0
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/bin/agentic-swe.js +241 -0
- package/package.json +43 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Audit Log
|
|
2
|
+
|
|
3
|
+
Use append-only records for operations that change durable state or external side effects.
|
|
4
|
+
|
|
5
|
+
Format:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
<timestamp> actor=<agent> action=<verb> target=<file-or-resource> result=<ok|blocked|failed> note="<short explanation>"
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Example:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
<timestamp> actor=claude action=create target=.claude/.work/<id>/state.json result=ok note="initialized from template"
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Actor Naming Convention
|
|
18
|
+
|
|
19
|
+
Use these standardized actor names in all audit log entries:
|
|
20
|
+
|
|
21
|
+
`orchestrator` | `developer` | `git-ops` | `pr-manager` | `panel-architect` | `panel-security` | `panel-adversarial` | `user`
|
|
22
|
+
|
|
23
|
+
## Delegation Examples
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
<timestamp> actor=orchestrator action=delegate target=agents/developer.md result=ok note="implementation slice 1: auth middleware"
|
|
27
|
+
<timestamp> actor=developer action=complete target=agents/developer.md result=ok note="3 files changed, 2 tests added"
|
|
28
|
+
<timestamp> actor=orchestrator action=integrate target=agents/developer.md result=ok note="findings merged into implementation.md"
|
|
29
|
+
<timestamp> actor=orchestrator action=escalate target=escalate-code result=ok note="code review loop exhausted after 5 iterations"
|
|
30
|
+
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Evidence Standard
|
|
2
|
+
|
|
3
|
+
Cite this template in phase and agent output to ensure consistent evidence quality.
|
|
4
|
+
|
|
5
|
+
## Four-Point Framework
|
|
6
|
+
|
|
7
|
+
Every substantive finding or recommendation must address:
|
|
8
|
+
|
|
9
|
+
1. **Observed** — what was directly seen in the repository, command output, or documentation
|
|
10
|
+
2. **Inferred** — what conclusion follows from the observations
|
|
11
|
+
3. **Evidence** — what specific facts support the inference
|
|
12
|
+
4. **Uncertain** — what remains unknown or unverified
|
|
13
|
+
|
|
14
|
+
## Separation Rules
|
|
15
|
+
|
|
16
|
+
- separate facts from inferences from speculative concerns
|
|
17
|
+
- label low-evidence concerns as speculative rather than presenting them as certainty
|
|
18
|
+
- when uncertainty is high and behavior would materially change, stop instead of guessing
|
|
19
|
+
- delegated findings should be integrated with evidence attribution, not copied blindly
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Phase Checklist
|
|
2
|
+
|
|
3
|
+
Use this checklist before every state transition.
|
|
4
|
+
|
|
5
|
+
## Structural Gate
|
|
6
|
+
|
|
7
|
+
- required files for the destination state exist
|
|
8
|
+
- required files are non-empty
|
|
9
|
+
- `state.json` `current_state` matches the intended transition
|
|
10
|
+
- `history` includes the most recent reasoned transition
|
|
11
|
+
- artifact filenames in `state.json.artifacts` match actual files when applicable
|
|
12
|
+
- `updated_at` reflects the latest change
|
|
13
|
+
- `progress.md` has an entry for the current phase work
|
|
14
|
+
- `audit.log` contains durable or external actions
|
|
15
|
+
- loop counters are updated when the phase is budgeted or retry-driven
|
|
16
|
+
|
|
17
|
+
## Evidence Gate
|
|
18
|
+
|
|
19
|
+
- each artifact distinguishes observation from inference
|
|
20
|
+
- important claims are supported by repository evidence, command output, or primary documentation
|
|
21
|
+
- open uncertainties are named explicitly
|
|
22
|
+
- delegated findings are integrated, not copied blindly
|
|
23
|
+
|
|
24
|
+
## Quality Gate
|
|
25
|
+
|
|
26
|
+
- self-review rubric scores recorded before code-review (full path) or within fast-implementation (fast path)
|
|
27
|
+
- reflection-log read before rework when prior rejection exists
|
|
28
|
+
- test adequacy assessment completed before implementation begins (full path)
|
|
29
|
+
- changed behavior has at least one decisive verification path
|
|
30
|
+
- tests pass before or during `validation`, or the lack of runnable tests is precisely documented
|
|
31
|
+
- reviewable output exists before `pr-created`
|
|
32
|
+
- risky git or GitHub actions use official workflow semantics instead of assumptions
|
|
33
|
+
- design feedback is resolved before moving from `design-review` to `verification`
|
|
34
|
+
- code review rejection results in explicit `review-feedback.md`
|
|
35
|
+
- blocked validation records why escalation is necessary
|
|
36
|
+
|
|
37
|
+
## Reliability Gate
|
|
38
|
+
|
|
39
|
+
- likely rollback or repair path is understood for high-risk changes
|
|
40
|
+
- destructive or privileged actions have explicit approval when required
|
|
41
|
+
- external blockers are recorded rather than worked around unsafely
|
|
42
|
+
- resumability is preserved if the work pauses now
|
|
43
|
+
|
|
44
|
+
## Convergence Gate
|
|
45
|
+
|
|
46
|
+
- if reflection-log has 2+ entries with the same failure category, escalate rather than retry
|
|
47
|
+
- if fast-path self-review scores a dimension as 1 that the developer cannot resolve, escalate rather than consuming the next iteration
|
|
48
|
+
- if design review is failing on fundamentally different criteria each iteration (thrashing), escalate after iteration 2
|
|
49
|
+
|
|
50
|
+
## Context Condensation Gate
|
|
51
|
+
|
|
52
|
+
- if this is the 3rd+ transition, progress.md contains a current Context Summary
|
|
53
|
+
- subsequent phase reads prioritize context summary over full early-phase artifacts
|
|
54
|
+
|
|
55
|
+
## Stop Conditions
|
|
56
|
+
|
|
57
|
+
- `ambiguity-wait`
|
|
58
|
+
- `approval-wait`
|
|
59
|
+
- `escalate-code`
|
|
60
|
+
- `escalate-validation`
|
|
61
|
+
- `completed`
|
|
62
|
+
- `failed`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Progress Log
|
|
2
|
+
|
|
3
|
+
Use one line per meaningful change in execution state.
|
|
4
|
+
|
|
5
|
+
Format:
|
|
6
|
+
|
|
7
|
+
```md
|
|
8
|
+
- <timestamp> [state=<state>] <action taken> | evidence: <short evidence> | next: <next step>
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Example:
|
|
12
|
+
|
|
13
|
+
```md
|
|
14
|
+
- <timestamp> [state=initialized] work item created | evidence: state.json written from template | next: feasibility
|
|
15
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 2,
|
|
3
|
+
"work_id": "<work-id>",
|
|
4
|
+
"task": "<user task>",
|
|
5
|
+
"current_state": "initialized",
|
|
6
|
+
"created_at": "<ISO-8601 timestamp>",
|
|
7
|
+
"updated_at": "<ISO-8601 timestamp>",
|
|
8
|
+
"timeout_at": "<ISO-8601 timestamp>",
|
|
9
|
+
"owner": "claude",
|
|
10
|
+
"mode": "full",
|
|
11
|
+
"resume": {
|
|
12
|
+
"detected": false,
|
|
13
|
+
"last_session_id": null,
|
|
14
|
+
"detected_at": null,
|
|
15
|
+
"branch_validated": false,
|
|
16
|
+
"rebase_performed": false
|
|
17
|
+
},
|
|
18
|
+
"budget": {
|
|
19
|
+
"iteration_budget": 10,
|
|
20
|
+
"budget_remaining": 10,
|
|
21
|
+
"cost_budget_usd": 3.0,
|
|
22
|
+
"cost_used": 0.0
|
|
23
|
+
},
|
|
24
|
+
"counters": {
|
|
25
|
+
"fast_iter": 0,
|
|
26
|
+
"design_iter": 0,
|
|
27
|
+
"code_iter": 0,
|
|
28
|
+
"panel_runs": 0,
|
|
29
|
+
"merge_iter": 0,
|
|
30
|
+
"approval_iter": 0,
|
|
31
|
+
"self_review_iter": 0,
|
|
32
|
+
"test_adequacy_iter": 0,
|
|
33
|
+
"subagent_spawns": 0
|
|
34
|
+
},
|
|
35
|
+
"ambiguity": {
|
|
36
|
+
"detected": false,
|
|
37
|
+
"notes": [],
|
|
38
|
+
"resolved": false
|
|
39
|
+
},
|
|
40
|
+
"approvals": {
|
|
41
|
+
"pr_approved": false,
|
|
42
|
+
"changes_requested": false
|
|
43
|
+
},
|
|
44
|
+
"metrics": {
|
|
45
|
+
"tests_passed": false
|
|
46
|
+
},
|
|
47
|
+
"risk": {
|
|
48
|
+
"level": "unknown",
|
|
49
|
+
"score": null,
|
|
50
|
+
"top_items": []
|
|
51
|
+
},
|
|
52
|
+
"artifacts": {
|
|
53
|
+
"feasibility": null,
|
|
54
|
+
"ambiguity-report": null,
|
|
55
|
+
"fast-path-check": null,
|
|
56
|
+
"design": null,
|
|
57
|
+
"design-review": null,
|
|
58
|
+
"design-feedback": null,
|
|
59
|
+
"design-panel-review": null,
|
|
60
|
+
"verification-results": null,
|
|
61
|
+
"test-stubs": null,
|
|
62
|
+
"test-results": null,
|
|
63
|
+
"implementation": null,
|
|
64
|
+
"self-review": null,
|
|
65
|
+
"reflection-log": null,
|
|
66
|
+
"review-feedback": null,
|
|
67
|
+
"review-pass": null,
|
|
68
|
+
"permissions-changes": null,
|
|
69
|
+
"validation-results": null,
|
|
70
|
+
"cicd": null,
|
|
71
|
+
"pr-link": null,
|
|
72
|
+
"approval-feedback": null
|
|
73
|
+
},
|
|
74
|
+
"validation": {
|
|
75
|
+
"structural_passed": false,
|
|
76
|
+
"quality_passed": false,
|
|
77
|
+
"last_checked_at": null,
|
|
78
|
+
"notes": []
|
|
79
|
+
},
|
|
80
|
+
"git": {
|
|
81
|
+
"base_branch": null,
|
|
82
|
+
"working_branch": null,
|
|
83
|
+
"remote": "origin",
|
|
84
|
+
"pr_url": null,
|
|
85
|
+
"merge_sha": null,
|
|
86
|
+
"merge_strategy": null
|
|
87
|
+
},
|
|
88
|
+
"pipeline": {
|
|
89
|
+
"complexity_score": null,
|
|
90
|
+
"fast_path_eligible": false,
|
|
91
|
+
"fast_path_decision": null,
|
|
92
|
+
"design_review_status": null,
|
|
93
|
+
"review_status": null,
|
|
94
|
+
"verification_status": null,
|
|
95
|
+
"permissions_status": null,
|
|
96
|
+
"validation_status": null,
|
|
97
|
+
"self_review_status": null,
|
|
98
|
+
"pr_status": null,
|
|
99
|
+
"subagent_auto_select": true,
|
|
100
|
+
"subagent_mode": null,
|
|
101
|
+
"subagent_selections": []
|
|
102
|
+
},
|
|
103
|
+
"convergence": {
|
|
104
|
+
"last_failure_category": null,
|
|
105
|
+
"consecutive_same_category": 0
|
|
106
|
+
},
|
|
107
|
+
"history": []
|
|
108
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# subagent-catalog
|
|
2
|
+
|
|
3
|
+
A Claude Code skill for browsing and fetching subagents from the [awesome-claude-code-subagents](https://github.com/VoltAgent/awesome-claude-code-subagents) catalog.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Copy the `subagent-catalog/` folder to `~/.claude/commands/`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cp -r tools/subagent-catalog ~/.claude/commands/
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
| Command | Description |
|
|
16
|
+
|---------|-------------|
|
|
17
|
+
| `/subagent-catalog:search <query>` | Find agents by name, description, or category |
|
|
18
|
+
| `/subagent-catalog:fetch <name>` | Get full agent definition |
|
|
19
|
+
| `/subagent-catalog:list` | Browse all categories |
|
|
20
|
+
| `/subagent-catalog:invalidate` | Clear cache (add `--fetch` to refresh immediately) |
|
|
21
|
+
|
|
22
|
+
## Examples
|
|
23
|
+
|
|
24
|
+
**Find security-related agents:**
|
|
25
|
+
```
|
|
26
|
+
/subagent-catalog:search security
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Get the code-reviewer definition:**
|
|
30
|
+
```
|
|
31
|
+
/subagent-catalog:fetch code-reviewer
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Browse all available agents:**
|
|
35
|
+
```
|
|
36
|
+
/subagent-catalog:list
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Features
|
|
40
|
+
|
|
41
|
+
- **Smart caching**: 12-hour TTL with graceful fallback on network failure
|
|
42
|
+
- **Atomic updates**: Uses tmp file + mv pattern to prevent partial writes
|
|
43
|
+
- **Cross-platform**: Works on macOS and Linux
|
|
44
|
+
- **Best practices**: Follows Anthropic skill authoring guidelines
|
|
45
|
+
|
|
46
|
+
## Cache
|
|
47
|
+
|
|
48
|
+
- **Location**: `~/.claude/cache/subagent-catalog.md`
|
|
49
|
+
- **TTL**: 12 hours (configurable in `config.sh`)
|
|
50
|
+
- **Behavior**: Auto-refreshes when stale, falls back to old cache on network failure
|
|
51
|
+
|
|
52
|
+
## Troubleshooting
|
|
53
|
+
|
|
54
|
+
| Issue | Fix |
|
|
55
|
+
|-------|-----|
|
|
56
|
+
| Stale results | `/subagent-catalog:invalidate --fetch` |
|
|
57
|
+
| Network error | Check connection, retry |
|
|
58
|
+
| Agent not found | `/subagent-catalog:search <partial-name>` first |
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# subagent-catalog configuration
|
|
3
|
+
# Works with local agents/subagents/ directory
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
# --- CONFIG ---
|
|
8
|
+
# Resolve the pipeline root (source repo = repo root, target repo = .claude/)
|
|
9
|
+
_resolve_subagent_dir() {
|
|
10
|
+
local script_dir
|
|
11
|
+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]:-${(%):-%x}}")" && pwd 2>/dev/null || pwd)"
|
|
12
|
+
|
|
13
|
+
# Walk up to find the pipeline root
|
|
14
|
+
local candidate="$script_dir"
|
|
15
|
+
while [ "$candidate" != "/" ]; do
|
|
16
|
+
if [ -d "$candidate/agents/subagents" ]; then
|
|
17
|
+
echo "$candidate/agents/subagents"
|
|
18
|
+
return 0
|
|
19
|
+
fi
|
|
20
|
+
candidate="$(dirname "$candidate")"
|
|
21
|
+
done
|
|
22
|
+
|
|
23
|
+
# Fallback: check .claude/ in git root
|
|
24
|
+
local git_root
|
|
25
|
+
git_root="$(git rev-parse --show-toplevel 2>/dev/null || echo "")"
|
|
26
|
+
if [ -n "$git_root" ] && [ -d "$git_root/.claude/agents/subagents" ]; then
|
|
27
|
+
echo "$git_root/.claude/agents/subagents"
|
|
28
|
+
return 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo ""
|
|
32
|
+
return 1
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
readonly SUBAGENT_DIR="$(_resolve_subagent_dir)"
|
|
36
|
+
export SUBAGENT_DIR
|
|
37
|
+
|
|
38
|
+
# --- HELPERS ---
|
|
39
|
+
|
|
40
|
+
subagent_catalog_log_info() { echo "$1"; }
|
|
41
|
+
subagent_catalog_log_error() { echo "ERROR: $1" >&2; }
|
|
42
|
+
|
|
43
|
+
# List all categories (directory names under subagents/)
|
|
44
|
+
subagent_catalog_list_categories() {
|
|
45
|
+
if [ -z "$SUBAGENT_DIR" ] || [ ! -d "$SUBAGENT_DIR" ]; then
|
|
46
|
+
subagent_catalog_log_error "subagent directory not found"
|
|
47
|
+
return 1
|
|
48
|
+
fi
|
|
49
|
+
ls -1d "$SUBAGENT_DIR"/*/ 2>/dev/null | xargs -I{} basename {} | sort
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
# List all agent files in a category
|
|
53
|
+
subagent_catalog_list_agents_in() {
|
|
54
|
+
local category="$1"
|
|
55
|
+
if [ -d "$SUBAGENT_DIR/$category" ]; then
|
|
56
|
+
ls -1 "$SUBAGENT_DIR/$category"/*.md 2>/dev/null | xargs -I{} basename {} .md | sort
|
|
57
|
+
fi
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# Find agent file by name (returns full path)
|
|
61
|
+
subagent_catalog_find() {
|
|
62
|
+
local name="$1"
|
|
63
|
+
local result
|
|
64
|
+
result=$(find "$SUBAGENT_DIR" -name "${name}.md" -type f 2>/dev/null | head -1)
|
|
65
|
+
if [ -n "$result" ]; then
|
|
66
|
+
echo "$result"
|
|
67
|
+
return 0
|
|
68
|
+
fi
|
|
69
|
+
# Try partial match
|
|
70
|
+
result=$(find "$SUBAGENT_DIR" -name "*${name}*.md" -type f 2>/dev/null)
|
|
71
|
+
echo "$result"
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
# Search agents by keyword in name or frontmatter description
|
|
75
|
+
subagent_catalog_search() {
|
|
76
|
+
local query="$1"
|
|
77
|
+
find "$SUBAGENT_DIR" -name "*.md" -type f 2>/dev/null | while read -r f; do
|
|
78
|
+
if grep -qil "$query" "$f" 2>/dev/null; then
|
|
79
|
+
local category
|
|
80
|
+
category=$(basename "$(dirname "$f")")
|
|
81
|
+
local agent
|
|
82
|
+
agent=$(basename "$f" .md)
|
|
83
|
+
local desc
|
|
84
|
+
desc=$(grep -m1 '^description:' "$f" 2>/dev/null | sed 's/^description: *"*//;s/"*$//' || echo "")
|
|
85
|
+
echo "$category/$agent|$desc"
|
|
86
|
+
fi
|
|
87
|
+
done
|
|
88
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fetch
|
|
3
|
+
description: "Read and display the full definition of a specific subagent from the local catalog."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent Catalog - Fetch
|
|
7
|
+
|
|
8
|
+
Get the full definition of a specific agent from local storage.
|
|
9
|
+
|
|
10
|
+
## Input: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
Accepts: agent name (e.g., `code-reviewer`, `python-pro`)
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Step 1: Find agent file
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
source tools/subagent-catalog/config.sh
|
|
20
|
+
subagent_catalog_find "{{NAME}}"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Step 2: Read and display
|
|
24
|
+
|
|
25
|
+
Read the agent file and display its contents with parsed frontmatter:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
## code-reviewer
|
|
29
|
+
|
|
30
|
+
**Category**: 04-quality-security
|
|
31
|
+
**Model**: opus
|
|
32
|
+
**Tools**: Read, Write, Edit, Bash, Glob, Grep
|
|
33
|
+
|
|
34
|
+
[full definition follows]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 3: Show invocation options
|
|
38
|
+
|
|
39
|
+
After displaying the definition, show how to use it:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
**How to invoke:**
|
|
43
|
+
- As orchestrator subagent: Agent(prompt="agents/subagents/04-quality-security/code-reviewer.md")
|
|
44
|
+
- With model override: Agent(prompt="...", model="opus")
|
|
45
|
+
- In background: Agent(prompt="...", run_in_background=true)
|
|
46
|
+
- In isolation: Agent(prompt="...", isolation="worktree")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Error handling
|
|
50
|
+
|
|
51
|
+
| error | suggestion |
|
|
52
|
+
|-------|------------|
|
|
53
|
+
| not found | run `/subagent-catalog:search <partial>` |
|
|
54
|
+
| multiple matches | list them, ask user to specify |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: invalidate
|
|
3
|
+
description: "Invalidate the subagent-catalog cache. Use when results seem stale or user explicitly asks to refresh or clear cache."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent Catalog - Invalidate
|
|
7
|
+
|
|
8
|
+
Force-refresh the cached catalog by deleting the local cache file. The next `search` or `fetch` call will pull fresh data from the repository.
|
|
9
|
+
|
|
10
|
+
## Input: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
No arguments required. Optional: pass `--fetch` to immediately refresh after invalidation.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Step 1: Source config
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
source ~/.claude/commands/subagent-catalog/config.sh
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Step 2: Invalidate (and optionally refresh)
|
|
23
|
+
|
|
24
|
+
**Invalidate only** (default):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
subagent_catalog_invalidate_cache
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Invalidate and refresh** (if `$ARGUMENTS` contains `--fetch` or user explicitly asks to refresh):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
subagent_catalog_invalidate_cache
|
|
34
|
+
subagent_catalog_refresh_cache
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 3: Confirm
|
|
38
|
+
|
|
39
|
+
Report the result:
|
|
40
|
+
- If invalidated only: "cache invalidated. next search/fetch will pull fresh data."
|
|
41
|
+
- If refreshed: "cache invalidated and refreshed with latest catalog."
|
|
42
|
+
|
|
43
|
+
### When to use
|
|
44
|
+
|
|
45
|
+
- After the upstream repo has been updated with new subagents
|
|
46
|
+
- If you suspect the cache is corrupted
|
|
47
|
+
- To troubleshoot stale results
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: list
|
|
3
|
+
description: "List all categories and agents in the local subagent catalog. Use when user wants to browse available subagents."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent Catalog - List
|
|
7
|
+
|
|
8
|
+
Browse all available categories and agents from the local subagent catalog.
|
|
9
|
+
|
|
10
|
+
## Input: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
No arguments required.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Step 1: List categories and agents
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
source tools/subagent-catalog/config.sh
|
|
20
|
+
|
|
21
|
+
for category in $(subagent_catalog_list_categories); do
|
|
22
|
+
echo "### $category"
|
|
23
|
+
subagent_catalog_list_agents_in "$category" | tr '\n' ', ' | sed 's/,$/\n/'
|
|
24
|
+
echo ""
|
|
25
|
+
done
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Step 2: Format output
|
|
29
|
+
|
|
30
|
+
Display as a scannable list:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
## Subagent Catalog (Local)
|
|
34
|
+
|
|
35
|
+
### 01-core-development
|
|
36
|
+
api-designer, backend-developer, frontend-developer, fullstack-developer, ...
|
|
37
|
+
|
|
38
|
+
### 02-language-specialists
|
|
39
|
+
typescript-pro, python-pro, rust-engineer, golang-pro, ...
|
|
40
|
+
|
|
41
|
+
[...continue for all 10 categories...]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Tips
|
|
45
|
+
|
|
46
|
+
- use `/subagent-catalog:search <query>` to filter by keyword
|
|
47
|
+
- use `/subagent-catalog:fetch <name>` to get full definition
|
|
48
|
+
- agents are stored locally in `agents/subagents/`
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: search
|
|
3
|
+
description: "Search the local subagent catalog by name, description, or capability keyword."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent Catalog - Search
|
|
7
|
+
|
|
8
|
+
Find agents by name, description, or category.
|
|
9
|
+
|
|
10
|
+
## Input: $ARGUMENTS
|
|
11
|
+
|
|
12
|
+
## Instructions
|
|
13
|
+
|
|
14
|
+
### Step 1: Search local agents
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
source tools/subagent-catalog/config.sh
|
|
18
|
+
subagent_catalog_search "{{QUERY}}"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### Step 2: Format results
|
|
22
|
+
|
|
23
|
+
Display matches as a table:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
## Results for "kubernetes"
|
|
27
|
+
|
|
28
|
+
| Agent | Category | Description |
|
|
29
|
+
|-------|----------|-------------|
|
|
30
|
+
| kubernetes-specialist | 03-infrastructure | Container orchestration master |
|
|
31
|
+
| devops-engineer | 03-infrastructure | CI/CD and automation expert |
|
|
32
|
+
|
|
33
|
+
> use `/subagent-catalog:fetch <name>` to get full definition
|
|
34
|
+
> invoke with: Agent(prompt=agents/subagents/<category>/<name>.md)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 3: Handle edge cases
|
|
38
|
+
|
|
39
|
+
- **no results**: suggest related terms or `/subagent-catalog:list`
|
|
40
|
+
- **too many results**: ask user to narrow the query
|
|
41
|
+
- **category match**: show all agents in that category
|