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.
Files changed (51) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +4 -2
  3. package/README.md +15 -3
  4. package/agents/afc-architect.md +1 -1
  5. package/agents/afc-security.md +1 -1
  6. package/commands/analyze.md +1 -1
  7. package/commands/architect.md +1 -1
  8. package/commands/auto.md +2 -2
  9. package/commands/checkpoint.md +1 -1
  10. package/commands/clarify.md +1 -1
  11. package/commands/clean.md +126 -0
  12. package/commands/consult.md +1 -1
  13. package/commands/debug.md +1 -1
  14. package/commands/doctor.md +64 -23
  15. package/commands/ideate.md +1 -1
  16. package/commands/implement.md +1 -1
  17. package/commands/init.md +10 -6
  18. package/commands/launch.md +1 -1
  19. package/commands/plan.md +1 -1
  20. package/commands/pr-comment.md +1 -1
  21. package/commands/principles.md +1 -1
  22. package/commands/qa.md +191 -0
  23. package/commands/release-notes.md +1 -1
  24. package/commands/research.md +1 -1
  25. package/commands/resume.md +2 -2
  26. package/commands/review.md +1 -1
  27. package/commands/security.md +1 -1
  28. package/commands/spec.md +1 -1
  29. package/commands/tasks.md +1 -1
  30. package/commands/test.md +1 -1
  31. package/commands/triage.md +1 -1
  32. package/commands/validate.md +1 -1
  33. package/docs/phase-gate-protocol.md +1 -1
  34. package/hooks/hooks.json +1 -0
  35. package/package.json +5 -3
  36. package/schemas/hooks.schema.json +4 -0
  37. package/schemas/plugin.schema.json +5 -1
  38. package/scripts/afc-bash-guard.sh +3 -3
  39. package/scripts/afc-config-change.sh +8 -0
  40. package/scripts/afc-consistency-check.sh +58 -19
  41. package/scripts/afc-dag-validate.sh +1 -1
  42. package/scripts/afc-doctor.sh +445 -0
  43. package/scripts/afc-failure-hint.sh +24 -2
  44. package/scripts/afc-qa-audit.sh +536 -0
  45. package/scripts/afc-state.sh +3 -3
  46. package/scripts/afc-sync-cache.sh +49 -0
  47. package/scripts/afc-triage.sh +14 -3
  48. package/scripts/afc-user-prompt-submit.sh +98 -13
  49. package/scripts/pre-compact-checkpoint.sh +2 -2
  50. package/scripts/session-start-context.sh +39 -10
  51. 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.5.0"
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.5.0",
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.5.0",
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` | Injects Phase/Feature context per prompt |
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.
@@ -7,7 +7,7 @@ tools:
7
7
  - Grep
8
8
  - Glob
9
9
  - Bash
10
- - Task
10
+ - Agent
11
11
  - WebSearch
12
12
  model: sonnet
13
13
  memory: project
@@ -6,7 +6,7 @@ tools:
6
6
  - Grep
7
7
  - Glob
8
8
  - Bash
9
- - Task
9
+ - Agent
10
10
  - WebSearch
11
11
  disallowedTools:
12
12
  - Write
@@ -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
@@ -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}/auto-memory/checkpoint.md` (pipeline complete = session goal achieved, dual-delete prevents stale checkpoint in either location; `ENCODED_PATH` = project path with `/` replaced by `-`)
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}"
@@ -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:
@@ -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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: afc:consult
3
- description: "Expert consultation — get advice from backend, infra, PM, design, marketing, legal, security, or tech advisor specialists"
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
@@ -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. Then read `${CLAUDE_PLUGIN_ROOT}/package.json` 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 |
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`, `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json` (both `metadata.version` and `plugins[0].version`) | All identical | ✗ Fix: update mismatched files to the same version |
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. Print header:
154
+ 1. Run the automated health check script:
123
155
  ```
124
- all-for-claudecode Doctor
125
- =======================
156
+ "${CLAUDE_PLUGIN_ROOT}/scripts/afc-doctor.sh" $ARGUMENTS
126
157
  ```
158
+ This covers Categories 1-8 automatically.
127
159
 
128
- 2. Run each category in order. For each check:
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 `--verbose` is in `$ARGUMENTS`:
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: 14 passed, 2 warnings, 0 failures
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**: Category 7 (Version Sync) only runs when inside the all-for-claudecode source repo.
233
+ - **Development checks**: Categories 8–11 (Version Sync, Command Definitions, Agent Definitions, Doc References) only run when inside the all-for-claudecode source repo.
@@ -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
@@ -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 migration**
45
- - Check `git tag -l 'selfish/pre-*' 'selfish/phase-*'`
46
- - If any found: rename each tag (`git tag afc/... selfish/... && git tag -d selfish/...`)
47
- - Print: `Migrated: {count} git tags (selfish/* afc/*)`
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
@@ -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
@@ -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
@@ -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