lee-spec-kit 0.6.15 โ 0.6.16
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 +38 -0
- package/README.md +40 -0
- package/dist/index.js +3 -7
- package/package.json +1 -1
- package/templates/en/common/README.md +20 -0
- package/templates/en/common/agents/skills/create-pr.md +4 -2
- package/templates/ko/common/README.md +20 -0
- package/templates/ko/common/agents/skills/create-pr.md +4 -2
package/README.en.md
CHANGED
|
@@ -56,6 +56,44 @@ npx lee-spec-kit status
|
|
|
56
56
|
npx lee-spec-kit doctor
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
## New Project Start Order
|
|
60
|
+
|
|
61
|
+
For a brand-new project, scaffold the **codebase first**, then initialize docs.
|
|
62
|
+
This sequence assumes the default `docsRepo: embedded` mode.
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 0) Create/init the code project first (example: Next.js)
|
|
66
|
+
npx create-next-app@latest my-app
|
|
67
|
+
cd my-app
|
|
68
|
+
|
|
69
|
+
# 1) Initialize docs structure
|
|
70
|
+
npx lee-spec-kit init
|
|
71
|
+
|
|
72
|
+
# 2) Detect project (agent entrypoint)
|
|
73
|
+
npx lee-spec-kit detect --json
|
|
74
|
+
|
|
75
|
+
# 3) Create feature and start workflow
|
|
76
|
+
npx lee-spec-kit feature user-auth
|
|
77
|
+
npx lee-spec-kit context --json
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- Apply lee-spec-kit workflow only when `detect --json` returns `isLeeSpecKitProject: true`.
|
|
81
|
+
- If `isLeeSpecKitProject: false`, continue with normal non-lee-spec-kit workflow.
|
|
82
|
+
- If you use `standalone` docs, run commands against the docs repo location (`--dir` or `LEE_SPEC_KIT_DOCS_DIR`).
|
|
83
|
+
|
|
84
|
+
## Agent Kickoff Prompt
|
|
85
|
+
|
|
86
|
+
You can paste the following as an agent session-start instruction.
|
|
87
|
+
|
|
88
|
+
```text
|
|
89
|
+
Start procedure:
|
|
90
|
+
1) Run npx lee-spec-kit detect --json
|
|
91
|
+
2) If isLeeSpecKitProject === true, run npx lee-spec-kit context --json
|
|
92
|
+
3) If actionOptions exist, show approvalPrompt and finalPrompt exactly as provided, then wait for user approval (<LABEL> or <LABEL> OK)
|
|
93
|
+
4) Do not execute before approval; execute requiresUserCheck=true actions only after approval
|
|
94
|
+
5) If isLeeSpecKitProject === false, skip lee-spec-kit-specific flow and continue with normal workflow
|
|
95
|
+
```
|
|
96
|
+
|
|
59
97
|
## Features
|
|
60
98
|
|
|
61
99
|
### ๐ Project initialization
|
package/README.md
CHANGED
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
## ๋ชฉ์ฐจ
|
|
38
38
|
|
|
39
39
|
- [Quick Start](#quick-start)
|
|
40
|
+
- [์ ๊ท ํ๋ก์ ํธ ์์ ์์](#์ ๊ท-ํ๋ก์ ํธ-์์-์์)
|
|
41
|
+
- [์์ด์ ํธ ํฅ์คํ ํ๋กฌํํธ](#์์ด์ ํธ-ํฅ์คํ-ํ๋กฌํํธ)
|
|
40
42
|
- [์ฃผ์ ๊ธฐ๋ฅ](#์ฃผ์-๊ธฐ๋ฅ)
|
|
41
43
|
- [์ฌ์ฉ๋ฒ](#์ฌ์ฉ๋ฒ)
|
|
42
44
|
- [์ค์ ํ์ผ](#์ค์ -ํ์ผ)
|
|
@@ -69,6 +71,44 @@ npx lee-spec-kit status
|
|
|
69
71
|
npx lee-spec-kit doctor
|
|
70
72
|
```
|
|
71
73
|
|
|
74
|
+
## ์ ๊ท ํ๋ก์ ํธ ์์ ์์
|
|
75
|
+
|
|
76
|
+
์ ๊ท ํ๋ก์ ํธ์์๋ **์ฝ๋ ์ค์บํด๋ฉ์ ๋จผ์ ** ํ๊ณ , ๊ทธ ๋ค์ docs๋ฅผ ์ด๊ธฐํํ์ธ์.
|
|
77
|
+
์ด ์์๋ ๊ธฐ๋ณธ๊ฐ์ธ `docsRepo: embedded` ๊ธฐ์ค์
๋๋ค.
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# 0. ์ฝ๋ ํ๋ก์ ํธ ์์ฑ/์ด๊ธฐํ (์: Next.js)
|
|
81
|
+
npx create-next-app@latest my-app
|
|
82
|
+
cd my-app
|
|
83
|
+
|
|
84
|
+
# 1. docs ๊ตฌ์กฐ ์ด๊ธฐํ
|
|
85
|
+
npx lee-spec-kit init
|
|
86
|
+
|
|
87
|
+
# 2. ๊ฐ์ง ํ์ธ (์์ด์ ํธ ์์์ )
|
|
88
|
+
npx lee-spec-kit detect --json
|
|
89
|
+
|
|
90
|
+
# 3. Feature ์์ฑ ํ ์์
์์
|
|
91
|
+
npx lee-spec-kit feature user-auth
|
|
92
|
+
npx lee-spec-kit context --json
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
- `detect --json` ๊ฒฐ๊ณผ๊ฐ `isLeeSpecKitProject: true`์ผ ๋ lee-spec-kit ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ฉํ์ธ์.
|
|
96
|
+
- `isLeeSpecKitProject: false`๋ฉด ์ผ๋ฐ ํ๋ก์ ํธ ์ํฌํ๋ก์ฐ๋ก ์งํํ์ธ์.
|
|
97
|
+
- `standalone`์ผ๋ก docs๋ฅผ ๋ถ๋ฆฌํ ๊ฒฝ์ฐ์๋ docs ๋ ํฌ ์์น(`--dir` ๋๋ `LEE_SPEC_KIT_DOCS_DIR`) ๊ธฐ์ค์ผ๋ก ์คํํ์ธ์.
|
|
98
|
+
|
|
99
|
+
## ์์ด์ ํธ ํฅ์คํ ํ๋กฌํํธ
|
|
100
|
+
|
|
101
|
+
์๋ ํ๋กฌํํธ๋ฅผ ์์ด์ ํธ ์์ ๋ฉ์์ง๋ก ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
์์
์์ ์ ์ฐจ:
|
|
105
|
+
1) npx lee-spec-kit detect --json
|
|
106
|
+
2) isLeeSpecKitProject === true ์ด๋ฉด npx lee-spec-kit context --json ์คํ
|
|
107
|
+
3) actionOptions๊ฐ ์์ผ๋ฉด approvalPrompt์ finalPrompt๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ์์๊ฒ ์ ์ํ๊ณ ์น์ธ(<LABEL> ๋๋ <LABEL> OK) ๋๊ธฐ
|
|
108
|
+
4) ์น์ธ ์ ์๋ ์คํํ์ง ๋ง๊ณ , requiresUserCheck=true ์ก์
์ ์น์ธ ํ์๋ง ์คํ
|
|
109
|
+
5) isLeeSpecKitProject === false ์ด๋ฉด lee-spec-kit ์ ์ฉ ์ ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ผ๋ฐ ์ํฌํ๋ก์ฐ๋ก ์งํ
|
|
110
|
+
```
|
|
111
|
+
|
|
72
112
|
## ์ฃผ์ ๊ธฐ๋ฅ
|
|
73
113
|
|
|
74
114
|
### ๐ ํ๋ก์ ํธ ์ด๊ธฐํ
|
package/dist/index.js
CHANGED
|
@@ -8475,11 +8475,7 @@ function parsePrArtifactMode(raw, kind, lang) {
|
|
|
8475
8475
|
tg(lang, "artifactModeInvalid", { kind, value })
|
|
8476
8476
|
);
|
|
8477
8477
|
}
|
|
8478
|
-
function
|
|
8479
|
-
const normalized = (component || "").trim().toLowerCase();
|
|
8480
|
-
return ["be", "backend", "api", "server", "core"].includes(normalized);
|
|
8481
|
-
}
|
|
8482
|
-
function resolvePrArtifactPolicy(config, feature, options) {
|
|
8478
|
+
function resolvePrArtifactPolicy(config, options) {
|
|
8483
8479
|
const screenshotsMode = parsePrArtifactMode(
|
|
8484
8480
|
options.screenshots,
|
|
8485
8481
|
"screenshots",
|
|
@@ -8491,7 +8487,7 @@ function resolvePrArtifactPolicy(config, feature, options) {
|
|
|
8491
8487
|
config.lang
|
|
8492
8488
|
);
|
|
8493
8489
|
const includeScreenshots = screenshotsMode === "on" ? true : screenshotsMode === "off" ? false : config.pr?.screenshots?.upload ?? false;
|
|
8494
|
-
const includeMermaid = mermaidMode === "on" ? true : mermaidMode === "off" ? false :
|
|
8490
|
+
const includeMermaid = mermaidMode === "on" ? true : mermaidMode === "off" ? false : true;
|
|
8495
8491
|
return {
|
|
8496
8492
|
includeScreenshots,
|
|
8497
8493
|
includeMermaid
|
|
@@ -9545,7 +9541,7 @@ function githubCommand(program2) {
|
|
|
9545
9541
|
slug: feature.slug
|
|
9546
9542
|
});
|
|
9547
9543
|
const title = options.title?.trim() || defaultTitle;
|
|
9548
|
-
const artifactPolicy = resolvePrArtifactPolicy(config,
|
|
9544
|
+
const artifactPolicy = resolvePrArtifactPolicy(config, options);
|
|
9549
9545
|
const generatedBody = buildPrBody(
|
|
9550
9546
|
feature,
|
|
9551
9547
|
specContent,
|
package/package.json
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
This documentation is organized by feature to help agents quickly understand the project.
|
|
4
4
|
|
|
5
|
+
## Agent Session Start Checklist
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1) Detect project
|
|
9
|
+
npx lee-spec-kit detect --json
|
|
10
|
+
|
|
11
|
+
# 2) If detected, read context first
|
|
12
|
+
npx lee-spec-kit context --json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- Apply lee-spec-kit workflow only when `isLeeSpecKitProject: true`.
|
|
16
|
+
- When `actionOptions` exist, show `approvalPrompt`/`finalPrompt` exactly as provided and wait for user approval (`<LABEL>` or `<LABEL> OK`) before execution.
|
|
17
|
+
- If `isLeeSpecKitProject: false`, skip lee-spec-kit-specific flow and continue with normal workflow.
|
|
18
|
+
|
|
19
|
+
## New Project Start Order
|
|
20
|
+
|
|
21
|
+
- Scaffold the code project first (for example Next.js/NestJS), then run `lee-spec-kit init`.
|
|
22
|
+
- After that, verify detection with `detect --json`, then continue with `feature` and `context`.
|
|
23
|
+
- This sequence assumes default `docsRepo: embedded`. For `standalone`, run against the docs repo path (`--dir` or `LEE_SPEC_KIT_DOCS_DIR`).
|
|
24
|
+
|
|
5
25
|
## Directory Structure
|
|
6
26
|
|
|
7
27
|
| Path | Purpose | Key Documents |
|
|
@@ -74,8 +74,9 @@ Include the artifacts in the PR body.
|
|
|
74
74
|
|
|
75
75
|
> - If this includes UI changes, include **screenshots**.
|
|
76
76
|
> - If this includes logic/structure changes, include a **diagram**.
|
|
77
|
+
> - `--mermaid auto` includes a diagram by default; use `--mermaid off` only when no logic/structure change exists.
|
|
77
78
|
|
|
78
|
-
#### UI changes
|
|
79
|
+
#### UI changes
|
|
79
80
|
|
|
80
81
|
- Default is `pr.screenshots.upload: false`. If you need upload/URL inclusion, enable it in `.lee-spec-kit.json`.
|
|
81
82
|
- If `.lee-spec-kit.json` has `pr.screenshots.upload: false`, **do not upload/include URLs**, and **do not include a "Screenshots" section** in the PR body.
|
|
@@ -135,9 +136,10 @@ gh release upload "$TAG" /tmp/lee-spec-kit/pr-assets/* --clobber
|
|
|
135
136
|
echo \"\"
|
|
136
137
|
```
|
|
137
138
|
|
|
138
|
-
#### Logic/structure changes
|
|
139
|
+
#### Logic/structure changes
|
|
139
140
|
|
|
140
141
|
- Write a Mermaid **`sequenceDiagram`** in the PR body and keep it aligned with the generated body template format.
|
|
142
|
+
- Apply this rule based on change type (logic/structure), not by frontend/backend classification.
|
|
141
143
|
|
|
142
144
|
### 4. Request User Approval + Move to `Ready`
|
|
143
145
|
|
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
์์ด์ ํธ๊ฐ ํ๋ก์ ํธ ์ ๋ฐ์ ๋น ๋ฅด๊ฒ ํ์
ํ ์ ์๋๋ก ๋ฌธ์๋ฅผ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌํด ๋์์ต๋๋ค.
|
|
4
4
|
|
|
5
|
+
## ์์ด์ ํธ ์ธ์
์์ ์ฒดํฌ๋ฆฌ์คํธ
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 1) ํ๋ก์ ํธ ๊ฐ์ง
|
|
9
|
+
npx lee-spec-kit detect --json
|
|
10
|
+
|
|
11
|
+
# 2) ๊ฐ์ง ์ฑ๊ณต ์ ์ปจํ
์คํธ ์กฐํ
|
|
12
|
+
npx lee-spec-kit context --json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- `isLeeSpecKitProject: true`์ผ ๋๋ง lee-spec-kit ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ฉํฉ๋๋ค.
|
|
16
|
+
- `actionOptions`๊ฐ ์์ผ๋ฉด `approvalPrompt`/`finalPrompt`๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๊ณ ์น์ธ(`<LABEL>` ๋๋ `<LABEL> OK`)์ ๋ฐ์ ๋ค ์คํํฉ๋๋ค.
|
|
17
|
+
- `isLeeSpecKitProject: false`๋ฉด lee-spec-kit ์ ์ฉ ์ ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ผ๋ฐ ์ํฌํ๋ก์ฐ๋ก ์งํํฉ๋๋ค.
|
|
18
|
+
|
|
19
|
+
## ์ ๊ท ํ๋ก์ ํธ ์์ ์์
|
|
20
|
+
|
|
21
|
+
- ์ฝ๋ ํ๋ก์ ํธ ์ค์บํด๋ฉ(์: Next.js/NestJS) ํ `lee-spec-kit init`์ ์คํํ์ธ์.
|
|
22
|
+
- ๊ทธ ๋ค์ `detect --json`์ผ๋ก ๊ฐ์ง ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ณ , `feature`/`context` ์์๋ก ์งํํ์ธ์.
|
|
23
|
+
- ์ ์์๋ ๊ธฐ๋ณธ๊ฐ์ธ `docsRepo: embedded` ๊ธฐ์ค์
๋๋ค. `standalone`์ด๋ฉด docs ๋ ํฌ ๊ฒฝ๋ก ๊ธฐ์ค(`--dir` ๋๋ `LEE_SPEC_KIT_DOCS_DIR`)์ผ๋ก ์คํํ์ธ์.
|
|
24
|
+
|
|
5
25
|
## ์์ ๊ตฌ์กฐ ์์ฝ
|
|
6
26
|
|
|
7
27
|
| ๊ฒฝ๋ก | ๋ชฉ์ | ํต์ฌ ๋ฌธ์/์ญํ |
|
|
@@ -74,8 +74,9 @@ PR ๋ณธ๋ฌธ์ ๊ฒฐ๊ณผ๋ฌผ์ ํฌํจํฉ๋๋ค.
|
|
|
74
74
|
|
|
75
75
|
> - UI ๋ณ๊ฒฝ์ ํด๋น๋๋ค๋ฉด **์คํฌ๋ฆฐ์ท์** ํฌํจํ์ธ์.
|
|
76
76
|
> - ๋ก์ง/๊ตฌ์กฐ ๋ณ๊ฒฝ์ ํด๋น๋๋ค๋ฉด **๋ค์ด์ด๊ทธ๋จ์** ํฌํจํ์ธ์.
|
|
77
|
+
> - `--mermaid auto`๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ด์ด๊ทธ๋จ์ ํฌํจํฉ๋๋ค. ๋ก์ง/๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ์ ํ ์๋ ๊ฒฝ์ฐ์๋ง `--mermaid off`๋ฅผ ์ฌ์ฉํ์ธ์.
|
|
77
78
|
|
|
78
|
-
#### UI ๋ณ๊ฒฝ
|
|
79
|
+
#### UI ๋ณ๊ฒฝ
|
|
79
80
|
|
|
80
81
|
- ๊ธฐ๋ณธ๊ฐ์ `pr.screenshots.upload: false`์
๋๋ค. ์
๋ก๋/URL ํฌํจ์ด ํ์ํ๋ค๋ฉด `.lee-spec-kit.json`์์ `true`๋ก ์ผ์ธ์.
|
|
81
82
|
- `.lee-spec-kit.json`์์ `pr.screenshots.upload: false`๋ผ๋ฉด **์
๋ก๋/URL ํฌํจ์ ํ์ง ์์ผ๋ฉฐ**, PR ๋ณธ๋ฌธ์์๋ **"์คํฌ๋ฆฐ์ท" ์น์
์ ๋ง๋ค์ง ์์ต๋๋ค.**
|
|
@@ -135,9 +136,10 @@ gh release upload "$TAG" /tmp/lee-spec-kit/pr-assets/* --clobber
|
|
|
135
136
|
echo \"\"
|
|
136
137
|
```
|
|
137
138
|
|
|
138
|
-
#### ๋ก์ง/๊ตฌ์กฐ ๋ณ๊ฒฝ
|
|
139
|
+
#### ๋ก์ง/๊ตฌ์กฐ ๋ณ๊ฒฝ
|
|
139
140
|
|
|
140
141
|
- PR ๋ณธ๋ฌธ์ Mermaid **`sequenceDiagram`**์ ์์ฑํ๊ณ , ์์ฑ๋ ๋ณธ๋ฌธ ํ
ํ๋ฆฟ ํ์๊ณผ ์ผ์นํ๊ฒ ์ ์งํฉ๋๋ค.
|
|
142
|
+
- ์ด ๊ธฐ์ค์ ํ๋ก ํธ/๋ฐฑ์๋ ๊ตฌ๋ถ์ด ์๋๋ผ ๋ณ๊ฒฝ ์ ํ(๋ก์ง/๊ตฌ์กฐ) ๊ธฐ์ค์ผ๋ก ์ ์ฉํฉ๋๋ค.
|
|
141
143
|
|
|
142
144
|
### 4. ์ฌ์ฉ์ ํ์ธ ์์ฒญ + `Ready` ์ ํ
|
|
143
145
|
|