lee-spec-kit 0.4.14 β 0.5.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/README.en.md +240 -17
- package/README.md +240 -26
- package/dist/index.js +3195 -982
- package/package.json +2 -1
- package/templates/en/common/agents/pr-template.md +1 -1
- package/templates/en/common/agents/skills/create-feature.md +3 -2
- package/templates/en/common/agents/skills/execute-task.md +1 -1
- package/templates/en/fullstack/README.md +1 -1
- package/templates/en/fullstack/agents/agents.md +1 -1
- package/templates/en/single/README.md +1 -1
- package/templates/en/single/agents/agents.md +1 -1
- package/templates/ko/common/agents/pr-template.md +1 -1
- package/templates/ko/common/agents/skills/create-feature.md +3 -2
- package/templates/ko/common/agents/skills/execute-task.md +1 -1
- package/templates/ko/fullstack/README.md +1 -1
- package/templates/ko/fullstack/agents/agents.md +1 -1
- package/templates/ko/single/README.md +1 -1
- package/templates/ko/single/agents/agents.md +1 -1
package/README.en.md
CHANGED
|
@@ -46,10 +46,13 @@ npx lee-spec-kit feature user-auth
|
|
|
46
46
|
# 3) Show next steps (for agents)
|
|
47
47
|
npx lee-spec-kit context
|
|
48
48
|
|
|
49
|
-
# 4) Show
|
|
49
|
+
# 4) Show workflow dashboard
|
|
50
|
+
npx lee-spec-kit view
|
|
51
|
+
|
|
52
|
+
# 5) Show overall status
|
|
50
53
|
npx lee-spec-kit status
|
|
51
54
|
|
|
52
|
-
#
|
|
55
|
+
# 6) Validate docs / feature metadata
|
|
53
56
|
npx lee-spec-kit doctor
|
|
54
57
|
```
|
|
55
58
|
|
|
@@ -58,13 +61,13 @@ npx lee-spec-kit doctor
|
|
|
58
61
|
### π Project initialization
|
|
59
62
|
|
|
60
63
|
- Interactive init or CLI options
|
|
61
|
-
- Supports `single` and `
|
|
64
|
+
- Supports `single` and `multi` (`fullstack` remains as a backward-compatible alias)
|
|
62
65
|
- Korean/English templates
|
|
63
66
|
|
|
64
67
|
### π Feature creation
|
|
65
68
|
|
|
66
69
|
- Generates `spec.md`, `plan.md`, `tasks.md`, `decisions.md`
|
|
67
|
-
-
|
|
70
|
+
- Multi mode supports flexible component separation (e.g. FE/BE/worker)
|
|
68
71
|
- Integrates Issue/PR templates (docs side)
|
|
69
72
|
|
|
70
73
|
### π Status management
|
|
@@ -72,6 +75,16 @@ npx lee-spec-kit doctor
|
|
|
72
75
|
- View feature progress at a glance
|
|
73
76
|
- Print to terminal or write a Markdown report
|
|
74
77
|
|
|
78
|
+
### π View dashboard
|
|
79
|
+
|
|
80
|
+
- Show context-style workflow dashboard in one command
|
|
81
|
+
- Works for single feature or aggregated feature list
|
|
82
|
+
|
|
83
|
+
### π Flow orchestration
|
|
84
|
+
|
|
85
|
+
- Combine `context + status + doctor` in one command
|
|
86
|
+
- Supports approval/execute passthrough for atomic context actions
|
|
87
|
+
|
|
75
88
|
### π©Ί Doctor
|
|
76
89
|
|
|
77
90
|
- Checks docs structure and feature metadata (missing status, duplicate IDs, placeholders, etc.)
|
|
@@ -87,18 +100,31 @@ npx lee-spec-kit doctor
|
|
|
87
100
|
|
|
88
101
|
```bash
|
|
89
102
|
npx lee-spec-kit init
|
|
90
|
-
npx lee-spec-kit init --name my-project --type
|
|
103
|
+
npx lee-spec-kit init --name my-project --type multi
|
|
104
|
+
npx lee-spec-kit init --name my-project --type fullstack # alias
|
|
91
105
|
```
|
|
92
106
|
|
|
93
107
|
**Options:**
|
|
94
108
|
|
|
95
|
-
| Option | Description
|
|
96
|
-
| ------------------- |
|
|
97
|
-
| `-n, --name <name>` | Project name
|
|
98
|
-
| `-t, --type <type>` | `single` or `fullstack`
|
|
99
|
-
|
|
|
100
|
-
| `-
|
|
101
|
-
|
|
|
109
|
+
| Option | Description | Default |
|
|
110
|
+
| ------------------- | ------------------------------------------------------------------------------------------- | ------------------------------- |
|
|
111
|
+
| `-n, --name <name>` | Project name | current folder |
|
|
112
|
+
| `-t, --type <type>` | `single` or `multi` (`fullstack` alias supported) | interactive (`single` with `--yes`/`--non-interactive`) |
|
|
113
|
+
| `--components <list>` | multi component list (comma-separated, e.g. `fe,be,worker`) | `fe,be` |
|
|
114
|
+
| `-l, --lang <lang>` | `ko` or `en` | `en` |
|
|
115
|
+
| `--workflow <mode>` | Workflow mode: `github` (issue/PR/review) or `local` (local-first) | `github` |
|
|
116
|
+
| `-d, --dir <dir>` | Install directory | `./docs` |
|
|
117
|
+
| `--docs-repo <mode>` | docs repo mode (`embedded` or `standalone`) | `embedded` |
|
|
118
|
+
| `--project-root <path>` | standalone(single) project repo path | - |
|
|
119
|
+
| `--fe-project-root <path>` | standalone(multi) frontend repo path | - |
|
|
120
|
+
| `--be-project-root <path>` | standalone(multi) backend repo path | - |
|
|
121
|
+
| `--push-docs` | enable standalone docs push (use with `--docs-remote`) | `false` |
|
|
122
|
+
| `--docs-remote <url>` | standalone docs remote URL (used with `--push-docs`) | - |
|
|
123
|
+
| `-y, --yes` | Skip most interactive inputs (overwrite confirmation still appears if target dir is not empty) | - |
|
|
124
|
+
| `-f, --force` | Overwrite non-empty target directory without confirmation | `false` |
|
|
125
|
+
| `--non-interactive` | Fail immediately instead of prompting for user input | `false` |
|
|
126
|
+
|
|
127
|
+
> After generating docs, `init` automatically attempts Git setup/commit (`git init`, `git add`, `git commit`). Auto-commit may be skipped depending on environment/state.
|
|
102
128
|
|
|
103
129
|
### Create a feature
|
|
104
130
|
|
|
@@ -106,13 +132,29 @@ npx lee-spec-kit init --name my-project --type fullstack
|
|
|
106
132
|
# Single
|
|
107
133
|
npx lee-spec-kit feature user-auth
|
|
108
134
|
|
|
109
|
-
#
|
|
135
|
+
# Multi
|
|
110
136
|
npx lee-spec-kit feature --repo be user-auth
|
|
111
137
|
npx lee-spec-kit feature --repo fe user-profile
|
|
138
|
+
npx lee-spec-kit feature --component worker queue-jobs
|
|
139
|
+
|
|
140
|
+
# Specify Feature ID/description
|
|
141
|
+
npx lee-spec-kit feature payment --id F123 --desc "Improve payment flow"
|
|
112
142
|
```
|
|
113
143
|
|
|
144
|
+
**Options:**
|
|
145
|
+
|
|
146
|
+
| Option | Description | Default |
|
|
147
|
+
| ------------------- | ------------------------------------------- | ------------ |
|
|
148
|
+
| `-r, --repo <repo>` | Multi target component (backward-compatible alias) | interactive |
|
|
149
|
+
| `--component <id>` | Multi target component | interactive |
|
|
150
|
+
| `--id <id>` | Feature ID (`F001` format) | auto-generate |
|
|
151
|
+
| `-d, --desc <desc>` | Default purpose/description text for `spec.md` | empty string |
|
|
152
|
+
| `--non-interactive` | Fail immediately instead of prompting for user input | `false` |
|
|
153
|
+
|
|
114
154
|
### Context (agent guide)
|
|
115
155
|
|
|
156
|
+
For a single matched feature, next steps are always shown as `A/B/C` options.
|
|
157
|
+
|
|
116
158
|
```bash
|
|
117
159
|
# Auto-detect (based on git branch)
|
|
118
160
|
npx lee-spec-kit context
|
|
@@ -124,23 +166,126 @@ npx lee-spec-kit context user-auth
|
|
|
124
166
|
npx lee-spec-kit context F001
|
|
125
167
|
npx lee-spec-kit context F001-user-auth
|
|
126
168
|
|
|
169
|
+
# multi component selector
|
|
170
|
+
npx lee-spec-kit context --repo fe
|
|
171
|
+
npx lee-spec-kit context --repo worker
|
|
172
|
+
|
|
173
|
+
# include all / done features
|
|
174
|
+
npx lee-spec-kit context --all
|
|
175
|
+
npx lee-spec-kit context --done
|
|
176
|
+
|
|
127
177
|
# JSON output (for agents)
|
|
128
178
|
npx lee-spec-kit context --json
|
|
179
|
+
|
|
180
|
+
# approve a labeled option (validation only)
|
|
181
|
+
npx lee-spec-kit context F001 --approve A
|
|
182
|
+
|
|
183
|
+
# approve + execute exactly one command option
|
|
184
|
+
npx lee-spec-kit context F001 --approve "A OK" --execute
|
|
185
|
+
|
|
186
|
+
# fail when the approved label is instruction-only
|
|
187
|
+
npx lee-spec-kit context F001 --approve A --execute --execute-strict
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Options:**
|
|
191
|
+
|
|
192
|
+
| Option | Description |
|
|
193
|
+
| -------------- | ----------------------------------------------- |
|
|
194
|
+
| `--json` | JSON output for agents |
|
|
195
|
+
| `--repo <repo>`| Select target component in multi mode (e.g. `fe`, `be`, `worker`) |
|
|
196
|
+
| `--all` | Include completed features when auto-detecting |
|
|
197
|
+
| `--done` | Show completed (workflow-done) features only |
|
|
198
|
+
| `--approve <reply>` | Approve one labeled option (`A` or `A OK`) |
|
|
199
|
+
| `--execute` | Execute only the approved option when it is a command |
|
|
200
|
+
| `--execute-strict` | With `--execute`, fail if the approved option is instruction-only |
|
|
201
|
+
|
|
202
|
+
`--json` output includes:
|
|
203
|
+
|
|
204
|
+
- `reasonCode`: status reason code (`SINGLE_MATCHED`, `MULTIPLE_ACTIVE_FEATURES`, etc.)
|
|
205
|
+
- `actionOptions`: maps labels to atomic actions
|
|
206
|
+
- `workflowPolicy`: current completion policy (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
|
|
207
|
+
- `checkPolicy`: approval validation policy (`token: "<LABEL>"`, `acceptedTokens`, `tokenPattern`, `validLabels`, `contextVersion`, ...)
|
|
208
|
+
|
|
209
|
+
Error payloads (`status: "error"`) include `reasonCode` and labeled `suggestions` (`A/B/C`) (e.g. `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`).
|
|
210
|
+
|
|
211
|
+
### View
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
npx lee-spec-kit view
|
|
215
|
+
npx lee-spec-kit view F001
|
|
216
|
+
npx lee-spec-kit view --all
|
|
217
|
+
npx lee-spec-kit view --json
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Options:**
|
|
221
|
+
|
|
222
|
+
| Option | Description |
|
|
223
|
+
| -------------- | ----------------------------------------------- |
|
|
224
|
+
| `--json` | JSON output for agents |
|
|
225
|
+
| `--repo <repo>`| Select target component in multi mode (e.g. `fe`, `be`, `worker`) |
|
|
226
|
+
| `--all` | Include completed features when auto-detecting |
|
|
227
|
+
| `--done` | Show completed (workflow-done) features only |
|
|
228
|
+
|
|
229
|
+
### Flow
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
npx lee-spec-kit flow
|
|
233
|
+
npx lee-spec-kit flow F001 --approve A
|
|
234
|
+
npx lee-spec-kit flow F001 --approve "A OK" --execute
|
|
235
|
+
npx lee-spec-kit flow --strict
|
|
236
|
+
npx lee-spec-kit flow --json
|
|
129
237
|
```
|
|
130
238
|
|
|
239
|
+
**Options:**
|
|
240
|
+
|
|
241
|
+
| Option | Description |
|
|
242
|
+
| ----------------- | ----------- |
|
|
243
|
+
| `--json` | JSON output for agents |
|
|
244
|
+
| `--repo <repo>` | Select target component in multi mode (e.g. `fe`, `be`, `worker`) |
|
|
245
|
+
| `--all` | Include completed features when auto-detecting |
|
|
246
|
+
| `--done` | Show completed (workflow-done) features only |
|
|
247
|
+
| `--approve <reply>` | Pass through context label approval (`A` or `A OK`) |
|
|
248
|
+
| `--execute` | Execute approved option when it is a command |
|
|
249
|
+
| `--execute-strict`| With `--execute`, fail if approved option is instruction-only |
|
|
250
|
+
| `--strict` | Also run `status --strict` and `doctor --strict` |
|
|
251
|
+
|
|
131
252
|
### Status
|
|
132
253
|
|
|
133
254
|
```bash
|
|
134
255
|
npx lee-spec-kit status
|
|
256
|
+
npx lee-spec-kit status --json
|
|
135
257
|
npx lee-spec-kit status --write
|
|
258
|
+
npx lee-spec-kit status --strict
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Options:**
|
|
262
|
+
|
|
263
|
+
| Option | Description |
|
|
264
|
+
| -------------- | ---------------------------------------------------- |
|
|
265
|
+
| `--json` | JSON output for agents |
|
|
266
|
+
| `-w, --write` | Write `features/status.md` |
|
|
267
|
+
| `-s, --strict` | Exit with code 1 when duplicate/missing Feature IDs exist |
|
|
268
|
+
|
|
269
|
+
Status values distinguish implementation vs workflow completion:
|
|
270
|
+
- `DONE`: all tasks are marked done, but workflow requirements are not fully satisfied
|
|
271
|
+
- `WORKFLOW_DONE`: implementation + workflow requirements are both satisfied
|
|
272
|
+
|
|
273
|
+
### Global Option
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
npx lee-spec-kit --no-banner --help
|
|
136
277
|
```
|
|
137
278
|
|
|
279
|
+
You can also disable banner output via `LEE_SPEC_KIT_NO_BANNER=1`.
|
|
280
|
+
|
|
138
281
|
### Doctor
|
|
139
282
|
|
|
140
283
|
```bash
|
|
141
284
|
npx lee-spec-kit doctor
|
|
142
285
|
npx lee-spec-kit doctor --strict
|
|
143
286
|
npx lee-spec-kit doctor --json
|
|
287
|
+
npx lee-spec-kit doctor --fix
|
|
288
|
+
npx lee-spec-kit doctor --fix --dry-run
|
|
144
289
|
```
|
|
145
290
|
|
|
146
291
|
### Update templates
|
|
@@ -169,6 +314,7 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
|
|
|
169
314
|
"lang": "en",
|
|
170
315
|
"createdAt": "YYYY-MM-DD",
|
|
171
316
|
"docsRepo": "embedded",
|
|
317
|
+
"workflow": { "mode": "github" },
|
|
172
318
|
"pr": { "screenshots": { "upload": false } },
|
|
173
319
|
"approval": { "mode": "builtin" }
|
|
174
320
|
}
|
|
@@ -177,13 +323,15 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
|
|
|
177
323
|
| Field | Description |
|
|
178
324
|
| ------------- | ------------------------------------------------ |
|
|
179
325
|
| `projectName` | Project name |
|
|
180
|
-
| `projectType` | `single` or `fullstack`
|
|
326
|
+
| `projectType` | `single` or `multi` (`fullstack` alias supported) |
|
|
327
|
+
| `components` | (multi only) component list (e.g. `["fe","be","worker"]`) |
|
|
181
328
|
| `lang` | `ko` or `en` |
|
|
182
329
|
| `createdAt` | Creation date |
|
|
183
330
|
| `docsRepo` | `embedded` or `standalone` |
|
|
184
331
|
| `pushDocs` | (standalone only) whether to manage/push docs repo as a separate git repo |
|
|
185
332
|
| `docsRemote` | (standalone + pushDocs) docs repo remote URL |
|
|
186
|
-
| `projectRoot` | (standalone only) project repo path (single: string,
|
|
333
|
+
| `projectRoot` | (standalone only) project repo path (single: string, multi: `{ [component]: path }`) |
|
|
334
|
+
| `workflow` | (optional) workflow completion policy (`github`/`local`) |
|
|
187
335
|
| `pr` | (optional) PR artifacts policy (e.g. screenshot upload) |
|
|
188
336
|
| `approval` | (optional) Override CHECK-required policy in `context` output (for automation/semi-auto) |
|
|
189
337
|
|
|
@@ -196,11 +344,31 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
|
|
|
196
344
|
|
|
197
345
|
- the `[CHECK required]` tag in text output
|
|
198
346
|
- `actions[].requiresUserCheck` in `context --json`
|
|
199
|
-
- `checkPolicy.token` (`context --json`):
|
|
347
|
+
- `checkPolicy.token` (`context --json`): approval token format (`<LABEL>`)
|
|
348
|
+
- `checkPolicy.acceptedTokens`: accepted reply templates (e.g. `["<LABEL>", "<LABEL> OK"]`)
|
|
349
|
+
- `checkPolicy.tokenPattern`: input validation regex for approval replies
|
|
350
|
+
- `checkPolicy.validLabels`: currently selectable labels (`A`, `B`, `C`...)
|
|
351
|
+
- `checkPolicy.contextVersion`: snapshot hash for stale-context validation
|
|
352
|
+
- `actionOptions`: maps `label` (`A`, `B`, `C`...) to each atomic `action`
|
|
353
|
+
- `workflowPolicy`: current completion policy (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
|
|
200
354
|
|
|
201
355
|
> This does not enforce/deny execution by itself; itβs a signal for agents.
|
|
202
356
|
> If `approval` is omitted, it behaves as `builtin`. (No migration required)
|
|
203
|
-
> When `requiresUserCheck: true`, itβs recommended that agents wait for an explicit
|
|
357
|
+
> When `requiresUserCheck: true`, itβs recommended that agents wait for an explicit `<label>` or `<label> OK` response (e.g. `A`, `A OK`) before proceeding.
|
|
358
|
+
|
|
359
|
+
### workflow (completion policy)
|
|
360
|
+
|
|
361
|
+
- `workflow.mode: "github"` (default): issue/branch/PR/review are required in workflow completion
|
|
362
|
+
- `workflow.mode: "local"`: local-first workflow; issue/branch/PR/review are not required
|
|
363
|
+
- Feature templates generated in local mode minimize Issue/PR-focused sections by default.
|
|
364
|
+
|
|
365
|
+
Example:
|
|
366
|
+
|
|
367
|
+
```json
|
|
368
|
+
{
|
|
369
|
+
"workflow": { "mode": "local" }
|
|
370
|
+
}
|
|
371
|
+
```
|
|
204
372
|
|
|
205
373
|
#### Modes
|
|
206
374
|
|
|
@@ -239,6 +407,61 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
|
|
|
239
407
|
|
|
240
408
|
- `pr.screenshots.upload` (default: `false`): When `true`, agents may upload screenshots (e.g. GitHub Release assets) and include URLs in PR body. When `false`, agents should not upload/include URLs and should omit screenshot sections from the PR body.
|
|
241
409
|
|
|
410
|
+
### View/Update Config
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# show current config
|
|
414
|
+
npx lee-spec-kit config
|
|
415
|
+
|
|
416
|
+
# target a specific docs path when multiple docs directories exist
|
|
417
|
+
npx lee-spec-kit config --dir ./docs2
|
|
418
|
+
|
|
419
|
+
# update projectRoot (single)
|
|
420
|
+
npx lee-spec-kit config --project-root /new/path
|
|
421
|
+
npx lee-spec-kit config --dir ./docs2 --project-root /new/path
|
|
422
|
+
|
|
423
|
+
# update projectRoot (multi)
|
|
424
|
+
npx lee-spec-kit config --project-root /new/fe/path --repo fe
|
|
425
|
+
npx lee-spec-kit config --project-root /new/be/path --repo be
|
|
426
|
+
npx lee-spec-kit config --project-root /new/worker/path --component worker
|
|
427
|
+
|
|
428
|
+
# non-interactive mode (fails immediately if required input is missing)
|
|
429
|
+
npx lee-spec-kit config --project-root /new/fe/path --repo fe --non-interactive
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
**Options:**
|
|
433
|
+
|
|
434
|
+
| Option | Description |
|
|
435
|
+
| --- | --- |
|
|
436
|
+
| `--dir <dir>` | Target docs directory or project path |
|
|
437
|
+
| `--project-root <path>` | Set projectRoot path |
|
|
438
|
+
| `--repo <repo>` | Target component in multi mode (backward-compatible alias) |
|
|
439
|
+
| `--component <id>` | Target component in multi mode |
|
|
440
|
+
| `--non-interactive` | Fail immediately instead of prompting for user input |
|
|
441
|
+
|
|
442
|
+
> `--non-interactive` is supported by `init`, `feature`, and `config`.
|
|
443
|
+
> For automation, command errors print `[REASON_CODE]` (e.g. `PROMPT_BLOCKED`, `CONFIG_NOT_FOUND`).
|
|
444
|
+
> Text-mode errors also print labeled next options under `π Next Options (Error)`.
|
|
445
|
+
|
|
446
|
+
### Error Codes
|
|
447
|
+
|
|
448
|
+
- This CLI exposes error reason codes for automation:
|
|
449
|
+
- `reasonCode` in JSON responses
|
|
450
|
+
- `[REASON_CODE]` in text error output
|
|
451
|
+
- Error responses also provide labeled next-step suggestions (`A/B/C`):
|
|
452
|
+
- `suggestions` in JSON mode
|
|
453
|
+
- `π Next Options (Error)` in text mode
|
|
454
|
+
- Common examples:
|
|
455
|
+
- `PROMPT_BLOCKED`
|
|
456
|
+
- `CONFIG_NOT_FOUND`
|
|
457
|
+
- `DOCS_NOT_FOUND`
|
|
458
|
+
- `LOCK_WAIT_TIMEOUT` / `LOCK_ACQUIRE_TIMEOUT`
|
|
459
|
+
- `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`
|
|
460
|
+
|
|
461
|
+
For the full code list and meanings, see `errors.en.md` (English) or `errors.md` (Korean).
|
|
462
|
+
|
|
242
463
|
## Generated Structure
|
|
243
464
|
|
|
244
465
|
See the Korean README for the full tree examples and workflow details: `README.md`.
|
|
466
|
+
|
|
467
|
+
Note: generated docs include `agents/custom.md`, `agents/skills/`, and `scripts/` by default.
|