all-for-claudecode 2.1.0 → 2.2.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.
@@ -141,7 +141,7 @@ TaskUpdate({ taskId: "T004", addBlockedBy: ["T002"] }) // if T004 depends on T0
141
141
 
142
142
  **Step 2 — Launch unblocked [P] tasks in a single message** (Claude Code executes multiple Task() calls in a single message concurrently, up to ~10):
143
143
  ```
144
- Task("T003: Create UserService", subagent_type: "afc-impl-worker",
144
+ Task("T003: Create UserService", subagent_type: "afc:afc-impl-worker",
145
145
  isolation: "worktree",
146
146
  prompt: "Implement the following task:
147
147
 
@@ -164,7 +164,7 @@ Task("T003: Create UserService", subagent_type: "afc-impl-worker",
164
164
  - Key decisions: {any design choices made}
165
165
  - Issues: {blockers or concerns, if any}
166
166
  - Verification: {config.gate} result")
167
- Task("T004: Create AuthService", subagent_type: "afc-impl-worker", isolation: "worktree", ...)
167
+ Task("T004: Create AuthService", subagent_type: "afc:afc-impl-worker", isolation: "worktree", ...)
168
168
  ```
169
169
 
170
170
  **Step 3 — Collect results and advance**: After all parallel agents return:
@@ -201,7 +201,7 @@ TaskUpdate({ taskId: "T008", addBlockedBy: ["T006"] }) // if dependency exists
201
201
  Instead of workers self-claiming (race-prone), the **orchestrator pre-assigns** tasks:
202
202
  ```
203
203
  // Orchestrator assigns: each worker gets a unique, non-overlapping task set
204
- Task("Worker 1: T007, T009, T011", subagent_type: "afc-impl-worker",
204
+ Task("Worker 1: T007, T009, T011", subagent_type: "afc:afc-impl-worker",
205
205
  isolation: "worktree",
206
206
  prompt: "Implement these tasks in order:
207
207
  1. T007: {description} — `{file path}`
@@ -224,7 +224,7 @@ Task("Worker 1: T007, T009, T011", subagent_type: "afc-impl-worker",
224
224
  Return a structured summary per task (max 2000 chars total):
225
225
  - Files changed, key decisions, issues encountered per task.")
226
226
 
227
- Task("Worker 2: T008, T010, T012", subagent_type: "afc-impl-worker", isolation: "worktree", ...)
227
+ Task("Worker 2: T008, T010, T012", subagent_type: "afc:afc-impl-worker", isolation: "worktree", ...)
228
228
  ```
229
229
 
230
230
  **Step 3 — Collect and reconcile**:
package/commands/init.md CHANGED
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  name: afc:init
3
3
  description: "Project initial setup"
4
- argument-hint: "[preset: nextjs-fsd | react-spa | express-api | monorepo]"
5
- disable-model-invocation: true
4
+ argument-hint: "[additional context]"
6
5
  allowed-tools:
7
6
  - Read
8
7
  - Write
@@ -18,9 +17,7 @@ model: haiku
18
17
 
19
18
  ## Arguments
20
19
 
21
- - `$ARGUMENTS` — (optional) Template preset name (e.g., `nextjs-fsd`)
22
- - If not specified: analyzes project structure and auto-infers
23
- - If preset specified: uses `${CLAUDE_PLUGIN_ROOT}/templates/afc.config.{preset}.md`
20
+ - `$ARGUMENTS` — (optional) Additional context or hints for project analysis
24
21
 
25
22
  ## Execution Steps
26
23
 
@@ -55,64 +52,76 @@ If `.claude/afc.config.md` already exists:
55
52
  - Ask user: "Config file already exists. Do you want to overwrite it?"
56
53
  - If declined: **abort**
57
54
 
58
- ### 3. Preset Branch
55
+ ### 3. Analyze Project Structure
59
56
 
