lee-spec-kit 0.7.2 → 0.7.3
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 +450 -332
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/en/common/README.md +7 -0
- package/templates/en/common/agents/agents.md +5 -3
- package/templates/en/common/agents/issue-template.md +1 -5
- package/templates/en/common/agents/pr-template.md +2 -11
- package/templates/en/common/agents/skills/create-feature.md +3 -0
- package/templates/en/common/agents/skills/create-issue.md +4 -7
- package/templates/en/common/agents/skills/create-pr.md +4 -8
- package/templates/en/common/agents/skills/execute-task.md +3 -0
- package/templates/en/common/features/README.md +19 -0
- package/templates/en/common/features/feature-base/decisions.md +1 -0
- package/templates/en/common/features/feature-base/plan.md +1 -0
- package/templates/en/common/features/feature-base/tasks.md +1 -0
- package/templates/ko/common/README.md +7 -0
- package/templates/ko/common/agents/agents.md +5 -3
- package/templates/ko/common/agents/issue-template.md +1 -5
- package/templates/ko/common/agents/pr-template.md +2 -11
- package/templates/ko/common/agents/skills/create-feature.md +3 -0
- package/templates/ko/common/agents/skills/create-issue.md +4 -7
- package/templates/ko/common/agents/skills/create-pr.md +4 -8
- package/templates/ko/common/agents/skills/execute-task.md +4 -0
- package/templates/ko/common/features/README.md +19 -0
- package/templates/ko/common/features/feature-base/decisions.md +1 -0
- package/templates/ko/common/features/feature-base/plan.md +1 -0
- package/templates/ko/common/features/feature-base/tasks.md +1 -0
package/package.json
CHANGED
|
@@ -56,6 +56,12 @@ To avoid ambiguity, treat the following as the single source of truth (SSOT).
|
|
|
56
56
|
- If a task changes user-facing behavior, acceptance criteria, or feature scope, backfill PRD first and tag the task as `[PRD-...]` instead of leaving it as `[NON-PRD]`.
|
|
57
57
|
- For legacy docs without PRD IDs yet, backfill the source requirements doc first, then link the feature docs.
|
|
58
58
|
- `decisions.md`: record changes/trade-offs/requirement changes (why it changed) with evidence links
|
|
59
|
+
- **Shared planning artifacts (`docs/plans/`, `docs/superpowers/specs/`, `docs/superpowers/plans/`)**: staging/reference docs
|
|
60
|
+
- These may be created by external agent workflows such as `superpowers`.
|
|
61
|
+
- Once a feature is active, these artifacts are inputs only. The final SSOT stays in the feature folder.
|
|
62
|
+
- Normalize them into feature-local docs:
|
|
63
|
+
- design/spec artifact → `spec.md`, `plan.md`, `decisions.md`
|
|
64
|
+
- implementation plan artifact → `plan.md`, `tasks.md`
|
|
59
65
|
|
|
60
66
|
## Change Protocol (When Requirements/Scope Change Mid-Work)
|
|
61
67
|
|
|
@@ -70,6 +76,7 @@ When requirements/scope change, the “what to update” must be explicit in doc
|
|
|
70
76
|
1. backfill/update `docs/prd/*.md`
|
|
71
77
|
2. update `spec.md` `PRD Refs`
|
|
72
78
|
3. retag the task as `[PRD-...]` (or add a replacement task if needed)
|
|
79
|
+
- If shared planning artifacts exist (`docs/plans/*`, `docs/superpowers/specs/*`, `docs/superpowers/plans/*`), absorb them into the feature docs before treating them as part of the active workflow.
|
|
73
80
|
- `docs/features/.../spec.md`: update `PRD Refs` + reflect scope change summary
|
|
74
81
|
- `docs/features/.../tasks.md`: add tasks for the change + tag each task as `[PRD-...]` or `[NON-PRD]`
|
|
75
82
|
- `docs/features/.../plan.md`: update if architecture/testing strategy changed
|
|
@@ -15,8 +15,8 @@ This document covers **policy only**.
|
|
|
15
15
|
| Spec writing | After writing `spec.md` | Full spec content |
|
|
16
16
|
| Task execution | Before each task | Task title |
|
|
17
17
|
| Commit creation | Before `git commit` | Commit message, included files |
|
|
18
|
-
| Issue creation | Before `
|
|
19
|
-
| PR creation | Before `
|
|
18
|
+
| Issue creation | Before `npx lee-spec-kit github issue <featureRef> --create` | Title, body, labels |
|
|
19
|
+
| PR creation | Before `npx lee-spec-kit github pr <featureRef> --create` | Title, body, labels |
|
|
20
20
|
| Assignee change | When assigning someone else | Target username |
|
|
21
21
|
| Remote Git operations | Before `push`, `merge` (including merge commits) | Branch, changes |
|
|
22
22
|
|
|
@@ -35,7 +35,8 @@ Prohibited:
|
|
|
35
35
|
- Treat approval-waiting as a separate state. Approval-waiting means `context --json-compact` (or `context --json`) exposes executable `actionOptions[]` and you are explicitly waiting for user approval.
|
|
36
36
|
- Use the latest `npx lee-spec-kit context --json-compact` as the default source (fallback: `context --json` or `flow --json` when full detail is required; prefer `flow --json-compact` for default flow output).
|
|
37
37
|
- When using auto results from `flow --json-compact` (or `flow --json`), treat `autoRun.resume.flowCommand` as SSOT for resume (including after context compression/reset).
|
|
38
|
-
- Treat `
|
|
38
|
+
- Treat `AUTO_DELEGATED_HANDOFF` as a delegated pause, not a failure. Continue or resume the delegated run path and do not reopen the same approval label.
|
|
39
|
+
- Treat `AUTO_MANUAL_REQUIRED` as an instruction-only automation boundary, not an immediate failure. Re-check `context --json-compact`, then decide stop/report by `approvalRequest.required` (`context --json` only for full-detail debugging fields).
|
|
39
40
|
- In approval-waiting state, prefer `approvalRequest.userFacingLines` from `context --json-compact`. If full `--json` is used, fall back to `actionOptions[*].approvalPrompt` plus `approvalRequest.finalPrompt`. Do not add your own rewritten label summary before or between those lines.
|
|
40
41
|
- Prefer `matchedFeature.currentSubstateOwner` plus `agentOrchestration.subAgentHandoff` as the delegation SSOT.
|
|
41
42
|
- In non-approval state, do not append labels or `approvalRequest.finalPrompt` unless the user explicitly asked for current options.
|
|
@@ -81,6 +82,7 @@ Approval-waiting output must reuse the exact CLI-provided prompt lines. Do not i
|
|
|
81
82
|
## Scope Split
|
|
82
83
|
|
|
83
84
|
- Docs structure/path rules: use `docs/README.md` as SSOT
|
|
85
|
+
- Shared planning artifacts (`docs/plans/*`, `docs/superpowers/specs/*`, `docs/superpowers/plans/*`) are staging/reference inputs only. When a feature is active, normalize them into feature-local docs and treat the feature folder as the final SSOT.
|
|
84
86
|
- ADR format: use feature `decisions.md` template as SSOT
|
|
85
87
|
- Issue/PR execution state: use each feature's `issue.md` and `pr.md` as SSOT
|
|
86
88
|
|
|
@@ -120,11 +120,7 @@ In GitHub Issues, use different link formats **based on file location**:
|
|
|
120
120
|
|
|
121
121
|
- Default: Self-assign (`--assignee @me`)
|
|
122
122
|
- When assigning others, **confirm with user** first
|
|
123
|
-
-
|
|
124
|
-
```bash
|
|
125
|
-
gh issue create --assignee @me ...
|
|
126
|
-
gh issue create --assignee username ...
|
|
127
|
-
```
|
|
123
|
+
- Remote creation must use `npx lee-spec-kit github issue <featureRef> --create --confirm OK --labels ...`.
|
|
128
124
|
|
|
129
125
|
---
|
|
130
126
|
|
|
@@ -102,13 +102,7 @@ Closes #{issue-number}
|
|
|
102
102
|
## PR Creation Command
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
|
|
106
|
-
BRANCH=$(git branch --show-current)
|
|
107
|
-
|
|
108
|
-
gh pr create \
|
|
109
|
-
--title "feat(#{issue}): {feature-name} ({short description})" \
|
|
110
|
-
--body-file /tmp/pr-body.md \
|
|
111
|
-
--base main
|
|
105
|
+
npx lee-spec-kit github pr <featureRef> --create --confirm OK --labels enhancement
|
|
112
106
|
```
|
|
113
107
|
|
|
114
108
|
---
|
|
@@ -156,10 +150,7 @@ git pull
|
|
|
156
150
|
|
|
157
151
|
- Default: Self-assign (`--assignee @me`)
|
|
158
152
|
- Use `--reviewer` option to specify reviewers
|
|
159
|
-
-
|
|
160
|
-
```bash
|
|
161
|
-
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
162
|
-
```
|
|
153
|
+
- Remote creation must use `npx lee-spec-kit github pr <featureRef> --create --confirm OK --labels ...`.
|
|
163
154
|
|
|
164
155
|
---
|
|
165
156
|
|
|
@@ -49,6 +49,9 @@ After completing the action, go back to Step 1 and run `context` again.
|
|
|
49
49
|
|
|
50
50
|
If the Feature folder does not exist yet:
|
|
51
51
|
|
|
52
|
+
- If the user's request includes an explicit Idea ref such as `I001`, `I001-slug`, or `docs/ideas/...`, preserve that ref and create the feature with `npx lee-spec-kit feature <name> --idea <ref>`.
|
|
53
|
+
- Do not infer an Idea ref. Use `--idea` only when the request explicitly names one.
|
|
54
|
+
|
|
52
55
|
```bash
|
|
53
56
|
# 1) Create the folder
|
|
54
57
|
npx lee-spec-kit feature <name> -d "<description>"
|
|
@@ -52,14 +52,10 @@ After approval, set `issue.md` status to `Ready`.
|
|
|
52
52
|
|
|
53
53
|
### 3. Create Issue (when `issue.md` is `Ready`)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
gh issue create
|
|
57
|
-
--title "{feature-name} ({description})" \
|
|
58
|
-
--body-file /tmp/issue-body.md \
|
|
59
|
-
--assignee @me \
|
|
60
|
-
--label enhancement
|
|
55
|
+
Remote issue creation must use the lee-spec-kit helper.
|
|
56
|
+
Do not call `gh issue create` directly or pass raw `issue.md` to `--body-file`.
|
|
61
57
|
|
|
62
|
-
|
|
58
|
+
```bash
|
|
63
59
|
npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
64
60
|
```
|
|
65
61
|
|
|
@@ -72,5 +68,6 @@ After creation:
|
|
|
72
68
|
## Reference Documents
|
|
73
69
|
|
|
74
70
|
- **Draft generator**: `npx lee-spec-kit github issue <feature-name>`
|
|
71
|
+
- **Remote creation rule**: must use `npx lee-spec-kit github issue <feature-name> --create --confirm OK --labels ...`
|
|
75
72
|
- **Approval rule**: share title/body/labels first, then run `--create --confirm OK`
|
|
76
73
|
- **Execution-state SSOT**: `docs/features/.../<feature>/issue.md`
|
|
@@ -160,15 +160,10 @@ After approval, set `pr.md` status to `Ready`.
|
|
|
160
160
|
|
|
161
161
|
### 5. Create PR (when `pr.md` is `Ready`)
|
|
162
162
|
|
|
163
|
+
Remote PR creation must use the lee-spec-kit helper.
|
|
164
|
+
Do not call `gh pr create` directly or pass raw `pr.md` to `--body-file`.
|
|
165
|
+
|
|
163
166
|
```bash
|
|
164
|
-
gh pr create \
|
|
165
|
-
--title "feat(#{issue-number}): {feature} ({short description})" \
|
|
166
|
-
--body-file /tmp/pr-body.md \
|
|
167
|
-
--label "{label1,label2}" \
|
|
168
|
-
--assignee @me \
|
|
169
|
-
--base main
|
|
170
|
-
|
|
171
|
-
# Or via lee-spec-kit helper (requires explicit confirmation)
|
|
172
167
|
npx lee-spec-kit github pr F001 --create --confirm OK --labels enhancement
|
|
173
168
|
```
|
|
174
169
|
|
|
@@ -217,5 +212,6 @@ Use **current branch name** for file links in PR body:
|
|
|
217
212
|
## Reference Documents
|
|
218
213
|
|
|
219
214
|
- **Body template generator**: `npx lee-spec-kit github pr <feature-name>`
|
|
215
|
+
- **Remote creation rule**: must use `npx lee-spec-kit github pr <feature-name> --create --confirm OK --labels ...`
|
|
220
216
|
- **Approval rule**: share title/body/labels first, then run `--create --confirm OK`
|
|
221
217
|
- **Execution-state SSOT**: `docs/features/.../<feature>/pr.md`
|
|
@@ -39,6 +39,7 @@ Execute exactly one option from `👉 Next Options (Atomic)` as printed by the C
|
|
|
39
39
|
- If `autoRun.policyEligible=true` but `autoRun.executableNow=false`, handle `autoRun.manualBoundary` first instead of starting an auto loop.
|
|
40
40
|
- For long-running auto execution, start with `flow <feature> --auto-... --start-auto --json-compact` and prefer `autoRun.run.resumeCommand` (`flow --resume <RUN_ID>`) after interruption/compression (`--json` only when full-detail debugging fields are required).
|
|
41
41
|
- If auto execution stops, treat `autoRun.resume` from `flow --json-compact` (or `flow --json`) as SSOT. After interruption/compression, resume with `autoRun.resume.flowCommand`; if needed, check current state first with `autoRun.resume.contextCommand`.
|
|
42
|
+
- Treat `AUTO_DELEGATED_HANDOFF` as a delegated pause, not a crash. Reuse the delegated run path and continue the delegated work before asking for a fresh approval label.
|
|
42
43
|
- Treat `AUTO_MANUAL_REQUIRED` as an automation boundary (instruction-only segment), not an immediate crash. Re-check `context --json-compact` and report whether `approvalRequest.required` is now true.
|
|
43
44
|
- If the CLI prints commands, copy/paste them. (In standalone setups commands may include `git -C ...` and scopes like `project`/`docs`.)
|
|
44
45
|
- Follow `agents.md` **"Label Response Contract (SSOT)"**. Show label prompts only in approval-waiting state, and reuse the exact CLI-provided approval lines instead of paraphrasing them.
|
|
@@ -52,6 +53,8 @@ Keep `tasks.md` aligned with reality.
|
|
|
52
53
|
|
|
53
54
|
- Do not mark `[DONE]` without actually completing the work and verifying criteria.
|
|
54
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, append it directly below the last existing task block in the `Task List` section.
|
|
57
|
+
- Do not insert it near the current task, in the middle of the same phase, or right before `Completion Criteria` / the next `##` heading.
|
|
55
58
|
|
|
56
59
|
### Step 3.25: Record decisions (strongly recommended, effectively required)
|
|
57
60
|
|
|
@@ -89,6 +89,25 @@ When things change mid-work, it must be explicit what was updated.
|
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
92
|
+
## Shared Planning Artifacts (`superpowers`, etc.)
|
|
93
|
+
|
|
94
|
+
External agent workflows may create shared design/plan docs such as:
|
|
95
|
+
|
|
96
|
+
- `docs/plans/*.md`
|
|
97
|
+
- `docs/superpowers/specs/*.md`
|
|
98
|
+
- `docs/superpowers/plans/*.md`
|
|
99
|
+
|
|
100
|
+
When a feature is already in progress, treat those files as staging/reference artifacts, not the active workflow SSOT.
|
|
101
|
+
|
|
102
|
+
- Move user-facing scope and acceptance criteria into `spec.md`
|
|
103
|
+
- Move architecture/file structure/test strategy into `plan.md`
|
|
104
|
+
- Move executable work items into `tasks.md`
|
|
105
|
+
- Move trade-offs, rejected options, and rationale into `decisions.md`
|
|
106
|
+
|
|
107
|
+
Keeping the shared artifact for history is fine, but when it conflicts with feature-local docs, the feature folder wins.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
92
111
|
## Status Glossary
|
|
93
112
|
|
|
94
113
|
| Scope | Field | Values |
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Decisions Log
|
|
2
2
|
|
|
3
3
|
Record technical decisions and their rationale.
|
|
4
|
+
If a shared design/spec artifact exists (`docs/plans/*` or `docs/superpowers/specs/*`), capture the accepted trade-offs and rationale here so the active feature keeps its own decision trail.
|
|
4
5
|
|
|
5
6
|
> ADR (Architecture Decision Record) captures important technical or architectural choices made during implementation.
|
|
6
7
|
> Write ADRs so the team can trace why a choice was made and revisit trade-offs later.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Implementation Plan: {feature-name}
|
|
2
2
|
|
|
3
3
|
> Write after spec is approved.
|
|
4
|
+
> If a shared planning artifact exists (`docs/plans/*` or `docs/superpowers/plans/*`), absorb its architecture/file/test content here and treat this file as the final feature-local SSOT.
|
|
4
5
|
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
(Recommended) Requirement/scope change task:
|
|
67
67
|
|
|
68
68
|
Record mid-work changes as **new tasks**, and explicitly list which docs need updating via `Impact Docs`.
|
|
69
|
+
When adding a new task, append it below the last existing task block in `Task List` instead of inserting it near the current task or in the middle of a phase.
|
|
69
70
|
|
|
70
71
|
```markdown
|
|
71
72
|
- [TODO][P1][PRD-FR-001][CHANGE] T-F{number}-02 {Task Title} (requirement/scope change)
|
|
@@ -56,6 +56,12 @@ npx lee-spec-kit context --json-compact
|
|
|
56
56
|
- 태스크가 사용자 동작, acceptance criteria, 기능 범위를 바꾸게 되면 `[NON-PRD]`로 끝내지 말고 PRD를 backfill한 뒤 `[PRD-...]`로 연결합니다.
|
|
57
57
|
- 레거시 문서에 PRD ID가 없다면, 먼저 원문 요구사항 문서에 ID를 backfill한 뒤 Feature 문서를 연결합니다.
|
|
58
58
|
- `decisions.md`: 변경/트레이드오프/요구사항 변경(왜 바뀌었는지) 기록 + Evidence 링크
|
|
59
|
+
- **공용 계획 산출물 (`docs/plans/`, `docs/superpowers/specs/`, `docs/superpowers/plans/`)**: staging/reference 문서
|
|
60
|
+
- `superpowers` 같은 외부 에이전트 워크플로우가 이 위치에 문서를 만들 수 있습니다.
|
|
61
|
+
- Feature가 활성화된 뒤에는 이 문서들이 입력 자료일 뿐이며, 최종 SSOT는 Feature 폴더에 남습니다.
|
|
62
|
+
- 아래처럼 feature-local 문서로 정규화하세요:
|
|
63
|
+
- design/spec 산출물 → `spec.md`, `plan.md`, `decisions.md`
|
|
64
|
+
- implementation plan 산출물 → `plan.md`, `tasks.md`
|
|
59
65
|
|
|
60
66
|
## 변경 프로토콜 (중간에 요구사항/기능이 추가·변경될 때)
|
|
61
67
|
|
|
@@ -70,6 +76,7 @@ npx lee-spec-kit context --json-compact
|
|
|
70
76
|
1. `docs/prd/*.md` backfill/수정
|
|
71
77
|
2. `spec.md`의 `PRD Refs` 갱신
|
|
72
78
|
3. 해당 태스크를 `[PRD-...]`로 재태깅 (필요하면 대체 태스크 추가)
|
|
79
|
+
- `docs/plans/*`, `docs/superpowers/specs/*`, `docs/superpowers/plans/*` 같은 공용 계획 문서가 있으면, 활성 워크플로우에 넣기 전에 먼저 Feature 문서로 흡수합니다.
|
|
73
80
|
- `docs/features/.../spec.md`: `PRD Refs` 갱신 + 스코프 변경 요약 반영
|
|
74
81
|
- `docs/features/.../tasks.md`: 변경을 반영하는 새 태스크 추가 + 각 태스크에 `[PRD-...]` 또는 `[NON-PRD]` 태그 부여
|
|
75
82
|
- `docs/features/.../plan.md`: 아키텍처/테스트 전략이 바뀌면 함께 갱신
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
| 스펙 작성 | `spec.md` 작성 후 | 스펙 내용 전문 |
|
|
16
16
|
| 태스크 실행 | 각 태스크 시작 전 | 태스크 제목 |
|
|
17
17
|
| 커밋 생성 | `git commit` 전 | 커밋 메시지, 포함 파일 목록 |
|
|
18
|
-
| 이슈 생성 | `
|
|
19
|
-
| PR 생성 | `
|
|
18
|
+
| 이슈 생성 | `npx lee-spec-kit github issue <featureRef> --create` 전 | 제목, 본문, 라벨 |
|
|
19
|
+
| PR 생성 | `npx lee-spec-kit github pr <featureRef> --create` 전 | 제목, 본문, 라벨 |
|
|
20
20
|
| Assignee 변경 | 본인 외 지정 시 | 대상 사용자명 |
|
|
21
21
|
| Git 원격 작업 | `push`, `merge` 전 (머지 커밋 포함) | 브랜치, 변경 사항 |
|
|
22
22
|
|
|
@@ -35,7 +35,8 @@
|
|
|
35
35
|
- 승인 대기 상태를 별도 상태로 취급합니다. 승인 대기란 `context --json-compact`(또는 `context --json`)에 실행 가능한 `actionOptions[]`가 있고, 현재 사용자의 승인을 기다리는 경우를 의미합니다.
|
|
36
36
|
- 기준 데이터는 최신 `npx lee-spec-kit context --json-compact`를 기본으로 사용하고, 상세 필드가 필요할 때만 `context --json` 또는 `flow --json`을 사용합니다. (`flow`는 기본적으로 `--json-compact` 우선)
|
|
37
37
|
- `flow --json-compact`(또는 `flow --json`)의 auto 결과를 사용할 때는 `autoRun.resume.flowCommand`를 재개 SSOT로 사용합니다. (컨텍스트 압축/리셋 후 동일 규칙 적용)
|
|
38
|
-
- `
|
|
38
|
+
- `AUTO_DELEGATED_HANDOFF`는 delegated run 일시정지 상태이며 실패가 아닙니다. 같은 승인 라벨을 다시 열지 말고 delegated 경로를 이어서 진행하거나 재개합니다.
|
|
39
|
+
- `AUTO_MANUAL_REQUIRED`는 instruction-only 자동화 경계 상태이며 실패 단정 신호가 아닙니다. `context --json-compact` 재확인 후 `approvalRequest.required` 기준으로 멈춤/보고를 판단합니다. (상세 디버깅 필드가 필요할 때만 `context --json`)
|
|
39
40
|
- 승인 대기 상태에서는 `context --json-compact`의 `approvalRequest.userFacingLines`를 우선 그대로 보여주세요. 전체 `--json`을 쓸 때만 `actionOptions[*].approvalPrompt`와 `approvalRequest.finalPrompt` 조합으로 폴백합니다. 이 사이에 에이전트가 임의로 다시 쓴 라벨 요약을 끼워 넣지 않습니다.
|
|
40
41
|
- 위임 판단 SSOT는 `matchedFeature.currentSubstateOwner`와 `agentOrchestration.subAgentHandoff`를 우선 사용하세요.
|
|
41
42
|
- 비승인 상태의 진행 보고/분석/일반 답변에서는 라벨 블록이나 `approvalRequest.finalPrompt`를 덧붙이지 않습니다. 현재 옵션을 사용자가 직접 물었을 때만 예외입니다.
|
|
@@ -81,6 +82,7 @@
|
|
|
81
82
|
## 범위 분리
|
|
82
83
|
|
|
83
84
|
- docs 구조/경로 규칙: `docs/README.md`를 SSOT로 사용
|
|
85
|
+
- `docs/plans/*`, `docs/superpowers/specs/*`, `docs/superpowers/plans/*` 같은 공용 계획 산출물은 staging/reference 입력으로만 취급합니다. Feature가 활성화되어 있으면 해당 내용을 Feature 문서로 흡수하고, 최종 SSOT는 Feature 폴더로 봅니다.
|
|
84
86
|
- ADR 작성 형식: `docs/features/.../decisions.md` 템플릿을 SSOT로 사용
|
|
85
87
|
- 이슈/PR 실행 상태: 각 Feature의 `issue.md`, `pr.md`를 SSOT로 사용
|
|
86
88
|
|
|
@@ -104,11 +104,7 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
|
|
|
104
104
|
|
|
105
105
|
- 기본값: 본인 할당 (`--assignee @me`)
|
|
106
106
|
- 다른 담당자 지정 시 **사용자에게 확인** 후 진행
|
|
107
|
-
-
|
|
108
|
-
```bash
|
|
109
|
-
gh issue create --assignee @me ...
|
|
110
|
-
gh issue create --assignee username ...
|
|
111
|
-
```
|
|
107
|
+
- 원격 생성은 반드시 `npx lee-spec-kit github issue <featureRef> --create --confirm OK --labels ...`를 사용합니다.
|
|
112
108
|
|
|
113
109
|
---
|
|
114
110
|
|
|
@@ -100,13 +100,7 @@ Closes #{이슈번호}
|
|
|
100
100
|
## PR 생성 명령어
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
|
|
104
|
-
BRANCH=$(git branch --show-current)
|
|
105
|
-
|
|
106
|
-
gh pr create \
|
|
107
|
-
--title "feat(#{issue}): {기능명} ({짧은 설명})" \
|
|
108
|
-
--body-file /tmp/pr-body.md \
|
|
109
|
-
--base main
|
|
103
|
+
npx lee-spec-kit github pr <featureRef> --create --confirm OK --labels enhancement
|
|
110
104
|
```
|
|
111
105
|
|
|
112
106
|
---
|
|
@@ -154,10 +148,7 @@ git pull
|
|
|
154
148
|
|
|
155
149
|
- 기본값: 본인 할당 (`--assignee @me`)
|
|
156
150
|
- 리뷰어 지정 시 `--reviewer` 옵션 사용
|
|
157
|
-
-
|
|
158
|
-
```bash
|
|
159
|
-
gh pr create --assignee @me --reviewer reviewer-username ...
|
|
160
|
-
```
|
|
151
|
+
- 원격 생성은 반드시 `npx lee-spec-kit github pr <featureRef> --create --confirm OK --labels ...`를 사용합니다.
|
|
161
152
|
|
|
162
153
|
---
|
|
163
154
|
|
|
@@ -50,6 +50,9 @@ CLI가 출력하는 **`👉 Next Options (Atomic)` 목록에서 단 하나의
|
|
|
50
50
|
|
|
51
51
|
아직 기능 폴더가 없다면, 먼저 폴더를 생성하고 루프를 시작하세요:
|
|
52
52
|
|
|
53
|
+
- 사용자의 요청에 `I001`, `I001-slug`, `docs/ideas/...` 같은 **명시적 Idea ref**가 있으면, 일반 생성 대신 해당 ref를 유지해서 `npx lee-spec-kit feature <name> --idea <ref>`를 사용합니다.
|
|
54
|
+
- 이 경우 Idea를 추정하지 않습니다. 요청에 명시된 ref가 있을 때만 `--idea`를 붙입니다.
|
|
55
|
+
|
|
53
56
|
```bash
|
|
54
57
|
# 1. 생성
|
|
55
58
|
npx lee-spec-kit feature <name> -d "<설명>"
|
|
@@ -52,14 +52,10 @@ npx lee-spec-kit github issue F001 --json
|
|
|
52
52
|
|
|
53
53
|
### 3. 이슈 생성 (`issue.md`가 `Ready`일 때)
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
gh issue create
|
|
57
|
-
--title "{기능명} ({짧은 설명})" \
|
|
58
|
-
--body-file /tmp/issue-body.md \
|
|
59
|
-
--assignee @me \
|
|
60
|
-
--label enhancement
|
|
55
|
+
원격 이슈 생성은 반드시 lee-spec-kit helper로만 실행합니다.
|
|
56
|
+
`gh issue create`를 직접 호출하거나 raw `issue.md`를 그대로 `--body-file`에 넘기지 마세요.
|
|
61
57
|
|
|
62
|
-
|
|
58
|
+
```bash
|
|
63
59
|
npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
64
60
|
```
|
|
65
61
|
|
|
@@ -72,5 +68,6 @@ npx lee-spec-kit github issue F001 --create --confirm OK --labels enhancement
|
|
|
72
68
|
## 참조 문서
|
|
73
69
|
|
|
74
70
|
- **초안 생성기**: `npx lee-spec-kit github issue <feature-name>`
|
|
71
|
+
- **원격 생성 규칙**: 반드시 `npx lee-spec-kit github issue <feature-name> --create --confirm OK --labels ...` 사용
|
|
75
72
|
- **승인 규칙**: 제목/본문/라벨 공유 후 `--create --confirm OK` 실행
|
|
76
73
|
- **실행 상태 SSOT**: `docs/features/.../<feature>/issue.md`
|
|
@@ -160,15 +160,10 @@ PR 생성 전 다음 내용을 **코드블록으로** 사용자에게 공유하
|
|
|
160
160
|
|
|
161
161
|
### 5. PR 생성 (`pr.md`가 `Ready`일 때)
|
|
162
162
|
|
|
163
|
+
원격 PR 생성은 반드시 lee-spec-kit helper로만 실행합니다.
|
|
164
|
+
`gh pr create`를 직접 호출하거나 raw `pr.md`를 그대로 `--body-file`에 넘기지 마세요.
|
|
165
|
+
|
|
163
166
|
```bash
|
|
164
|
-
gh pr create \
|
|
165
|
-
--title "feat(#{이슈번호}): {기능명} ({짧은 설명})" \
|
|
166
|
-
--body-file /tmp/pr-body.md \
|
|
167
|
-
--label "{라벨1,라벨2}" \
|
|
168
|
-
--assignee @me \
|
|
169
|
-
--base main
|
|
170
|
-
|
|
171
|
-
# 또는 lee-spec-kit helper 사용 (명시적 승인 필요)
|
|
172
167
|
npx lee-spec-kit github pr F001 --create --confirm OK --labels enhancement
|
|
173
168
|
```
|
|
174
169
|
|
|
@@ -217,5 +212,6 @@ PR 본문의 파일 링크는 **현재 브랜치명**을 사용:
|
|
|
217
212
|
## 참조 문서
|
|
218
213
|
|
|
219
214
|
- **본문 템플릿 생성기**: `npx lee-spec-kit github pr <feature-name>`
|
|
215
|
+
- **원격 생성 규칙**: 반드시 `npx lee-spec-kit github pr <feature-name> --create --confirm OK --labels ...` 사용
|
|
220
216
|
- **승인 규칙**: 제목/본문/라벨 공유 후 `--create --confirm OK` 실행
|
|
221
217
|
- **실행 상태 SSOT**: `docs/features/.../<feature>/pr.md`
|
|
@@ -39,6 +39,7 @@ CLI가 가리키는 **Active Task** 또는 **`👉 Next Options (Atomic)`의 단
|
|
|
39
39
|
- `autoRun.policyEligible=true`이지만 `autoRun.executableNow=false`이면 auto 루프를 시작하지 말고 `autoRun.manualBoundary`를 먼저 처리합니다.
|
|
40
40
|
- 장시간 자동 실행이 필요하면 `flow <feature> --auto-... --start-auto --json-compact`으로 run id를 생성하고, 중단/압축 후에는 `autoRun.run.resumeCommand`(`flow --resume <RUN_ID>`)를 우선 사용해 재개합니다. (상세 디버깅 필드가 필요할 때만 `--json`)
|
|
41
41
|
- auto 실행이 중단되면 `flow --json-compact`(또는 `flow --json`)의 `autoRun.resume`를 SSOT로 따릅니다. 컨텍스트 압축/리셋 후에는 `autoRun.resume.flowCommand`로 재개하고, 필요 시 `autoRun.resume.contextCommand`로 상태를 먼저 확인합니다.
|
|
42
|
+
- `AUTO_DELEGATED_HANDOFF`는 실패가 아니라 delegated run 일시정지입니다. 새 승인 라벨을 다시 열기 전에 delegated 경로를 재사용해 작업을 이어갑니다.
|
|
42
43
|
- `AUTO_MANUAL_REQUIRED`는 실패가 아니라 자동화 경계(현재 instruction-only 구간)입니다. 즉시 오류로 단정하지 말고 현재 `context --json-compact`를 다시 확인한 뒤 승인 필요 여부(`approvalRequest.required`)를 보고합니다.
|
|
43
44
|
- CLI가 명령어를 출력하면 **그대로 복사해 실행**합니다. (standalone 환경에서도 레포 경로가 포함될 수 있습니다)
|
|
44
45
|
- 사용자 응답 포맷은 `agents.md`의 **"라벨 응답 계약 (SSOT)"** 을 따릅니다. 라벨 문구는 승인 대기 상태에서만 보여주고, CLI가 준 승인 문구를 임의로 바꾸지 않습니다.
|
|
@@ -48,6 +49,9 @@ CLI가 가리키는 **Active Task** 또는 **`👉 Next Options (Atomic)`의 단
|
|
|
48
49
|
|
|
49
50
|
### 3단계: 기록 및 반복 (Record & Loop)
|
|
50
51
|
|
|
52
|
+
- 새 태스크를 추가해야 한다면 `태스크 목록` 섹션의 마지막 기존 태스크 block 바로 아래에만 append 하세요.
|
|
53
|
+
- 현재 작업 중인 태스크 근처, 같은 Phase 중간, `완료 조건`/다음 `##` 헤더 앞에 끼워 넣지 마세요.
|
|
54
|
+
|
|
51
55
|
#### 3-1) Decision 기록 (매우 권장, 사실상 필수)
|
|
52
56
|
|
|
53
57
|
에이전트가 “왜 이렇게 구현했지?” 라는 질문에 답할 수 있도록, **비직관적이거나 선택의 여지가 있었던 구현**이 들어갔다면 `decisions.md`에 반드시 기록합니다.
|
|
@@ -89,6 +89,25 @@ npx lee-spec-kit status --write
|
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
92
|
+
## 공용 계획 산출물 (`superpowers` 등)
|
|
93
|
+
|
|
94
|
+
외부 에이전트 워크플로우는 아래 같은 공용 설계/계획 문서를 만들 수 있습니다.
|
|
95
|
+
|
|
96
|
+
- `docs/plans/*.md`
|
|
97
|
+
- `docs/superpowers/specs/*.md`
|
|
98
|
+
- `docs/superpowers/plans/*.md`
|
|
99
|
+
|
|
100
|
+
Feature가 이미 진행 중이라면, 이 파일들은 활성 워크플로우 SSOT가 아니라 staging/reference 산출물로 취급합니다.
|
|
101
|
+
|
|
102
|
+
- 사용자 요구/범위/Acceptance Criteria는 `spec.md`로 옮깁니다
|
|
103
|
+
- 아키텍처/파일 구조/테스트 전략은 `plan.md`로 옮깁니다
|
|
104
|
+
- 실제 실행할 작업 항목은 `tasks.md`로 옮깁니다
|
|
105
|
+
- 대안 비교, 선택 이유, 트레이드오프는 `decisions.md`로 옮깁니다
|
|
106
|
+
|
|
107
|
+
공용 산출물을 기록용으로 남겨두는 것은 괜찮지만, feature-local 문서와 충돌하면 Feature 폴더 문서를 기준으로 봅니다.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
92
111
|
## 상태 용어 정리
|
|
93
112
|
|
|
94
113
|
| 구분 | 필드 | 값 |
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Decisions Log
|
|
2
2
|
|
|
3
3
|
기술 결정과 그 이유를 기록합니다.
|
|
4
|
+
`docs/plans/*` 또는 `docs/superpowers/specs/*` 같은 공용 설계 문서가 있더라도, 실제로 채택한 대안과 선택 이유는 이 파일에 다시 남겨 Feature의 결정 이력을 유지합니다.
|
|
4
5
|
|
|
5
6
|
> ADR(Architecture Decision Record)은 구현 중 내린 중요한 기술/구조 결정을 남기는 기록입니다.
|
|
6
7
|
> 나중에 "왜 이렇게 만들었는지"를 추적하고, 팀 합의를 재확인하기 위해 작성합니다.
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
(권장) 요구사항/범위 변경 태스크:
|
|
67
67
|
|
|
68
68
|
중간 변경은 **새 태스크로 추가**하고, 어떤 문서를 함께 업데이트해야 하는지 `Impact Docs`로 명시합니다.
|
|
69
|
+
새 태스크를 추가할 때는 현재 태스크 근처나 Phase 중간에 끼워 넣지 말고, `태스크 목록`의 마지막 기존 태스크 block 아래에 append 하세요.
|
|
69
70
|
|
|
70
71
|
```markdown
|
|
71
72
|
- [TODO][P1][PRD-FR-001][CHANGE] T-F{번호}-02 {태스크 제목} (요구사항/범위 변경)
|