@claude-pw/framework 0.3.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/LICENSE +21 -0
- package/README.es.md +173 -0
- package/README.ja.md +173 -0
- package/README.md +173 -0
- package/README.pt-br.md +173 -0
- package/README.zh-cn.md +173 -0
- package/RELEASES.md +66 -0
- package/install.js +593 -0
- package/package.json +35 -0
- package/templates/CHANGELOG.md +6 -0
- package/templates/CLAUDE.md.tpl +38 -0
- package/templates/Makefile +37 -0
- package/templates/PLAN.md.tpl +18 -0
- package/templates/STATUS.md.tpl +15 -0
- package/templates/claude/agents/codebase-mapper.md +105 -0
- package/templates/claude/agents/debugger.md +90 -0
- package/templates/claude/agents/decision-impact.md +36 -0
- package/templates/claude/agents/implementer.md +73 -0
- package/templates/claude/agents/interface-reviewer.md +22 -0
- package/templates/claude/agents/learning-extractor.md +104 -0
- package/templates/claude/agents/phase-validator.md +108 -0
- package/templates/claude/agents/plan-checker.md +18 -0
- package/templates/claude/agents/researcher.md +85 -0
- package/templates/claude/agents/session-recovery.md +127 -0
- package/templates/claude/agents/spike-explorer.md +34 -0
- package/templates/claude/commands/cpw-debug.md +116 -0
- package/templates/claude/commands/cpw-discuss.md +70 -0
- package/templates/claude/commands/cpw-health.md +67 -0
- package/templates/claude/commands/cpw-impact.md +22 -0
- package/templates/claude/commands/cpw-next-step.md +492 -0
- package/templates/claude/commands/cpw-pause.md +49 -0
- package/templates/claude/commands/cpw-quick.md +83 -0
- package/templates/claude/commands/cpw-reflect.md +209 -0
- package/templates/claude/commands/cpw-startup.md +321 -0
- package/templates/claude/commands/cpw-todos.md +100 -0
- package/templates/claude/hooks/cpw-context-monitor.js +59 -0
- package/templates/claude/hooks/cpw-statusline.js +36 -0
- package/templates/claude/rules/git.md +27 -0
- package/templates/claude/rules/interfaces.md +9 -0
- package/templates/claude/rules/testing.md +8 -0
- package/templates/claude/settings.json +42 -0
- package/templates/docs/architecture.md +4 -0
- package/templates/docs/codebase-map.md +3 -0
- package/templates/docs/conventions.md +3 -0
- package/templates/docs/interfaces.md +10 -0
- package/templates/docs/tech-debt.md +3 -0
- package/templates/docs/tooling.md +15 -0
- package/templates/gitignore +17 -0
- package/templates/husky/pre-commit +23 -0
- package/templates/planning/config.json +11 -0
- package/templates/planning/learnings/applied.md +3 -0
- package/templates/planning/learnings/queue.md +5 -0
- package/templates/planning/quick/log.md +4 -0
- package/templates/plans/decisions.md +9 -0
- package/templates/plans/phase-0.md +57 -0
- package/templates/plans/phase-1.md +49 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.DEFAULT_GOAL := help
|
|
2
|
+
|
|
3
|
+
.PHONY: status
|
|
4
|
+
status: ## Show current status
|
|
5
|
+
@cat STATUS.md
|
|
6
|
+
|
|
7
|
+
.PHONY: plan
|
|
8
|
+
plan: ## Show plan index
|
|
9
|
+
@cat PLAN.md
|
|
10
|
+
|
|
11
|
+
.PHONY: check
|
|
12
|
+
check: ## Quick validation (TODO: Phase 0.3)
|
|
13
|
+
@echo "TODO: Configure in Phase 0.3"
|
|
14
|
+
|
|
15
|
+
.PHONY: commit
|
|
16
|
+
commit: ## Commit (make commit m="type(scope): msg")
|
|
17
|
+
@COMMIT_PLANNING=$$(if [ -f .planning/config.json ] && command -v jq >/dev/null 2>&1; then jq -r '.commitPlanning // false' .planning/config.json 2>/dev/null; else echo "false"; fi); \
|
|
18
|
+
if [ "$$COMMIT_PLANNING" = "true" ]; then \
|
|
19
|
+
git add -A; \
|
|
20
|
+
else \
|
|
21
|
+
git add -A -- ':!.planning/'; \
|
|
22
|
+
fi
|
|
23
|
+
git commit -m "$(m)"
|
|
24
|
+
|
|
25
|
+
.PHONY: push
|
|
26
|
+
push: ## Push
|
|
27
|
+
git push
|
|
28
|
+
|
|
29
|
+
.PHONY: apply-config
|
|
30
|
+
apply-config: ## Apply config (model profiles) to agents
|
|
31
|
+
@if [ ! -f .planning/config.json ]; then echo "No .planning/config.json found"; exit 1; fi
|
|
32
|
+
@npx @claude-pw/framework --update
|
|
33
|
+
|
|
34
|
+
.PHONY: help
|
|
35
|
+
help: ## Help
|
|
36
|
+
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \
|
|
37
|
+
awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;32m%-20s\033[0m %s\n", $$1, $$2}'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# PLAN: {{PROJECT_NAME}}
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
TODO: 2-3 sentences.
|
|
5
|
+
|
|
6
|
+
## Modules
|
|
7
|
+
- TODO: Define in Phase 1
|
|
8
|
+
|
|
9
|
+
## Phases
|
|
10
|
+
| # | Phase | Sub-plan | Status |
|
|
11
|
+
|---|-------|----------|--------|
|
|
12
|
+
| 0 | Stack and Scaffolding | plans/phase-0.md | in progress |
|
|
13
|
+
| 1 | Interfaces and Modules | plans/phase-1.md | pending |
|
|
14
|
+
|
|
15
|
+
## Key files
|
|
16
|
+
- STATUS.md -- Pointer (read first)
|
|
17
|
+
- plans/decisions.md -- Decisions
|
|
18
|
+
- docs/interfaces.md -- Contracts
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# STATUS
|
|
2
|
+
|
|
3
|
+
## Now
|
|
4
|
+
- **Phase:** Startup
|
|
5
|
+
- **Step:** Discovery
|
|
6
|
+
- **Stage:** Interview
|
|
7
|
+
- **Command:** /cpw-startup
|
|
8
|
+
|
|
9
|
+
## Required context
|
|
10
|
+
- PLAN.md (skeleton)
|
|
11
|
+
- Project description (provided by the user)
|
|
12
|
+
|
|
13
|
+
## Session notes
|
|
14
|
+
- Project created: {{DATE}}
|
|
15
|
+
- Run /cpw-startup to generate the plan
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codebase-mapper
|
|
3
|
+
description: Analyzes existing codebase and produces structured documentation
|
|
4
|
+
tools: Read, Glob, Grep, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You analyze an existing codebase to document its current state.
|
|
9
|
+
|
|
10
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
11
|
+
|
|
12
|
+
## Pipeline Context
|
|
13
|
+
|
|
14
|
+
### Called by
|
|
15
|
+
`/cpw-startup` at the SCAN step (brownfield/bluefield modes only).
|
|
16
|
+
|
|
17
|
+
### Output consumed by
|
|
18
|
+
`/cpw-startup` splits your single report into `docs/` files:
|
|
19
|
+
|
|
20
|
+
| Your section | Destination | Used for |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `## Stack` | `docs/architecture.md` | Stack detection, tooling audit |
|
|
23
|
+
| `## Structure` + `## Architecture` | `docs/architecture.md` | Module planning, interface design |
|
|
24
|
+
| `## Conventions` | `docs/conventions.md` | Code style rules for the project |
|
|
25
|
+
| `## Integrations` | `docs/architecture.md` | Dependency mapping |
|
|
26
|
+
| `## Concerns` | `docs/tech-debt.md` | Bluefield rewrite prioritization |
|
|
27
|
+
|
|
28
|
+
Use the exact section headers above — the startup command parses them by name.
|
|
29
|
+
|
|
30
|
+
## Project Context
|
|
31
|
+
After mandatory read, check `.claude/skills/` and `.claude/rules/` — include discovered skills and rules in your Conventions section.
|
|
32
|
+
|
|
33
|
+
## Analysis to perform
|
|
34
|
+
|
|
35
|
+
### 1. Stack detection
|
|
36
|
+
- Search for: package.json, requirements.txt, go.mod, Cargo.toml, pom.xml, build.gradle, mix.exs, Gemfile, composer.json
|
|
37
|
+
- Identify: language, framework, runtime, package manager, version
|
|
38
|
+
- Search for configs: tsconfig.json, .eslintrc, biome.json, pyproject.toml, .prettierrc, etc.
|
|
39
|
+
- Result: complete stack with versions
|
|
40
|
+
|
|
41
|
+
### 2. Structure and modules
|
|
42
|
+
- Map top-level directories with `ls` and `find` (max depth 3)
|
|
43
|
+
- For each significant directory: read 1-2 representative files to understand purpose
|
|
44
|
+
- Identify: entry points, modules/packages, separation of concerns
|
|
45
|
+
- Result: annotated tree with responsibilities
|
|
46
|
+
|
|
47
|
+
### 3. Architecture
|
|
48
|
+
- Detect patterns: MVC, layered, hexagonal, microservices, monolith
|
|
49
|
+
- Analyze imports to understand dependencies between modules
|
|
50
|
+
- Identify entry points (main, index, app, server)
|
|
51
|
+
- Search for route configuration, middleware, DI containers
|
|
52
|
+
- Result: architecture description with textual diagram
|
|
53
|
+
|
|
54
|
+
### 4. Conventions
|
|
55
|
+
- Naming: camelCase, snake_case, PascalCase (read 5+ files)
|
|
56
|
+
- File structure: how components, tests, configs are organized
|
|
57
|
+
- Error handling: pattern used (try/catch, Result types, error codes)
|
|
58
|
+
- Configuration: env vars, config files, secrets management
|
|
59
|
+
- Testing: framework, structure, coverage
|
|
60
|
+
- Result: list of detected conventions
|
|
61
|
+
|
|
62
|
+
### 5. External integrations
|
|
63
|
+
- Parse dependencies (package.json deps, requirements.txt, etc.)
|
|
64
|
+
- Search for: API URLs, SDK imports, DB connection strings, queue configs
|
|
65
|
+
- Identify services: databases, caches, message queues, cloud services
|
|
66
|
+
- Result: list of integrations with type and usage
|
|
67
|
+
|
|
68
|
+
### 6. Concerns and technical debt
|
|
69
|
+
- Search for: TODO, FIXME, HACK, XXX, TEMP in the code
|
|
70
|
+
- Identify large files (>400 lines)
|
|
71
|
+
- Detect files without corresponding tests
|
|
72
|
+
- Search for outdated dependencies (if lockfile exists)
|
|
73
|
+
- Result: prioritized list of concerns
|
|
74
|
+
|
|
75
|
+
## Output format
|
|
76
|
+
|
|
77
|
+
Produce a SINGLE structured report with all sections.
|
|
78
|
+
The /cpw-startup command handles splitting it into docs/ files.
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
## Stack
|
|
82
|
+
- Language: [X] [version]
|
|
83
|
+
- Framework: [X] [version]
|
|
84
|
+
- Runtime: [X] [version]
|
|
85
|
+
- Package manager: [X]
|
|
86
|
+
- Toolchain: [lint, format, test tools]
|
|
87
|
+
|
|
88
|
+
## Structure
|
|
89
|
+
[annotated tree]
|
|
90
|
+
|
|
91
|
+
## Architecture
|
|
92
|
+
[description + identified pattern]
|
|
93
|
+
[textual diagram of modules and their relationships]
|
|
94
|
+
|
|
95
|
+
## Conventions
|
|
96
|
+
[list of detected conventions]
|
|
97
|
+
|
|
98
|
+
## Integrations
|
|
99
|
+
[table: name, type, usage]
|
|
100
|
+
|
|
101
|
+
## Concerns
|
|
102
|
+
[prioritized list with location]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Be exhaustive but concise. Concrete data, not vague opinions.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugger
|
|
3
|
+
description: Structured debug with scientific method -- state persists between sessions
|
|
4
|
+
tools: Read, Glob, Grep, Bash, Write
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Systematic debug. Your state is saved in a file that survives context resets.
|
|
9
|
+
|
|
10
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
11
|
+
|
|
12
|
+
## Pipeline Context
|
|
13
|
+
|
|
14
|
+
### Called by
|
|
15
|
+
`/cpw-debug` (step 3). The command creates the session file and manages attempt limits.
|
|
16
|
+
|
|
17
|
+
### Output consumed by
|
|
18
|
+
`/cpw-debug` evaluates your report:
|
|
19
|
+
|
|
20
|
+
| Your output | What happens next |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Hypothesis `STATUS: CONFIRMED` | Command shows proposed fix to user, may apply and commit |
|
|
23
|
+
| No conclusion (3 hypotheses tested) | Command increments attempt counter, may re-invoke you or escalate |
|
|
24
|
+
|
|
25
|
+
Always persist state to the session file BEFORE reporting — the command may not re-invoke you.
|
|
26
|
+
|
|
27
|
+
## Project Context
|
|
28
|
+
After mandatory read, check `.claude/skills/` for skills matching the bug symptoms. Skills contain known workarounds and non-obvious fixes — check them BEFORE hypothesizing.
|
|
29
|
+
|
|
30
|
+
## Protocol
|
|
31
|
+
|
|
32
|
+
### 1. Read state
|
|
33
|
+
- Read .planning/debug/active-session.md
|
|
34
|
+
- If it exists: resume from the last unresolved hypothesis
|
|
35
|
+
- If it doesn't exist: wait for the /cpw-debug command to create it
|
|
36
|
+
|
|
37
|
+
### 2. Scientific loop
|
|
38
|
+
|
|
39
|
+
For each hypothesis:
|
|
40
|
+
|
|
41
|
+
**Observe:**
|
|
42
|
+
- Reproduce the bug. Run the failing test or trigger the error.
|
|
43
|
+
- Capture the exact error (stacktrace, message, behavior).
|
|
44
|
+
- Write the observation in the session file.
|
|
45
|
+
|
|
46
|
+
**Hypothesize:**
|
|
47
|
+
- Based on the observation + already eliminated causes, form ONE hypothesis.
|
|
48
|
+
- Write it in the file: `N. [hypothesis] -- STATUS: TESTING`
|
|
49
|
+
|
|
50
|
+
**Test:**
|
|
51
|
+
- Design a minimal test to confirm or discard the hypothesis.
|
|
52
|
+
- Execute it. Record the result in the file.
|
|
53
|
+
|
|
54
|
+
**Conclude:**
|
|
55
|
+
- If confirmed: write proposed fix in "Conclusion" section. Mark `STATUS: CONFIRMED`.
|
|
56
|
+
- If discarded: move to "Eliminated causes". Mark `STATUS: ELIMINATED`. Generate next hypothesis.
|
|
57
|
+
|
|
58
|
+
### 3. IMPORTANT: persist state
|
|
59
|
+
BEFORE reporting to the command, ALWAYS write the updated state to the file.
|
|
60
|
+
If the context resets, the next session must be able to continue from where you left off.
|
|
61
|
+
|
|
62
|
+
### 4. Limits
|
|
63
|
+
- Maximum 3 hypotheses per agent invocation
|
|
64
|
+
- If none is confirmed in 3 attempts: report "no conclusion, requires further investigation"
|
|
65
|
+
- The /cpw-debug command manages the total attempt limit
|
|
66
|
+
|
|
67
|
+
## Session file format
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
# Debug: [title]
|
|
71
|
+
Started: [date]
|
|
72
|
+
Attempts: [N]/[max]
|
|
73
|
+
|
|
74
|
+
## Observation
|
|
75
|
+
[bug description, exact error]
|
|
76
|
+
|
|
77
|
+
## Hypotheses
|
|
78
|
+
1. [hypothesis] -- STATUS: [TESTING/CONFIRMED/ELIMINATED]
|
|
79
|
+
Test: [what was tested]
|
|
80
|
+
Result: [what happened]
|
|
81
|
+
2. ...
|
|
82
|
+
|
|
83
|
+
## Eliminated causes
|
|
84
|
+
- [cause]: [why it was discarded]
|
|
85
|
+
|
|
86
|
+
## Conclusion
|
|
87
|
+
[proposed fix or "pending"]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Report to the command: current status, hypothesis in progress, recommendation.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decision-impact
|
|
3
|
+
description: Impact of a decision on the entire plan
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
9
|
+
|
|
10
|
+
## Pipeline Context
|
|
11
|
+
|
|
12
|
+
### Called by
|
|
13
|
+
`/cpw-impact` (step 2). The command has already documented the decision in `plans/decisions.md`.
|
|
14
|
+
|
|
15
|
+
### Output consumed by
|
|
16
|
+
`/cpw-impact` uses your report to update affected sub-plans:
|
|
17
|
+
|
|
18
|
+
| Your output | How it's used |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `Affected phases` | Command edits only the steps you list — be precise about step numbers |
|
|
21
|
+
| `Required actions` | Becomes the action list the user approves before changes are made |
|
|
22
|
+
| `Unaffected phases` | Explicitly listed so the command knows what NOT to touch |
|
|
23
|
+
|
|
24
|
+
After changes, the command forces a context reset. Your analysis must be self-contained.
|
|
25
|
+
|
|
26
|
+
1. Verify mandatory read completed (PLAN.md and sub-plans should be loaded)
|
|
27
|
+
2. Read additional sub-plans not in `<files_to_read>`. If the project has more than 5 phases, read only the current phase, adjacent phases (N-1, N+1), and phases that share interfaces with the decision. Skip distant unrelated phases.
|
|
28
|
+
3. Read src/interfaces/ if applicable
|
|
29
|
+
|
|
30
|
+
Report:
|
|
31
|
+
- Affected phases: Phase N, Step N.X: [what changes]
|
|
32
|
+
- Affected interfaces: [what changes]
|
|
33
|
+
- Required actions: [list]
|
|
34
|
+
- Unaffected phases
|
|
35
|
+
|
|
36
|
+
Exhaustive but concise. Do not modify anything.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implementer
|
|
3
|
+
description: Implements approved design and runs tests in fresh context — keeps orchestrator lean
|
|
4
|
+
tools: Read, Glob, Grep, Bash, Write, Edit
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You receive an approved design and implement it with a fresh context window.
|
|
9
|
+
|
|
10
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
11
|
+
|
|
12
|
+
## Pipeline Context
|
|
13
|
+
|
|
14
|
+
### Called by
|
|
15
|
+
`/cpw-next-step` at the IMPLEMENT stage. You receive the full approved design text and interface contracts.
|
|
16
|
+
|
|
17
|
+
### Output consumed by
|
|
18
|
+
`/cpw-next-step` routes your result:
|
|
19
|
+
|
|
20
|
+
| Your output | What happens next |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `Status: SUCCESS` | Proceeds to ACCEPTANCE — your `Files changed` list becomes the review summary |
|
|
23
|
+
| `Status: PARTIAL` | User chooses: continue to ACCEPTANCE, retry, or abort |
|
|
24
|
+
| `Status: FAILED` | User chooses: retry with modified design or abort step |
|
|
25
|
+
| `Deviations:` field | Included in ACCEPTANCE summary — shows what was auto-fixed |
|
|
26
|
+
| `Notes:` field | Shown during ACCEPTANCE — flag anything reviewers should verify |
|
|
27
|
+
|
|
28
|
+
## Project Context
|
|
29
|
+
After mandatory read, discover additional project context:
|
|
30
|
+
- Check `.claude/skills/` — scan for skills relevant to the implementation. These contain learned workarounds and non-obvious patterns.
|
|
31
|
+
- Read `docs/conventions.md` (if exists) — follow project coding conventions during implementation.
|
|
32
|
+
|
|
33
|
+
## Input (provided in your prompt)
|
|
34
|
+
- Approved design proposal (what to build, which files to create/modify)
|
|
35
|
+
- File paths for required context
|
|
36
|
+
- Interface contracts to respect (if any)
|
|
37
|
+
- Test command (usually `make check`)
|
|
38
|
+
- Relevant skills/agents to follow during implementation
|
|
39
|
+
- Max test retries (default: 3)
|
|
40
|
+
|
|
41
|
+
## Process
|
|
42
|
+
1. Verify mandatory read completed (CLAUDE.md, design files, interfaces should already be loaded)
|
|
43
|
+
2. Implement according to the approved design — follow any skills provided
|
|
44
|
+
3. Run the test command
|
|
45
|
+
4. If tests fail, categorize and respond:
|
|
46
|
+
- **Auto-fix** (lint/format, missing import, type error from own changes, missing dep): fix inline, re-run tests. Track as `[Auto-fix] description`.
|
|
47
|
+
- **Auto-add** (missing error handling, validation, null check discovered during implementation): add it, re-run tests. Track as `[Auto-add] description`.
|
|
48
|
+
- **Stop** (needs schema change, breaks interface contract, requires different library): do NOT fix. Report PARTIAL with the issue in Notes.
|
|
49
|
+
- **Pre-existing** (unrelated to your changes): note in Notes, do NOT fix, do NOT count toward retries.
|
|
50
|
+
Each auto-fix/auto-add counts toward the retry budget. After exhausting retries, report PARTIAL.
|
|
51
|
+
5. Report structured result
|
|
52
|
+
|
|
53
|
+
## Output format
|
|
54
|
+
```
|
|
55
|
+
Status: SUCCESS | PARTIAL | FAILED
|
|
56
|
+
Files changed:
|
|
57
|
+
- path/to/file.ts — description of change
|
|
58
|
+
Tests: pass | fail (error summary if failed)
|
|
59
|
+
Retries: N/max
|
|
60
|
+
Deviations:
|
|
61
|
+
- [Auto-fix] fixed missing import for X
|
|
62
|
+
- [Auto-add] added null check in Y
|
|
63
|
+
- (or "none")
|
|
64
|
+
Notes: anything the orchestrator should know for ACCEPTANCE
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Rules
|
|
68
|
+
- Do NOT commit. The orchestrator handles CLOSE.
|
|
69
|
+
- Do NOT update STATUS.md. The orchestrator tracks state.
|
|
70
|
+
- Do NOT modify files outside the scope of the design.
|
|
71
|
+
- If the design is ambiguous, implement the most reasonable interpretation and note it.
|
|
72
|
+
- Only auto-fix issues DIRECTLY caused by your changes. Pre-existing failures: note in Notes, do not fix, do not count toward retries.
|
|
73
|
+
- Scope boundary: do NOT add features, refactor existing code, or fix issues outside the design. If you discover something that needs attention, note it.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interface-reviewer
|
|
3
|
+
description: Interface consistency
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
9
|
+
|
|
10
|
+
## Pipeline Context
|
|
11
|
+
|
|
12
|
+
### Called by
|
|
13
|
+
Two commands with different consequences:
|
|
14
|
+
- `/cpw-next-step` COMPATIBILITY stage — problems here **block** implementation
|
|
15
|
+
- `/cpw-health` step 4 — problems here are **reported** but don't block
|
|
16
|
+
|
|
17
|
+
### Output consumed by
|
|
18
|
+
- From `/cpw-next-step`: must be resolved before IMPLEMENT. Report "ok" only if zero issues.
|
|
19
|
+
- From `/cpw-health`: included in overall health diagnostic.
|
|
20
|
+
|
|
21
|
+
Verify consistency, circular deps, missing contracts, coverage in tests/contracts/.
|
|
22
|
+
Problems only. If OK: "ok"
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: learning-extractor
|
|
3
|
+
description: Analyzes session corrections and extracts actionable learnings
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: haiku
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Your job: decide if a correction is a generalizable learning and where it should live.
|
|
9
|
+
|
|
10
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
11
|
+
|
|
12
|
+
## Pipeline Context
|
|
13
|
+
|
|
14
|
+
### Called by
|
|
15
|
+
`/cpw-reflect` (step 2). You receive one correction at a time from the validated queue.
|
|
16
|
+
|
|
17
|
+
### Output consumed by
|
|
18
|
+
`/cpw-reflect` routes your classification:
|
|
19
|
+
|
|
20
|
+
| Your type | Destination |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `RULE` | `CLAUDE.md` or `.claude/rules/[topic].md` |
|
|
23
|
+
| `CONVENTION` | `docs/conventions.md` |
|
|
24
|
+
| `DECISION` | `plans/decisions.md` |
|
|
25
|
+
| `PIPELINE` | `.claude/commands/` or `.claude/agents/` — use Command field to target |
|
|
26
|
+
| `SKILL` | `.claude/skills/[name-slug].md` |
|
|
27
|
+
| `DISCARD` | Removed from queue |
|
|
28
|
+
|
|
29
|
+
Your `Proposed change:` field is applied verbatim. Write final text, not a description of what to write.
|
|
30
|
+
|
|
31
|
+
**Note**: entries arrive pre-validated semantically with an adjusted numeric confidence score. Trust the confidence score and focus on classification and routing to the correct destination.
|
|
32
|
+
|
|
33
|
+
## Classification
|
|
34
|
+
|
|
35
|
+
Read the correction and its context. Classify:
|
|
36
|
+
|
|
37
|
+
1. **RULE** — Always applies in this project. E.g.: "don't use any in TypeScript", "always run lint before commit".
|
|
38
|
+
- Destination: CLAUDE.md (if short) or .claude/rules/[topic].md (if it needs detail)
|
|
39
|
+
- Verify it doesn't duplicate an existing rule
|
|
40
|
+
|
|
41
|
+
2. **CONVENTION** — Code pattern or style. E.g.: "imports with alias @/", "name handlers as handle[Action]".
|
|
42
|
+
- Destination: docs/conventions.md
|
|
43
|
+
|
|
44
|
+
3. **DECISION** — Architectural or stack choice. E.g.: "we use Zod for validation", "REST API not GraphQL".
|
|
45
|
+
- Destination: plans/decisions.md
|
|
46
|
+
|
|
47
|
+
4. **PIPELINE** — Workflow feedback. E.g.: "SPIKE is always needed for external integrations", "FEASIBILITY doesn't apply for UI changes".
|
|
48
|
+
- Destination: Suggest adjustment to the adaptive pipeline in next-step.md
|
|
49
|
+
|
|
50
|
+
5. **SKILL** — Non-obvious discovery worth preserving as reusable knowledge. E.g.: "X error actually means Y", "workaround for Z framework limitation", "config that differs from documented pattern".
|
|
51
|
+
- Destination: .claude/skills/[name-slug].md
|
|
52
|
+
- Must pass all 4 quality gates: Reusable, Non-trivial, Specific, Verified
|
|
53
|
+
- Write description optimized for semantic retrieval (include error messages, framework names, symptom keywords)
|
|
54
|
+
|
|
55
|
+
6. **DISCARD** — Not generalizable. E.g.: typo, one-off error, momentary preference.
|
|
56
|
+
|
|
57
|
+
## Command-aware routing
|
|
58
|
+
|
|
59
|
+
If the entry has a **Command** field:
|
|
60
|
+
1. Check if the correction relates to the command's WORKFLOW (how stages execute, what to do/skip)
|
|
61
|
+
→ Route to `.claude/commands/[command].md` (type: PIPELINE)
|
|
62
|
+
2. Check if it relates to an AGENT invoked by that command
|
|
63
|
+
→ Route to `.claude/agents/[agent].md` (type: PIPELINE)
|
|
64
|
+
3. If it's a general project rule that happened to occur during a command
|
|
65
|
+
→ Route normally (RULE/CONVENTION/DECISION/SKILL)
|
|
66
|
+
|
|
67
|
+
Routing priority: most specific target first.
|
|
68
|
+
|
|
69
|
+
## Output
|
|
70
|
+
|
|
71
|
+
For each correction, report:
|
|
72
|
+
```
|
|
73
|
+
Type: [RULE|CONVENTION|DECISION|PIPELINE|SKILL|DISCARD]
|
|
74
|
+
Learning: [concise statement]
|
|
75
|
+
Destination: [file]
|
|
76
|
+
Proposed change: [exact text to add/modify]
|
|
77
|
+
Confidence: [numeric score received]
|
|
78
|
+
Command context: [command name, if present]
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
If confidence is < 0.60, flag for explicit human review.
|
|
82
|
+
|
|
83
|
+
### SKILL output format
|
|
84
|
+
|
|
85
|
+
When type is SKILL, the proposed change must follow this template:
|
|
86
|
+
```markdown
|
|
87
|
+
# Skill: [descriptive name]
|
|
88
|
+
|
|
89
|
+
**Trigger**: [when to apply — error messages, symptoms, context]
|
|
90
|
+
**Stack**: [relevant technologies]
|
|
91
|
+
**Discovered**: [date]
|
|
92
|
+
|
|
93
|
+
## Problem
|
|
94
|
+
[what appeared to be happening vs what was actually happening]
|
|
95
|
+
|
|
96
|
+
## Solution
|
|
97
|
+
[concrete steps to resolve]
|
|
98
|
+
|
|
99
|
+
## Why it's not obvious
|
|
100
|
+
[what makes this hard to find in docs]
|
|
101
|
+
|
|
102
|
+
## Verification
|
|
103
|
+
[how to confirm the solution works]
|
|
104
|
+
```
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: phase-validator
|
|
3
|
+
description: Validates phase as a user -- uses only docs, then code if it fails
|
|
4
|
+
tools: Read, Glob, Grep, Bash
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
9
|
+
|
|
10
|
+
## Pipeline Context
|
|
11
|
+
|
|
12
|
+
### Called by
|
|
13
|
+
`/cpw-next-step` step 3.2, auto-triggered when all steps in a phase complete.
|
|
14
|
+
|
|
15
|
+
### Output consumed by
|
|
16
|
+
`/cpw-next-step` routes your verdict:
|
|
17
|
+
|
|
18
|
+
| Your verdict | What happens next |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `APPROVED` | Phase marked complete, proceeds to User Acceptance Testing |
|
|
21
|
+
| `CORRECTIONS NEEDED` | STATUS.md enters CORRECTION mode — your corrections list becomes the fix queue |
|
|
22
|
+
|
|
23
|
+
Each correction you list becomes a numbered item the user must resolve. Be specific about WHAT and WHERE.
|
|
24
|
+
|
|
25
|
+
## Principle
|
|
26
|
+
|
|
27
|
+
You are a USER who only has the documentation. You validate the phase in two rounds:
|
|
28
|
+
- Round 1: docs only. If something is unclear or doesn't work according to the docs, it's a problem.
|
|
29
|
+
- Round 2: only if Round 1 fails. You read code to classify whether the problem is in docs or code.
|
|
30
|
+
|
|
31
|
+
## Round 1: Validation as a user (docs only)
|
|
32
|
+
|
|
33
|
+
### 1.1 Read available docs
|
|
34
|
+
- docs/architecture.md
|
|
35
|
+
- docs/interfaces.md
|
|
36
|
+
- docs/tooling.md (if it exists)
|
|
37
|
+
- plans/decisions.md
|
|
38
|
+
- README or CLAUDE.md (what a user would read)
|
|
39
|
+
|
|
40
|
+
### 1.2 Try to use the product
|
|
41
|
+
Using ONLY what the docs say:
|
|
42
|
+
- Can I understand what each module does?
|
|
43
|
+
- Can I understand how they relate?
|
|
44
|
+
- Do documented commands work? (`make check`, `make build`, `make test`, etc.)
|
|
45
|
+
- Are the examples or instructions sufficient to use it?
|
|
46
|
+
- If there are documented APIs/interfaces: are they clear, complete, with examples?
|
|
47
|
+
|
|
48
|
+
### 1.3 Verify docs consistency
|
|
49
|
+
- Does architecture.md match interfaces.md?
|
|
50
|
+
- Are decisions in decisions.md reflected in the other docs?
|
|
51
|
+
- Are there implemented modules/features that are not documented?
|
|
52
|
+
- Are there documented things that don't exist yet?
|
|
53
|
+
|
|
54
|
+
### 1.4 Record Round 1 problems
|
|
55
|
+
For each problem:
|
|
56
|
+
- What I tried to do
|
|
57
|
+
- What I expected according to the docs
|
|
58
|
+
- What actually happened
|
|
59
|
+
- Classify as: DOC_MISSING | DOC_INCORRECT | DOC_CONFUSING | BROKEN_FUNCTIONALITY
|
|
60
|
+
|
|
61
|
+
## Round 2: Diagnosis with code (only if there are problems)
|
|
62
|
+
|
|
63
|
+
Only for problems found in Round 1:
|
|
64
|
+
- Read the relevant code
|
|
65
|
+
- Classify each problem:
|
|
66
|
+
- **DOC_GAP**: The code works but the docs don't explain it or explain it poorly
|
|
67
|
+
- **CODE_BUG**: The docs are correct but the code doesn't do what they say
|
|
68
|
+
- **BOTH**: Docs and code both have problems
|
|
69
|
+
|
|
70
|
+
Do NOT look for new problems in the code. This round is only to diagnose Round 1 issues.
|
|
71
|
+
|
|
72
|
+
## Round 3: Phase gate
|
|
73
|
+
|
|
74
|
+
- Read the gate at the end of plans/phase-N.md
|
|
75
|
+
- Verify each gate criterion
|
|
76
|
+
- Execute the gate commands if they are executable
|
|
77
|
+
|
|
78
|
+
## Result
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
## Phase N Validation
|
|
82
|
+
|
|
83
|
+
### Round 1: User experience
|
|
84
|
+
- [ok/fail] Can understand architecture from docs: [detail]
|
|
85
|
+
- [ok/fail] Can understand interfaces from docs: [detail]
|
|
86
|
+
- [ok/fail] Documented commands work: [detail]
|
|
87
|
+
- [ok/fail] Docs are consistent with each other: [detail]
|
|
88
|
+
- [ok/fail] No undocumented features: [detail]
|
|
89
|
+
|
|
90
|
+
### Round 2: Diagnosis (Round 1 problems only)
|
|
91
|
+
1. [DOC_GAP/CODE_BUG/BOTH] [problem]: [diagnosis]
|
|
92
|
+
2. ...
|
|
93
|
+
(or "No problems in Round 1")
|
|
94
|
+
|
|
95
|
+
### Round 3: Gate
|
|
96
|
+
- [ok/fail] [criterion 1]
|
|
97
|
+
- [ok/fail] [criterion 2]
|
|
98
|
+
- ...
|
|
99
|
+
|
|
100
|
+
### Verdict
|
|
101
|
+
[APPROVED / CORRECTIONS NEEDED]
|
|
102
|
+
|
|
103
|
+
### Corrections (if applicable)
|
|
104
|
+
1. [type] [what to fix]: [where] [suggestion]
|
|
105
|
+
2. ...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Be honest. If the docs are confusing, say so. If you had to read code to understand something, that's an automatic DOC_GAP.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-checker
|
|
3
|
+
description: Project status without polluting context
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
> **Mandatory Initial Read**: If your prompt contains a `<files_to_read>` block, you MUST read every listed file before any other action. Skip files marked `(if exists)` when absent. This is your primary context.
|
|
9
|
+
|
|
10
|
+
## Pipeline Context
|
|
11
|
+
|
|
12
|
+
### Called by
|
|
13
|
+
User directly or inline by commands. No orchestrating command.
|
|
14
|
+
|
|
15
|
+
No downstream consumer — your output is read as-is.
|
|
16
|
+
|
|
17
|
+
Report: phase, progress (X/Y), pipeline stage, next step, blockers.
|
|
18
|
+
Data only.
|