all-for-claudecode 2.5.0 → 2.7.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-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +4 -2
- package/README.md +15 -3
- package/agents/afc-architect.md +1 -1
- package/agents/afc-security.md +1 -1
- package/commands/analyze.md +1 -1
- package/commands/architect.md +1 -1
- package/commands/auto.md +2 -2
- package/commands/checkpoint.md +1 -1
- package/commands/clarify.md +1 -1
- package/commands/clean.md +126 -0
- package/commands/consult.md +1 -1
- package/commands/debug.md +1 -1
- package/commands/doctor.md +64 -23
- package/commands/ideate.md +1 -1
- package/commands/implement.md +1 -1
- package/commands/init.md +10 -6
- package/commands/launch.md +1 -1
- package/commands/plan.md +1 -1
- package/commands/pr-comment.md +1 -1
- package/commands/principles.md +1 -1
- package/commands/qa.md +191 -0
- package/commands/release-notes.md +1 -1
- package/commands/research.md +1 -1
- package/commands/resume.md +2 -2
- package/commands/review.md +1 -1
- package/commands/security.md +1 -1
- package/commands/spec.md +1 -1
- package/commands/tasks.md +1 -1
- package/commands/test.md +1 -1
- package/commands/triage.md +1 -1
- package/commands/validate.md +1 -1
- package/docs/phase-gate-protocol.md +1 -1
- package/hooks/hooks.json +1 -0
- package/package.json +5 -3
- package/schemas/hooks.schema.json +4 -0
- package/schemas/plugin.schema.json +5 -1
- package/scripts/afc-bash-guard.sh +3 -3
- package/scripts/afc-config-change.sh +8 -0
- package/scripts/afc-consistency-check.sh +58 -19
- package/scripts/afc-dag-validate.sh +1 -1
- package/scripts/afc-doctor.sh +445 -0
- package/scripts/afc-failure-hint.sh +24 -2
- package/scripts/afc-qa-audit.sh +536 -0
- package/scripts/afc-state.sh +3 -3
- package/scripts/afc-sync-cache.sh +49 -0
- package/scripts/afc-triage.sh +14 -3
- package/scripts/afc-user-prompt-submit.sh +98 -13
- package/scripts/pre-compact-checkpoint.sh +2 -2
- package/scripts/session-start-context.sh +39 -10
- package/scripts/track-afc-changes.sh +3 -3
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Automated pipeline for Claude Code — spec → plan → implement → review → clean",
|
|
9
|
-
"version": "2.
|
|
9
|
+
"version": "2.7.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "afc",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Automated pipeline for Claude Code. Automates the full development cycle: spec → plan → implement → review → clean.",
|
|
16
|
-
"version": "2.
|
|
16
|
+
"version": "2.7.0",
|
|
17
17
|
"category": "automation",
|
|
18
18
|
"tags": ["pipeline", "automation", "spec", "plan", "implement", "review", "critic-loop"]
|
|
19
19
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "afc",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Automated pipeline for Claude Code. Automates the full development cycle: spec → plan → implement → review → clean.",
|
|
5
5
|
"author": { "name": "jhlee0409", "email": "relee6203@gmail.com" },
|
|
6
6
|
"homepage": "https://github.com/jhlee0409/all-for-claudecode",
|
|
7
7
|
"repository": "https://github.com/jhlee0409/all-for-claudecode",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"keywords": ["pipeline", "automation", "spec", "plan", "implement", "review", "critic-loop"],
|
|
10
|
-
"commands": "./commands/"
|
|
10
|
+
"commands": "./commands/",
|
|
11
|
+
"agents": "./agents/",
|
|
12
|
+
"hooks": "./hooks/hooks.json"
|
|
11
13
|
}
|
package/README.md
CHANGED
|
@@ -108,6 +108,7 @@ Performance: ✓ no N+1 queries
|
|
|
108
108
|
| `/afc:implement` | Execute code implementation with CI gates |
|
|
109
109
|
| `/afc:test` | Test strategy planning and test writing |
|
|
110
110
|
| `/afc:review` | Code review with architecture/security scanning |
|
|
111
|
+
| `/afc:clean` | Pipeline artifact cleanup and codebase hygiene |
|
|
111
112
|
| `/afc:research` | Technical research with persistent storage |
|
|
112
113
|
| `/afc:debug` | Bug diagnosis and fix |
|
|
113
114
|
| `/afc:init` | Project setup — detects stack and generates config |
|
|
@@ -122,7 +123,11 @@ Performance: ✓ no N+1 queries
|
|
|
122
123
|
| `/afc:launch` | Generate release artifacts (changelog, tag, publish) |
|
|
123
124
|
| `/afc:validate` | Verify artifact consistency |
|
|
124
125
|
| `/afc:analyze` | General-purpose code and component analysis |
|
|
126
|
+
| `/afc:qa` | Project quality audit — test confidence, error resilience, code health |
|
|
125
127
|
| `/afc:consult` | Expert consultation (backend, infra, PM, design, marketing) |
|
|
128
|
+
| `/afc:triage` | Analyze open PRs and issues in parallel |
|
|
129
|
+
| `/afc:pr-comment` | Generate structured PR review comments |
|
|
130
|
+
| `/afc:release-notes` | Generate release notes from git history |
|
|
126
131
|
| `/afc:clarify` | Resolve spec ambiguities |
|
|
127
132
|
|
|
128
133
|
### Individual Command Examples
|
|
@@ -142,6 +147,12 @@ Performance: ✓ no N+1 queries
|
|
|
142
147
|
|
|
143
148
|
# Explore and structure a product idea
|
|
144
149
|
/afc:ideate "real-time collaboration feature"
|
|
150
|
+
|
|
151
|
+
# Triage open PRs and issues
|
|
152
|
+
/afc:triage # all open PRs + issues
|
|
153
|
+
/afc:triage --pr # PRs only
|
|
154
|
+
/afc:triage --deep # deep analysis with diff review
|
|
155
|
+
/afc:triage 42 99 # specific items by number
|
|
145
156
|
```
|
|
146
157
|
|
|
147
158
|
## Hook Events
|
|
@@ -161,7 +172,7 @@ Every hook fires automatically — no configuration needed after install.
|
|
|
161
172
|
| `Notification` | Desktop alerts (macOS/Linux) |
|
|
162
173
|
| `TaskCompleted` | CI gate (shell) + acceptance criteria verification (LLM) |
|
|
163
174
|
| `SubagentStop` | Tracks subagent completion in pipeline log |
|
|
164
|
-
| `UserPromptSubmit` |
|
|
175
|
+
| `UserPromptSubmit` | **Inactive**: detects intent keywords and suggests matching afc skill. **Active**: injects Phase/Feature context + drift checkpoint at threshold prompts |
|
|
165
176
|
| `PermissionRequest` | Auto-allows CI commands during implement/review |
|
|
166
177
|
| `ConfigChange` | Audits/blocks settings changes during active pipeline |
|
|
167
178
|
| `TeammateIdle` | Prevents Agent Teams idle during implement/review |
|
|
@@ -176,7 +187,8 @@ Handler types: `command` (shell scripts, all events), `prompt` (LLM single-turn,
|
|
|
176
187
|
|---|---|
|
|
177
188
|
| `afc-architect` | Remembers ADR decisions and architecture patterns across sessions. Auto-invoked during Plan (ADR recording) and Review (architecture compliance). |
|
|
178
189
|
| `afc-security` | Remembers vulnerability patterns and false positives across sessions. Auto-invoked during Review (security scanning). Runs in isolated worktree. |
|
|
179
|
-
| `afc-impl-worker` | Parallel implementation worker. Receives pre-assigned tasks from orchestrator. Ephemeral (no memory). |
|
|
190
|
+
| `afc-impl-worker` | Parallel implementation worker. Receives pre-assigned tasks from orchestrator. Ephemeral (no memory). Max 50 turns, auto-approve edits. |
|
|
191
|
+
| `afc-pr-analyst` | PR deep analysis worker for triage. Runs in isolated worktree with diff access. Max 15 turns. |
|
|
180
192
|
|
|
181
193
|
## Expert Consultation
|
|
182
194
|
|
|
@@ -248,7 +260,7 @@ No. Pure markdown commands + bash hook scripts. No npm packages are imported at
|
|
|
248
260
|
Debug-based RCA: traces the error, forms a hypothesis, applies a targeted fix. Halts after 3 failed attempts with full diagnosis.
|
|
249
261
|
|
|
250
262
|
### Can I run individual phases?
|
|
251
|
-
Yes. Each phase has its own command (`/afc:spec`, `/afc:plan`, `/afc:implement`, `/afc:review`). `/afc:auto` runs them all.
|
|
263
|
+
Yes. Each phase has its own command (`/afc:spec`, `/afc:plan`, `/afc:implement`, `/afc:review`, `/afc:clean`). `/afc:auto` runs them all.
|
|
252
264
|
|
|
253
265
|
### What are Critic Loops?
|
|
254
266
|
Convergence-based quality checks after each phase. They evaluate output against criteria and auto-fix issues until stable. 4 verdicts: PASS, FAIL, ESCALATE (asks user), DEFER.
|
package/agents/afc-architect.md
CHANGED
package/agents/afc-security.md
CHANGED
package/commands/analyze.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:analyze
|
|
3
|
-
description: "General-purpose code and component analysis"
|
|
3
|
+
description: "General-purpose code and component analysis — use when the user asks to analyze code, trace a flow, audit consistency, understand how something works, or inspect components"
|
|
4
4
|
argument-hint: "<analysis target or question>"
|
|
5
5
|
user-invocable: true
|
|
6
6
|
context: fork
|
package/commands/architect.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:architect
|
|
3
|
-
description: "Architecture analysis and design advice"
|
|
3
|
+
description: "Architecture analysis and design advice — use when the user asks about architecture, system design, layer boundaries, or wants structural design review"
|
|
4
4
|
argument-hint: "[analysis target or design question]"
|
|
5
5
|
context: fork
|
|
6
6
|
agent: afc-architect
|
package/commands/auto.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:auto
|
|
3
|
-
description: "Full auto pipeline"
|
|
3
|
+
description: "Full auto pipeline — use when the user asks to run the full afc pipeline automatically or automate the spec-to-clean cycle"
|
|
4
4
|
argument-hint: "[feature description in natural language]"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -499,7 +499,7 @@ Artifact cleanup and codebase hygiene check after implementation and review:
|
|
|
499
499
|
```
|
|
500
500
|
- Create `.claude/afc/memory/quality-history/` directory if it does not exist
|
|
501
501
|
6. **Checkpoint reset**:
|
|
502
|
-
- Clear `.claude/afc/memory/checkpoint.md` **and** `~/.claude/projects/{ENCODED_PATH}/
|
|
502
|
+
- Clear `.claude/afc/memory/checkpoint.md` **and** `~/.claude/projects/{ENCODED_PATH}/memory/checkpoint.md` (pipeline complete = session goal achieved, dual-delete prevents stale checkpoint in either location; `ENCODED_PATH` = project path with `/` replaced by `-`)
|
|
503
503
|
7. **Timeline finalize**:
|
|
504
504
|
```bash
|
|
505
505
|
"${CLAUDE_PLUGIN_ROOT}/scripts/afc-pipeline-manage.sh" log pipeline-end "Pipeline complete: {feature}"
|
package/commands/checkpoint.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:checkpoint
|
|
3
|
-
description: "Save session state"
|
|
3
|
+
description: "Save session state — use when the user asks to save progress, checkpoint the session, or preserve current work state"
|
|
4
4
|
argument-hint: "[checkpoint message]"
|
|
5
5
|
model: haiku
|
|
6
6
|
allowed-tools:
|
package/commands/clarify.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:clarify
|
|
3
|
-
description: "Resolve spec ambiguities"
|
|
3
|
+
description: "Resolve spec ambiguities — auto-triggered when requirements are unclear to ask clarifying questions before proceeding"
|
|
4
4
|
argument-hint: "[focus area: security, performance, UI flow]"
|
|
5
5
|
user-invocable: false
|
|
6
6
|
allowed-tools:
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: afc:clean
|
|
3
|
+
description: "Pipeline artifact cleanup and codebase hygiene — use when the user asks to clean up artifacts, remove pipeline files, or finalize after implementation"
|
|
4
|
+
argument-hint: "[feature name — defaults to current pipeline feature]"
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /afc:clean — Pipeline Cleanup
|
|
9
|
+
|
|
10
|
+
> Runs the clean phase independently: artifact cleanup, dead code scan, CI verification, memory update, and pipeline flag release.
|
|
11
|
+
> Equivalent to Phase 5 of `/afc:auto`. Use after manually running spec/plan/implement/review phases.
|
|
12
|
+
|
|
13
|
+
## Arguments
|
|
14
|
+
|
|
15
|
+
- `$ARGUMENTS` — (optional) Feature name to clean up. Defaults to the currently active pipeline feature.
|
|
16
|
+
|
|
17
|
+
## Prerequisites
|
|
18
|
+
|
|
19
|
+
- Pipeline must be active (`afc_state_is_active`) OR a feature name must be provided
|
|
20
|
+
- If pipeline is active, the current phase should be `review` or later
|
|
21
|
+
|
|
22
|
+
## Execution Steps
|
|
23
|
+
|
|
24
|
+
### 1. Resolve Feature
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/afc-pipeline-manage.sh" phase clean
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- If pipeline is active: read feature from state
|
|
31
|
+
- If `$ARGUMENTS` provides a feature name: use that (for manual cleanup without active pipeline)
|
|
32
|
+
- If neither: exit with error — `"No active pipeline and no feature specified. Usage: /afc:clean [feature-name]"`
|
|
33
|
+
|
|
34
|
+
Set `PIPELINE_ARTIFACT_DIR` = `.claude/afc/specs/{feature}/`
|
|
35
|
+
|
|
36
|
+
### 2. Artifact Cleanup (scope-limited)
|
|
37
|
+
|
|
38
|
+
- **Delete only the `.claude/afc/specs/{feature}/` directory created by the current pipeline**
|
|
39
|
+
- If other `.claude/afc/specs/` subdirectories exist, **do not delete them** (only inform the user of their existence)
|
|
40
|
+
- Do not leave pipeline intermediate artifacts in the codebase
|
|
41
|
+
|
|
42
|
+
### 3. Dead Code Scan
|
|
43
|
+
|
|
44
|
+
- Detect unused imports from the implementation process (check with `{config.ci}`)
|
|
45
|
+
- Remove empty directories from moved/deleted files
|
|
46
|
+
- Detect unused exports (re-exports of moved code from original locations etc.)
|
|
47
|
+
|
|
48
|
+
### 4. Final CI Gate
|
|
49
|
+
|
|
50
|
+
- Run `{config.ci}` final execution
|
|
51
|
+
- Auto-fix on failure (max 2 attempts)
|
|
52
|
+
|
|
53
|
+
### 5. Memory Update
|
|
54
|
+
|
|
55
|
+
- Reusable patterns found during pipeline -> record in `.claude/afc/memory/`
|
|
56
|
+
- If there were `[AUTO-RESOLVED]` items -> record decisions in `.claude/afc/memory/decisions/`
|
|
57
|
+
- **If retrospective.md exists** -> record as patterns missed by the Plan phase Critic Loop in `.claude/afc/memory/retrospectives/` (reuse as RISK checklist items in future runs)
|
|
58
|
+
- **If review-report.md exists** -> copy to `.claude/afc/memory/reviews/{feature}-{date}.md` before .claude/afc/specs/ deletion
|
|
59
|
+
- **If research.md exists** and was not already persisted in Plan phase -> copy to `.claude/afc/memory/research/{feature}.md`
|
|
60
|
+
- **Agent memory consolidation**: check each agent's MEMORY.md line count -- if either exceeds 100 lines, invoke the respective agent to self-prune:
|
|
61
|
+
```
|
|
62
|
+
Task("Memory cleanup: afc-architect", subagent_type: "afc:afc-architect",
|
|
63
|
+
prompt: "Your MEMORY.md exceeds 100 lines. Read it, prune old/redundant entries, and rewrite to under 100 lines following your size limit rules.")
|
|
64
|
+
```
|
|
65
|
+
(Same pattern for afc-security if needed. Skip if both are under 100 lines.)
|
|
66
|
+
- **Memory rotation**: for each memory subdirectory, check file count and prune oldest files if over threshold:
|
|
67
|
+
| Directory | Threshold | Action |
|
|
68
|
+
|-----------|-----------|--------|
|
|
69
|
+
| `quality-history/` | 30 files | Delete oldest files beyond threshold |
|
|
70
|
+
| `reviews/` | 40 files | Delete oldest files beyond threshold |
|
|
71
|
+
| `retrospectives/` | 30 files | Delete oldest files beyond threshold |
|
|
72
|
+
| `research/` | 50 files | Delete oldest files beyond threshold |
|
|
73
|
+
| `decisions/` | 60 files | Delete oldest files beyond threshold |
|
|
74
|
+
- Sort by filename ascending (oldest first), delete excess
|
|
75
|
+
- Log: `"Memory rotation: {dir} pruned {N} files"`
|
|
76
|
+
- Skip directories that do not exist or are under threshold
|
|
77
|
+
|
|
78
|
+
### 6. Quality Report
|
|
79
|
+
|
|
80
|
+
Generate `.claude/afc/memory/quality-history/{feature}-{date}.json` with pipeline metrics (if pipeline was active):
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"feature": "{feature}",
|
|
84
|
+
"date": "{YYYY-MM-DD}",
|
|
85
|
+
"totals": { "changed_files": N }
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
Create `.claude/afc/memory/quality-history/` directory if it does not exist.
|
|
89
|
+
|
|
90
|
+
### 7. Checkpoint Reset
|
|
91
|
+
|
|
92
|
+
Clear `.claude/afc/memory/checkpoint.md` **and** `~/.claude/projects/{ENCODED_PATH}/memory/checkpoint.md` (pipeline complete = session goal achieved; `ENCODED_PATH` = project path with `/` replaced by `-`).
|
|
93
|
+
|
|
94
|
+
### 8. Timeline Finalize
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/afc-pipeline-manage.sh" log pipeline-end "Pipeline complete: {feature}"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 9. Release Pipeline Flag
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/afc-pipeline-manage.sh" end
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
- Stop Gate Hook deactivated
|
|
107
|
+
- Change tracking log deleted
|
|
108
|
+
- Safety tag removed (successful completion)
|
|
109
|
+
- Phase rollback tags removed (handled automatically by pipeline end)
|
|
110
|
+
|
|
111
|
+
### 10. Output Summary
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Clean complete: {feature}
|
|
115
|
+
├─ Artifacts: {N} files deleted from .claude/afc/specs/{feature}/
|
|
116
|
+
├─ Dead code: {N} items removed
|
|
117
|
+
├─ CI: PASSED
|
|
118
|
+
├─ Memory: {N} files persisted, {N} rotated
|
|
119
|
+
└─ Pipeline flag: released
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Notes
|
|
123
|
+
|
|
124
|
+
- This command is safe to run multiple times (idempotent -- skips already-deleted artifacts)
|
|
125
|
+
- If no pipeline is active and no feature is specified, the command exits with an informative error
|
|
126
|
+
- When run standalone (not as part of auto), the quality report captures only the information available at clean time
|
package/commands/consult.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:consult
|
|
3
|
-
description: "Expert consultation —
|
|
3
|
+
description: "Expert consultation — use when the user asks for expert advice, wants to consult a specialist, or needs domain-specific guidance on backend, infra, PM, design, marketing, legal, or tech decisions"
|
|
4
4
|
argument-hint: "[domain?] \"[question]\" [brief|deep]"
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
package/commands/debug.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:debug
|
|
3
|
-
description: "Bug diagnosis and fix"
|
|
3
|
+
description: "Bug diagnosis and fix — use when the user reports a bug, error, crash, exception, broken behavior, or something not working and wants root-cause analysis and a targeted fix"
|
|
4
4
|
argument-hint: "[bug description, error message, or reproduction steps]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/commands/doctor.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:doctor
|
|
3
|
-
description: "Diagnose project health and plugin setup"
|
|
3
|
+
description: "Diagnose project health and plugin setup — use when the user asks for a health check, wants to diagnose project issues, or verify plugin installation"
|
|
4
4
|
argument-hint: "[--verbose]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -59,7 +59,7 @@ Run ALL checks regardless of earlier failures. Do not short-circuit.
|
|
|
59
59
|
|-------|-----|------|------|
|
|
60
60
|
| Global CLAUDE.md exists | Read `~/.claude/CLAUDE.md` | File exists | ⚠ Warning: no global CLAUDE.md. all-for-claudecode skills won't auto-trigger from intent. Fix: run `/afc:init` |
|
|
61
61
|
| all-for-claudecode block present | Grep for `<!-- AFC:START -->` and `<!-- AFC:END -->` in `~/.claude/CLAUDE.md` | Both markers found | Fix: run `/afc:init` to inject all-for-claudecode block |
|
|
62
|
-
| all-for-claudecode block version | Extract version from `<!-- AFC:VERSION:X.Y.Z -->` in CLAUDE.md.
|
|
62
|
+
| all-for-claudecode block version | Extract version from `<!-- AFC:VERSION:X.Y.Z -->` in CLAUDE.md. Read `${CLAUDE_PLUGIN_ROOT}/package.json` (`.version`) to get the actual plugin version. Compare the two. | Block version = plugin version | ⚠ Warning: all-for-claudecode block is outdated (found {block_version}, current {plugin_version}). Fix: run `/afc:init` to update |
|
|
63
63
|
| No conflicting routing | Grep for conflicting agent patterns (`executor`, `deep-executor`, `debugger`, `code-reviewer`) outside all-for-claudecode block that could intercept afc intents | No conflicts or conflicts are inside other tool blocks | ⚠ Warning: found agent routing that may conflict with afc skills. Review `~/.claude/CLAUDE.md` |
|
|
64
64
|
|
|
65
65
|
### Category 4: Legacy Migration (v1.x → v2.0)
|
|
@@ -112,36 +112,56 @@ Run ALL checks regardless of earlier failures. Do not short-circuit.
|
|
|
112
112
|
|
|
113
113
|
| Check | How | Pass | Fail |
|
|
114
114
|
|-------|-----|------|------|
|
|
115
|
-
| Version triple match | Compare versions in `package.json
|
|
115
|
+
| Version triple match | Compare versions in `package.json` (`.version`), `.claude-plugin/plugin.json` (`.version`), `.claude-plugin/marketplace.json` (`.metadata.version` and `.plugins[0].version`) | All identical | ✗ Fix: update mismatched files to the same version |
|
|
116
116
|
| Cache in sync | Compare `commands/auto.md` content between source and `~/.claude/plugins/cache/all-for-claudecode/afc/{version}/commands/auto.md` | Content matches | ⚠ Warning: plugin cache is stale. Fix: copy source files to cache directory |
|
|
117
117
|
|
|
118
|
+
### Category 9: Command Definitions (development only)
|
|
119
|
+
|
|
120
|
+
> Only run if current directory is the all-for-claudecode source repo (same condition as Category 8).
|
|
121
|
+
|
|
122
|
+
| Check | How | Pass | Fail |
|
|
123
|
+
|-------|-----|------|------|
|
|
124
|
+
| Frontmatter exists | Each `commands/*.md` file has opening and closing `---` block | All files have frontmatter | ✗ Fix: add YAML frontmatter block to `commands/{file}.md` |
|
|
125
|
+
| Required fields | Each command frontmatter contains `name:` and `description:` | All files have both fields | ✗ Fix: add missing `name:` or `description:` to `commands/{file}.md` |
|
|
126
|
+
| Name-filename match | `name:` value follows `afc:{filename}` pattern (e.g. `auto.md` → `name: afc:auto`) | All names match filenames | ✗ Fix: rename `name:` field in `commands/{file}.md` to `afc:{filename}` |
|
|
127
|
+
| Fork-agent reference | Commands with `context: fork` and `agent:` field reference a file that exists in `agents/` (e.g. `agent: afc-architect` → `agents/afc-architect.md` exists) | All agent references resolve | ✗ Fix: create missing agent file `agents/{name}.md` or fix `agent:` field in `commands/{file}.md` |
|
|
128
|
+
|
|
129
|
+
### Category 10: Agent Definitions (development only)
|
|
130
|
+
|
|
131
|
+
> Only run if current directory is the all-for-claudecode source repo (same condition as Category 8).
|
|
132
|
+
|
|
133
|
+
| Check | How | Pass | Fail |
|
|
134
|
+
|-------|-----|------|------|
|
|
135
|
+
| Frontmatter exists | Each `agents/*.md` file has opening and closing `---` block | All files have frontmatter | ✗ Fix: add YAML frontmatter block to `agents/{file}.md` |
|
|
136
|
+
| Required fields | Each agent frontmatter contains `name:`, `description:`, and `model:` | All files have all 3 fields | ✗ Fix: add missing field to `agents/{file}.md` |
|
|
137
|
+
| Name-filename match | `name:` value equals the filename without extension (e.g. `afc-architect.md` → `name: afc-architect`) | All names match filenames | ✗ Fix: rename `name:` field in `agents/{file}.md` to match filename |
|
|
138
|
+
| Expert memory | All 8 expert consultation agents (`afc-backend-expert`, `afc-infra-expert`, `afc-pm-expert`, `afc-design-expert`, `afc-marketing-expert`, `afc-legal-expert`, `afc-appsec-expert`, `afc-tech-advisor`) have `memory: project` | All experts have memory field | ✗ Fix: add `memory: project` to `agents/{name}.md` frontmatter |
|
|
139
|
+
| Worker maxTurns | `afc-impl-worker` and `afc-pr-analyst` have `maxTurns:` field | Both workers have maxTurns | ✗ Fix: add `maxTurns:` to `agents/{name}.md` frontmatter |
|
|
140
|
+
|
|
141
|
+
### Category 11: Doc References (development only)
|
|
142
|
+
|
|
143
|
+
> Only run if current directory is the all-for-claudecode source repo (same condition as Category 8).
|
|
144
|
+
|
|
145
|
+
| Check | How | Pass | Fail |
|
|
146
|
+
|-------|-----|------|------|
|
|
147
|
+
| Referenced docs exist | Scan commands and agents for file references to `docs/` (e.g. `docs/critic-loop-rules.md`, `docs/phase-gate-protocol.md`). Each referenced file must exist. | All referenced docs found | ✗ Fix: create missing `docs/{file}.md` or fix the reference |
|
|
148
|
+
| Domain adapters exist | `docs/domain-adapters/` directory contains at least one `.md` file | ≥ 1 adapter file found | ✗ Fix: add domain adapter files to `docs/domain-adapters/` |
|
|
149
|
+
|
|
118
150
|
---
|
|
119
151
|
|
|
120
152
|
## Execution
|
|
121
153
|
|
|
122
|
-
1.
|
|
154
|
+
1. Run the automated health check script:
|
|
123
155
|
```
|
|
124
|
-
|
|
125
|
-
=======================
|
|
156
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/afc-doctor.sh" $ARGUMENTS
|
|
126
157
|
```
|
|
158
|
+
This covers Categories 1-8 automatically.
|
|
127
159
|
|
|
128
|
-
2.
|
|
129
|
-
- Print ` ✓ {check name}` on pass
|
|
130
|
-
- Print ` ⚠ {check name}: {brief reason}` on warning
|
|
131
|
-
- Print ` ✗ {check name}: {brief reason}` on fail
|
|
132
|
-
- On fail/warning, print ` Fix: {command}` indented below
|
|
160
|
+
2. Print the script's stdout output as-is (already formatted with pass/warn/fail markers).
|
|
133
161
|
|
|
134
|
-
3. If
|
|
135
|
-
- Print additional details for each check (command output, file paths, versions found)
|
|
162
|
+
3. If in the source repo (package.json `name` = `"all-for-claudecode"`), continue with Categories 9-11 manually using the check tables above.
|
|
136
163
|
|
|
137
|
-
4. Print summary
|
|
138
|
-
```
|
|
139
|
-
─────────────────────────
|
|
140
|
-
Results: {pass} passed, {warn} warnings, {fail} failures
|
|
141
|
-
```
|
|
142
|
-
- If all pass: `No issues found!`
|
|
143
|
-
- If warnings only: `{N} warnings found. Non-blocking but review recommended.`
|
|
144
|
-
- If any failures: `{N} issues need attention. Run the Fix commands above.`
|
|
164
|
+
4. Print combined summary (script summary + any additional findings from Categories 9-11).
|
|
145
165
|
|
|
146
166
|
## Example Output
|
|
147
167
|
|
|
@@ -178,8 +198,29 @@ Hook Health
|
|
|
178
198
|
✓ All scripts exist
|
|
179
199
|
✓ All scripts executable
|
|
180
200
|
|
|
201
|
+
Version Sync (dev)
|
|
202
|
+
✓ Version triple match
|
|
203
|
+
✓ Cache in sync
|
|
204
|
+
|
|
205
|
+
Command Definitions (dev)
|
|
206
|
+
✓ Frontmatter exists (25 files)
|
|
207
|
+
✓ Required fields present
|
|
208
|
+
✓ Name-filename match
|
|
209
|
+
✓ Fork-agent references valid
|
|
210
|
+
|
|
211
|
+
Agent Definitions (dev)
|
|
212
|
+
✓ Frontmatter exists (12 files)
|
|
213
|
+
✓ Required fields present
|
|
214
|
+
✓ Name-filename match
|
|
215
|
+
✓ Expert memory configured (8/8)
|
|
216
|
+
✓ Worker maxTurns configured (2/2)
|
|
217
|
+
|
|
218
|
+
Doc References (dev)
|
|
219
|
+
✓ Referenced docs exist
|
|
220
|
+
✓ Domain adapters exist (3 files)
|
|
221
|
+
|
|
181
222
|
─────────────────────────
|
|
182
|
-
Results:
|
|
223
|
+
Results: 28 passed, 2 warnings, 0 failures
|
|
183
224
|
2 warnings found. Non-blocking but review recommended.
|
|
184
225
|
```
|
|
185
226
|
|
|
@@ -189,4 +230,4 @@ Results: 14 passed, 2 warnings, 0 failures
|
|
|
189
230
|
- **Always run all checks**: do not stop on first failure. The full picture is the value.
|
|
190
231
|
- **Actionable fixes**: every non-pass result must include a Fix line. Never report a problem without a solution.
|
|
191
232
|
- **Fast execution**: skip CI/gate command checks if `--fast` is in arguments (these are the slowest checks).
|
|
192
|
-
- **Development checks**:
|
|
233
|
+
- **Development checks**: Categories 8–11 (Version Sync, Command Definitions, Agent Definitions, Doc References) only run when inside the all-for-claudecode source repo.
|
package/commands/ideate.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:ideate
|
|
3
|
-
description: "Explore and structure a product idea"
|
|
3
|
+
description: "Explore and structure a product idea — use when the user wants to brainstorm, ideate, explore what to build, or create a product brief from a rough concept"
|
|
4
4
|
argument-hint: "[rough idea or problem statement]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/commands/implement.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:implement
|
|
3
|
-
description: "Execute code implementation"
|
|
3
|
+
description: "Execute code implementation — use when the user asks to implement a feature, execute a planned refactor, modify code from a plan, or build something"
|
|
4
4
|
argument-hint: "[task ID or phase specification]"
|
|
5
5
|
---
|
|
6
6
|
|
package/commands/init.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:init
|
|
3
|
-
description: "Project initial setup"
|
|
3
|
+
description: "Project initial setup — use when the user asks to set up the project, initialize afc, configure the plugin, or detect the tech stack"
|
|
4
4
|
argument-hint: "[additional context]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
|
@@ -41,10 +41,12 @@ Before anything else, detect and migrate v1.x (selfish-pipeline) artifacts:
|
|
|
41
41
|
- Rename: `mv .claude/selfish .claude/afc`
|
|
42
42
|
- Print: `Migrated: .claude/selfish/ → .claude/afc/`
|
|
43
43
|
|
|
44
|
-
**D. Git tag
|
|
45
|
-
- Check `git tag -l 'selfish
|
|
46
|
-
- If any found:
|
|
47
|
-
-
|
|
44
|
+
**D. Git tag cleanup**
|
|
45
|
+
- Check `git tag -l 'selfish/*'`
|
|
46
|
+
- If any found:
|
|
47
|
+
- Known patterns (`selfish/pre-*`, `selfish/phase-*`): rename to `afc/` equivalent (`git tag afc/... selfish/... && git tag -d selfish/...`)
|
|
48
|
+
- All remaining `selfish/*`: delete (`git tag -d`)
|
|
49
|
+
- Print: `Migrated: {renamed} renamed, {deleted} deleted`
|
|
48
50
|
|
|
49
51
|
### 2. Check for Existing Config
|
|
50
52
|
|
|
@@ -237,9 +239,11 @@ Classify the user's intent and route to the matching skill. Use semantic underst
|
|
|
237
239
|
| Test | `afc:test` | User wants to write tests, improve coverage, or verify behavior |
|
|
238
240
|
| Validate | `afc:validate` | User wants to check consistency or validate existing pipeline artifacts |
|
|
239
241
|
| Analyze | `afc:analyze` | User wants to understand, explore, or audit existing code without modifying it |
|
|
242
|
+
| QA Audit | `afc:qa` | User wants project quality audit, test confidence check, or runtime quality gaps |
|
|
240
243
|
| Research | `afc:research` | User wants deep investigation of external tools, libraries, APIs, or technical concepts |
|
|
241
244
|
| Ideate | `afc:ideate` | User wants to brainstorm ideas, explore possibilities, or draft a product brief |
|
|
242
245
|
| Consult | `afc:consult` | User wants expert advice on a decision: library choice, architecture direction, legal/security/infra guidance |
|
|
246
|
+
| Launch | `afc:launch` | User wants to prepare a release — generate changelog, release notes, version bump, or tag |
|
|
243
247
|
| Tasks | `afc:tasks` | User explicitly wants to decompose work into a task breakdown |
|
|
244
248
|
| Ambiguous | `afc:clarify` | User's request is too vague or underspecified to route confidently |
|
|
245
249
|
|
|
@@ -250,13 +254,13 @@ Classify the user's intent and route to the matching skill. Use semantic underst
|
|
|
250
254
|
3. **Design-first**: When scope is non-trivial (multiple files, architectural decisions needed), prefer `afc:auto` or `afc:plan` over direct `afc:implement`.
|
|
251
255
|
|
|
252
256
|
User-only (not auto-triggered — inform user on request):
|
|
253
|
-
- `afc:launch` — inform user when release artifact generation is requested
|
|
254
257
|
- `afc:doctor` — inform user when health check is requested
|
|
255
258
|
- `afc:architect` — inform user when architecture review is requested
|
|
256
259
|
- `afc:security` — inform user when security scan is requested
|
|
257
260
|
- `afc:checkpoint` — inform user when session save is requested
|
|
258
261
|
- `afc:resume` — inform user when session restore is requested
|
|
259
262
|
- `afc:principles` — inform user when project principles management is requested
|
|
263
|
+
- `afc:clean` — inform user when pipeline cleanup is requested (artifact cleanup, dead code scan, pipeline flag release)
|
|
260
264
|
- `afc:triage` — inform user when parallel PR/issue triage is requested
|
|
261
265
|
- `afc:pr-comment` — inform user when posting PR review comments to GitHub is requested
|
|
262
266
|
- `afc:release-notes` — inform user when generating release notes from git history is requested
|
package/commands/launch.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:launch
|
|
3
|
-
description: "Generate release artifacts"
|
|
3
|
+
description: "Generate release artifacts — use when the user asks to prepare a release, bump version, publish a package, or create release tags"
|
|
4
4
|
argument-hint: "[version tag or 'auto']"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/commands/plan.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:plan
|
|
3
|
-
description: "Implementation design"
|
|
3
|
+
description: "Implementation design — use when the user asks to plan, design an implementation, create a file change map, or figure out how to implement something"
|
|
4
4
|
argument-hint: "[additional context or constraints]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/commands/pr-comment.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:pr-comment
|
|
3
|
-
description: "Post PR review comments to GitHub"
|
|
3
|
+
description: "Post PR review comments to GitHub — use when the user asks to comment on a PR, post review feedback, or submit structured PR review comments"
|
|
4
4
|
argument-hint: "<PR number> [--severity critical,warning,info]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|
package/commands/principles.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: afc:principles
|
|
3
|
-
description: "Manage project principles"
|
|
3
|
+
description: "Manage project principles — use when the user asks to add, remove, or view project coding principles and conventions"
|
|
4
4
|
argument-hint: "[action: add, remove, init]"
|
|
5
5
|
allowed-tools:
|
|
6
6
|
- Read
|