lee-spec-kit 0.1.5 → 0.1.7

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 CHANGED
@@ -330,7 +330,7 @@ async function getConfig(cwd) {
330
330
 
331
331
  // src/commands/feature.ts
332
332
  function featureCommand(program2) {
333
- program2.command("feature <name>").description("Create a new feature folder").option("-r, --repo <repo>", "Repository type: be | fe (fullstack only)").option("--id <id>", "Feature ID (default: auto)").action(async (name, options) => {
333
+ program2.command("feature <name>").description("Create a new feature folder").option("-r, --repo <repo>", "Repository type: be | fe (fullstack only)").option("--id <id>", "Feature ID (default: auto)").option("-d, --desc <description>", "Feature description for spec.md").action(async (name, options) => {
334
334
  try {
335
335
  await runFeature(name, options);
336
336
  } catch (error) {
@@ -410,7 +410,8 @@ async function runFeature(name, options) {
410
410
  "YYYY-MM-DD": (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
411
411
  "{be|fe}": repo || "",
412
412
  "git-dungeon-{be|fe}": repoName,
413
- "{\uC774\uC288\uBC88\uD638}": ""
413
+ "{\uC774\uC288\uBC88\uD638}": "",
414
+ "{{description}}": options.desc || ""
414
415
  };
415
416
  if (lang === "en") {
416
417
  replacements["\uAE30\uB2A5 ID"] = "Feature ID";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lee-spec-kit",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Project documentation structure generator for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -69,6 +69,14 @@ docs/
69
69
  3. Transition status: `[TODO]` → `[DOING]` → `[DONE]`
70
70
  4. Commit immediately after task completion
71
71
 
72
+ ### 4. Handling Requests Outside Tasks
73
+
74
+ > When user requests **work not in tasks.md**:
75
+
76
+ 1. Ask user if this should be **added to tasks.md**
77
+ 2. If approved: Add to tasks.md then execute
78
+ 3. If declined: Proceed as temporary work (still included in commit)
79
+
72
80
  ---
73
81
 
74
82
  ## 📋 ADR (Architecture Decision Records)
@@ -73,14 +73,26 @@ main
73
73
  git checkout -b feat/{issue-number}-{feature-name}
74
74
  ```
75
75
 
76
- ### 2. Auto Commit on Task Completion
76
+ ### 2. Document Writing and Commit
77
+
78
+ | Document | Commit Timing | Commit Message Example |
79
+ | ------------ | ----------------------- | ------------------------------ |
80
+ | spec.md | After user approval | `docs(#123): write spec` |
81
+ | plan.md | After user approval | `docs(#123): write plan` |
82
+ | tasks.md | After user approval | `docs(#123): break down tasks` |
83
+ | decisions.md | Included in task commit | (no separate commit) |
84
+
85
+ > 📌 **Do not commit when creating Feature folder.**
86
+ > Commit each document individually **after user approval**.
87
+
88
+ ### 3. Auto Commit on Task Completion
77
89
 
78
90
  ```bash
79
91
  git add .
80
92
  git commit -m "{type}(#{issue}): {task-description}"
81
93
  ```
82
94
 
83
- ### 3. Create PR on Feature Completion
95
+ ### 4. Create PR on Feature Completion
84
96
 
85
97
  ```bash
86
98
  git push origin feat/{issue-number}-{feature-name}
@@ -89,7 +101,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
89
101
  --base main
90
102
  ```
91
103
 
92
- ### 4. Merge
104
+ ### 5. Merge
93
105
 
94
106
  ```bash
95
107
  git checkout main
@@ -82,6 +82,24 @@ In GitHub Issues, use different link formats **based on file location**:
82
82
  | `frontend` | FE related |
83
83
  | `priority:high` | High priority |
84
84
 
85
+ > ⚠️ If a label does not exist, create it first:
86
+ >
87
+ > ```bash
88
+ > gh label create "label-name" --description "description" --color "color-code"
89
+ > ```
90
+
91
+ ---
92
+
93
+ ## Assignee Rules
94
+
95
+ - Default: Self-assign (`--assignee @me`)
96
+ - When assigning others, **confirm with user** first
97
+ - Examples:
98
+ ```bash
99
+ gh issue create --assignee @me ...
100
+ gh issue create --assignee username ...
101
+ ```
102
+
85
103
  ---
86
104
 
87
105
  ## Body Input Rules (Shell Execution Prevention)
@@ -67,6 +67,27 @@ Closes #{issue-number}
67
67
 
68
68
  ---
69
69
 
70
+ ## Label Rules
71
+
72
+ - Specify appropriate labels when creating PR (`--label`)
73
+ - If a label does not exist, create it first:
74
+ ```bash
75
+ gh label create "label-name" --description "description" --color "color-code"
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Assignee Rules
81
+
82
+ - Default: Self-assign (`--assignee @me`)
83
+ - Use `--reviewer` option to specify reviewers
84
+ - Examples:
85
+ ```bash
86
+ gh pr create --assignee @me --reviewer reviewer-username ...
87
+ ```
88
+
89
+ ---
90
+
70
91
  ## Body Input Rules (Shell Execution Prevention)
71
92
 
72
93
  - PR body should use **`--body-file` by default**.
@@ -17,6 +17,8 @@
17
17
 
18
18
  ## Purpose
19
19
 
20
+ {{description}}
21
+
20
22
  (Why is this feature needed? What problem does it solve?)
21
23
 
22
24
  ---
@@ -56,6 +56,14 @@ docs/
56
56
  3. Status transition: `[TODO]` → `[DOING]` → `[DONE]`
57
57
  4. Commit on task completion
58
58
 
59
+ ### 3. Handling Requests Outside Tasks
60
+
61
+ > When user requests **work not in tasks.md**:
62
+
63
+ 1. Ask user if this should be **added to tasks.md**
64
+ 2. If approved: Add to tasks.md then execute
65
+ 3. If declined: Proceed as temporary work (still included in commit)
66
+
59
67
  ---
60
68
 
61
69
  ## 📋 ADR (Architecture Decision Records)
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
80
80
 
81
81
  > When creating/modifying issues/PRs with `gh`, share the title/body/labels first and **wait for user confirmation (OK)** before proceeding.
82
82
 
83
- ### 2. Auto Commit on Task Completion
83
+ ### 2. Document Writing and Commit
84
+
85
+ | Document | Commit Timing | Commit Message Example |
86
+ | ------------ | ----------------------- | ------------------------------ |
87
+ | spec.md | After user approval | `docs(#123): write spec` |
88
+ | plan.md | After user approval | `docs(#123): write plan` |
89
+ | tasks.md | After user approval | `docs(#123): break down tasks` |
90
+ | decisions.md | Included in task commit | (no separate commit) |
91
+
92
+ > 📌 **Do not commit when creating Feature folder.**
93
+ > Commit each document individually **after user approval**.
94
+
95
+ ### 3. Auto Commit on Task Completion
84
96
 
85
97
  When a task is completed:
86
98
 
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
91
103
 
92
104
  > Before running `git commit`, share the commit message and file list first and **wait for user confirmation (OK)** before proceeding.
93
105
 
94
- ### 3. Create PR on Feature Completion
106
+ ### 4. Create PR on Feature Completion
95
107
 
96
108
  When all tasks are completed:
97
109
 
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
102
114
  --base main
103
115
  ```
104
116
 
105
- ### 4. Merge
117
+ ### 5. Merge
106
118
 
107
119
  When all reviews are resolved:
108
120
 
@@ -86,6 +86,24 @@ In GitHub Issues, use different link formats **based on file location**:
86
86
  | `frontend` | FE related |
87
87
  | `priority:high` | High priority |
88
88
 
89
+ > ⚠️ If a label does not exist, create it first:
90
+ >
91
+ > ```bash
92
+ > gh label create "label-name" --description "description" --color "color-code"
93
+ > ```
94
+
95
+ ---
96
+
97
+ ## Assignee Rules
98
+
99
+ - Default: Self-assign (`--assignee @me`)
100
+ - When assigning others, **confirm with user** first
101
+ - Examples:
102
+ ```bash
103
+ gh issue create --assignee @me ...
104
+ gh issue create --assignee username ...
105
+ ```
106
+
89
107
  ---
90
108
 
91
109
  ## Body Input Rules (Shell Execution Prevention)
@@ -94,3 +112,5 @@ In GitHub Issues, use different link formats **based on file location**:
94
112
  - If the body contains backticks (`) or `$()`and is placed directly in`"..."`, it may be **interpreted by the shell**.
95
113
  - For multi-line bodies, use **single-quoted heredoc** like `cat <<'EOF'`,
96
114
  and handle variables via **placeholder → sed substitution**.
115
+
116
+ and handle variables via **placeholder → sed substitution**.
@@ -83,6 +83,27 @@ gh pr create \
83
83
 
84
84
  ---
85
85
 
86
+ ## Label Rules
87
+
88
+ - Specify appropriate labels when creating PR (`--label`)
89
+ - If a label does not exist, create it first:
90
+ ```bash
91
+ gh label create "label-name" --description "description" --color "color-code"
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Assignee Rules
97
+
98
+ - Default: Self-assign (`--assignee @me`)
99
+ - Use `--reviewer` option to specify reviewers
100
+ - Examples:
101
+ ```bash
102
+ gh pr create --assignee @me --reviewer reviewer-username ...
103
+ ```
104
+
105
+ ---
106
+
86
107
  ## Body Input Rules (Shell Execution Prevention)
87
108
 
88
109
  - PR body should use **`--body-file` by default**.
@@ -17,6 +17,8 @@
17
17
 
18
18
  ## Purpose
19
19
 
20
+ {{description}}
21
+
20
22
  (Why is this feature needed? What problem does it solve?)
21
23
 
22
24
  ---
@@ -92,6 +92,14 @@ docs/
92
92
  1. 분석 리포트 작성 (현재 상태, 문제점, 제안, 영향)
93
93
  2. 변경 필요시 새 기능/태스크 생성 권장
94
94
 
95
+ ### 5. 태스크 외 요청 처리
96
+
97
+ > 사용자가 **tasks.md에 없는 작업**을 요청하면:
98
+
99
+ 1. 해당 작업을 **tasks.md에 반영할지** 사용자에게 확인
100
+ 2. 승인 시: tasks.md에 추가 후 실행
101
+ 3. 거부 시: 임시 작업으로 진행 (커밋에는 포함)
102
+
95
103
  ---
96
104
 
97
105
  ## 📋 ADR (Architecture Decision Records) 규칙
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
80
80
 
81
81
  > `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
82
82
 
83
- ### 2. 태스크 완료 자동 커밋
83
+ ### 2. 문서 작성 커밋
84
+
85
+ | 문서 | 커밋 시점 | 커밋 메시지 예시 |
86
+ | ------------ | ------------------ | ------------------------ |
87
+ | spec.md | 사용자 승인 후 | `docs(#123): spec 작성` |
88
+ | plan.md | 사용자 승인 후 | `docs(#123): plan 작성` |
89
+ | tasks.md | 사용자 승인 후 | `docs(#123): tasks 분해` |
90
+ | decisions.md | 태스크 커밋에 포함 | (별도 커밋 없음) |
91
+
92
+ > 📌 **Feature 폴더 생성 시점**에는 커밋하지 않습니다.
93
+ > 각 문서가 **사용자 승인**을 받은 후 개별 커밋합니다.
94
+
95
+ ### 3. 태스크 완료 시 자동 커밋
84
96
 
85
97
  태스크 하나가 완료되면:
86
98
 
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
91
103
 
92
104
  > `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
93
105
 
94
- ### 3. Feature 완료 시 PR 생성
106
+ ### 4. Feature 완료 시 PR 생성
95
107
 
96
108
  모든 태스크 완료 시:
97
109
 
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
102
114
  --base main
103
115
  ```
104
116
 
105
- ### 4. 머지
117
+ ### 5. 머지
106
118
 
107
119
  모든 리뷰 해결 시:
108
120
 
@@ -86,6 +86,24 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
86
86
  | `frontend` | FE 관련 |
87
87
  | `priority:high` | 높은 우선순위 |
88
88
 
89
+ > ⚠️ 라벨이 존재하지 않으면 먼저 생성합니다:
90
+ >
91
+ > ```bash
92
+ > gh label create "라벨명" --description "설명" --color "색상코드"
93
+ > ```
94
+
95
+ ---
96
+
97
+ ## Assignee 규칙
98
+
99
+ - 기본값: 본인 할당 (`--assignee @me`)
100
+ - 다른 담당자 지정 시 **사용자에게 확인** 후 진행
101
+ - 예시:
102
+ ```bash
103
+ gh issue create --assignee @me ...
104
+ gh issue create --assignee username ...
105
+ ```
106
+
89
107
  ---
90
108
 
91
109
  ## 본문 입력 규칙 (셸 실행 방지)
@@ -81,6 +81,27 @@ gh pr create \
81
81
 
82
82
  ---
83
83
 
84
+ ## 라벨 규칙
85
+
86
+ - PR 생성 시 적절한 라벨 지정 (`--label`)
87
+ - 라벨이 존재하지 않으면 먼저 생성:
88
+ ```bash
89
+ gh label create "라벨명" --description "설명" --color "색상코드"
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Assignee 규칙
95
+
96
+ - 기본값: 본인 할당 (`--assignee @me`)
97
+ - 리뷰어 지정 시 `--reviewer` 옵션 사용
98
+ - 예시:
99
+ ```bash
100
+ gh pr create --assignee @me --reviewer reviewer-username ...
101
+ ```
102
+
103
+ ---
104
+
84
105
  ## 본문 입력 규칙 (셸 실행 방지)
85
106
 
86
107
  - PR 본문은 **`--body-file` 사용을 기본**으로 한다.
@@ -17,6 +17,8 @@
17
17
 
18
18
  ## 목적
19
19
 
20
+ {{description}}
21
+
20
22
  (이 기능이 왜 필요한지, 어떤 문제를 해결하는지)
21
23
 
22
24
  ---
@@ -69,6 +69,14 @@ docs/
69
69
  3. 상태 전환: `[TODO]` → `[DOING]` → `[DONE]`
70
70
  4. 태스크 완료 직후 커밋
71
71
 
72
+ ### 3. 태스크 외 요청 처리
73
+
74
+ > 사용자가 **tasks.md에 없는 작업**을 요청하면:
75
+
76
+ 1. 해당 작업을 **tasks.md에 반영할지** 사용자에게 확인
77
+ 2. 승인 시: tasks.md에 추가 후 실행
78
+ 3. 거부 시: 임시 작업으로 진행 (커밋에는 포함)
79
+
72
80
  ---
73
81
 
74
82
  ## 📋 ADR (Architecture Decision Records) 규칙
@@ -80,7 +80,19 @@ git checkout -b feat/{issue-number}-{feature-name}
80
80
 
81
81
  > `gh`로 이슈/PR 생성·수정 시 작성할 제목/본문/라벨을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
82
82
 
83
- ### 2. 태스크 완료 자동 커밋
83
+ ### 2. 문서 작성 커밋
84
+
85
+ | 문서 | 커밋 시점 | 커밋 메시지 예시 |
86
+ | ------------ | ------------------ | ------------------------ |
87
+ | spec.md | 사용자 승인 후 | `docs(#123): spec 작성` |
88
+ | plan.md | 사용자 승인 후 | `docs(#123): plan 작성` |
89
+ | tasks.md | 사용자 승인 후 | `docs(#123): tasks 분해` |
90
+ | decisions.md | 태스크 커밋에 포함 | (별도 커밋 없음) |
91
+
92
+ > 📌 **Feature 폴더 생성 시점**에는 커밋하지 않습니다.
93
+ > 각 문서가 **사용자 승인**을 받은 후 개별 커밋합니다.
94
+
95
+ ### 3. 태스크 완료 시 자동 커밋
84
96
 
85
97
  태스크 하나가 완료되면:
86
98
 
@@ -91,7 +103,7 @@ git commit -m "{type}(#{issue}): {task-description}"
91
103
 
92
104
  > `git commit` 실행 전 커밋 메시지와 포함될 파일 목록을 먼저 공유하고 **반드시** 사용자 확인(OK) 후 진행합니다.
93
105
 
94
- ### 3. Feature 완료 시 PR 생성
106
+ ### 4. Feature 완료 시 PR 생성
95
107
 
96
108
  모든 태스크 완료 시:
97
109
 
@@ -102,7 +114,7 @@ gh pr create --title "feat(#{issue}): {feature-title}" \
102
114
  --base main
103
115
  ```
104
116
 
105
- ### 4. 머지
117
+ ### 5. 머지
106
118
 
107
119
  모든 리뷰 해결 시:
108
120
 
@@ -86,6 +86,24 @@ GitHub Issue에서 링크는 **파일 위치에 따라** 다르게 작성:
86
86
  | `frontend` | FE 관련 |
87
87
  | `priority:high` | 높은 우선순위 |
88
88
 
89
+ > ⚠️ 라벨이 존재하지 않으면 먼저 생성합니다:
90
+ >
91
+ > ```bash
92
+ > gh label create "라벨명" --description "설명" --color "색상코드"
93
+ > ```
94
+
95
+ ---
96
+
97
+ ## Assignee 규칙
98
+
99
+ - 기본값: 본인 할당 (`--assignee @me`)
100
+ - 다른 담당자 지정 시 **사용자에게 확인** 후 진행
101
+ - 예시:
102
+ ```bash
103
+ gh issue create --assignee @me ...
104
+ gh issue create --assignee username ...
105
+ ```
106
+
89
107
  ---
90
108
 
91
109
  ## 본문 입력 규칙 (셸 실행 방지)
@@ -81,6 +81,27 @@ gh pr create \
81
81
 
82
82
  ---
83
83
 
84
+ ## 라벨 규칙
85
+
86
+ - PR 생성 시 적절한 라벨 지정 (`--label`)
87
+ - 라벨이 존재하지 않으면 먼저 생성:
88
+ ```bash
89
+ gh label create "라벨명" --description "설명" --color "색상코드"
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Assignee 규칙
95
+
96
+ - 기본값: 본인 할당 (`--assignee @me`)
97
+ - 리뷰어 지정 시 `--reviewer` 옵션 사용
98
+ - 예시:
99
+ ```bash
100
+ gh pr create --assignee @me --reviewer reviewer-username ...
101
+ ```
102
+
103
+ ---
104
+
84
105
  ## 본문 입력 규칙 (셸 실행 방지)
85
106
 
86
107
  - PR 본문은 **`--body-file` 사용을 기본**으로 한다.
@@ -17,6 +17,8 @@
17
17
 
18
18
  ## 목적
19
19
 
20
+ {{description}}
21
+
20
22
  (이 기능이 왜 필요한지, 어떤 문제를 해결하는지)
21
23
 
22
24
  ---