lee-spec-kit 0.4.13 β†’ 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 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 overall status
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
- # 5) Validate docs / feature metadata
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 `fullstack` (FE/BE split)
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
- - Fullstack mode supports FE/BE separation
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 fullstack
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 | Default |
96
- | ------------------- | ----------------------------------------- | ------------- |
97
- | `-n, --name <name>` | Project name | current folder |
98
- | `-t, --type <type>` | `single` or `fullstack` | interactive |
99
- | `-l, --lang <lang>` | `ko` or `en` | `en` |
100
- | `-d, --dir <dir>` | Install directory | `./docs` |
101
- | `-y, --yes` | Skip interactive prompts | - |
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
- # Fullstack
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
129
188
  ```
130
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
237
+ ```
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
136
259
  ```
137
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
277
+ ```
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,8 @@ 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" },
318
+ "pr": { "screenshots": { "upload": false } },
172
319
  "approval": { "mode": "builtin" }
173
320
  }
174
321
  ```
@@ -176,13 +323,16 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
176
323
  | Field | Description |
177
324
  | ------------- | ------------------------------------------------ |
178
325
  | `projectName` | Project name |
179
- | `projectType` | `single` or `fullstack` |
326
+ | `projectType` | `single` or `multi` (`fullstack` alias supported) |
327
+ | `components` | (multi only) component list (e.g. `["fe","be","worker"]`) |
180
328
  | `lang` | `ko` or `en` |
181
329
  | `createdAt` | Creation date |
182
330
  | `docsRepo` | `embedded` or `standalone` |
183
331
  | `pushDocs` | (standalone only) whether to manage/push docs repo as a separate git repo |
184
332
  | `docsRemote` | (standalone + pushDocs) docs repo remote URL |
185
- | `projectRoot` | (standalone only) project repo path (single: string, fullstack: {fe, be}) |
333
+ | `projectRoot` | (standalone only) project repo path (single: string, multi: `{ [component]: path }`) |
334
+ | `workflow` | (optional) workflow completion policy (`github`/`local`) |
335
+ | `pr` | (optional) PR artifacts policy (e.g. screenshot upload) |
186
336
  | `approval` | (optional) Override CHECK-required policy in `context` output (for automation/semi-auto) |
187
337
 
188
338
  > In standalone mode, `init` can add `pushDocs`, `docsRemote`, and `projectRoot` to this config.
@@ -194,11 +344,31 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
194
344
 
195
345
  - the `[CHECK required]` tag in text output
196
346
  - `actions[].requiresUserCheck` in `context --json`
197
- - `checkPolicy.token` (`context --json`): recommended approval token (`OK`)
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`)
198
354
 
199
355
  > This does not enforce/deny execution by itself; it’s a signal for agents.
200
356
  > If `approval` is omitted, it behaves as `builtin`. (No migration required)
201
- > When `requiresUserCheck: true`, it’s recommended that agents wait for an explicit `OK` response before proceeding.
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
+ ```
202
372
 
203
373
  #### Modes
204
374
 
@@ -233,6 +403,65 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
233
403
 
234
404
  > To discover available `category` values, check `actions[].category` in `context --json`.
235
405
 
406
+ ### pr (PR artifacts policy)
407
+
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.
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
+
236
463
  ## Generated Structure
237
464
 
238
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.