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.
Files changed (32) hide show
  1. package/README.en.md +48 -1
  2. package/README.md +52 -1
  3. package/dist/index.js +305 -124
  4. package/package.json +1 -1
  5. package/templates/en/common/agents/pr-template.md +15 -7
  6. package/templates/en/common/agents/skills/create-feature.md +1 -1
  7. package/templates/en/common/agents/skills/create-pr.md +20 -3
  8. package/templates/en/common/agents/skills/execute-task.md +5 -2
  9. package/templates/en/fullstack/README.md +5 -2
  10. package/templates/en/fullstack/agents/agents.md +2 -1
  11. package/templates/en/fullstack/features/feature-base/plan.md +1 -1
  12. package/templates/en/fullstack/features/feature-base/spec.md +1 -1
  13. package/templates/en/fullstack/features/feature-base/tasks.md +11 -2
  14. package/templates/en/single/README.md +5 -2
  15. package/templates/en/single/agents/agents.md +2 -1
  16. package/templates/en/single/features/feature-base/plan.md +1 -1
  17. package/templates/en/single/features/feature-base/spec.md +1 -1
  18. package/templates/en/single/features/feature-base/tasks.md +11 -2
  19. package/templates/ko/common/agents/pr-template.md +15 -7
  20. package/templates/ko/common/agents/skills/create-feature.md +3 -3
  21. package/templates/ko/common/agents/skills/create-pr.md +20 -3
  22. package/templates/ko/common/agents/skills/execute-task.md +7 -5
  23. package/templates/ko/fullstack/README.md +5 -2
  24. package/templates/ko/fullstack/agents/agents.md +2 -1
  25. package/templates/ko/fullstack/features/feature-base/plan.md +1 -1
  26. package/templates/ko/fullstack/features/feature-base/spec.md +1 -1
  27. package/templates/ko/fullstack/features/feature-base/tasks.md +12 -3
  28. package/templates/ko/single/README.md +5 -2
  29. package/templates/ko/single/agents/agents.md +2 -1
  30. package/templates/ko/single/features/feature-base/plan.md +1 -1
  31. package/templates/ko/single/features/feature-base/spec.md +1 -1
  32. package/templates/ko/single/features/feature-base/tasks.md +12 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lee-spec-kit",
3
- "version": "0.4.11",
3
+ "version": "0.4.13",
4
4
  "description": "Project documentation structure generator for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -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
- > ⚠️ **Check only after running tests. Do NOT check items that were not executed.**
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
- - [ ] Unit tests passed
48
- - [ ] Integration tests completed
48
+ ### Tests Run
49
49
 
50
- ### Execution Results
50
+ - [x] `{test command 1}` — PASS
51
+ - [x] `{test command 2}` — PASS
51
52
 
52
- - Command: `{test command executed}`
53
- - Result: `{PASS/FAIL summary}`
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 LR
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. Record **execution results** in the "Tests" section of PR body
36
- 4. All checkboxes must be checked
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 \"![](https://github.com/${REPO}/releases/download/${TAG}/ui-1.png)\"
87
101
 
88
102
  #### Logic/structure changes (Backend PR)
89
103
 
90
- - Write a Mermaid diagram (flowchart/sequence/etc.) in the PR body (see the "Architecture Diagram" section in `pr-template.md`).
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 marking a task `[DONE]` (and updating any checklist items), create commits (code commit + docs commit) so each task has its own history.
37
- - Once all tasks are `[DONE]`, share the "Completion Criteria" checklist with the user and get approval (OK), then check it (especially the **User approval (OK) received** item).
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` | Branch, changes |
21
+ | Remote Git Operations | Before `push`, `merge` (including merge commits) | Branch, changes |
21
22
 
22
23
  ### Approval Process
23
24
 
@@ -9,7 +9,7 @@
9
9
  - **Feature ID**: F{number}
10
10
  - **Target Repo**: {{projectName}}-{be|fe}
11
11
  - **Created**: YYYY-MM-DD
12
- - **Status**: Draft | Review | Approved
12
+ - **Status**: Review | Approved
13
13
 
14
14
  ---
15
15
 
@@ -11,7 +11,7 @@
11
11
  - **Target Repo**: {{projectName}}-{be|fe}
12
12
  - **Issue Number**: #{issue-number}
13
13
  - **Created**: YYYY-MM-DD
14
- - **Status**: Draft | Review | Approved
14
+ - **Status**: Review | Approved
15
15
 
16
16
  ---
17
17
 
@@ -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: Draft | Review | Approved
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
- - [ ] User approval (OK) received
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` | Branch, changes |
21
+ | Remote Git Operations | Before `push`, `merge` (including merge commits) | Branch, changes |
21
22
 
