lee-spec-kit 0.7.8 โ 0.7.9
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/dist/index.js +148 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/en/common/README.md +20 -4
- package/templates/en/common/agents/agents.md +14 -12
- package/templates/en/common/agents/skills/create-issue.md +14 -6
- package/templates/en/common/agents/skills/create-pr.md +15 -6
- package/templates/en/common/agents/skills/execute-task.md +4 -3
- package/templates/en/common/features/feature-base/tasks.md +9 -5
- package/templates/ko/common/README.md +20 -4
- package/templates/ko/common/agents/agents.md +14 -12
- package/templates/ko/common/agents/skills/create-issue.md +14 -6
- package/templates/ko/common/agents/skills/create-pr.md +15 -6
- package/templates/ko/common/agents/skills/execute-task.md +4 -3
- package/templates/ko/common/features/feature-base/tasks.md +9 -5
package/package.json
CHANGED
|
@@ -16,7 +16,9 @@ npx lee-spec-kit context --json-compact
|
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
- Apply lee-spec-kit workflow only when `isLeeSpecKitProject: true`.
|
|
19
|
-
-
|
|
19
|
+
- Determine approval waiting only from the latest `context --json-compact` / `flow --json-compact`.
|
|
20
|
+
- When `approvalRequest.required=true`, show `approvalPrompt`/`finalPrompt` exactly as provided and wait for user approval (`<LABEL>` or `<LABEL> OK`) before execution.
|
|
21
|
+
- When `approvalRequest.required=false`, do not invent a separate label approval prompt.
|
|
20
22
|
- If `isLeeSpecKitProject: false`, skip lee-spec-kit-specific flow and continue with normal workflow.
|
|
21
23
|
|
|
22
24
|
## New Project Start Order
|
|
@@ -113,7 +115,13 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
113
115
|
- `docsRepo` ("embedded" | "standalone"): How docs are managed
|
|
114
116
|
- `pushDocs` (boolean, optional): Only written when `docsRepo: "standalone"` (whether to push to remote)
|
|
115
117
|
- `docsRemote` (string, optional): Only written when `pushDocs: true` (remote repo URL)
|
|
116
|
-
- `approval` (object, optional): Override `[CHECK required]` / `requiresUserCheck` policy in `context` output
|
|
118
|
+
- `approval` (object, optional): Override `[CHECK required]` / `requiresUserCheck` policy in `context` output
|
|
119
|
+
- Current default:
|
|
120
|
+
- `mode: "category"`
|
|
121
|
+
- `default: "skip"`
|
|
122
|
+
- `requireCheckCategories: ["spec_approve", "implementation_approve"]`
|
|
123
|
+
- Approval token: `A`
|
|
124
|
+
- Accepted replies: `A`, `A OK`
|
|
117
125
|
- `allowedDocsEntries` (object, optional): Allowlist non-standard top-level docs entries so they are not treated as unmanaged docs
|
|
118
126
|
- `dirs` (string[]): extra allowed directories directly under `docs/`
|
|
119
127
|
- `files` (string[]): extra allowed files directly under `docs/`
|
|
@@ -130,7 +138,11 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
130
138
|
"allowedDocsEntries": {
|
|
131
139
|
"dirs": ["plans"]
|
|
132
140
|
},
|
|
133
|
-
"approval": {
|
|
141
|
+
"approval": {
|
|
142
|
+
"mode": "category",
|
|
143
|
+
"default": "skip",
|
|
144
|
+
"requireCheckCategories": ["spec_approve", "implementation_approve"]
|
|
145
|
+
}
|
|
134
146
|
}
|
|
135
147
|
```
|
|
136
148
|
|
|
@@ -143,6 +155,10 @@ When you run `lee-spec-kit init`, it creates `.lee-spec-kit.json` in the docs ro
|
|
|
143
155
|
"docsRepo": "standalone",
|
|
144
156
|
"pushDocs": true,
|
|
145
157
|
"docsRemote": "git@github.com:org/{{projectName}}-docs.git",
|
|
146
|
-
"approval": {
|
|
158
|
+
"approval": {
|
|
159
|
+
"mode": "category",
|
|
160
|
+
"default": "skip",
|
|
161
|
+
"requireCheckCategories": ["spec_approve", "implementation_approve"]
|
|
162
|
+
}
|
|
147
163
|
}
|
|
148
164
|
```
|
|
@@ -5,20 +5,22 @@ This document covers **policy only**.
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
## ๐จ User Approval
|
|
8
|
+
## ๐จ User Approval Handling (MUST)
|
|
9
9
|
|
|
10
|
-
> โ ๏ธ
|
|
10
|
+
> โ ๏ธ Do not decide approval only from the action type. Workflow approval-waiting is determined by the latest `context --json-compact` / `flow --json-compact` output.
|
|
11
11
|
> โ
In approval-waiting state, replies must be in `<label>` or `<label> OK` format (e.g. `A`, `A OK`).
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
12
|
+
> โน๏ธ Under the default policy, the main workflow approval boundaries are `spec_approve` and `implementation_approve`. Project config may add more.
|
|
13
|
+
> โน๏ธ Some direct remote helper commands still require explicit command confirmation such as `--confirm OK`; that command-level confirm is separate from label-gated workflow approval.
|
|
14
|
+
|
|
15
|
+
If the current action is approval-waiting, share the matching details before execution:
|
|
16
|
+
|
|
17
|
+
| Current action (examples) | What to share |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Spec / plan / tasks review | The document or the exact section being reviewed |
|
|
20
|
+
| Task completion / final checklist | Outcome and verification evidence |
|
|
21
|
+
| Commit / push / merge | Commit message, included files, branch |
|
|
22
|
+
| Issue / PR creation | Title, body, labels |
|
|
23
|
+
| Assignee change | Target username |
|
|
22
24
|
|
|
23
25
|
Approval flow:
|
|
24
26
|
1. Share details first
|
|
@@ -8,7 +8,7 @@ Execution-state SSOT is the feature-local `issue.md`.
|
|
|
8
8
|
## Prerequisites
|
|
9
9
|
|
|
10
10
|
- [ ] `spec.md` completed
|
|
11
|
-
- [ ]
|
|
11
|
+
- [ ] Latest `context --json-compact` checked
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -38,22 +38,29 @@ Use `issue.md` status (`Draft | Ready`) as the actual workflow state.
|
|
|
38
38
|
| Labels | `enhancement`, `bug`, `documentation`, etc. |
|
|
39
39
|
| Assignee | `@me` (default) |
|
|
40
40
|
|
|
41
|
-
### 2.
|
|
41
|
+
### 2. Move to `Ready` (request approval only when context requires it)
|
|
42
42
|
|
|
43
|
-
>
|
|
43
|
+
> โ ๏ธ **Workflow label approval is conditional**
|
|
44
44
|
|
|
45
|
-
Share the `issue.md` draft
|
|
45
|
+
Share the `issue.md` draft:
|
|
46
46
|
|
|
47
47
|
- Title
|
|
48
48
|
- Full body draft (from `issue.md`)
|
|
49
49
|
- Labels
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Then re-check the latest `npx lee-spec-kit context --json-compact`.
|
|
52
|
+
|
|
53
|
+
- If `approvalRequest.required=true`, show the exact CLI-provided approval lines and wait for a label reply (`A` or `A OK`) before continuing.
|
|
54
|
+
- If `approvalRequest.required=false`, do not invent a separate label prompt; refine the draft and set `issue.md` status to `Ready`.
|
|
52
55
|
|
|
53
56
|
### 3. Create Issue (when `issue.md` is `Ready`)
|
|
54
57
|
|
|
55
58
|
Remote issue creation must use the lee-spec-kit helper.
|
|
56
59
|
Do not call `gh issue create` directly or pass raw `issue.md` to `--body-file`.
|
|
60
|
+
Command-level remote confirmation is still required even when workflow label approval is not:
|
|
61
|
+
|
|
62
|
+
- share the final title/body/labels with the user
|
|
63
|
+
- then run the helper with `--confirm OK`
|
|
57
64
|
|
|
58
65
|
```bash
|
|
59
66
|
npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
@@ -69,5 +76,6 @@ After creation:
|
|
|
69
76
|
|
|
70
77
|
- **Draft generator**: `npx lee-spec-kit github issue <feature-name>`
|
|
71
78
|
- **Remote creation rule**: must use `npx lee-spec-kit github issue <feature-name> --create --confirm OK --labels ...`
|
|
72
|
-
- **
|
|
79
|
+
- **Workflow approval rule**: only wait for label approval when `approvalRequest.required=true`
|
|
80
|
+
- **Remote confirm rule**: share title/body/labels first, then run `--create --confirm OK`
|
|
73
81
|
- **Execution-state SSOT**: `docs/features/.../<feature>/issue.md`
|
|
@@ -145,23 +145,31 @@ echo \"\"
|
|
|
145
145
|
- Write a Mermaid **`sequenceDiagram`** in the PR body and keep it aligned with the generated body template format.
|
|
146
146
|
- Apply this rule based on change type (logic/structure), not by frontend/backend classification.
|
|
147
147
|
|
|
148
|
-
### 4.
|
|
148
|
+
### 4. Move to `Ready` (request approval only when context requires it)
|
|
149
149
|
|
|
150
|
-
>
|
|
150
|
+
> โ ๏ธ **Workflow label approval is conditional**
|
|
151
151
|
|
|
152
|
-
Before creating the PR, share the following **in a code block
|
|
152
|
+
Before creating the PR, share the following **in a code block**:
|
|
153
153
|
|
|
154
154
|
- Title
|
|
155
155
|
- Full body template (from `pr.md`)
|
|
156
156
|
- Labels (at least 1; cannot be empty)
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
Then re-check the latest `npx lee-spec-kit context --json-compact`.
|
|
159
|
+
|
|
160
|
+
- If `approvalRequest.required=true`, wait for the exact CLI-provided `<LABEL>` or `<LABEL> OK` reply.
|
|
161
|
+
- If `approvalRequest.required=false`, do not invent a separate label prompt.
|
|
162
|
+
|
|
163
|
+
Before moving on, refine `pr.md` Changes/Tests sections based on actual work and set `pr.md` status to `Ready`.
|
|
160
164
|
|
|
161
165
|
### 5. Create PR (when `pr.md` is `Ready`)
|
|
162
166
|
|
|
163
167
|
Remote PR creation must use the lee-spec-kit helper.
|
|
164
168
|
Do not call `gh pr create` directly or pass raw `pr.md` to `--body-file`.
|
|
169
|
+
Command-level remote confirmation is still required even when workflow label approval is not:
|
|
170
|
+
|
|
171
|
+
- share the final title/body/labels with the user
|
|
172
|
+
- then run the helper with `--confirm OK`
|
|
165
173
|
|
|
166
174
|
```bash
|
|
167
175
|
npx lee-spec-kit github pr F001 --create --confirm OK --labels enhancement
|
|
@@ -213,5 +221,6 @@ Use **current branch name** for file links in PR body:
|
|
|
213
221
|
|
|
214
222
|
- **Body template generator**: `npx lee-spec-kit github pr <feature-name>`
|
|
215
223
|
- **Remote creation rule**: must use `npx lee-spec-kit github pr <feature-name> --create --confirm OK --labels ...`
|
|
216
|
-
- **
|
|
224
|
+
- **Workflow approval rule**: only wait for label approval when `approvalRequest.required=true`
|
|
225
|
+
- **Remote confirm rule**: share title/body/labels first, then run `--create --confirm OK`
|
|
217
226
|
- **Execution-state SSOT**: `docs/features/.../<feature>/pr.md`
|
|
@@ -53,7 +53,8 @@ Keep `tasks.md` aligned with reality.
|
|
|
53
53
|
|
|
54
54
|
- Do not mark `[DONE]` without actually completing the work and verifying criteria.
|
|
55
55
|
- If you need to change a completed task, add a new task instead of rewriting history.
|
|
56
|
-
- If you need to add a new task, prefer `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001`.
|
|
56
|
+
- If you need to add a new task, prefer `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001 --acceptance "..." --check "..."`.
|
|
57
|
+
- Do not leave placeholder `Acceptance` / `Checklist` items in a newly added task. `task-run` will block until those fields contain concrete execution/verification items.
|
|
57
58
|
- If manual editing is unavoidable, append the new task directly below the last existing task block in the `Task List` section.
|
|
58
59
|
- Do not insert it near the current task or right before `Completion Criteria` / the next `##` heading.
|
|
59
60
|
|
|
@@ -87,10 +88,10 @@ Use the featureโs `decisions.md` template format as final SSOT. (Context/Const
|
|
|
87
88
|
### Step 3.5: Commit per task (important)
|
|
88
89
|
|
|
89
90
|
- Complete **only one task at a time** (do not batch-finish multiple tasks in one commit).
|
|
90
|
-
- After you share the outcome/verification, mark the task `[DONE]`
|
|
91
|
+
- After you share the outcome/verification, mark the task `[DONE]` and update the task-local checklist items in the same edit. `task-complete` will reject `[DONE]` if unchecked checklist boxes remain. If approval is required (`approvalRequest.required=true`), reuse the exact CLI-provided approval lines and wait for a `<LABEL>` or `<LABEL> OK` reply first. If approval is not required, do not invent a separate approval prompt before marking `[DONE]`.
|
|
91
92
|
- In `tasks.md` test logs, keep one entry per test command and update its date/result on reruns (do not keep appending duplicates). Use `YYYY-MM-DD` in local date.
|
|
92
93
|
- If `context` shows `[CHECK required]`, for commits/push/merge, **share the commit message + included files and wait for the latest CLI-provided label reply** before running the commands.
|
|
93
|
-
- Once all tasks are `[DONE]`, share the "Completion Criteria" checklist with the user. If that point is approval-waiting, get a `<LABEL>` or `<LABEL> OK` reply before checking it; otherwise get a normal confirmation reply. (especially the
|
|
94
|
+
- Once all tasks are `[DONE]`, share the "Completion Criteria" checklist with the user. If that point is approval-waiting, get a `<LABEL>` or `<LABEL> OK` reply before checking it; otherwise get a normal confirmation reply. (especially the final outcome/user confirmation item).
|
|
94
95
|
- Note: both progress approval and final approval must follow the current `approvalRequest.required` state. When approval is label-gated, always use label replies instead of standalone `OK` as the approval token.
|
|
95
96
|
|
|
96
97
|
### Step 4: Repeat
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
## Task Rules
|
|
4
4
|
|
|
5
5
|
- **Status**: `[TODO]` โ `[DOING]` โ `[DONE]`
|
|
6
|
-
- **
|
|
7
|
-
- `[TODO] โ [DOING]`: share task title first
|
|
8
|
-
- `[DOING] โ [DONE]`: share result/verification first
|
|
6
|
+
- **Task communication / confirmation**:
|
|
7
|
+
- `[TODO] โ [DOING]`: share the task title first, then follow the latest `context --json-compact`
|
|
8
|
+
- `[DOING] โ [DONE]`: share the result/verification first, then follow the latest `context --json-compact`
|
|
9
|
+
- If `approvalRequest.required=true`, wait for the exact CLI-provided label reply before changing task state.
|
|
10
|
+
- If `approvalRequest.required=false`, do not invent a separate `OK` approval step; update task state after real completion/verification.
|
|
11
|
+
- `task-complete` rejects `[DONE]` while any item in that task's `Checklist` remains unchecked.
|
|
9
12
|
- **PRD mapping (recommended)**: add a PRD requirement ID tag like `[PRD-FR-001]` to each task line, or tag non-PRD tasks as `[NON-PRD]`.
|
|
10
13
|
- Do not invent PRD IDs in `tasks.md`. Only reference IDs that already exist in `docs/prd` or the upstream requirements doc.
|
|
11
14
|
- If this is a legacy feature without PRD IDs yet, backfill IDs in the source requirements doc first, then align `spec.md` `PRD Refs` and task tags together.
|
|
@@ -63,7 +66,8 @@
|
|
|
63
66
|
|
|
64
67
|
> Add tasks below. **At least 1 task is required.**
|
|
65
68
|
> Keep tasks as one ordered list. The list order itself is the execution priority.
|
|
66
|
-
> To add a new task, prefer `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001`.
|
|
69
|
+
> To add a new task, prefer `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001 --acceptance "..." --check "..."`.
|
|
70
|
+
> Do not leave placeholder `Acceptance` / `Checklist` content in place. `task-run` will block execution until those items are concrete.
|
|
67
71
|
> If you must edit manually, append it below the last existing task block in `Task List` instead of inserting it near the current task or right before `Completion Criteria`.
|
|
68
72
|
|
|
69
73
|
---
|
|
@@ -74,7 +78,7 @@
|
|
|
74
78
|
|
|
75
79
|
- [ ] All tasks are `[DONE]`, and each task's `Acceptance` is verified and `Checklist` is checked
|
|
76
80
|
- [ ] Tests executed and passing (record command/result below)
|
|
77
|
-
- [ ] Final user
|
|
81
|
+
- [ ] Final outcome shared and user confirmation recorded according to the current `context` approval state
|
|
78
82
|
|
|
79
83
|
### Test Run Log (Latest by Command)
|
|
80
84
|
|
|
@@ -16,7 +16,9 @@ npx lee-spec-kit context --json-compact
|
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
- `isLeeSpecKitProject: true`์ผ ๋๋ง lee-spec-kit ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ฉํฉ๋๋ค.
|
|
19
|
-
-
|
|
19
|
+
- ์น์ธ ๋๊ธฐ ์ฌ๋ถ๋ ํญ์ ์ต์ `context --json-compact` / `flow --json-compact`๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํฉ๋๋ค.
|
|
20
|
+
- `approvalRequest.required=true`์ผ ๋๋ง `approvalPrompt`/`finalPrompt`๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๊ณ ์น์ธ(`<LABEL>` ๋๋ `<LABEL> OK`)์ ๋ฐ์ ๋ค ์คํํฉ๋๋ค.
|
|
21
|
+
- `approvalRequest.required=false`์ด๋ฉด ๋ณ๋ ๋ผ๋ฒจ ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๋ง๋ค์ง ์์ต๋๋ค.
|
|
20
22
|
- `isLeeSpecKitProject: false`๋ฉด lee-spec-kit ์ ์ฉ ์ ์ฐจ๋ฅผ ๊ฑด๋๋ฐ๊ณ ์ผ๋ฐ ์ํฌํ๋ก์ฐ๋ก ์งํํฉ๋๋ค.
|
|
21
23
|
|
|
22
24
|
## ์ ๊ท ํ๋ก์ ํธ ์์ ์์
|
|
@@ -113,7 +115,13 @@ npx lee-spec-kit context --json-compact
|
|
|
113
115
|
- `docsRepo` ("embedded" | "standalone"): Docs ๊ด๋ฆฌ ๋ฐฉ์
|
|
114
116
|
- `pushDocs` (boolean, optional): `docsRepo: "standalone"`์ผ ๋๋ง ์์ฑ (์๊ฒฉ push ์ฌ๋ถ)
|
|
115
117
|
- `docsRemote` (string, optional): `pushDocs: true`์ผ ๋๋ง ์์ฑ (์๊ฒฉ ๋ ํฌ URL)
|
|
116
|
-
- `approval` (object, optional): `context` ์ถ๋ ฅ์ `[ํ์ธ ํ์]` / `requiresUserCheck` ์ ์ฑ
์ค๋ฒ๋ผ์ด๋
|
|
118
|
+
- `approval` (object, optional): `context` ์ถ๋ ฅ์ `[ํ์ธ ํ์]` / `requiresUserCheck` ์ ์ฑ
์ค๋ฒ๋ผ์ด๋
|
|
119
|
+
- ํ์ฌ ๊ธฐ๋ณธ๊ฐ:
|
|
120
|
+
- `mode: "category"`
|
|
121
|
+
- `default: "skip"`
|
|
122
|
+
- `requireCheckCategories: ["spec_approve", "implementation_approve"]`
|
|
123
|
+
- ์น์ธ ํ ํฐ: `A`
|
|
124
|
+
- ํ์ฉ ์๋ต: `A`, `A OK`
|
|
117
125
|
- `allowedDocsEntries` (object, optional): ๋นํ์ค `docs/` top-level ์ํธ๋ฆฌ๋ฅผ unmanaged docs๋ก ๋ณด์ง ์๋๋ก ํ์ฉ ๋ชฉ๋ก์ ์ถ๊ฐ
|
|
118
126
|
- `dirs` (string[]): `docs/` ๋ฐ๋ก ์๋์ ์ถ๊ฐ ํ์ฉํ ๋๋ ํฐ๋ฆฌ
|
|
119
127
|
- `files` (string[]): `docs/` ๋ฐ๋ก ์๋์ ์ถ๊ฐ ํ์ฉํ ํ์ผ
|
|
@@ -130,7 +138,11 @@ npx lee-spec-kit context --json-compact
|
|
|
130
138
|
"allowedDocsEntries": {
|
|
131
139
|
"dirs": ["plans"]
|
|
132
140
|
},
|
|
133
|
-
"approval": {
|
|
141
|
+
"approval": {
|
|
142
|
+
"mode": "category",
|
|
143
|
+
"default": "skip",
|
|
144
|
+
"requireCheckCategories": ["spec_approve", "implementation_approve"]
|
|
145
|
+
}
|
|
134
146
|
}
|
|
135
147
|
```
|
|
136
148
|
|
|
@@ -143,6 +155,10 @@ npx lee-spec-kit context --json-compact
|
|
|
143
155
|
"docsRepo": "standalone",
|
|
144
156
|
"pushDocs": true,
|
|
145
157
|
"docsRemote": "git@github.com:org/{{projectName}}-docs.git",
|
|
146
|
-
"approval": {
|
|
158
|
+
"approval": {
|
|
159
|
+
"mode": "category",
|
|
160
|
+
"default": "skip",
|
|
161
|
+
"requireCheckCategories": ["spec_approve", "implementation_approve"]
|
|
162
|
+
}
|
|
147
163
|
}
|
|
148
164
|
```
|
|
@@ -5,20 +5,22 @@
|
|
|
5
5
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
## ๐จ ์ฌ์ฉ์
|
|
8
|
+
## ๐จ ์ฌ์ฉ์ ์น์ธ ์ฒ๋ฆฌ ๊ท์น (MUST)
|
|
9
9
|
|
|
10
|
-
> โ ๏ธ
|
|
10
|
+
> โ ๏ธ ์ก์
์ข
๋ฅ๋ง ๋ณด๊ณ ์น์ธ ํ์ ์ฌ๋ถ๋ฅผ ํ๋จํ์ง ๋ง์ธ์. workflow ์น์ธ ๋๊ธฐ ์ฌ๋ถ๋ ํญ์ ์ต์ `context --json-compact` / `flow --json-compact` ์ถ๋ ฅ์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค.
|
|
11
11
|
> โ
์น์ธ ๋๊ธฐ ์ํ์์๋ ์๋ต ํ์์ด ํญ์ `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ํ์(์: `A`, `A OK`)์
๋๋ค.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
12
|
+
> โน๏ธ ๊ธฐ๋ณธ ์ ์ฑ
์์ ์ฃผ์ workflow ์น์ธ ๊ฒฝ๊ณ๋ `spec_approve`, `implementation_approve` ๋ ๊ณณ์
๋๋ค. ํ๋ก์ ํธ config๊ฐ ์ถ๊ฐ ๊ฒฝ๊ณ๋ฅผ ๋ ์ ์์ต๋๋ค.
|
|
13
|
+
> โน๏ธ ์ผ๋ถ ์๊ฒฉ helper ๋ช
๋ น์ `--confirm OK` ๊ฐ์ ๋ช
์ ํ์ธ์ ๋ณ๋๋ก ์๊ตฌํฉ๋๋ค. ์ด command-level confirm์ ๋ผ๋ฒจ ๊ธฐ๋ฐ workflow ์น์ธ๊ณผ ๋ณ๊ฐ์
๋๋ค.
|
|
14
|
+
|
|
15
|
+
ํ์ฌ ์ก์
์ด ์น์ธ ๋๊ธฐ ์ํ๋ผ๋ฉด, ์คํ ์ ์ ํด๋น ๋ด์ฉ์ ๊ณต์ ํ์ธ์:
|
|
16
|
+
|
|
17
|
+
| ํ์ฌ ์ก์
์์ | ๊ณต์ ๋ด์ฉ |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| spec / plan / tasks ๊ฒํ | ๊ฒํ ๋์ ๋ฌธ์ ๋๋ ์ ํํ ์น์
|
|
|
20
|
+
| ํ์คํฌ ์๋ฃ / ์ต์ข
์ฒดํฌ๋ฆฌ์คํธ | ๊ฒฐ๊ณผ์ ๊ฒ์ฆ ๊ทผ๊ฑฐ |
|
|
21
|
+
| ์ปค๋ฐ / push / merge | ์ปค๋ฐ ๋ฉ์์ง, ํฌํจ ํ์ผ, ๋ธ๋์น |
|
|
22
|
+
| ์ด์ / PR ์์ฑ | ์ ๋ชฉ, ๋ณธ๋ฌธ, ๋ผ๋ฒจ |
|
|
23
|
+
| Assignee ๋ณ๊ฒฝ | ๋์ ์ฌ์ฉ์๋ช
|
|
|
22
24
|
|
|
23
25
|
ํ์ธ ์ ์ฐจ:
|
|
24
26
|
1. ์์
๋ด์ฉ์ ๋จผ์ ๊ณต์
|
|
@@ -8,7 +8,7 @@ GitHub Issue๋ฅผ ์์ฑํ ๋ ๋ฐ๋ฅด๋ ๊ฐ์ด๋์
๋๋ค.
|
|
|
8
8
|
## ์ฌ์ ์กฐ๊ฑด
|
|
9
9
|
|
|
10
10
|
- [ ] `spec.md` ์์ฑ ์๋ฃ
|
|
11
|
-
- [ ]
|
|
11
|
+
- [ ] ์ต์ `context --json-compact` ํ์ธ
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -38,22 +38,29 @@ npx lee-spec-kit github issue F001 --json
|
|
|
38
38
|
| ๋ผ๋ฒจ | `enhancement`, `bug`, `documentation` ๋ฑ |
|
|
39
39
|
| ๋ด๋น์ | `@me` (๊ธฐ๋ณธ๊ฐ) |
|
|
40
40
|
|
|
41
|
-
### 2.
|
|
41
|
+
### 2. `Ready` ์ ํ (context๊ฐ ์๊ตฌํ ๋๋ง ์น์ธ ์์ฒญ)
|
|
42
42
|
|
|
43
|
-
>
|
|
43
|
+
> โ ๏ธ **workflow ๋ผ๋ฒจ ์น์ธ์ ์กฐ๊ฑด๋ถ์
๋๋ค**
|
|
44
44
|
|
|
45
|
-
`issue.md` ์ด์ ๊ธฐ์ค์ผ๋ก ๋ค์ ๋ด์ฉ์
|
|
45
|
+
`issue.md` ์ด์ ๊ธฐ์ค์ผ๋ก ๋ค์ ๋ด์ฉ์ ๊ณต์ ํ์ธ์:
|
|
46
46
|
|
|
47
47
|
- ์ ๋ชฉ
|
|
48
48
|
- ๋ณธ๋ฌธ ์ ์ฒด ์ด์ (`issue.md` ๊ธฐ์ค)
|
|
49
49
|
- ๋ผ๋ฒจ
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
๊ทธ ๋ค์ ์ต์ `npx lee-spec-kit context --json-compact`๋ฅผ ๋ค์ ํ์ธํฉ๋๋ค.
|
|
52
|
+
|
|
53
|
+
- `approvalRequest.required=true`์ด๋ฉด CLI๊ฐ ์ค ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๊ณ ๋ผ๋ฒจ ์๋ต(`A` ๋๋ `A OK`)์ ๊ธฐ๋ค๋ฆฐ ๋ค ๊ณ์ ์งํํฉ๋๋ค.
|
|
54
|
+
- `approvalRequest.required=false`์ด๋ฉด ๋ณ๋ ๋ผ๋ฒจ ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๋ง๋ค์ง ๋ง๊ณ , ์ด์์ ๋ค๋ฌ์ ๋ค `issue.md` ์ํ๋ฅผ `Ready`๋ก ๋ณ๊ฒฝํฉ๋๋ค.
|
|
52
55
|
|
|
53
56
|
### 3. ์ด์ ์์ฑ (`issue.md`๊ฐ `Ready`์ผ ๋)
|
|
54
57
|
|
|
55
58
|
์๊ฒฉ ์ด์ ์์ฑ์ ๋ฐ๋์ lee-spec-kit helper๋ก๋ง ์คํํฉ๋๋ค.
|
|
56
59
|
`gh issue create`๋ฅผ ์ง์ ํธ์ถํ๊ฑฐ๋ raw `issue.md`๋ฅผ ๊ทธ๋๋ก `--body-file`์ ๋๊ธฐ์ง ๋ง์ธ์.
|
|
60
|
+
workflow ๋ผ๋ฒจ ์น์ธ๊ณผ ๋ณ๊ฐ๋ก, ์๊ฒฉ ์์ฑ command ์์ฒด์ ๋ช
์ ํ์ธ์ ๊ณ์ ํ์ํฉ๋๋ค.
|
|
61
|
+
|
|
62
|
+
- ์ต์ข
์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ์ ์ฌ์ฉ์์๊ฒ ๊ณต์ ํ๊ณ
|
|
63
|
+
- ๊ทธ ๋ค์ `--confirm OK`๋ฅผ ๋ถ์ฌ helper๋ฅผ ์คํํ์ธ์
|
|
57
64
|
|
|
58
65
|
```bash
|
|
59
66
|
npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
@@ -69,5 +76,6 @@ npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
|
69
76
|
|
|
70
77
|
- **์ด์ ์์ฑ๊ธฐ**: `npx lee-spec-kit github issue <feature-name>`
|
|
71
78
|
- **์๊ฒฉ ์์ฑ ๊ท์น**: ๋ฐ๋์ `npx lee-spec-kit github issue <feature-name> --create --confirm OK --labels ...` ์ฌ์ฉ
|
|
72
|
-
-
|
|
79
|
+
- **workflow ์น์ธ ๊ท์น**: `approvalRequest.required=true`์ผ ๋๋ง ๋ผ๋ฒจ ์น์ธ์ ๊ธฐ๋ค๋ฆฝ๋๋ค
|
|
80
|
+
- **์๊ฒฉ ํ์ธ ๊ท์น**: ์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ ๊ณต์ ํ `--create --confirm OK` ์คํ
|
|
73
81
|
- **์คํ ์ํ SSOT**: `docs/features/.../<feature>/issue.md`
|
|
@@ -145,23 +145,31 @@ echo \"\"
|
|
|
145
145
|
- PR ๋ณธ๋ฌธ์ Mermaid **`sequenceDiagram`**์ ์์ฑํ๊ณ , ์์ฑ๋ ๋ณธ๋ฌธ ํ
ํ๋ฆฟ ํ์๊ณผ ์ผ์นํ๊ฒ ์ ์งํฉ๋๋ค.
|
|
146
146
|
- ์ด ๊ธฐ์ค์ ํ๋ก ํธ/๋ฐฑ์๋ ๊ตฌ๋ถ์ด ์๋๋ผ ๋ณ๊ฒฝ ์ ํ(๋ก์ง/๊ตฌ์กฐ) ๊ธฐ์ค์ผ๋ก ์ ์ฉํฉ๋๋ค.
|
|
147
147
|
|
|
148
|
-
### 4.
|
|
148
|
+
### 4. `Ready` ์ ํ (context๊ฐ ์๊ตฌํ ๋๋ง ์น์ธ ์์ฒญ)
|
|
149
149
|
|
|
150
|
-
>
|
|
150
|
+
> โ ๏ธ **workflow ๋ผ๋ฒจ ์น์ธ์ ์กฐ๊ฑด๋ถ์
๋๋ค**
|
|
151
151
|
|
|
152
|
-
PR ์์ฑ ์ ๋ค์ ๋ด์ฉ์ **์ฝ๋๋ธ๋ก์ผ๋ก** ์ฌ์ฉ์์๊ฒ
|
|
152
|
+
PR ์์ฑ ์ ๋ค์ ๋ด์ฉ์ **์ฝ๋๋ธ๋ก์ผ๋ก** ์ฌ์ฉ์์๊ฒ ๊ณต์ ํ์ธ์:
|
|
153
153
|
|
|
154
154
|
- ์ ๋ชฉ
|
|
155
155
|
- ๋ณธ๋ฌธ ์ ์ฒด ํ
ํ๋ฆฟ (`pr.md` ๊ธฐ์ค)
|
|
156
156
|
- ๋ผ๋ฒจ(์ต์ 1๊ฐ, ๋น์๋ ์ ์์)
|
|
157
157
|
|
|
158
|
-
|
|
159
|
-
|
|
158
|
+
๊ทธ ๋ค์ ์ต์ `npx lee-spec-kit context --json-compact`๋ฅผ ๋ค์ ํ์ธํฉ๋๋ค.
|
|
159
|
+
|
|
160
|
+
- `approvalRequest.required=true`์ด๋ฉด CLI๊ฐ ์ค `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ์๋ต์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
|
|
161
|
+
- `approvalRequest.required=false`์ด๋ฉด ๋ณ๋ ๋ผ๋ฒจ ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๋ง๋ค์ง ์์ต๋๋ค.
|
|
162
|
+
|
|
163
|
+
์ดํ `pr.md`์ ๋ณ๊ฒฝ ์ฌํญ/ํ
์คํธ ์น์
์ ์ค์ ์์
๊ธฐ์ค์ผ๋ก ๋ณด์ํ๊ณ `Ready`๋ก ๋ณ๊ฒฝํ์ธ์.
|
|
160
164
|
|
|
161
165
|
### 5. PR ์์ฑ (`pr.md`๊ฐ `Ready`์ผ ๋)
|
|
162
166
|
|
|
163
167
|
์๊ฒฉ PR ์์ฑ์ ๋ฐ๋์ lee-spec-kit helper๋ก๋ง ์คํํฉ๋๋ค.
|
|
164
168
|
`gh pr create`๋ฅผ ์ง์ ํธ์ถํ๊ฑฐ๋ raw `pr.md`๋ฅผ ๊ทธ๋๋ก `--body-file`์ ๋๊ธฐ์ง ๋ง์ธ์.
|
|
169
|
+
workflow ๋ผ๋ฒจ ์น์ธ๊ณผ ๋ณ๊ฐ๋ก, ์๊ฒฉ ์์ฑ command ์์ฒด์ ๋ช
์ ํ์ธ์ ๊ณ์ ํ์ํฉ๋๋ค.
|
|
170
|
+
|
|
171
|
+
- ์ต์ข
์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ์ ์ฌ์ฉ์์๊ฒ ๊ณต์ ํ๊ณ
|
|
172
|
+
- ๊ทธ ๋ค์ `--confirm OK`๋ฅผ ๋ถ์ฌ helper๋ฅผ ์คํํ์ธ์
|
|
165
173
|
|
|
166
174
|
```bash
|
|
167
175
|
npx lee-spec-kit github pr F001 --create --confirm OK --labels enhancement
|
|
@@ -213,5 +221,6 @@ PR ๋ณธ๋ฌธ์ ํ์ผ ๋งํฌ๋ **ํ์ฌ ๋ธ๋์น๋ช
**์ ์ฌ์ฉ:
|
|
|
213
221
|
|
|
214
222
|
- **๋ณธ๋ฌธ ํ
ํ๋ฆฟ ์์ฑ๊ธฐ**: `npx lee-spec-kit github pr <feature-name>`
|
|
215
223
|
- **์๊ฒฉ ์์ฑ ๊ท์น**: ๋ฐ๋์ `npx lee-spec-kit github pr <feature-name> --create --confirm OK --labels ...` ์ฌ์ฉ
|
|
216
|
-
-
|
|
224
|
+
- **workflow ์น์ธ ๊ท์น**: `approvalRequest.required=true`์ผ ๋๋ง ๋ผ๋ฒจ ์น์ธ์ ๊ธฐ๋ค๋ฆฝ๋๋ค
|
|
225
|
+
- **์๊ฒฉ ํ์ธ ๊ท์น**: ์ ๋ชฉ/๋ณธ๋ฌธ/๋ผ๋ฒจ ๊ณต์ ํ `--create --confirm OK` ์คํ
|
|
217
226
|
- **์คํ ์ํ SSOT**: `docs/features/.../<feature>/pr.md`
|
|
@@ -49,7 +49,8 @@ CLI๊ฐ ๊ฐ๋ฆฌํค๋ **Active Task** ๋๋ **`๐ Next Options (Atomic)`์ ๋จ
|
|
|
49
49
|
|
|
50
50
|
### 3๋จ๊ณ: ๊ธฐ๋ก ๋ฐ ๋ฐ๋ณต (Record & Loop)
|
|
51
51
|
|
|
52
|
-
- ์ ํ์คํฌ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๋ฉด ์ฐ์ `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001`๋ฅผ ์ฌ์ฉํ์ธ์.
|
|
52
|
+
- ์ ํ์คํฌ๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค๋ฉด ์ฐ์ `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001 --acceptance "..." --check "..."`๋ฅผ ์ฌ์ฉํ์ธ์.
|
|
53
|
+
- ์๋ก ์ถ๊ฐํ ํ์คํฌ์ placeholder `Acceptance` / `Checklist`๋ฅผ ๋จ๊ธฐ์ง ๋ง์ธ์. concrete item์ด ์๋๋ฉด `task-run`์ด ์คํ์ ๋ง์ต๋๋ค.
|
|
53
54
|
- ์๋ ํธ์ง์ด ๊ผญ ํ์ํ ๋๋ง `ํ์คํฌ ๋ชฉ๋ก` ์น์
์ ๋ง์ง๋ง ๊ธฐ์กด ํ์คํฌ block ๋ฐ๋ก ์๋์ append ํ์ธ์.
|
|
54
55
|
- ํ์ฌ ์์
์ค์ธ ํ์คํฌ ๊ทผ์ฒ๋ `์๋ฃ ์กฐ๊ฑด`/๋ค์ `##` ํค๋ ์์ ๋ผ์ ๋ฃ์ง ๋ง์ธ์.
|
|
55
56
|
|
|
@@ -82,12 +83,12 @@ CLI๊ฐ ๊ฐ๋ฆฌํค๋ **Active Task** ๋๋ **`๐ Next Options (Atomic)`์ ๋จ
|
|
|
82
83
|
|
|
83
84
|
#### 3-2) ํ์คํฌ/์ฒดํฌ๋ฆฌ์คํธ ์
๋ฐ์ดํธ + ์ปค๋ฐ
|
|
84
85
|
|
|
85
|
-
1. ์์
์ด ๋๋๋ฉด ๊ฒฐ๊ณผ/๊ฒ์ฆ์ ๊ณต์ ํฉ๋๋ค. ์น์ธ ๋๊ธฐ(`approvalRequest.required=true`) ์ํ๋ผ๋ฉด CLI๊ฐ ์ค ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๊ทธ๋๋ก ์ ์ํ๊ณ ์ฌ์ฉ์์ `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ์๋ต์ ๋ฐ์ ๋ค `[DONE]`์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋น์น์ธ ์ํ๋ฉด ๋ณ๋ ์น์ธ ๋ฌธ๊ตฌ ์์ด `[DONE]`๊ณผ `Acceptance/Checklist`๋ฅผ ๊ฐฑ์ ํฉ๋๋ค.
|
|
86
|
+
1. ์์
์ด ๋๋๋ฉด ๊ฒฐ๊ณผ/๊ฒ์ฆ์ ๊ณต์ ํฉ๋๋ค. `[DONE]`์ผ๋ก ๋ฐ๊ฟ ๋๋ ๊ฐ์ ์์ ์์ task-local `Checklist`๋ ํจ๊ป ๊ฐฑ์ ํด์ผ ํ๋ฉฐ, unchecked box๊ฐ ๋จ์ ์์ผ๋ฉด `task-complete`๊ฐ `[DONE]` ์ ํ์ ๊ฑฐ๋ถํฉ๋๋ค. ์น์ธ ๋๊ธฐ(`approvalRequest.required=true`) ์ํ๋ผ๋ฉด CLI๊ฐ ์ค ์น์ธ ๋ฌธ๊ตฌ๋ฅผ ๊ทธ๋๋ก ์ ์ํ๊ณ ์ฌ์ฉ์์ `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ์๋ต์ ๋ฐ์ ๋ค `[DONE]`์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ๋น์น์ธ ์ํ๋ฉด ๋ณ๋ ์น์ธ ๋ฌธ๊ตฌ ์์ด `[DONE]`๊ณผ `Acceptance/Checklist`๋ฅผ ๊ฐฑ์ ํฉ๋๋ค.
|
|
86
87
|
2. **ํ ๋ฒ์ ํ๋์ ํ์คํฌ๋ง** `[DONE]` ์ฒ๋ฆฌํฉ๋๋ค. (ํ์คํฌ 2๊ฐ ์ด์์ ํ ๋ฒ์ ์๋ฃ/์ปค๋ฐ์ผ๋ก ๋ฌถ์ง ์๊ธฐ)
|
|
87
88
|
3. `tasks.md`์ ํ
์คํธ ์คํ ๊ธฐ๋ก์ ๋ช
๋ น์ด๋ณ 1๊ฐ ํ๋ง ์ ์งํ๊ณ , ๊ฐ์ ๋ช
๋ น์ด ์ฌ์คํ ์ ๋ ์ง/๊ฒฐ๊ณผ๋ฅผ ๊ฐฑ์ ํฉ๋๋ค. (์ค๋ณต ๋์ ๊ธ์ง, ๋ ์ง ํ์: ๋ก์ปฌ `YYYY-MM-DD`)
|
|
88
89
|
4. ์ปค๋ฐ์ ์์ฑํฉ๋๋ค (์ฝ๋ ์ปค๋ฐ + ๋ฌธ์ ์ปค๋ฐ). ํ์คํฌ ๋จ์๋ก ์ปค๋ฐ์ด ๋จ์์ผ ํฉ๋๋ค.
|
|
89
90
|
- `context`์ `[ํ์ธ ํ์]`๊ฐ ๋ณด์ด๋ฉด, **์ปค๋ฐ/ํธ์ ๊ฐ์ ์๊ฒฉ ์์
์ ์ฌ์ฉ์์๊ฒ ์ปค๋ฐ ๋ฉ์์ง/ํฌํจ ํ์ผ์ ๊ณต์ ํ ๋ค ์ต์ CLI ์น์ธ ๋ฌธ๊ตฌ์ ๋ผ๋ฒจ ์๋ต์ ๋ฐ์ ํ** ์คํํฉ๋๋ค.
|
|
90
|
-
5. ๋ชจ๋ ํ์คํฌ๊ฐ `[DONE]`๊ฐ ๋๋ฉด, "์๋ฃ ์กฐ๊ฑด" ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉ์์๊ฒ ๊ณต์ ํฉ๋๋ค. ์ด ์์ ์ด ์น์ธ ๋๊ธฐ ์ํ๋ฉด `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ์๋ต์ ๋ฐ์ ๋ค ์ฒดํฌํ๊ณ , ๋น์น์ธ ์ํ๋ฉด ์ผ๋ฐ ํ์ธ ์๋ต์ ๋ฐ์ ๋ค ์ฒดํฌํฉ๋๋ค. (ํนํ
|
|
91
|
+
5. ๋ชจ๋ ํ์คํฌ๊ฐ `[DONE]`๊ฐ ๋๋ฉด, "์๋ฃ ์กฐ๊ฑด" ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉ์์๊ฒ ๊ณต์ ํฉ๋๋ค. ์ด ์์ ์ด ์น์ธ ๋๊ธฐ ์ํ๋ฉด `<๋ผ๋ฒจ>` ๋๋ `<๋ผ๋ฒจ> OK` ์๋ต์ ๋ฐ์ ๋ค ์ฒดํฌํ๊ณ , ๋น์น์ธ ์ํ๋ฉด ์ผ๋ฐ ํ์ธ ์๋ต์ ๋ฐ์ ๋ค ์ฒดํฌํฉ๋๋ค. (ํนํ ์ต์ข
๊ฒฐ๊ณผ/์ฌ์ฉ์ ํ์ธ ํญ๋ชฉ)
|
|
91
92
|
- ์ฐธ๊ณ : ์งํ ์น์ธ/์ต์ข
์น์ธ์ ๋ชจ๋ ํ์ฌ `approvalRequest.required` ์ํ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๋จํฉ๋๋ค. ๋ผ๋ฒจ ์น์ธ ์ํ๋ฉด ํญ์ ๋ผ๋ฒจ ์๋ต์ ์ฌ์ฉํ๊ณ , ๋น์น์ธ ์ํ๋ฉด standalone `OK`๋ฅผ ์น์ธ ํ ํฐ์ฒ๋ผ ๊ฐ์ ํ์ง ์์ต๋๋ค.
|
|
92
93
|
6. **์ฆ์ 1๋จ๊ณ๋ก ๋์๊ฐ** ๋ค์ ํ ์ผ์ CLI์๊ฒ ๋ฌผ์ด๋ด
๋๋ค.
|
|
93
94
|
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
## ํ์คํฌ ๊ท์น
|
|
4
4
|
|
|
5
5
|
- **์ํ**: `[TODO]` โ `[DOING]` โ `[DONE]`
|
|
6
|
-
-
|
|
7
|
-
- `[TODO] โ [DOING]`: ์์ ์ ํ์คํฌ
|
|
8
|
-
- `[DOING] โ [DONE]`: ์๋ฃ ์
|
|
6
|
+
- **ํ์คํฌ ๊ณต์ / ํ์ธ**:
|
|
7
|
+
- `[TODO] โ [DOING]`: ์์ ์ ํ์คํฌ ์ ๋ชฉ์ ๊ณต์ ํ๊ณ ์ต์ `context --json-compact` ๊ธฐ์ค์ ๋ฐ๋ฆ
๋๋ค
|
|
8
|
+
- `[DOING] โ [DONE]`: ์๋ฃ ์ ๊ฒฐ๊ณผ/๊ฒ์ฆ์ ๊ณต์ ํ๊ณ ์ต์ `context --json-compact` ๊ธฐ์ค์ ๋ฐ๋ฆ
๋๋ค
|
|
9
|
+
- `approvalRequest.required=true`์ด๋ฉด CLI๊ฐ ์ ๊ณตํ ๋ผ๋ฒจ ์๋ต์ ๋ฐ์ ๋ค์๋ง ํ์คํฌ ์ํ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค.
|
|
10
|
+
- `approvalRequest.required=false`์ด๋ฉด ๋ณ๋ `OK` ์น์ธ ๋จ๊ณ๋ฅผ ๋ง๋ค์ง ๋ง๊ณ , ์ค์ ์๋ฃ/๊ฒ์ฆ ํ ์ํ๋ฅผ ๊ฐฑ์ ํฉ๋๋ค.
|
|
11
|
+
- ํด๋น ํ์คํฌ์ `Checklist`์ unchecked ํญ๋ชฉ์ด ๋จ์ ์์ผ๋ฉด `task-complete`๋ `[DONE]` ์ ํ์ ๊ฑฐ๋ถํฉ๋๋ค.
|
|
9
12
|
- **PRD ๋งคํ(๊ถ์ฅ)**: ๊ฐ ํ์คํฌ ๋ผ์ธ์ `[PRD-FR-001]` ๊ฐ์ PRD ์๊ตฌ์ฌํญ ID ํ๊ทธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋, PRD์ ๋ฌด๊ดํ ํ์คํฌ๋ `[NON-PRD]`๋ก ํ์ํ์ธ์.
|
|
10
13
|
- ๋จ, `tasks.md`์์ PRD ID๋ฅผ ์์๋ก ๋ง๋ค์ง ๋ง์ธ์. `docs/prd` ๋๋ ์์ ์๊ตฌ์ฌํญ ๋ฌธ์์ ๋จผ์ ์ ์๋ ID๋ง ์ฐธ์กฐํด์ผ ํฉ๋๋ค.
|
|
11
14
|
- ๋ ๊ฑฐ์ ๋ฌธ์์ ์์ง PRD ID๊ฐ ์๋ค๋ฉด, ๋จผ์ ์๋ฌธ ์๊ตฌ์ฌํญ ๋ฌธ์์ ID๋ฅผ backfillํ ๋ค `spec.md`์ `PRD Refs`์ ํ์คํฌ ํ๊ทธ๋ฅผ ํจ๊ป ๋ง์ถ์ธ์.
|
|
@@ -63,7 +66,8 @@
|
|
|
63
66
|
|
|
64
67
|
> ์๋์ ํ์คํฌ๋ฅผ ์ถ๊ฐํ์ธ์. **์ต์ 1๊ฐ๊ฐ ํ์**ํฉ๋๋ค.
|
|
65
68
|
> ํ์คํฌ๋ ํ๋์ ์์ฐจ ๋ฆฌ์คํธ๋ก ์ ์งํ๊ณ , ์์์ ์๋ ์์ ์์ฒด๋ฅผ ์คํ ์ฐ์ ์์๋ก ์ทจ๊ธํ์ธ์.
|
|
66
|
-
> ์ ํ์คํฌ๋ ๊ฐ๊ธ์ `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001`๋ก ์ถ๊ฐํ์ธ์.
|
|
69
|
+
> ์ ํ์คํฌ๋ ๊ฐ๊ธ์ `npx lee-spec-kit task add <feature-ref> --title "..." --ref NON-PRD|PRD-FR-001 --acceptance "..." --check "..."`๋ก ์ถ๊ฐํ์ธ์.
|
|
70
|
+
> placeholder ์ํ์ `Acceptance` / `Checklist`๋ฅผ ๊ทธ๋๋ก ๋์ง ๋ง์ธ์. concrete item์ด ์๋๋ฉด `task-run`์ด ์คํ์ ๋ง์ต๋๋ค.
|
|
67
71
|
> ์๋ ํธ์ง์ด ํ์ํ๋ฉด ํ์ฌ ํ์คํฌ ๊ทผ์ฒ๊ฐ ์๋๋ผ `ํ์คํฌ ๋ชฉ๋ก`์ ๋ง์ง๋ง ๊ธฐ์กด ํ์คํฌ block ์๋์๋ง append ํ์ธ์.
|
|
68
72
|
|
|
69
73
|
---
|
|
@@ -74,7 +78,7 @@
|
|
|
74
78
|
|
|
75
79
|
- [ ] ๋ชจ๋ ํ์คํฌ๊ฐ `[DONE]`์ด๋ฉฐ, ๊ฐ ํ์คํฌ์ `Acceptance` ๊ฒ์ฆ ๋ฐ `Checklist` ์ฒดํฌ ์๋ฃ
|
|
76
80
|
- [ ] ํ
์คํธ ์คํ ๋ฐ ํต๊ณผ (์๋์ ๋ช
๋ น์ด/๊ฒฐ๊ณผ ๊ธฐ๋ก)
|
|
77
|
-
- [ ] ์ต์ข
|
|
81
|
+
- [ ] ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๊ณ , ํ์ฌ `context` ์น์ธ ์ํ์ ๋ง๋ ์ฌ์ฉ์ ํ์ธ์ ๊ธฐ๋กํจ
|
|
78
82
|
|
|
79
83
|
### ํ
์คํธ ์คํ ๊ธฐ๋ก
|
|
80
84
|
|