60
- #### A. Preset Specified (`$ARGUMENTS` provided)
61
-
62
- 1. Verify `${CLAUDE_PLUGIN_ROOT}/templates/afc.config.{$ARGUMENTS}.md` exists
63
- 2. If found: copy that file to `.claude/afc.config.md`
64
- 3. If not found: print "Preset `{$ARGUMENTS}` not found. Available: {list}" then **abort**
65
-
66
- #### B. Auto-Infer (`$ARGUMENTS` not provided)
67
-
68
- Analyze project structure and auto-infer configuration:
57
+ Analyze the project and auto-infer configuration. Use `$ARGUMENTS` as additional context if provided.
69
58
 
70
59
  **Step 1. Package Manager / Script Detection**
71
60
  - Read `package.json` → extract CI-related commands from `scripts` field
72
- - Determine package manager from lockfile (yarn.lock / pnpm-lock.yaml / package-lock.json)
73
- - Reflect detected scripts in `CI Commands` section
61
+ - Determine package manager from lockfile:
62
+
63
+ | Lockfile | Package Manager |
64
+ |----------|----------------|
65
+ | `pnpm-lock.yaml` | pnpm |
66
+ | `yarn.lock` | yarn |
67
+ | `bun.lockb` or `bun.lock` | bun |
68
+ | `package-lock.json` | npm |
69
+
70
+ - If no lockfile: check `packageManager` field in `package.json`
71
+ - Non-JS projects: check `pyproject.toml` (Python), `Cargo.toml` (Rust), `go.mod` (Go)
74
72
 
75
73
  **Step 2. Framework Detection**
76
74
  - Determine from `package.json` dependencies/devDependencies:
77
- - `next` → Next.js (App Router/Pages Router determined by presence of `app/` directory)
78
- - `nuxt` Nuxt
79
- - `@sveltejs/kit` → SvelteKit
80
- - `vite` Vite
81
- - etc.
75
+
76
+ | Dependency | Framework |
77
+ |-----------|-----------|
78
+ | `next` | Next.js (App Router if `app/` dir exists, else Pages Router) |
79
+ | `nuxt` | Nuxt |
80
+ | `@sveltejs/kit` | SvelteKit |
81
+ | `@remix-run/react` | Remix |
82
+ | `astro` | Astro |
83
+ | `@angular/core` | Angular |
84
+ | `vite` (alone) | Vite SPA |
85
+ | `hono` | Hono |
86
+ | `fastify` | Fastify |
87
+ | `express` | Express |
88
+
89
+ - Non-JS: `pyproject.toml` → Django/FastAPI/Flask, `Cargo.toml` → Rust project, `go.mod` → Go project
82
90
  - Presence of `tsconfig.json` → TypeScript indicator
83
91
 
84
92
  **Step 3. Architecture Detection**
85
93
  - Analyze directory structure:
86
- - `src/app/`, `src/features/`, `src/entities/`, `src/shared/` FSD
94
+ - FSD: requires **at least 3** of `features/`, `entities/`, `shared/`, `widgets/`, `pages/` under `src/`
87
95
  - `src/domain/`, `src/application/`, `src/infrastructure/` → Clean Architecture
88
96
  - `src/modules/` → Modular
89
97
  - Other → Layered
90
- - `paths` in `tsconfig.json` → extract path_alias
91
-
92
- **Step 4. State Management Detection**
93
- - From dependencies:
94
- - `zustand` Zustand
95
- - `@reduxjs/toolkit` Redux Toolkit
96
- - `@tanstack/react-query` React Query
97
- - `swr` SWR
98
- - `pinia` → Pinia
99
-
100
- **Step 5. Styling / Testing Detection**
101
- - `tailwindcss` → Tailwind CSS
102
- - `styled-components` → styled-components
103
- - `jest` / `vitest` / `playwright` → mapped respectively
104
-
105
- **Step 6. Code Style Detection**
106
- - Check `.eslintrc*` / `eslint.config.*` → identify lint rules
107
- - `strict` in `tsconfig.json` → strict_mode
98
+ - `paths` in `tsconfig.json` → extract path alias
99
+
100
+ **Step 4. State / Styling / Testing / DB Detection**
101
+ - State management: `zustand`, `@reduxjs/toolkit`, `@tanstack/react-query`, `swr`, `pinia`, `jotai`, `recoil`
102
+ - Styling: `tailwindcss`, `styled-components`, `@emotion/react`, `sass`, CSS Modules (check for `*.module.css`)
103
+ - Testing: `jest`, `vitest`, `playwright`, `@testing-library/*`, `cypress`
104
+ - Linter: `.eslintrc*` / `eslint.config.*` / `biome.json` / `biome.jsonc`
105
+ - DB/ORM: `prisma` (check `prisma/schema.prisma`), `drizzle-orm`, `typeorm`, `@prisma/client`
106
+
107
+ **Step 5. Code Style Detection**
108
+ - Check linter config identify key rules
109
+ - `strict` in `tsconfig.json` strict mode
108
110
  - Read 2-3 existing code samples to verify naming patterns