22
23
  ### Approval Process
23
24
 
@@ -9,7 +9,7 @@
9
9
  - **Feature ID**: F{number}
10
10
  - **Target Repo**: {{projectName}}
11
11
  - **Created**: YYYY-MM-DD
12
- - **Status**: Draft | Review | Approved
12
+ - **Status**: Review | Approved
13
13
 
14
14
  ---
15
15
 
@@ -11,7 +11,7 @@
11
11
  - **Target Repo**: {{projectName}}
12
12
  - **Issue Number**: #{issue-number}
13
13
  - **Created**: YYYY-MM-DD
14
- - **Status**: Draft | Review | Approved
14
+ - **Status**: Review | Approved
15
15
 
16
16
  ---
17
17
 
@@ -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: Draft | Review | Approved
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
- - [ ] User approval (OK) received
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
- - 결과: `{PASS/FAIL 요약}`
51
+ ### 로그/비고 (선택)
52
+
53
+ - {추가 설명 또는 로그 링크}
52
54
 
53
55
  > - UI 변경에 해당된다면 **스크린샷을** 포함하세요.
54
56
  > - 로직/구조 변경에 해당된다면 **다이어그램을** 포함하세요.
@@ -62,7 +64,10 @@ PR 본문에서 레포 내 파일 링크는 **반드시 현재 브랜치명을
62
64
  ## 아키텍처 다이어그램 (백엔드 / 핵심 구조 변경 시)
63
65
 
64
66
  ```mermaid
65
- flowchart LR
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: Draft)
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: Draft)
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 \"![](https://github.com/${REPO}/releases/download/${TAG}/ui-1.png)\"
87
101
 
88
102
  #### 로직/구조 변경 (백엔드 PR)
89
103
 
90
- - PR 본문에 Mermaid 다이어그램(예: flowchart/sequence)을 작성합니다. (`pr-template.md`의 "아키텍처 다이어그램" 섹션 참고)
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단계: 할 일 확인 (Check)
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
- - **완료 조건(Acceptance)을 검증**하고, 테스트를 통과해야만 완료(`[DONE]`) 처리합니다.
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]`으로 변경하고, `Acceptance/Checklist` 항목을 `[x]`로 체크합니다.
49
+ 1. 작업이 끝나면 결과/검증을 사용자에게 공유해 승인(OK)을 받은 뒤, 해당 태스크의 상태를 `[DONE]`으로 변경하고 `Acceptance/Checklist` 항목을 `[x]`로 체크합니다.
50
50
  2. **한 번에 하나의 태스크만** `[DONE]` 처리합니다. (태스크 2개 이상을 한 번에 완료/커밋으로 묶지 않기)
51
51
  3. 커밋을 생성합니다 (코드 커밋 + 문서 커밋). 태스크 단위로 커밋이 남아야 합니다.
52
- 4. 모든 태스크가 `[DONE]`가 되면, "완료 조건" 체크리스트를 사용자에게 공유하고 승인(OK)을 받은 체크합니다. (특히 **사용자 승인(OK) 완료** 항목)
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
 
@@ -9,7 +9,7 @@
9
9
  - **기능 ID**: F{번호}
10
10
  - **대상 레포**: {{projectName}}-{be|fe}
11
11
  - **작성일**: YYYY-MM-DD
12
- - **상태**: Draft | Review | Approved
12
+ - **상태**: Review | Approved
13
13
 
14
14
  ---
15
15
 
@@ -11,7 +11,7 @@
11
11
  - **대상 레포**: {{projectName}}-{be|fe}
12
12
  - **이슈 번호**: #{이슈번호}
13
13
  - **작성일**: YYYY-MM-DD
14
- - **상태**: Draft | Review | Approved
14
+ - **상태**: Review | Approved
15
15
 
16
16
  ---
17
17
 
@@ -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
- - 값: Draft | Review | Approved
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