aiwcli 0.12.6 → 0.12.7
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/bin/dev.cmd +3 -3
- package/bin/dev.js +16 -16
- package/bin/run.cmd +3 -3
- package/bin/run.js +21 -21
- package/dist/commands/branch.js +7 -2
- package/dist/lib/bmad-installer.js +37 -37
- package/dist/lib/terminal.d.ts +2 -0
- package/dist/lib/terminal.js +57 -7
- package/dist/templates/CLAUDE.md +205 -205
- package/dist/templates/_shared/.claude/commands/handoff-resume.md +12 -12
- package/dist/templates/_shared/.claude/commands/handoff.md +12 -12
- package/dist/templates/_shared/.claude/settings.json +65 -65
- package/dist/templates/_shared/.codex/workflows/handoff.md +226 -226
- package/dist/templates/_shared/.windsurf/workflows/handoff.md +226 -226
- package/dist/templates/_shared/handoff-system/CLAUDE.md +421 -421
- package/dist/templates/_shared/handoff-system/lib/document-generator.ts +215 -215
- package/dist/templates/_shared/handoff-system/lib/handoff-reader.ts +158 -158
- package/dist/templates/_shared/handoff-system/scripts/resume_handoff.ts +373 -373
- package/dist/templates/_shared/handoff-system/scripts/save_handoff.ts +469 -469
- package/dist/templates/_shared/handoff-system/workflows/handoff-resume.md +66 -66
- package/dist/templates/_shared/handoff-system/workflows/handoff.md +254 -254
- package/dist/templates/_shared/hooks-ts/_utils/git-state.ts +2 -2
- package/dist/templates/_shared/hooks-ts/archive_plan.ts +159 -159
- package/dist/templates/_shared/hooks-ts/context_monitor.ts +147 -147
- package/dist/templates/_shared/hooks-ts/file-suggestion.ts +128 -128
- package/dist/templates/_shared/hooks-ts/pre_compact.ts +49 -49
- package/dist/templates/_shared/hooks-ts/session_end.ts +196 -196
- package/dist/templates/_shared/hooks-ts/session_start.ts +163 -163
- package/dist/templates/_shared/hooks-ts/task_create_capture.ts +48 -48
- package/dist/templates/_shared/hooks-ts/task_update_capture.ts +74 -74
- package/dist/templates/_shared/hooks-ts/user_prompt_submit.ts +93 -93
- package/dist/templates/_shared/lib-ts/CLAUDE.md +367 -367
- package/dist/templates/_shared/lib-ts/base/atomic-write.ts +138 -138
- package/dist/templates/_shared/lib-ts/base/constants.ts +303 -303
- package/dist/templates/_shared/lib-ts/base/git-state.ts +58 -58
- package/dist/templates/_shared/lib-ts/base/hook-utils.ts +582 -582
- package/dist/templates/_shared/lib-ts/base/inference.ts +301 -301
- package/dist/templates/_shared/lib-ts/base/logger.ts +247 -247
- package/dist/templates/_shared/lib-ts/base/state-io.ts +202 -202
- package/dist/templates/_shared/lib-ts/base/stop-words.ts +184 -184
- package/dist/templates/_shared/lib-ts/base/utils.ts +184 -184
- package/dist/templates/_shared/lib-ts/context/context-formatter.ts +566 -566
- package/dist/templates/_shared/lib-ts/context/context-selector.ts +524 -524
- package/dist/templates/_shared/lib-ts/context/context-store.ts +712 -712
- package/dist/templates/_shared/lib-ts/context/plan-manager.ts +312 -312
- package/dist/templates/_shared/lib-ts/context/task-tracker.ts +185 -185
- package/dist/templates/_shared/lib-ts/package.json +20 -20
- package/dist/templates/_shared/lib-ts/templates/formatters.ts +102 -102
- package/dist/templates/_shared/lib-ts/templates/plan-context.ts +58 -58
- package/dist/templates/_shared/lib-ts/tsconfig.json +13 -13
- package/dist/templates/_shared/lib-ts/types.ts +186 -186
- package/dist/templates/_shared/scripts/resolve_context.ts +33 -33
- package/dist/templates/_shared/scripts/status_line.ts +690 -690
- package/dist/templates/cc-native/.claude/commands/cc-native/rlm/ask.md +136 -136
- package/dist/templates/cc-native/.claude/commands/cc-native/rlm/index.md +21 -21
- package/dist/templates/cc-native/.claude/commands/cc-native/rlm/overview.md +56 -56
- package/dist/templates/cc-native/.claude/commands/cc-native/specdev.md +10 -10
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/fix.md +8 -8
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/implement.md +8 -8
- package/dist/templates/cc-native/.windsurf/workflows/cc-native/research.md +8 -8
- package/dist/templates/cc-native/CC-NATIVE-README.md +189 -189
- package/dist/templates/cc-native/TEMPLATE-SCHEMA.md +304 -304
- package/dist/templates/cc-native/_cc-native/agents/CLAUDE.md +143 -143
- package/dist/templates/cc-native/_cc-native/agents/PLAN-ORCHESTRATOR.md +213 -213
- package/dist/templates/cc-native/_cc-native/agents/plan-questions/PLAN-QUESTIONER.md +70 -70
- package/dist/templates/cc-native/_cc-native/cc-native.config.json +96 -96
- package/dist/templates/cc-native/_cc-native/hooks/CLAUDE.md +247 -247
- package/dist/templates/cc-native/_cc-native/hooks/cc-native-plan-review.ts +76 -76
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_subagent.ts +54 -54
- package/dist/templates/cc-native/_cc-native/hooks/enhance_plan_post_write.ts +51 -51
- package/dist/templates/cc-native/_cc-native/hooks/mark_questions_asked.ts +53 -53
- package/dist/templates/cc-native/_cc-native/hooks/plan_questions_early.ts +61 -61
- package/dist/templates/cc-native/_cc-native/lib-ts/agent-selection.ts +163 -163
- package/dist/templates/cc-native/_cc-native/lib-ts/aggregate-agents.ts +156 -156
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/format.ts +597 -597
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/index.ts +26 -26
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/tracker.ts +107 -107
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts/write.ts +119 -119
- package/dist/templates/cc-native/_cc-native/lib-ts/artifacts.ts +21 -21
- package/dist/templates/cc-native/_cc-native/lib-ts/cc-native-state.ts +319 -319
- package/dist/templates/cc-native/_cc-native/lib-ts/cli-output-parser.ts +144 -144
- package/dist/templates/cc-native/_cc-native/lib-ts/config.ts +57 -57
- package/dist/templates/cc-native/_cc-native/lib-ts/constants.ts +83 -83
- package/dist/templates/cc-native/_cc-native/lib-ts/corroboration.ts +119 -119
- package/dist/templates/cc-native/_cc-native/lib-ts/debug.ts +79 -79
- package/dist/templates/cc-native/_cc-native/lib-ts/graduation.ts +132 -132
- package/dist/templates/cc-native/_cc-native/lib-ts/index.ts +116 -116
- package/dist/templates/cc-native/_cc-native/lib-ts/json-parser.ts +168 -168
- package/dist/templates/cc-native/_cc-native/lib-ts/orchestrator.ts +70 -70
- package/dist/templates/cc-native/_cc-native/lib-ts/output-builder.ts +130 -130
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-discovery.ts +80 -80
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-enhancement.ts +41 -41
- package/dist/templates/cc-native/_cc-native/lib-ts/plan-questions.ts +101 -101
- package/dist/templates/cc-native/_cc-native/lib-ts/review-pipeline.ts +511 -511
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/agent.ts +71 -71
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/base/base-agent.ts +217 -217
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/index.ts +12 -12
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/claude-agent.ts +66 -66
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/codex-agent.ts +184 -184
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/gemini-agent.ts +39 -39
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/providers/orchestrator-claude-agent.ts +196 -196
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/schemas.ts +201 -201
- package/dist/templates/cc-native/_cc-native/lib-ts/reviewers/types.ts +21 -21
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/CLAUDE.md +480 -480
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/embedding-indexer.ts +287 -287
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/hyde.ts +148 -148
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/index.ts +54 -54
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/logger.ts +58 -58
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/ollama-client.ts +208 -208
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/retrieval-pipeline.ts +460 -460
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-indexer.ts +446 -446
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-loader.ts +280 -280
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/transcript-searcher.ts +274 -274
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/types.ts +201 -201
- package/dist/templates/cc-native/_cc-native/lib-ts/rlm/vector-store.ts +278 -278
- package/dist/templates/cc-native/_cc-native/lib-ts/settings.ts +184 -184
- package/dist/templates/cc-native/_cc-native/lib-ts/state.ts +275 -275
- package/dist/templates/cc-native/_cc-native/lib-ts/tsconfig.json +18 -18
- package/dist/templates/cc-native/_cc-native/lib-ts/types.ts +329 -329
- package/dist/templates/cc-native/_cc-native/lib-ts/verdict.ts +72 -72
- package/dist/templates/cc-native/_cc-native/workflows/specdev.md +9 -9
- package/oclif.manifest.json +1 -1
- package/package.json +108 -108
- package/dist/templates/cc-native/_cc-native/lib-ts/nul +0 -3
package/dist/templates/CLAUDE.md
CHANGED
|
@@ -1,205 +1,205 @@
|
|
|
1
|
-
# Template Development Guidelines
|
|
2
|
-
|
|
3
|
-
## Output Directory
|
|
4
|
-
|
|
5
|
-
Write all method outputs to `_output/{method}/`:
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
_output/
|
|
9
|
-
├── gsd/.planning/ # GSD planning artifacts
|
|
10
|
-
├── bmad/docs/ # BMAD documentation
|
|
11
|
-
└── {method}/{subdir}/ # Other method outputs
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Include `_output/{method}/` in template `.gitignore`.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Directory Structure
|
|
19
|
-
|
|
20
|
-
Each template installs into `.aiwcli/` (method files) and `.{ide}/` (IDE integration). The `_shared/` template provides cross-method infrastructure used by all methods.
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
packages/cli/src/templates/
|
|
24
|
-
├── _shared/ # Cross-method infrastructure (installed by all methods)
|
|
25
|
-
│ ├── hooks-ts/ # Shared TypeScript hook scripts (context, tasks, sessions)
|
|
26
|
-
│ └── lib-ts/ # Shared TypeScript libraries
|
|
27
|
-
│ ├── base/ # Core: atomic-write, constants, inference, utils
|
|
28
|
-
│ ├── context/ # Context CRUD, selection, formatting, plans, tasks
|
|
29
|
-
│ ├── handoff/ # Session handoff document generation
|
|
30
|
-
│ └── templates/ # Output formatters, plan context templates
|
|
31
|
-
│
|
|
32
|
-
├── cc-native/ # CC-Native method template
|
|
33
|
-
│ ├── _cc-native/ # Method-specific hooks, lib, agents, workflows, scripts
|
|
34
|
-
│ ├── .claude/ # Claude Code: settings.json, commands/, agents/
|
|
35
|
-
│ ├── .windsurf/ # Windsurf: workflows/
|
|
36
|
-
│ └── .gitignore
|
|
37
|
-
│
|
|
38
|
-
├── gsd/ # GSD method template
|
|
39
|
-
│ ├── .aiwcli/_gsd/ # Templates, workflows, hooks, config, docs
|
|
40
|
-
│ ├── .claude/ # Claude Code: settings.json, commands/, agents/
|
|
41
|
-
│ ├── .windsurf/ # Windsurf: workflows/
|
|
42
|
-
│ ├── GSD-README.md
|
|
43
|
-
│ ├── TEMPLATE-SCHEMA.md
|
|
44
|
-
│ └── MIGRATION.md
|
|
45
|
-
│
|
|
46
|
-
├── bmad/ # BMAD method template
|
|
47
|
-
│ ├── .aiwcli/_bmad/ # Agents, workflows, teams, testarch, config
|
|
48
|
-
│ ├── .claude/ # Claude Code: settings.json, commands/
|
|
49
|
-
│ └── ...
|
|
50
|
-
│
|
|
51
|
-
├── planning-with-files/ # Planning-with-Files method template
|
|
52
|
-
│ ├── .claude/ # Claude Code: settings.json, skills/
|
|
53
|
-
│ ├── .windsurf/ # Windsurf: workflows/, scripts/
|
|
54
|
-
│ └── ...
|
|
55
|
-
│
|
|
56
|
-
└── CLAUDE.md # This file
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### Tier Details
|
|
60
|
-
|
|
61
|
-
| Tier | Location | Purpose |
|
|
62
|
-
|------|----------|---------|
|
|
63
|
-
| Shared | `_shared/` | Cross-method hooks and libraries (context management, task tracking, sessions) |
|
|
64
|
-
| Method | `_{method}/` or `.aiwcli/_{method}/` | Method-specific templates, workflows, hooks, config |
|
|
65
|
-
| IDE | `.{ide}/` | IDE-specific command stubs, settings, workflow definitions |
|
|
66
|
-
| Config | `.{ide}/settings.json` | Hooks, model prefs, method settings (merged on install) |
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Settings Merge Rules
|
|
71
|
-
|
|
72
|
-
When multiple templates install, settings.json files merge:
|
|
73
|
-
|
|
74
|
-
**Hook merging** - Hooks combine by lifecycle event
|
|
75
|
-
**Method namespacing** - Use method name as top-level key: `"gsd": { ... }`
|
|
76
|
-
|
|
77
|
-
```json
|
|
78
|
-
{
|
|
79
|
-
"gsd": { "planReview": { "enabled": true } },
|
|
80
|
-
"bmad": { "agents": { "defaultModel": "claude-3-opus" } }
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Hooks
|
|
87
|
-
|
|
88
|
-
**Location:** Hooks live in `.aiwcli/_shared/hooks-ts/` (cross-method, TypeScript) and `.aiwcli/_{method}/hooks/` (method-specific). They are configured in `.{ide}/settings.json`, not placed in IDE directories.
|
|
89
|
-
|
|
90
|
-
**Configuration:**
|
|
91
|
-
```json
|
|
92
|
-
{
|
|
93
|
-
"hooks": {
|
|
94
|
-
"PostToolUse": [{
|
|
95
|
-
"matcher": "Write",
|
|
96
|
-
"hooks": [{ "type": "command", "command": "bun run .aiwcli/_cc-native/hooks/cc-native-plan-review.ts", "timeout": 300000 }]
|
|
97
|
-
}]
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**Requirements:**
|
|
103
|
-
- Prefix method-specific hooks with method name (e.g., `cc-native-plan-review.ts`)
|
|
104
|
-
- Use relative paths from project root
|
|
105
|
-
- Write outputs to `_output/{method}/`
|
|
106
|
-
- Specify timeouts
|
|
107
|
-
- Set `blockOnFail: false` unless critical
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Workflow Pattern
|
|
112
|
-
|
|
113
|
-
### Canonical Workflow (`_{method}/workflows/`)
|
|
114
|
-
|
|
115
|
-
```markdown
|
|
116
|
-
# {Method} Workflow: {Name}
|
|
117
|
-
|
|
118
|
-
## Purpose
|
|
119
|
-
Brief description.
|
|
120
|
-
|
|
121
|
-
## Process
|
|
122
|
-
### Step 1: {Name}
|
|
123
|
-
Instructions.
|
|
124
|
-
|
|
125
|
-
## Output Files
|
|
126
|
-
All in `_output/{method}/{subdir}/`:
|
|
127
|
-
- `FILE.md` - Description
|
|
128
|
-
|
|
129
|
-
## Success Criteria
|
|
130
|
-
- [ ] Criterion 1
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### IDE Stub (`.{ide}/{folder}/{method}/`)
|
|
134
|
-
|
|
135
|
-
```markdown
|
|
136
|
-
---
|
|
137
|
-
description: One-line for command palette
|
|
138
|
-
---
|
|
139
|
-
# {Workflow Name}
|
|
140
|
-
Load and execute `_{method}/workflows/{name}.md`.
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Reference Patterns
|
|
146
|
-
|
|
147
|
-
| Reference Type | Pattern |
|
|
148
|
-
|----------------|---------|
|
|
149
|
-
| Templates | `_{method}/templates/FILE.md.template` |
|
|
150
|
-
| Workflows (Claude) | `/gsd:workflow-name` (maps to `.claude/commands/gsd/workflow-name.md`) |
|
|
151
|
-
| Workflows (Windsurf) | `workflow-name` from method workflows |
|
|
152
|
-
| Outputs | `_output/{method}/{subdir}/FILE.md` |
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Naming Conventions
|
|
157
|
-
|
|
158
|
-
| Element | Convention | Example |
|
|
159
|
-
|---------|------------|---------|
|
|
160
|
-
| Method folder | `_{lowercase}` | `_gsd` |
|
|
161
|
-
| Template file | `UPPERCASE.md.template` | `PROJECT.md.template` |
|
|
162
|
-
| Workflow file | `kebab-case.md` | `new-project.md` |
|
|
163
|
-
| Output file | `UPPERCASE.md` | `PROJECT.md` |
|
|
164
|
-
| Hook file | `{method}-{name}.{ext}` | `gsd-plan-review.ts` |
|
|
165
|
-
| Settings key | `{method}` | `"gsd": {}` |
|
|
166
|
-
| Readme | `{METHOD}-README.md` | `GSD-README.md` |
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## Checklists
|
|
171
|
-
|
|
172
|
-
**New Template:**
|
|
173
|
-
- [ ] Create `_{method}/` with `templates/` and `workflows/`
|
|
174
|
-
- [ ] Create `.claude/commands/{method}/` stubs (Claude Code)
|
|
175
|
-
- [ ] Create `.windsurf/workflows/{method}/` stubs (Windsurf)
|
|
176
|
-
- [ ] Add `.gitignore` with `_output/{method}/`
|
|
177
|
-
- [ ] Create `{METHOD}-README.md`, `TEMPLATE-SCHEMA.md`, `MIGRATION.md`
|
|
178
|
-
- [ ] Configure method-namespaced settings in `.claude/settings.json`
|
|
179
|
-
|
|
180
|
-
**New Workflow:**
|
|
181
|
-
- [ ] Create canonical in `_{method}/workflows/{name}.md`
|
|
182
|
-
- [ ] Create stubs in `.claude/commands/{method}/` and `.windsurf/workflows/{method}/`
|
|
183
|
-
- [ ] Update README and TEMPLATE-SCHEMA.md
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Practices
|
|
188
|
-
|
|
189
|
-
**Do:**
|
|
190
|
-
- Write outputs to `_output/{method}/`
|
|
191
|
-
- Namespace settings under method key
|
|
192
|
-
- Prefix hooks with method name
|
|
193
|
-
- Keep canonical workflows in `_{method}/workflows/`
|
|
194
|
-
- Use relative paths from project root
|
|
195
|
-
- Document changes in TEMPLATE-SCHEMA.md
|
|
196
|
-
- Place hooks in `.aiwcli/` directories, wire them in `.{ide}/settings.json`
|
|
197
|
-
|
|
198
|
-
**Avoid:**
|
|
199
|
-
- Outputs in project root
|
|
200
|
-
- Generic settings keys that conflict
|
|
201
|
-
- Hooks without method prefix
|
|
202
|
-
- Full workflows in IDE command files
|
|
203
|
-
- Hardcoded paths without method namespace
|
|
204
|
-
- Putting hook scripts directly in IDE directories (`.claude/hooks/`)
|
|
205
|
-
- Creating `_shared/` directories inside method templates (e.g., `cc-native/_shared/`). All shared code lives in `packages/cli/src/templates/_shared/`. Method templates reference shared code via imports at runtime, not by copying.
|
|
1
|
+
# Template Development Guidelines
|
|
2
|
+
|
|
3
|
+
## Output Directory
|
|
4
|
+
|
|
5
|
+
Write all method outputs to `_output/{method}/`:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
_output/
|
|
9
|
+
├── gsd/.planning/ # GSD planning artifacts
|
|
10
|
+
├── bmad/docs/ # BMAD documentation
|
|
11
|
+
└── {method}/{subdir}/ # Other method outputs
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Include `_output/{method}/` in template `.gitignore`.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Directory Structure
|
|
19
|
+
|
|
20
|
+
Each template installs into `.aiwcli/` (method files) and `.{ide}/` (IDE integration). The `_shared/` template provides cross-method infrastructure used by all methods.
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
packages/cli/src/templates/
|
|
24
|
+
├── _shared/ # Cross-method infrastructure (installed by all methods)
|
|
25
|
+
│ ├── hooks-ts/ # Shared TypeScript hook scripts (context, tasks, sessions)
|
|
26
|
+
│ └── lib-ts/ # Shared TypeScript libraries
|
|
27
|
+
│ ├── base/ # Core: atomic-write, constants, inference, utils
|
|
28
|
+
│ ├── context/ # Context CRUD, selection, formatting, plans, tasks
|
|
29
|
+
│ ├── handoff/ # Session handoff document generation
|
|
30
|
+
│ └── templates/ # Output formatters, plan context templates
|
|
31
|
+
│
|
|
32
|
+
├── cc-native/ # CC-Native method template
|
|
33
|
+
│ ├── _cc-native/ # Method-specific hooks, lib, agents, workflows, scripts
|
|
34
|
+
│ ├── .claude/ # Claude Code: settings.json, commands/, agents/
|
|
35
|
+
│ ├── .windsurf/ # Windsurf: workflows/
|
|
36
|
+
│ └── .gitignore
|
|
37
|
+
│
|
|
38
|
+
├── gsd/ # GSD method template
|
|
39
|
+
│ ├── .aiwcli/_gsd/ # Templates, workflows, hooks, config, docs
|
|
40
|
+
│ ├── .claude/ # Claude Code: settings.json, commands/, agents/
|
|
41
|
+
│ ├── .windsurf/ # Windsurf: workflows/
|
|
42
|
+
│ ├── GSD-README.md
|
|
43
|
+
│ ├── TEMPLATE-SCHEMA.md
|
|
44
|
+
│ └── MIGRATION.md
|
|
45
|
+
│
|
|
46
|
+
├── bmad/ # BMAD method template
|
|
47
|
+
│ ├── .aiwcli/_bmad/ # Agents, workflows, teams, testarch, config
|
|
48
|
+
│ ├── .claude/ # Claude Code: settings.json, commands/
|
|
49
|
+
│ └── ...
|
|
50
|
+
│
|
|
51
|
+
├── planning-with-files/ # Planning-with-Files method template
|
|
52
|
+
│ ├── .claude/ # Claude Code: settings.json, skills/
|
|
53
|
+
│ ├── .windsurf/ # Windsurf: workflows/, scripts/
|
|
54
|
+
│ └── ...
|
|
55
|
+
│
|
|
56
|
+
└── CLAUDE.md # This file
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Tier Details
|
|
60
|
+
|
|
61
|
+
| Tier | Location | Purpose |
|
|
62
|
+
|------|----------|---------|
|
|
63
|
+
| Shared | `_shared/` | Cross-method hooks and libraries (context management, task tracking, sessions) |
|
|
64
|
+
| Method | `_{method}/` or `.aiwcli/_{method}/` | Method-specific templates, workflows, hooks, config |
|
|
65
|
+
| IDE | `.{ide}/` | IDE-specific command stubs, settings, workflow definitions |
|
|
66
|
+
| Config | `.{ide}/settings.json` | Hooks, model prefs, method settings (merged on install) |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Settings Merge Rules
|
|
71
|
+
|
|
72
|
+
When multiple templates install, settings.json files merge:
|
|
73
|
+
|
|
74
|
+
**Hook merging** - Hooks combine by lifecycle event
|
|
75
|
+
**Method namespacing** - Use method name as top-level key: `"gsd": { ... }`
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"gsd": { "planReview": { "enabled": true } },
|
|
80
|
+
"bmad": { "agents": { "defaultModel": "claude-3-opus" } }
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Hooks
|
|
87
|
+
|
|
88
|
+
**Location:** Hooks live in `.aiwcli/_shared/hooks-ts/` (cross-method, TypeScript) and `.aiwcli/_{method}/hooks/` (method-specific). They are configured in `.{ide}/settings.json`, not placed in IDE directories.
|
|
89
|
+
|
|
90
|
+
**Configuration:**
|
|
91
|
+
```json
|
|
92
|
+
{
|
|
93
|
+
"hooks": {
|
|
94
|
+
"PostToolUse": [{
|
|
95
|
+
"matcher": "Write",
|
|
96
|
+
"hooks": [{ "type": "command", "command": "bun run .aiwcli/_cc-native/hooks/cc-native-plan-review.ts", "timeout": 300000 }]
|
|
97
|
+
}]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Requirements:**
|
|
103
|
+
- Prefix method-specific hooks with method name (e.g., `cc-native-plan-review.ts`)
|
|
104
|
+
- Use relative paths from project root
|
|
105
|
+
- Write outputs to `_output/{method}/`
|
|
106
|
+
- Specify timeouts
|
|
107
|
+
- Set `blockOnFail: false` unless critical
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Workflow Pattern
|
|
112
|
+
|
|
113
|
+
### Canonical Workflow (`_{method}/workflows/`)
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
# {Method} Workflow: {Name}
|
|
117
|
+
|
|
118
|
+
## Purpose
|
|
119
|
+
Brief description.
|
|
120
|
+
|
|
121
|
+
## Process
|
|
122
|
+
### Step 1: {Name}
|
|
123
|
+
Instructions.
|
|
124
|
+
|
|
125
|
+
## Output Files
|
|
126
|
+
All in `_output/{method}/{subdir}/`:
|
|
127
|
+
- `FILE.md` - Description
|
|
128
|
+
|
|
129
|
+
## Success Criteria
|
|
130
|
+
- [ ] Criterion 1
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### IDE Stub (`.{ide}/{folder}/{method}/`)
|
|
134
|
+
|
|
135
|
+
```markdown
|
|
136
|
+
---
|
|
137
|
+
description: One-line for command palette
|
|
138
|
+
---
|
|
139
|
+
# {Workflow Name}
|
|
140
|
+
Load and execute `_{method}/workflows/{name}.md`.
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Reference Patterns
|
|
146
|
+
|
|
147
|
+
| Reference Type | Pattern |
|
|
148
|
+
|----------------|---------|
|
|
149
|
+
| Templates | `_{method}/templates/FILE.md.template` |
|
|
150
|
+
| Workflows (Claude) | `/gsd:workflow-name` (maps to `.claude/commands/gsd/workflow-name.md`) |
|
|
151
|
+
| Workflows (Windsurf) | `workflow-name` from method workflows |
|
|
152
|
+
| Outputs | `_output/{method}/{subdir}/FILE.md` |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Naming Conventions
|
|
157
|
+
|
|
158
|
+
| Element | Convention | Example |
|
|
159
|
+
|---------|------------|---------|
|
|
160
|
+
| Method folder | `_{lowercase}` | `_gsd` |
|
|
161
|
+
| Template file | `UPPERCASE.md.template` | `PROJECT.md.template` |
|
|
162
|
+
| Workflow file | `kebab-case.md` | `new-project.md` |
|
|
163
|
+
| Output file | `UPPERCASE.md` | `PROJECT.md` |
|
|
164
|
+
| Hook file | `{method}-{name}.{ext}` | `gsd-plan-review.ts` |
|
|
165
|
+
| Settings key | `{method}` | `"gsd": {}` |
|
|
166
|
+
| Readme | `{METHOD}-README.md` | `GSD-README.md` |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Checklists
|
|
171
|
+
|
|
172
|
+
**New Template:**
|
|
173
|
+
- [ ] Create `_{method}/` with `templates/` and `workflows/`
|
|
174
|
+
- [ ] Create `.claude/commands/{method}/` stubs (Claude Code)
|
|
175
|
+
- [ ] Create `.windsurf/workflows/{method}/` stubs (Windsurf)
|
|
176
|
+
- [ ] Add `.gitignore` with `_output/{method}/`
|
|
177
|
+
- [ ] Create `{METHOD}-README.md`, `TEMPLATE-SCHEMA.md`, `MIGRATION.md`
|
|
178
|
+
- [ ] Configure method-namespaced settings in `.claude/settings.json`
|
|
179
|
+
|
|
180
|
+
**New Workflow:**
|
|
181
|
+
- [ ] Create canonical in `_{method}/workflows/{name}.md`
|
|
182
|
+
- [ ] Create stubs in `.claude/commands/{method}/` and `.windsurf/workflows/{method}/`
|
|
183
|
+
- [ ] Update README and TEMPLATE-SCHEMA.md
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Practices
|
|
188
|
+
|
|
189
|
+
**Do:**
|
|
190
|
+
- Write outputs to `_output/{method}/`
|
|
191
|
+
- Namespace settings under method key
|
|
192
|
+
- Prefix hooks with method name
|
|
193
|
+
- Keep canonical workflows in `_{method}/workflows/`
|
|
194
|
+
- Use relative paths from project root
|
|
195
|
+
- Document changes in TEMPLATE-SCHEMA.md
|
|
196
|
+
- Place hooks in `.aiwcli/` directories, wire them in `.{ide}/settings.json`
|
|
197
|
+
|
|
198
|
+
**Avoid:**
|
|
199
|
+
- Outputs in project root
|
|
200
|
+
- Generic settings keys that conflict
|
|
201
|
+
- Hooks without method prefix
|
|
202
|
+
- Full workflows in IDE command files
|
|
203
|
+
- Hardcoded paths without method namespace
|
|
204
|
+
- Putting hook scripts directly in IDE directories (`.claude/hooks/`)
|
|
205
|
+
- Creating `_shared/` directories inside method templates (e.g., `cc-native/_shared/`). All shared code lives in `packages/cli/src/templates/_shared/`. Method templates reference shared code via imports at runtime, not by copying.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: handoff-resume
|
|
3
|
-
description: Resume handoff
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Resume Handoff
|
|
7
|
-
|
|
8
|
-
Restore context from a handoff document and create ISC tasks. See `.aiwcli/_shared/handoff-system/workflows/handoff-resume.md` for complete process documentation.
|
|
9
|
-
|
|
10
|
-
**Quick trigger:** `/handoff-resume` or `/handoff-resume path/to/handoff`
|
|
11
|
-
|
|
12
|
-
The workflow uses the resume script to load handoff sections and convert pending items to tasks.
|
|
1
|
+
---
|
|
2
|
+
name: handoff-resume
|
|
3
|
+
description: Resume handoff
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Resume Handoff
|
|
7
|
+
|
|
8
|
+
Restore context from a handoff document and create ISC tasks. See `.aiwcli/_shared/handoff-system/workflows/handoff-resume.md` for complete process documentation.
|
|
9
|
+
|
|
10
|
+
**Quick trigger:** `/handoff-resume` or `/handoff-resume path/to/handoff`
|
|
11
|
+
|
|
12
|
+
The workflow uses the resume script to load handoff sections and convert pending items to tasks.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: handoff
|
|
3
|
-
description: Create handoff document
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Handoff Workflow
|
|
7
|
-
|
|
8
|
-
Generate a comprehensive handoff document for the next session. See `.aiwcli/_shared/handoff-system/workflows/handoff.md` for complete process documentation.
|
|
9
|
-
|
|
10
|
-
**Quick trigger:** `/handoff` or `/handoff path/to/PLAN.md`
|
|
11
|
-
|
|
12
|
-
The workflow guides you through gathering session context, generating structured sections, and saving via the handoff system.
|
|
1
|
+
---
|
|
2
|
+
name: handoff
|
|
3
|
+
description: Create handoff document
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Handoff Workflow
|
|
7
|
+
|
|
8
|
+
Generate a comprehensive handoff document for the next session. See `.aiwcli/_shared/handoff-system/workflows/handoff.md` for complete process documentation.
|
|
9
|
+
|
|
10
|
+
**Quick trigger:** `/handoff` or `/handoff path/to/PLAN.md`
|
|
11
|
+
|
|
12
|
+
The workflow guides you through gathering session context, generating structured sections, and saving via the handoff system.
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
{
|
|
2
|
-
"statusLine": {
|
|
3
|
-
"type": "command",
|
|
4
|
-
"command": "bun .aiwcli/_shared/scripts/status_line.ts"
|
|
5
|
-
},
|
|
6
|
-
"fileSuggestion": {
|
|
7
|
-
"type": "command",
|
|
8
|
-
"command": "bun .aiwcli/_shared/hooks-ts/file-suggestion.ts"
|
|
9
|
-
},
|
|
10
|
-
"hooks": {
|
|
11
|
-
"UserPromptSubmit": [
|
|
12
|
-
{
|
|
13
|
-
"hooks": [
|
|
14
|
-
{
|
|
15
|
-
"type": "command",
|
|
16
|
-
"command": "bun .aiwcli/_shared/hooks-ts/user_prompt_submit.ts",
|
|
17
|
-
"timeout": 5000
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
],
|
|
22
|
-
"PostToolUse": [
|
|
23
|
-
{
|
|
24
|
-
"matcher": "Task|Read|Bash|WebFetch|Edit|Write|NotebookEdit",
|
|
25
|
-
"hooks": [
|
|
26
|
-
{
|
|
27
|
-
"type": "command",
|
|
28
|
-
"command": "bun .aiwcli/_shared/hooks-ts/context_monitor.ts",
|
|
29
|
-
"timeout": 5000
|
|
30
|
-
}
|
|
31
|
-
]
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"matcher": "TaskCreate",
|
|
35
|
-
"hooks": [
|
|
36
|
-
{
|
|
37
|
-
"type": "command",
|
|
38
|
-
"command": "bun .aiwcli/_shared/hooks-ts/task_create_capture.ts",
|
|
39
|
-
"timeout": 3000
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"matcher": "TaskUpdate",
|
|
45
|
-
"hooks": [
|
|
46
|
-
{
|
|
47
|
-
"type": "command",
|
|
48
|
-
"command": "bun .aiwcli/_shared/hooks-ts/task_update_capture.ts",
|
|
49
|
-
"timeout": 3000
|
|
50
|
-
}
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"matcher": "ExitPlanMode",
|
|
55
|
-
"hooks": [
|
|
56
|
-
{
|
|
57
|
-
"type": "command",
|
|
58
|
-
"command": "bun .aiwcli/_shared/hooks-ts/archive_plan.ts",
|
|
59
|
-
"timeout": 5000
|
|
60
|
-
}
|
|
61
|
-
]
|
|
62
|
-
}
|
|
63
|
-
]
|
|
64
|
-
}
|
|
65
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"statusLine": {
|
|
3
|
+
"type": "command",
|
|
4
|
+
"command": "bun .aiwcli/_shared/scripts/status_line.ts"
|
|
5
|
+
},
|
|
6
|
+
"fileSuggestion": {
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "bun .aiwcli/_shared/hooks-ts/file-suggestion.ts"
|
|
9
|
+
},
|
|
10
|
+
"hooks": {
|
|
11
|
+
"UserPromptSubmit": [
|
|
12
|
+
{
|
|
13
|
+
"hooks": [
|
|
14
|
+
{
|
|
15
|
+
"type": "command",
|
|
16
|
+
"command": "bun .aiwcli/_shared/hooks-ts/user_prompt_submit.ts",
|
|
17
|
+
"timeout": 5000
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"PostToolUse": [
|
|
23
|
+
{
|
|
24
|
+
"matcher": "Task|Read|Bash|WebFetch|Edit|Write|NotebookEdit",
|
|
25
|
+
"hooks": [
|
|
26
|
+
{
|
|
27
|
+
"type": "command",
|
|
28
|
+
"command": "bun .aiwcli/_shared/hooks-ts/context_monitor.ts",
|
|
29
|
+
"timeout": 5000
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"matcher": "TaskCreate",
|
|
35
|
+
"hooks": [
|
|
36
|
+
{
|
|
37
|
+
"type": "command",
|
|
38
|
+
"command": "bun .aiwcli/_shared/hooks-ts/task_create_capture.ts",
|
|
39
|
+
"timeout": 3000
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"matcher": "TaskUpdate",
|
|
45
|
+
"hooks": [
|
|
46
|
+
{
|
|
47
|
+
"type": "command",
|
|
48
|
+
"command": "bun .aiwcli/_shared/hooks-ts/task_update_capture.ts",
|
|
49
|
+
"timeout": 3000
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"matcher": "ExitPlanMode",
|
|
55
|
+
"hooks": [
|
|
56
|
+
{
|
|
57
|
+
"type": "command",
|
|
58
|
+
"command": "bun .aiwcli/_shared/hooks-ts/archive_plan.ts",
|
|
59
|
+
"timeout": 5000
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
}
|