lee-spec-kit 0.4.11 → 0.4.13
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 +48 -1
- package/README.md +52 -1
- package/dist/index.js +305 -124
- package/package.json +1 -1
- package/templates/en/common/agents/pr-template.md +15 -7
- package/templates/en/common/agents/skills/create-feature.md +1 -1
- package/templates/en/common/agents/skills/create-pr.md +20 -3
- package/templates/en/common/agents/skills/execute-task.md +5 -2
- package/templates/en/fullstack/README.md +5 -2
- package/templates/en/fullstack/agents/agents.md +2 -1
- package/templates/en/fullstack/features/feature-base/plan.md +1 -1
- package/templates/en/fullstack/features/feature-base/spec.md +1 -1
- package/templates/en/fullstack/features/feature-base/tasks.md +11 -2
- package/templates/en/single/README.md +5 -2
- package/templates/en/single/agents/agents.md +2 -1
- package/templates/en/single/features/feature-base/plan.md +1 -1
- package/templates/en/single/features/feature-base/spec.md +1 -1
- package/templates/en/single/features/feature-base/tasks.md +11 -2
- package/templates/ko/common/agents/pr-template.md +15 -7
- package/templates/ko/common/agents/skills/create-feature.md +3 -3
- package/templates/ko/common/agents/skills/create-pr.md +20 -3
- package/templates/ko/common/agents/skills/execute-task.md +7 -5
- package/templates/ko/fullstack/README.md +5 -2
- package/templates/ko/fullstack/agents/agents.md +2 -1
- package/templates/ko/fullstack/features/feature-base/plan.md +1 -1
- package/templates/ko/fullstack/features/feature-base/spec.md +1 -1
- package/templates/ko/fullstack/features/feature-base/tasks.md +12 -3
- package/templates/ko/single/README.md +5 -2
- package/templates/ko/single/agents/agents.md +2 -1
- package/templates/ko/single/features/feature-base/plan.md +1 -1
- package/templates/ko/single/features/feature-base/spec.md +1 -1
- package/templates/ko/single/features/feature-base/tasks.md +12 -3
package/package.json
CHANGED
|
@@ -42,15 +42,17 @@ For file links within the repo in PR body, **always use current branch name**:
|
|
|
42
42
|
|
|
43
43
|
## Tests
|
|
44
44
|
|
|
45
|
-
> ⚠️ **
|
|
45
|
+
> ⚠️ Add **only the tests you actually ran** below, and ensure **all items are checked ([x])**.
|
|
46
|
+
> Do not include tests you didn’t run.
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
- [ ] Integration tests completed
|
|
48
|
+
### Tests Run
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
- [x] `{test command 1}` — PASS
|
|
51
|
+
- [x] `{test command 2}` — PASS
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
### Notes (Optional)
|
|
54
|
+
|
|
55
|
+
- {extra context or links to logs}
|
|
54
56
|
|
|
55
57
|
> - If this includes UI changes, include **screenshots**.
|
|
56
58
|
> - If this includes logic/structure changes, include a **diagram**.
|
|
@@ -64,7 +66,10 @@ For file links within the repo in PR body, **always use current branch name**:
|
|
|
64
66
|
## Architecture Diagram (Backend / core structure changes)
|
|
65
67
|
|
|
66
68
|
```mermaid
|
|
67
|
-
flowchart
|
|
69
|
+
flowchart TD
|
|
70
|
+
%% Guidelines:
|
|
71
|
+
%% - Focus on components/modules/data flow (structure/flow)
|
|
72
|
+
%% - Keep it small (≤ 12 nodes recommended); summarize/split if needed
|
|
68
73
|
A[Client] --> B[API]
|
|
69
74
|
B --> C[DB]
|
|
70
75
|
```
|
|
@@ -105,6 +110,9 @@ gh pr create \
|
|
|
105
110
|
|
|
106
111
|
After all reviews are resolved:
|
|
107
112
|
|
|
113
|
+
> ⚠️ Merging (`git merge`/`gh pr merge`) and creating merge commits are considered **remote git operations**.
|
|
114
|
+
> Before running these commands, share the changes with the user and proceed only after the user replies with exactly `OK`.
|
|
115
|
+
|
|
108
116
|
```bash
|
|
109
117
|
# Update main before merge
|
|
110
118
|
git checkout main
|
|
@@ -50,7 +50,7 @@ After completing the action, go back to Step 1 and run `context` again.
|
|
|
50
50
|
5. Create feature branch
|
|
51
51
|
6. Write `plan.md`
|
|
52
52
|
7. Get `plan.md` approved
|
|
53
|
-
8. Write/execute `tasks.md`
|
|
53
|
+
8. Write/approve/execute `tasks.md` (Doc Status: Review → Approved)
|
|
54
54
|
9. Pre-commit verification
|
|
55
55
|
10. Commit docs
|
|
56
56
|
|
|
@@ -32,8 +32,8 @@ Guide for creating Pull Requests.
|
|
|
32
32
|
|
|
33
33
|
1. Run relevant test commands (e.g., `npm test`, `pnpm test`); if no tests exist, request them from the user
|
|
34
34
|
2. Check results (PASS/FAIL)
|
|
35
|
-
3.
|
|
36
|
-
4.
|
|
35
|
+
3. In the PR body "Tests" section, add **only the tests you actually ran** as checklist items and ensure they are **all checked ([x])** (do not include unexecuted tests)
|
|
36
|
+
4. If you didn’t run any tests, request/confirm with the user before creating the PR
|
|
37
37
|
|
|
38
38
|
### 3. Prepare Screenshots / Diagrams (Include in PR Body)
|
|
39
39
|
|
|
@@ -47,6 +47,15 @@ Include the artifacts in the PR body.
|
|
|
47
47
|
- Use `agent-browser` to generate screenshots.
|
|
48
48
|
- Save files under a local temp folder (`/tmp/lee-spec-kit/pr-assets/`).
|
|
49
49
|
- Upload them as Release assets, then put the image URLs into the "Screenshots" section of the PR body.
|
|
50
|
+
- Before uploading, **open the image file** and verify, then ask the user to validate before PR creation:
|
|
51
|
+
- It is not a login/permission/error/blank page
|
|
52
|
+
- The PR-relevant change is actually visible
|
|
53
|
+
- No sensitive info is exposed (prod tokens/PII/internal URLs)
|
|
54
|
+
|
|
55
|
+
> If the page requires auth, request one of the following from the user before taking screenshots:
|
|
56
|
+
> - A preview URL that is accessible **without login** (dev-only bypass is OK)
|
|
57
|
+
> - A **test account** (no real accounts / no production tokens) + login instructions
|
|
58
|
+
> - A reproducible route with seeded/dummy data
|
|
50
59
|
|
|
51
60
|
```bash
|
|
52
61
|
# (one-time) install agent-browser
|
|
@@ -67,6 +76,11 @@ agent-browser open "$PREVIEW_URL"
|
|
|
67
76
|
agent-browser screenshot /tmp/lee-spec-kit/pr-assets/ui-1.png --full
|
|
68
77
|
agent-browser close
|
|
69
78
|
|
|
79
|
+
# (required) open and validate the screenshot (re-capture if login/error/blank)
|
|
80
|
+
ls -lh /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
81
|
+
# macOS: open /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
82
|
+
# Linux: xdg-open /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
83
|
+
|
|
70
84
|
# (recommended) stop the dev server you started for screenshots
|
|
71
85
|
kill \"$DEV_PID\" >/dev/null 2>&1 || true
|
|
72
86
|
```
|
|
@@ -87,7 +101,10 @@ echo \"\"
|
|
|
87
101
|
|
|
88
102
|
#### Logic/structure changes (Backend PR)
|
|
89
103
|
|
|
90
|
-
- Write a Mermaid diagram
|
|
104
|
+
- Write a Mermaid diagram in the PR body (see the "Architecture Diagram" section in `pr-template.md`).
|
|
105
|
+
- Default to **`flowchart TD`** (CodeRabbit-style).
|
|
106
|
+
- Focus on components/modules/data flow (structure/flow over implementation detail).
|
|
107
|
+
- Keep it small: **≤ 12 nodes** recommended (summarize or split if it gets too big).
|
|
91
108
|
|
|
92
109
|
### 4. Request User Approval
|
|
93
110
|
|
|
@@ -21,6 +21,7 @@ Execute the `👉 Next Action` exactly as printed by the CLI.
|
|
|
21
21
|
|
|
22
22
|
- If the CLI points to an active task, focus on that task only.
|
|
23
23
|
- If there is no active task, **share the task title and get user approval (OK)**, then switch the next `[TODO]` task to `[DOING]` and start.
|
|
24
|
+
- For **[DOING] → [DONE]**: before marking it `[DONE]`, **share the outcome/changes/verification (including tests)** and get user approval (OK). (Do not mark DONE first.)
|
|
24
25
|
- If the CLI prints commands, copy/paste them. (In standalone setups commands may include `git -C ...` and scopes like `project`/`docs`.)
|
|
25
26
|
|
|
26
27
|
### Step 3: Update tasks.md (only what you did)
|
|
@@ -33,8 +34,10 @@ Keep `tasks.md` aligned with reality.
|
|
|
33
34
|
### Step 3.25: Commit per task (important)
|
|
34
35
|
|
|
35
36
|
- Complete **only one task at a time** (do not batch-finish multiple tasks in one commit).
|
|
36
|
-
- After
|
|
37
|
-
-
|
|
37
|
+
- After you share the outcome/verification and get approval (OK), mark the task `[DONE]` (and update any checklist items), then create commits (code commit + docs commit) so each task has its own history.
|
|
38
|
+
- If `context` shows `[CHECK required]`, for commits/push/merge, **share the commit message + included files and wait for explicit OK** before running the commands.
|
|
39
|
+
- Once all tasks are `[DONE]`, share the "Completion Criteria" checklist with the user and get **final approval (OK)**, then check it (especially the **Final user approval (OK) received** item).
|
|
40
|
+
- Note: `Doc Status (Review→Approved)` is **progress approval (OK)**, while the completion checklist approval is **final approval (OK)**.
|
|
38
41
|
|
|
39
42
|
### Step 3.5: Record decisions (strongly recommended, effectively required)
|
|
40
43
|
|
|
@@ -31,6 +31,7 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
31
31
|
- `docsRepo` ("embedded" | "standalone"): How docs are managed
|
|
32
32
|
- `pushDocs` (boolean, optional): Only written when `docsRepo: "standalone"` (whether to push to remote)
|
|
33
33
|
- `docsRemote` (string, optional): Only written when `pushDocs: true` (remote repo URL)
|
|
34
|
+
- `approval` (object, optional): Override `[CHECK required]` / `requiresUserCheck` policy in `context` output (approval token: `OK`)
|
|
34
35
|
|
|
35
36
|
### Examples
|
|
36
37
|
|
|
@@ -40,7 +41,8 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
40
41
|
"projectType": "fullstack",
|
|
41
42
|
"lang": "en",
|
|
42
43
|
"createdAt": "{{date}}",
|
|
43
|
-
"docsRepo": "embedded"
|
|
44
|
+
"docsRepo": "embedded",
|
|
45
|
+
"approval": { "mode": "builtin" }
|
|
44
46
|
}
|
|
45
47
|
```
|
|
46
48
|
|
|
@@ -52,6 +54,7 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
52
54
|
"createdAt": "{{date}}",
|
|
53
55
|
"docsRepo": "standalone",
|
|
54
56
|
"pushDocs": true,
|
|
55
|
-
"docsRemote": "git@github.com:org/{{projectName}}-docs.git"
|
|
57
|
+
"docsRemote": "git@github.com:org/{{projectName}}-docs.git",
|
|
58
|
+
"approval": { "mode": "builtin" }
|
|
56
59
|
}
|
|
57
60
|
```
|
|
@@ -8,6 +8,7 @@ Operating rules for AI code assistants to perform consistent code generation and
|
|
|
8
8
|
|
|
9
9
|
> ⚠️ **The following actions require explicit user approval (OK) before proceeding.**
|
|
10
10
|
> **If approval is not given, stop immediately and request confirmation.**
|
|
11
|
+
> ✅ “OK” means the user replies with exactly `OK`.
|
|
11
12
|
|
|
12
13
|
| Action | When to Confirm | What to Share |
|
|
13
14
|
| --------------------- | ------------------------ | ------------------------- |
|
|
@@ -17,7 +18,7 @@ Operating rules for AI code assistants to perform consistent code generation and
|
|
|
17
18
|
| Issue Creation | Before `gh issue create` | Title, body, labels |
|
|
18
19
|
| PR Creation | Before `gh pr create` | Title, body, labels |
|
|
19
20
|
| Assignee Change | When assigning others | Target username |
|
|
20
|
-
| Remote Git Operations | Before `push`, `merge`
|
|
21
|
+
| Remote Git Operations | Before `push`, `merge` (including merge commits) | Branch, changes |
|
|
21
22
|
|
|
22
23
|
### Approval Process
|
|
23
24
|
|
|
@@ -3,19 +3,23 @@
|
|
|
3
3
|
## Task Rules
|
|
4
4
|
|
|
5
5
|
- **Status**: `[TODO]` → `[DOING]` → `[DONE]`
|
|
6
|
+
- **Approvals**:
|
|
7
|
+
- `[TODO] → [DOING]`: share task title first + user approval (OK)
|
|
8
|
+
- `[DOING] → [DONE]`: share result/verification first + user approval (OK)
|
|
6
9
|
- **Priority**: P0(urgent) > P1(high) > P2(medium) > P3(low)
|
|
7
10
|
|
|
8
11
|
---
|
|
9
12
|
|
|
10
13
|
## GitHub Issue
|
|
11
14
|
|
|
15
|
+
- **Doc Status**: Review | Approved
|
|
12
16
|
- **Repo**: {{projectName}}-{be|fe}
|
|
13
17
|
- **Issue**: #{issue-number}
|
|
14
18
|
- **Branch**: `feat/{issue-number}-{feature-name}`
|
|
15
19
|
- **PR**: -
|
|
16
20
|
- Example: `#123` or PR URL
|
|
17
21
|
- **PR Status**: -
|
|
18
|
-
- Values:
|
|
22
|
+
- Values: Review | Approved
|
|
19
23
|
|
|
20
24
|
---
|
|
21
25
|
|
|
@@ -23,11 +27,16 @@
|
|
|
23
27
|
|
|
24
28
|
### Phase 1: {Phase Name}
|
|
25
29
|
|
|
30
|
+
> Add tasks below. **At least 1 task is required.**
|
|
31
|
+
> Copy and use the format below.
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
26
34
|
- [TODO][P1] T-F{number}-01 {Task Title}
|
|
27
35
|
- Acceptance:
|
|
28
36
|
- (verification condition)
|
|
29
37
|
- Checklist:
|
|
30
38
|
- [ ] (subtask)
|
|
39
|
+
```
|
|
31
40
|
|
|
32
41
|
---
|
|
33
42
|
|
|
@@ -37,7 +46,7 @@
|
|
|
37
46
|
|
|
38
47
|
- [ ] All tasks are `[DONE]`, and each task's `Acceptance` is verified and `Checklist` is checked
|
|
39
48
|
- [ ] Tests executed and passing (record command/result below)
|
|
40
|
-
- [ ]
|
|
49
|
+
- [ ] Final user approval (OK) received (review the outcome)
|
|
41
50
|
|
|
42
51
|
### Test Run Log
|
|
43
52
|
|
|
@@ -30,6 +30,7 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
30
30
|
- `docsRepo` ("embedded" | "standalone"): How docs are managed
|
|
31
31
|
- `pushDocs` (boolean, optional): Only written when `docsRepo: "standalone"` (whether to push to remote)
|
|
32
32
|
- `docsRemote` (string, optional): Only written when `pushDocs: true` (remote repo URL)
|
|
33
|
+
- `approval` (object, optional): Override `[CHECK required]` / `requiresUserCheck` policy in `context` output (approval token: `OK`)
|
|
33
34
|
|
|
34
35
|
### Examples
|
|
35
36
|
|
|
@@ -39,7 +40,8 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
39
40
|
"projectType": "single",
|
|
40
41
|
"lang": "en",
|
|
41
42
|
"createdAt": "{{date}}",
|
|
42
|
-
"docsRepo": "embedded"
|
|
43
|
+
"docsRepo": "embedded",
|
|
44
|
+
"approval": { "mode": "builtin" }
|
|
43
45
|
}
|
|
44
46
|
```
|
|
45
47
|
|
|
@@ -51,6 +53,7 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
51
53
|
"createdAt": "{{date}}",
|
|
52
54
|
"docsRepo": "standalone",
|
|
53
55
|
"pushDocs": true,
|
|
54
|
-
"docsRemote": "git@github.com:org/{{projectName}}-docs.git"
|
|
56
|
+
"docsRemote": "git@github.com:org/{{projectName}}-docs.git",
|
|
57
|
+
"approval": { "mode": "builtin" }
|
|
55
58
|
}
|
|
56
59
|
```
|
|
@@ -8,6 +8,7 @@ Operating rules for AI code assistants to perform consistent code generation and
|
|
|
8
8
|
|
|
9
9
|
> ⚠️ **The following actions require explicit user approval (OK) before proceeding.**
|
|
10
10
|
> **If approval is not given, stop immediately and request confirmation.**
|
|
11
|
+
> ✅ “OK” means the user replies with exactly `OK`.
|
|
11
12
|
|
|
12
13
|
| Action | When to Confirm | What to Share |
|
|
13
14
|
| --------------------- | ------------------------ | ------------------------- |
|
|
@@ -17,7 +18,7 @@ Operating rules for AI code assistants to perform consistent code generation and
|
|
|
17
18
|
| Issue Creation | Before `gh issue create` | Title, body, labels |
|
|
18
19
|
| PR Creation | Before `gh pr create` | Title, body, labels |
|
|
19
20
|
| Assignee Change | When assigning others | Target username |
|
|
20
|
-
| Remote Git Operations | Before `push`, `merge`
|
|
21
|
+
| Remote Git Operations | Before `push`, `merge` (including merge commits) | Branch, changes |
|
|
21
22
|
|
|
22
23
|
### Approval Process
|
|
23
24
|
|
|
@@ -3,19 +3,23 @@
|
|
|
3
3
|
## Task Rules
|
|
4
4
|
|
|
5
5
|
- **Status**: `[TODO]` → `[DOING]` → `[DONE]`
|
|
6
|
+
- **Approvals**:
|
|
7
|
+
- `[TODO] → [DOING]`: share task title first + user approval (OK)
|
|
8
|
+
- `[DOING] → [DONE]`: share result/verification first + user approval (OK)
|
|
6
9
|
- **Priority**: P0(urgent) > P1(high) > P2(medium) > P3(low)
|
|
7
10
|
|
|
8
11
|
---
|
|
9
12
|
|
|
10
13
|
## GitHub Issue
|
|
11
14
|
|
|
15
|
+
- **Doc Status**: Review | Approved
|
|
12
16
|
- **Repo**: {{projectName}}
|
|
13
17
|
- **Issue**: #{issue-number}
|
|
14
18
|
- **Branch**: `feat/{issue-number}-{feature-name}`
|
|
15
19
|
- **PR**: -
|
|
16
20
|
- Example: `#123` or PR URL
|
|
17
21
|
- **PR Status**: -
|
|
18
|
-
- Values:
|
|
22
|
+
- Values: Review | Approved
|
|
19
23
|
|
|
20
24
|
---
|
|
21
25
|
|
|
@@ -23,11 +27,16 @@
|
|
|
23
27
|
|
|
24
28
|
### Phase 1: {Phase Name}
|
|
25
29
|
|
|
30
|
+
> Add tasks below. **At least 1 task is required.**
|
|
31
|
+
> Copy and use the format below.
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
26
34
|
- [TODO][P1] T-F{number}-01 {Task Title}
|
|
27
35
|
- Acceptance:
|
|
28
36
|
- (verification condition)
|
|
29
37
|
- Checklist:
|
|
30
38
|
- [ ] (subtask)
|
|
39
|
+
```
|
|
31
40
|
|
|
32
41
|
---
|
|
33
42
|
|
|
@@ -37,7 +46,7 @@
|
|
|
37
46
|
|
|
38
47
|
- [ ] All tasks are `[DONE]`, and each task's `Acceptance` is verified and `Checklist` is checked
|
|
39
48
|
- [ ] Tests executed and passing (record command/result below)
|
|
40
|
-
- [ ]
|
|
49
|
+
- [ ] Final user approval (OK) received (review the outcome)
|
|
41
50
|
|
|
42
51
|
### Test Run Log
|
|
43
52
|
|
|
@@ -40,15 +40,17 @@ PR 본문에서 레포 내 파일 링크는 **반드시 현재 브랜치명을
|
|
|
40
40
|
|
|
41
41
|
## 테스트
|
|
42
42
|
|
|
43
|
-
> ⚠️
|
|
43
|
+
> ⚠️ **실제로 실행한 테스트만** 아래에 항목을 추가하고, **모두 체크([x])** 하세요.
|
|
44
|
+
> 미실행 테스트는 항목을 만들지 않습니다.
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
- [ ] 통합 테스트 완료
|
|
46
|
+
### 실행한 테스트
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
- [x] `{테스트 명령어 1}` — PASS
|
|
49
|
+
- [x] `{테스트 명령어 2}` — PASS
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
### 로그/비고 (선택)
|
|
52
|
+
|
|
53
|
+
- {추가 설명 또는 로그 링크}
|
|
52
54
|
|
|
53
55
|
> - UI 변경에 해당된다면 **스크린샷을** 포함하세요.
|
|
54
56
|
> - 로직/구조 변경에 해당된다면 **다이어그램을** 포함하세요.
|
|
@@ -62,7 +64,10 @@ PR 본문에서 레포 내 파일 링크는 **반드시 현재 브랜치명을
|
|
|
62
64
|
## 아키텍처 다이어그램 (백엔드 / 핵심 구조 변경 시)
|
|
63
65
|
|
|
64
66
|
```mermaid
|
|
65
|
-
flowchart
|
|
67
|
+
flowchart TD
|
|
68
|
+
%% 가이드:
|
|
69
|
+
%% - 컴포넌트/모듈/데이터 흐름 중심 (구조/흐름)
|
|
70
|
+
%% - 노드 수 12개 이내 권장 (너무 크면 핵심만 남기고 요약/분리)
|
|
66
71
|
A[Client] --> B[API]
|
|
67
72
|
B --> C[DB]
|
|
68
73
|
```
|
|
@@ -103,6 +108,9 @@ gh pr create \
|
|
|
103
108
|
|
|
104
109
|
모든 리뷰 해결 시:
|
|
105
110
|
|
|
111
|
+
> ⚠️ 머지(`git merge`/`gh pr merge`) 및 머지 커밋 생성은 **Git 원격 작업**에 해당합니다.
|
|
112
|
+
> 실행 전 변경 사항을 사용자에게 공유하고, 사용자가 **정확히 `OK`**라고 답한 뒤에만 진행하세요.
|
|
113
|
+
|
|
106
114
|
```bash
|
|
107
115
|
# 머지 전 main 최신화
|
|
108
116
|
git checkout main
|
|
@@ -45,13 +45,13 @@ CLI가 출력하는 **`👉 Next Action` 메시지를 읽고, 그 지시만 정
|
|
|
45
45
|
> ⚠️ 이 단계를 외워서 실행하지 마세요. **참조용**일 뿐입니다. 항상 CLI를 믿으세요.
|
|
46
46
|
|
|
47
47
|
1. **Feature 폴더 생성**: `npx lee-spec-kit feature ...`
|
|
48
|
-
2. **spec.md 작성**: 기능 정의 (Status:
|
|
48
|
+
2. **spec.md 작성**: 기능 정의 (작성 후 Status: Review로 설정)
|
|
49
49
|
3. **spec.md 승인**: 사용자 검토 및 승인 (Status: Approved)
|
|
50
50
|
4. **GitHub Issue 생성**: 이슈 번호 발급
|
|
51
51
|
5. **브랜치 생성**: `git checkout -b feat/...`
|
|
52
|
-
6. **plan.md 작성**: 구현 계획 (Status:
|
|
52
|
+
6. **plan.md 작성**: 구현 계획 (작성 후 Status: Review로 설정)
|
|
53
53
|
7. **plan.md 승인**: 사용자 검토 및 승인 (Status: Approved)
|
|
54
|
-
8. **tasks.md
|
|
54
|
+
8. **tasks.md 작성/승인**: 태스크 분해 및 진행 (문서 상태: Review → Approved)
|
|
55
55
|
9. **문서 커밋 전 확인**: 최종 점검
|
|
56
56
|
10. **문서 커밋**: Docs Sync
|
|
57
57
|
|
|
@@ -32,8 +32,8 @@ Pull Request를 생성할 때 따르는 가이드입니다.
|
|
|
32
32
|
|
|
33
33
|
1. 작업과 관련된 테스트 명령어 실행 (예: `npm test`, `pnpm test`), 테스트가 없는 경우 사용자에게 요청
|
|
34
34
|
2. 결과 확인 (PASS/FAIL)
|
|
35
|
-
3. PR 본문 "테스트" 섹션에
|
|
36
|
-
4.
|
|
35
|
+
3. PR 본문 "테스트" 섹션에 **실행한 테스트만** 체크리스트로 추가하고, **모두 체크([x])** 합니다. (미실행 항목은 작성하지 않기)
|
|
36
|
+
4. 테스트를 실행하지 않았다면, PR 생성 전에 사용자에게 요청/확인합니다.
|
|
37
37
|
|
|
38
38
|
### 3. 스크린샷/다이어그램 작성 (PR 본문에 포함)
|
|
39
39
|
|
|
@@ -47,6 +47,15 @@ PR 본문에 결과물을 포함합니다.
|
|
|
47
47
|
- `agent-browser`로 스크린샷을 생성합니다.
|
|
48
48
|
- 스크린샷 파일은 로컬 임시 폴더(`/tmp/lee-spec-kit/pr-assets/`)에 저장합니다.
|
|
49
49
|
- 릴리스 자산(Release assets)으로 업로드한 뒤, 생성된 이미지 URL을 PR 본문 "스크린샷" 섹션에 넣습니다.
|
|
50
|
+
- 스크린샷을 업로드하기 전에 **이미지 파일을 직접 열어** 다음을 확인하고, PR 생성 전 사용자에게도 검증받습니다.
|
|
51
|
+
- 로그인 화면/권한 오류/에러 화면/빈 화면이 아닌지
|
|
52
|
+
- 이번 PR의 변경 사항이 실제로 보이는지
|
|
53
|
+
- 민감 정보(실서비스 토큰/개인정보/내부 URL)가 노출되지 않았는지
|
|
54
|
+
|
|
55
|
+
> 로그인/권한이 필요한 화면이라면, 스크린샷을 찍기 전에 사용자에게 아래 중 하나를 요청하세요.
|
|
56
|
+
> - 개발 서버에서 **로그인 없이** 접근 가능한 미리보기 URL 제공 (dev-only bypass 포함)
|
|
57
|
+
> - **테스트 계정** 제공(실계정/실서비스 토큰 금지) + 로그인 절차 안내
|
|
58
|
+
> - 시드 데이터/더미 데이터로 재현 가능한 경로 제공
|
|
50
59
|
|
|
51
60
|
```bash
|
|
52
61
|
# (최초 1회) agent-browser 설치
|
|
@@ -67,6 +76,11 @@ agent-browser open "$PREVIEW_URL"
|
|
|
67
76
|
agent-browser screenshot /tmp/lee-spec-kit/pr-assets/ui-1.png --full
|
|
68
77
|
agent-browser close
|
|
69
78
|
|
|
79
|
+
# (필수) 스크린샷 파일을 열어 검증 (로그인/에러/빈 화면이면 재촬영)
|
|
80
|
+
ls -lh /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
81
|
+
# macOS: open /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
82
|
+
# Linux: xdg-open /tmp/lee-spec-kit/pr-assets/ui-1.png
|
|
83
|
+
|
|
70
84
|
# (권장) 스크린샷을 위해 띄운 개발 서버는 작업이 끝나면 종료합니다.
|
|
71
85
|
kill \"$DEV_PID\" >/dev/null 2>&1 || true
|
|
72
86
|
```
|
|
@@ -87,7 +101,10 @@ echo \"\"
|
|
|
87
101
|
|
|
88
102
|
#### 로직/구조 변경 (백엔드 PR)
|
|
89
103
|
|
|
90
|
-
- PR 본문에 Mermaid
|
|
104
|
+
- PR 본문에 Mermaid 다이어그램을 작성합니다. (`pr-template.md`의 "아키텍처 다이어그램" 섹션 참고)
|
|
105
|
+
- 기본은 **`flowchart TD`** 를 사용합니다. (코드래빗 스타일)
|
|
106
|
+
- 컴포넌트/모듈/데이터 흐름 중심으로 그립니다. (구현 디테일보다 “구조/흐름”)
|
|
107
|
+
- 노드 수는 **12개 이내**를 권장합니다. (너무 크면 핵심만 남기고 분리/요약)
|
|
91
108
|
|
|
92
109
|
### 4. 사용자 확인 요청
|
|
93
110
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
모든 태스크가 완료될 때까지(`[DONE]`) 다음 과정을 **계속 반복**하세요.
|
|
11
11
|
|
|
12
|
-
### 1단계: 할 일 확인
|
|
12
|
+
### 1단계: 할 일 확인
|
|
13
13
|
|
|
14
14
|
작업을 시작하거나 하나를 마칠 때마다 **반드시** 아래 명령어를 실행합니다.
|
|
15
15
|
|
|
@@ -23,7 +23,7 @@ CLI가 가리키는 **Active Task** 또는 **Next Action**을 수행합니다.
|
|
|
23
23
|
|
|
24
24
|
- **[DOING] 상태인 태스크가 있다면**: 해당 태스크를 최우선으로 완료하세요.
|
|
25
25
|
- **[DOING]이 없다면**: CLI가 추천하는 다음 태스크(`[TODO]`)를 시작하기 전에, **태스크 제목을 공유하고 사용자 승인(OK)을 받은 뒤** `[DOING]`으로 변경하세요.
|
|
26
|
-
-
|
|
26
|
+
- **[DOING] → [DONE]**: 완료 처리 전에 **결과물/변경 사항/검증(테스트 포함)을 공유**하고 사용자 승인(OK)을 받은 뒤 `[DONE]`으로 변경하세요. (DONE으로 “먼저” 바꾸지 않기)
|
|
27
27
|
- CLI가 명령어를 출력하면 **그대로 복사해 실행**합니다. (standalone 환경에서도 레포 경로가 포함될 수 있습니다)
|
|
28
28
|
|
|
29
29
|
### 3단계: 기록 및 반복 (Record & Loop)
|
|
@@ -46,10 +46,12 @@ CLI가 가리키는 **Active Task** 또는 **Next Action**을 수행합니다.
|
|
|
46
46
|
|
|
47
47
|
#### 3-2) 태스크/체크리스트 업데이트 + 커밋
|
|
48
48
|
|
|
49
|
-
1. 작업이 끝나면 해당 태스크의 상태를 `[DONE]`으로
|
|
49
|
+
1. 작업이 끝나면 결과/검증을 사용자에게 공유해 승인(OK)을 받은 뒤, 해당 태스크의 상태를 `[DONE]`으로 변경하고 `Acceptance/Checklist` 항목을 `[x]`로 체크합니다.
|
|
50
50
|
2. **한 번에 하나의 태스크만** `[DONE]` 처리합니다. (태스크 2개 이상을 한 번에 완료/커밋으로 묶지 않기)
|
|
51
51
|
3. 커밋을 생성합니다 (코드 커밋 + 문서 커밋). 태스크 단위로 커밋이 남아야 합니다.
|
|
52
|
-
|
|
52
|
+
- `context`에 `[확인 필요]`가 보이면, **커밋/푸시 같은 원격 작업은 사용자에게 커밋 메시지/포함 파일을 공유하고 OK를 받은 뒤** 실행합니다.
|
|
53
|
+
4. 모든 태스크가 `[DONE]`가 되면, "완료 조건" 체크리스트를 사용자에게 공유하고 **최종 승인(OK)** 을 받은 뒤 체크합니다. (특히 **최종 사용자 승인(OK) 완료** 항목)
|
|
54
|
+
- 참고: `문서 상태(Review→Approved)`는 **진행 승인(OK)** 이고, 완료 조건의 승인은 **최종 승인(OK)** 입니다.
|
|
53
55
|
5. **즉시 1단계로 돌아가** 다음 할 일을 CLI에게 물어봅니다.
|
|
54
56
|
|
|
55
57
|
---
|
|
@@ -67,7 +69,7 @@ CLI가 가리키는 **Active Task** 또는 **Next Action**을 수행합니다.
|
|
|
67
69
|
> ⚠️ 직접 판단하지 말고 CLI가 시키는 대로 하세요.
|
|
68
70
|
|
|
69
71
|
1. **[TODO] → [DOING]**: 작업 시작 시 표시
|
|
70
|
-
2. **[DOING] → [DONE]**:
|
|
72
|
+
2. **[DOING] → [DONE]**: 결과/검증 공유 + 사용자 승인(OK) 후 표시 (테스트 통과 포함)
|
|
71
73
|
|
|
72
74
|
```markdown
|
|
73
75
|
- [DONE] T-01: 로그인 UI (완료됨)
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
- `docsRepo` ("embedded" | "standalone"): Docs 관리 방식
|
|
32
32
|
- `pushDocs` (boolean, optional): `docsRepo: "standalone"`일 때만 생성 (원격 push 여부)
|
|
33
33
|
- `docsRemote` (string, optional): `pushDocs: true`일 때만 생성 (원격 레포 URL)
|
|
34
|
+
- `approval` (object, optional): `context` 출력의 `[확인 필요]` / `requiresUserCheck` 정책 오버라이드 (승인 토큰: `OK`)
|
|
34
35
|
|
|
35
36
|
### 예시
|
|
36
37
|
|
|
@@ -40,7 +41,8 @@
|
|
|
40
41
|
"projectType": "fullstack",
|
|
41
42
|
"lang": "ko",
|
|
42
43
|
"createdAt": "{{date}}",
|
|
43
|
-
"docsRepo": "embedded"
|
|
44
|
+
"docsRepo": "embedded",
|
|
45
|
+
"approval": { "mode": "builtin" }
|
|
44
46
|
}
|
|
45
47
|
```
|
|
46
48
|
|
|
@@ -52,6 +54,7 @@
|
|
|
52
54
|
"createdAt": "{{date}}",
|
|
53
55
|
"docsRepo": "standalone",
|
|
54
56
|
"pushDocs": true,
|
|
55
|
-
"docsRemote": "git@github.com:org/{{projectName}}-docs.git"
|
|
57
|
+
"docsRemote": "git@github.com:org/{{projectName}}-docs.git",
|
|
58
|
+
"approval": { "mode": "builtin" }
|
|
56
59
|
}
|
|
57
60
|
```
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
> ⚠️ **아래 작업은 반드시 사용자의 명시적 승인(OK)을 받은 후에만 진행합니다.**
|
|
10
10
|
> **확인 없이 진행 시 작업을 즉시 중단해야 합니다.**
|
|
11
|
+
> ✅ 승인(OK)은 사용자가 **정확히 `OK`**라고 답하는 것을 의미합니다.
|
|
11
12
|
|
|
12
13
|
| 작업 | 확인 시점 | 공유 내용 |
|
|
13
14
|
| ------------- | -------------------- | --------------------------- |
|
|
@@ -17,7 +18,7 @@
|
|
|
17
18
|
| 이슈 생성 | `gh issue create` 전 | 제목, 본문, 라벨 |
|
|
18
19
|
| PR 생성 | `gh pr create` 전 | 제목, 본문, 라벨 |
|
|
19
20
|
| Assignee 변경 | 본인 외 지정 시 | 대상 사용자명 |
|
|
20
|
-
| Git 원격 작업 | `push`, `merge` 전
|
|
21
|
+
| Git 원격 작업 | `push`, `merge` 전 (머지 커밋 포함) | 브랜치, 변경 사항 |
|
|
21
22
|
|
|
22
23
|
### 확인 프로세스
|
|
23
24
|
|
|
@@ -3,19 +3,23 @@
|
|
|
3
3
|
## 태스크 규칙
|
|
4
4
|
|
|
5
5
|
- **상태**: `[TODO]` → `[DOING]` → `[DONE]`
|
|
6
|
+
- **승인**:
|
|
7
|
+
- `[TODO] → [DOING]`: 시작 전 태스크 제목 공유 + 사용자 승인(OK)
|
|
8
|
+
- `[DOING] → [DONE]`: 완료 전 결과/검증 공유 + 사용자 승인(OK)
|
|
6
9
|
- **우선순위**: P0(긴급) > P1(높음) > P2(보통) > P3(낮음)
|
|
7
10
|
|
|
8
11
|
---
|
|
9
12
|
|
|
10
13
|
## GitHub Issue
|
|
11
14
|
|
|
15
|
+
- **문서 상태**: Review | Approved
|
|
12
16
|
- **레포**: {{projectName}}-{be|fe}
|
|
13
17
|
- **Issue**: #{이슈번호}
|
|
14
18
|
- **브랜치**: `feat/{이슈번호}-{기능명}`
|
|
15
19
|
- **PR**: -
|
|
16
20
|
- 예: `#123` 또는 PR URL
|
|
17
21
|
- **PR 상태**: -
|
|
18
|
-
- 값:
|
|
22
|
+
- 값: Review | Approved
|
|
19
23
|
|
|
20
24
|
---
|
|
21
25
|
|
|
@@ -23,11 +27,16 @@
|
|
|
23
27
|
|
|
24
28
|
### Phase 1: {단계명}
|
|
25
29
|
|
|
30
|
+
> 아래에 태스크를 추가하세요. **최소 1개가 필요**합니다.
|
|
31
|
+
> 아래 포맷을 복사해 사용하세요.
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
26
34
|
- [TODO][P1] T-F{번호}-01 {태스크 제목}
|
|
27
35
|
- Acceptance:
|
|
28
36
|
- (검증 조건)
|
|
29
37
|
- Checklist:
|
|
30
|
-
- [ ] (
|
|
38
|
+
- [ ] (서브 태스크)
|
|
39
|
+
```
|
|
31
40
|
|
|
32
41
|
---
|
|
33
42
|
|
|
@@ -37,7 +46,7 @@
|
|
|
37
46
|
|
|
38
47
|
- [ ] 모든 태스크가 `[DONE]`이며, 각 태스크의 `Acceptance` 검증 및 `Checklist` 체크 완료
|
|
39
48
|
- [ ] 테스트 실행 및 통과 (아래에 명령어/결과 기록)
|
|
40
|
-
- [ ] 사용자 승인(OK) 완료
|
|
49
|
+
- [ ] 최종 사용자 승인(OK) 완료 (결과물 확인)
|
|
41
50
|
|
|
42
51
|
### 테스트 실행 기록
|
|
43
52
|
|