109
111
 
110
112
  ### 4. Generate Config File
111
113
 
112
- 1. Generate config based on `${CLAUDE_PLUGIN_ROOT}/templates/afc.config.template.md`
113
- 2. Fill in blanks with auto-inferred values
114
- 3. For items that cannot be inferred: keep template defaults + mark with `# TODO: Adjust for your project`
115
- 4. Save to `.claude/afc.config.md`
114
+ Generate `.claude/afc.config.md` in **free-form markdown** format:
115
+
116
+ 1. **CI Commands** section: YAML code block with `ci`, `gate`, `test` keys (fixed format, scripts parse these)
117
+ 2. **Architecture** section: describe detected architecture style, layers, import rules, path aliases in free-form prose/lists
118
+ 3. **Code Style** section: describe detected language, strictness, naming conventions, lint rules in free-form prose/lists
119
+ 4. **Project Context** section: describe framework, state management, styling, testing, DB/ORM, risks, and any other relevant project characteristics in free-form prose/lists
120
+
121
+ Reference `${CLAUDE_PLUGIN_ROOT}/templates/afc.config.template.md` for the section structure.
122
+ Write sections as natural descriptions — **no YAML code blocks** except for CI Commands.
123
+ For items that cannot be inferred: note `TODO: Adjust for your project` inline.
124
+ Save to `.claude/afc.config.md`.
116
125
 
117
126
  ### 5. Scan Global CLAUDE.md and Detect Conflicts
118
127
 
@@ -214,10 +223,12 @@ IMPORTANT: For requests matching the afc skill routing table below, always invok
214
223
  | Spec | `afc:spec` | spec, specification |
215
224
  | Tasks | `afc:tasks` | break down tasks, decompose |
216
225
  | Research | `afc:research` | research, investigate |
226
+ | Ideate | `afc:ideate` | idea, brainstorm, what to build, product brief |
217
227
  | Ambiguous | `afc:clarify` | auto-triggered when requirements are unclear |
218
228
  | Full auto | `afc:auto` | do it automatically, auto-run |
219
229
 
220
230
  User-only (not auto-triggered — inform user on request):
231
+ - `afc:launch` — inform user when release artifact generation is requested
221
232
  - `afc:doctor` — inform user when health check is requested
222
233
  - `afc:architect` — inform user when architecture review is requested
223
234
  - `afc:security` — inform user when security scan is requested
@@ -268,7 +279,6 @@ all-for-claudecode initialization complete
268
279
 
269
280
  - **Overwrite caution**: If config file already exists, always confirm with user.
270
281
  - **Inference limits**: Auto-inference is best-effort. User may need to review and adjust.
271
- - **Preset path**: Presets are loaded from the `templates/` directory inside the plugin.
272
282
  - **`.claude/` directory**: Created automatically if it does not exist.
273
283
  - **Global CLAUDE.md principles**:
274
284
  - Never modify content outside the `<!-- AFC:START/END -->` markers (the `AFC` prefix in markers is a compact technical identifier)
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: afc:launch
3
+ description: "Generate release artifacts"
4
+ argument-hint: "[version tag or 'auto']"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ model: sonnet
13
+ ---
14
+
15
+ # /afc:launch — Generate Release Artifacts
16
+
17
+ > Generates release artifacts (CHANGELOG entry, README updates, GitHub Release notes) from git history and optional spec context.
18
+ > This is a **standalone utility** — not part of the auto pipeline.
19
+ > Works with or without a prior afc pipeline run.
20
+
21
+ ## Arguments
22
+
23
+ - `$ARGUMENTS` — (optional) One of:
24
+ - Version tag: `"v2.2.0"` — uses this as the release version
25
+ - `"auto"` — auto-detects version from package.json/Cargo.toml/pyproject.toml
26
+ - Not specified: prompts for version
27
+
28
+ ## Execution Steps
29
+
30
+ ### 1. Detect Project Context
31
+
32
+ 1. **Version detection**:
33
+ - If `$ARGUMENTS` is a version string (matches `v?\d+\.\d+\.\d+`): use it
34
+ - If `$ARGUMENTS` = `"auto"`: read version from package.json → Cargo.toml → pyproject.toml → setup.py (first found)
35
+ - If not specified: check package.json etc. for current version, present to user, confirm or override
36
+
37
+ 2. **Previous version detection**:
38
+ ```bash
39
+ git describe --tags --abbrev=0 2>/dev/null || echo "none"
40
+ ```
41
+ - If a previous tag exists: diff range = `{previous_tag}..HEAD`
42
+ - If no tags: diff range = all commits (warn user: "No previous release tag found. Including all history.")
43
+
44
+ 3. **Changelog detection**:
45
+ - Check for existing: `CHANGELOG.md` → `CHANGES.md` → `HISTORY.md`
46
+ - If found: will prepend new entry
47
+ - If not found: will create `CHANGELOG.md`
48
+
49
+ ### 2. Gather Change Context
50
+
51
+ Collect all available context for high-quality release notes:
52
+
53
+ 1. **Git history** (required):
54
+ ```bash
55
+ git log {previous_tag}..HEAD --pretty=format:"%h %s" --no-merges
56
+ ```
57
+
58
+ 2. **Changed files summary** (required):
59
+ ```bash
60
+ git diff --stat {previous_tag}..HEAD
61
+ ```
62
+
63
+ 3. **Spec context** (optional — enhances quality):
64
+ - Glob `.claude/afc/specs/*/spec.md` — if any exist, read Overview and User Stories sections
65
+ - This provides **intent context** that raw commit messages lack
66
+ - If no specs found: rely on git history only (still produces good output)
67
+
68
+ 4. **Review context** (optional):
69
+ - Glob `.claude/afc/memory/reviews/*` — if any exist from this version cycle, note key findings
70
+ - Skip if not found
71
+
72
+ 5. **Breaking change detection**:
73
+ - Grep commit messages for: `BREAKING`, `breaking change`, `!:` (conventional commits)
74
+ - Grep diffs for: deleted public exports, renamed public APIs, changed function signatures
75
+ - Flag any findings as breaking changes in the output
76
+
77
+ ### 3. Generate CHANGELOG Entry
78
+
79
+ Prepend a new entry to the changelog file:
80
+
81
+ 1. **Duplicate check**: Grep the changelog for `## [{version}]`. If an entry for this version already exists:
82
+ - Ask user: "CHANGELOG already has an entry for {version}. (1) Overwrite (2) Abort"
83
+ - If overwrite: replace the existing entry (from `## [{version}]` to the next `## [` line)
84
+ - If abort: skip CHANGELOG generation
85
+
86
+ 2. Follow the existing format if one exists; otherwise use [Keep a Changelog](https://keepachangelog.com/) format:
87
+
88
+ ```markdown
89
+ ## [{version}] - {YYYY-MM-DD}
90
+
91
+ ### Added
92
+ - {new features, described from user perspective}
93
+
94
+ ### Changed
95
+ - {modifications to existing functionality}
96
+
97
+ ### Fixed
98
+ - {bug fixes}
99
+
100
+ ### Removed
101
+ - {removed features or deprecated items}
102
+
103
+ ### Breaking Changes
104
+ - {if any — empty section omitted}
105
+ ```
106
+
107
+ **Quality rules**:
108
+ - Write from **user perspective**, not developer perspective ("Add dark mode support" not "Add ThemeProvider component")
109
+ - Group related changes into single entries (don't list every file)
110
+ - If spec context is available: use feature names from specs, not commit message fragments
111
+ - Omit empty sections (if no fixes, don't include "### Fixed")
112
+
113
+ ### 4. Update README (conditional)
114
+
115
+ Only update README if meaningful changes warrant it:
116
+
117
+ 1. **Check triggers**:
118
+ - New CLI commands or API endpoints added?
119
+ - Installation process changed?
120
+ - New dependencies or requirements?
121
+ - Feature that users need to know about?
122
+
123
+ 2. **If no triggers match**: skip README update entirely (print: "README: no updates needed")
124
+
125
+ 3. **If triggers match**: read current README, identify the relevant section, apply minimal targeted edit
126
+ - Do NOT rewrite the entire README
127
+ - Do NOT add badges, shields, or decorative elements
128
+ - Only update sections directly affected by changes
129
+
130
+ ### 5. Generate GitHub Release Notes
131
+
132
+ Create `.claude/afc/release-notes.md` (draft for `gh release create`):
133
+
134
+ ```markdown
135
+ # {version}
136
+
137
+ {2-3 sentence summary of this release — what's the headline?}
138
+
139
+ ## Highlights
140
+
141
+ - {top 1-3 user-facing changes, expanded with context}
142
+
143
+ ## What's Changed
144
+
145
+ {CHANGELOG entry content, reformatted for GitHub}
146
+
147
+ ## Breaking Changes
148
+
149
+ {if any — clear migration instructions}
150
+
151
+ **Full Changelog**: {previous_tag}...{version}
152
+ ```
153
+
154
+ ### 6. Present Summary and Next Steps
155
+
156
+ ```
157
+ Release artifacts generated: {version}
158
+ ├─ CHANGELOG.md: entry prepended ({N} items across {M} categories)
159
+ ├─ README.md: {updated section / no updates needed}
160
+ ├─ .claude/afc/release-notes.md: draft created
161
+ ├─ Breaking changes: {count or "none"}
162
+ ├─ Commits included: {N} (since {previous_tag})
163
+ └─ Specs referenced: {N or "none (git-only mode)"}
164
+
165
+ Next steps:
166
+ git add CHANGELOG.md README.md
167
+ git commit -m "docs: prepare release {version}"
168
+ git tag {version}
169
+ gh release create {version} --notes-file .claude/afc/release-notes.md
170
+ ```
171
+
172
+ **Do NOT execute these commands automatically.** Present them for the user to review and run.
173
+
174
+ ## Notes
175
+
176
+ - **Not part of the auto pipeline**. Launch is a standalone utility invoked when you're ready to release, not after every feature.
177
+ - **Non-destructive**: only creates/edits CHANGELOG and README (conditionally). Does not push, tag, or create releases automatically.
178
+ - **Git history is the source of truth**. Spec context enhances quality but is never required.
179
+ - **Conventional Commits awareness**: if the project uses conventional commits (`feat:`, `fix:`, `chore:`), the generated CHANGELOG respects those categories.
180
+ - **Idempotent**: running launch twice with the same version overwrites the release-notes.md draft and re-generates the CHANGELOG entry (warns before overwriting).
181
+ - **No scope for `clean`**: release-notes.md in `.claude/afc/` is a draft file. The user decides whether to keep or delete it after the release.
package/commands/plan.md CHANGED
@@ -109,13 +109,7 @@ Create `.claude/afc/specs/{feature}/plan.md`. **Must** follow the structure belo
109
109
  {summary of core requirements from spec + technical approach, 3-5 sentences}
110
110
 
111
111
  ## Technical Context
112
- {summary of project settings loaded from afc.config.md}
113
- - **Language**: {config.code_style.language}
114
- - **Framework**: {config.framework.name}
115
- - **State**: {config.state_management summary}
116
- - **Architecture**: {config.architecture.style}
117
- - **Styling**: {config.styling.framework}
118
- - **Testing**: {config.testing.framework}
112
+ {Summarize key project settings from afc.config.md — Architecture, Code Style, and Project Context sections}
119
113
  - **Constraints**: {constraints extracted from spec}
120
114
 
121
115
  ## Principles Check
@@ -2,7 +2,6 @@
2
2
  name: afc:principles
3
3
  description: "Manage project principles"
4
4
  argument-hint: "[action: add, remove, init]"
5
- disable-model-invocation: true
6
5
  allowed-tools:
7
6
  - Read
8
7
  - Write
@@ -2,7 +2,6 @@
2
2
  name: afc:resume
3
3
  description: "Restore session"
4
4
  argument-hint: "[no arguments]"
5
- disable-model-invocation: true
6
5
  model: haiku
7
6
  allowed-tools:
8
7
  - Read
@@ -127,12 +127,12 @@ For each changed file, examine from the following perspectives:
127
127
  - Startup/response latency concerns
128
128
  - Unnecessary computation or redundant operations
129
129
  - Resource management (memory, file handles, connections, subprocesses)
130
- - {config.framework}-specific performance patterns
130
+ - Framework-specific performance patterns (from Project Context)
131
131
 
132
132
  #### E. Project Pattern Compliance
133
133
  - {config.code_style} naming and structure conventions
134
134
  - {config.architecture} layer rules and boundaries
135
- - {config.framework}-specific idioms and best practices
135
+ - Framework-specific idioms and best practices (from Project Context)
136
136
 
137
137
  #### F. Reusability
138
138
  - Duplicate or near-duplicate logic across files
@@ -2,7 +2,6 @@
2
2
  name: afc:security
3
3
  description: "Security scan (read-only)"
4
4
  argument-hint: "[scan scope: file/directory path or full]"
5
- disable-model-invocation: true
6
5
  context: fork
7
6
  agent: afc-security
8
7
  allowed-tools:
@@ -27,16 +26,14 @@ model: sonnet
27
26
 
28
27
  ## Config Load
29
28
 
30
- Read the following settings from `CLAUDE.md` or `.claude/CLAUDE.md` at the project root and assign to the `config` variable:
29
+ **Always** read `.claude/afc.config.md` first. This file contains free-form markdown sections:
30
+ - `## Project Context` — framework, state management, testing, etc. (primary source for framework info)
31
+ - `## Architecture` — architecture pattern, layers, import rules
32
+ - `## Code Style` — language, naming conventions, lint rules
31
33
 
32
- ```
33
- config.framework = the framework used in the project
34
- (e.g., "Next.js", "Nuxt", "SvelteKit", "Express", "NestJS")
35
- → Framework specified in CLAUDE.md. Assume "unknown" if not present.
36
- config.auditCmd = dependency audit command
37
- (e.g., "yarn audit", "npm audit", "pnpm audit")
38
- → Infer from the packageManager field in package.json or the lockfile.
39
- ```
34
+ If config file is missing: read `CLAUDE.md` for framework info. Assume "unknown" if neither source has it.
35
+
36
+ For dependency audit command: infer from `packageManager` field in `package.json` or the lockfile (e.g., `npm audit`, `yarn audit`, `pnpm audit`).
40
37
 
41
38
  ## Execution Steps
42
39
 
@@ -67,7 +64,7 @@ Task("Security scan: src/shared/api/", subagent_type: general-purpose)
67
64
  - Session management vulnerabilities
68
65
 
69
66
  #### C. Sensitive Data Exposure (A02:2021)
70
- - `.env` values exposed to the client (check framework-specific public env variables for {config.framework})
67
+ - `.env` values exposed to the client (check framework-specific public env variables from Project Context)
71
68
  - Sensitive information printed via console.log
72
69
  - Internal details exposed in error messages
73
70
 
@@ -108,7 +105,7 @@ Task("Security scan: src/shared/api/", subagent_type: general-purpose)
108
105
  - **Mitigation**: {how to fix}
109
106
 
110
107
  ### Dependency Audit
111
- {config.auditCmd} result summary — if executable
108
+ {dependency audit command result summary — if executable}
112
109
 
113
110
  ### Recommended Actions
114
111
  {prioritized fix suggestions}
@@ -128,4 +125,4 @@ Security scan complete
128
125
  - **Read-only**: Does not modify code. Reports security issues only.
129
126
  - **Minimize false positives**: Account for React's default XSS defenses. Report only genuinely dangerous patterns.
130
127
  - **Handle sensitive data carefully**: Do not include actual token or password values in scan results.
131
- - **Consider context**: Reflect security specifics for the {config.framework} environment.
128
+ - **Consider context**: Reflect security specifics for the project's framework environment (from Project Context).
package/commands/test.md CHANGED
@@ -34,9 +34,9 @@ If config file is missing:
34
34
  3. If user declines → **abort**
35
35
 
36
36
  Values used from config:
37
- - `{config.testing}` — test framework (jest, vitest, playwright, etc.)
38
- - `{config.architecture}` — architecture pattern
39
- - `{config.gate}`CI validation command
37
+ - `{config.gate}` — CI validation command (from `## CI Commands` YAML)
38
+ - `{config.architecture}` — architecture pattern (from `## Architecture` section)
39
+ - Test framework info from `## Project Context` section
40
40
 
41
41
  ## Execution Steps
42
42
 
@@ -63,7 +63,7 @@ Values used from config:
63
63
  ```markdown
64
64
  ### Test Strategy
65
65
  - Target: {file/feature}
66
- - Framework: {config.testing}
66
+ - Framework: {test framework from Project Context}
67
67
  - Test types:
68
68
  - [ ] Unit tests: {list of target functions/methods}
69
69
  - [ ] Integration tests: {component interactions}
@@ -17,7 +17,7 @@ After each Phase completes, perform **3-step verification** sequentially:
17
17
 
18
18
  ## Step 2. Mini-Review
19
19
 
20
- Quantitatively inspect `{config.mini_review}` items for files changed within the Phase:
20
+ Quantitatively inspect changed files within the Phase against `{config.code_style}` and `{config.architecture}` rules:
21
21
  - List changed files and perform the inspection **for each file**
22
22
  - Output format:
23
23
  ```
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "all-for-claudecode",
3
- "version": "2.1.0",
4
- "description": "Claude Code plugin that automates the full dev cycle — spec, plan, tasks, implement, review, clean. 18 commands, 17 hooks, 5 presets.",
3
+ "version": "2.2.0",
4
+ "description": "Claude Code plugin that automates the full dev cycle — spec, plan, implement, review, clean.",
5
5
  "bin": {
6
6
  "all-for-claudecode": "bin/cli.mjs"
7
7
  },
@@ -34,7 +34,7 @@
34
34
  "url": "https://github.com/jhlee0409/all-for-claudecode/issues"
35
35
  },
36
36
  "scripts": {
37
- "lint": "shellcheck -x --source-path=scripts scripts/*.sh && bash scripts/afc-schema-validate.sh --all",
37
+ "lint": "shellcheck -x --source-path=scripts scripts/*.sh && bash scripts/afc-schema-validate.sh --all && bash scripts/afc-consistency-check.sh",
38
38
  "test": "vendor/shellspec/shellspec",
39
39
  "test:all": "npm run lint && npm run test",
40
40
  "setup:test": "bash scripts/install-shellspec.sh"
@@ -46,19 +46,25 @@
46
46
  "claude-code",
47
47
  "claude-code-plugin",
48
48
  "claude-code-plugins",
49
- "plugin",
49
+ "claude-plugin",
50
+ "anthropic",
50
51
  "pipeline",
51
52
  "automation",
53
+ "workflow-automation",
54
+ "development-workflow",
55
+ "sdlc-automation",
52
56
  "hooks",
53
57
  "slash-commands",
54
58
  "developer-tools",
55
59
  "ai-agents",
56
60
  "agentic-coding",
61
+ "ai-coding",
57
62
  "code-review",
58
- "spec",
59
- "plan",
60
- "implement",
61
- "review",
62
- "critic-loop"
63
+ "code-generation",
64
+ "quality-gates",
65
+ "ci-gates",
66
+ "critic-loop",
67
+ "task-orchestration",
68
+ "spec-driven-development"
63
69
  ]
64
70
  }