uctm 1.1.1 → 1.2.0
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/agents/en/committer.md +18 -2
- package/agents/en/file-content-schema.md +224 -224
- package/agents/en/planner.md +1 -1
- package/agents/en/router.md +15 -3
- package/agents/en/shared-prompt-sections.md +3 -4
- package/agents/ko/committer.md +18 -2
- package/agents/ko/file-content-schema.md +224 -224
- package/agents/ko/planner.md +1 -1
- package/agents/ko/router.md +14 -2
- package/agents/ko/shared-prompt-sections.md +3 -4
- package/package.json +1 -1
package/agents/en/committer.md
CHANGED
|
@@ -155,7 +155,23 @@ Committer-specific additional fields:
|
|
|
155
155
|
</next-tasks>
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
### 3-9-1. WORK-LIST.md Auto-Completion
|
|
159
|
+
|
|
160
|
+
Check if this is the last TASK. If so, change WORK-LIST.md from `IN_PROGRESS` to `COMPLETED`.
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Check if last TASK
|
|
164
|
+
TOTAL=$(ls works/${WORK_ID}/TASK-*.md 2>/dev/null | grep -cv '_result\|_progress')
|
|
165
|
+
DONE=$(ls works/${WORK_ID}/TASK-*_result.md 2>/dev/null | wc -l)
|
|
166
|
+
|
|
167
|
+
if [ "$DONE" -ge "$TOTAL" ]; then
|
|
168
|
+
# Change IN_PROGRESS → COMPLETED in WORK-LIST.md
|
|
169
|
+
sed -i "s/| ${WORK_ID} |\\(.*\\)| IN_PROGRESS |\\(.*\\)|\\(.*\\)|/| ${WORK_ID} |\\1| COMPLETED |\\2| $(date '+%Y-%m-%d') |/" works/WORK-LIST.md
|
|
170
|
+
git add works/WORK-LIST.md
|
|
171
|
+
git commit --amend --no-edit
|
|
172
|
+
fi
|
|
173
|
+
```
|
|
174
|
+
|
|
159
175
|
→ see `.claude/agents/shared-prompt-sections.md` § 8
|
|
160
176
|
|
|
161
177
|
---
|
|
@@ -173,7 +189,7 @@ Do not change WORK-LIST.md to COMPLETED — changed only at git push time.
|
|
|
173
189
|
- If Files changed is empty → immediately return FAIL
|
|
174
190
|
|
|
175
191
|
### WORK-LIST.md Rules
|
|
176
|
-
-
|
|
192
|
+
- Automatically change WORK-LIST.md from `IN_PROGRESS` to `COMPLETED` when the last TASK is completed
|
|
177
193
|
|
|
178
194
|
### Output Language Rule
|
|
179
195
|
→ see `shared-prompt-sections.md` § 1
|
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
# File Content Schema
|
|
2
|
-
|
|
3
|
-
Single source of truth for pipeline artifact file formats.
|
|
4
|
-
|
|
5
|
-
## COMPLIANCE
|
|
6
|
-
|
|
7
|
-
| Generated File | Reference Section | Violation Consequence |
|
|
8
|
-
|----------------|-------------------|----------------------|
|
|
9
|
-
| `PLAN.md` | § 1 | `parsePlanMd()` parsing failure, scheduler inoperable |
|
|
10
|
-
| `TASK-XX.md` | § 2 | `parseTaskFilename()` DB registration missed |
|
|
11
|
-
| `TASK-XX_progress.md` | § 3 | committer gate FAIL |
|
|
12
|
-
| `TASK-XX_result.md` | § 4 | context-handoff missing |
|
|
13
|
-
| `TASK-XX_result.md` (direct) | § 5 | result.md recognition failure |
|
|
14
|
-
| `PROGRESS.md` | § 6 | scheduler progress tracking inoperable |
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## § 1. PLAN.md
|
|
19
|
-
|
|
20
|
-
Path: `works/{WORK_ID}/PLAN.md`
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
# WORK-01: {title}
|
|
24
|
-
|
|
25
|
-
> Created: {YYYY-MM-DD}
|
|
26
|
-
> Requirement: {REQ-XXX |
|
|
27
|
-
> Execution-Mode: {direct | pipeline | full}
|
|
28
|
-
> Project: {project name}
|
|
29
|
-
> Tech Stack: {stack}
|
|
30
|
-
> Language: {lang_code}
|
|
31
|
-
> Status: PLANNED
|
|
32
|
-
|
|
33
|
-
## Goal
|
|
34
|
-
{1-2 sentences}
|
|
35
|
-
|
|
36
|
-
## Task Dependency Graph
|
|
37
|
-
{ASCII diagram}
|
|
38
|
-
|
|
39
|
-
## Tasks
|
|
40
|
-
|
|
41
|
-
### TASK-00: {title}
|
|
42
|
-
- **Depends on**: (none)
|
|
43
|
-
- **Scope**: {description}
|
|
44
|
-
- **Files**:
|
|
45
|
-
- `path/to/file` — {description}
|
|
46
|
-
|
|
47
|
-
### TASK-01: {title}
|
|
48
|
-
- **Depends on**: TASK-00
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Title format: `# WORK-NN: title` — `# PLAN WORK-NN:` is prohibited (`parsePlanMd()` error)
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## § 2. TASK-XX.md
|
|
56
|
-
|
|
57
|
-
Path: `works/{WORK_ID}/TASK-XX.md`
|
|
58
|
-
|
|
59
|
-
> `parseTaskFilename()` regex: `/^TASK-(\d+)\.md$/` — WORK prefix prohibited
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
# TASK-XX: {title}
|
|
63
|
-
|
|
64
|
-
## WORK
|
|
65
|
-
{WORK_ID}: {WORK title}
|
|
66
|
-
|
|
67
|
-
## Dependencies
|
|
68
|
-
- TASK-YY (required)
|
|
69
|
-
|
|
70
|
-
## Scope
|
|
71
|
-
{description}
|
|
72
|
-
|
|
73
|
-
## Files
|
|
74
|
-
| Path | Action | Description |
|
|
75
|
-
|------|--------|-------------|
|
|
76
|
-
| `src/file.ts` | CREATE | description |
|
|
77
|
-
|
|
78
|
-
## Acceptance Criteria
|
|
79
|
-
- [ ] {criterion}
|
|
80
|
-
|
|
81
|
-
## Verify
|
|
82
|
-
```bash
|
|
83
|
-
{verification commands}
|
|
84
|
-
```
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## § 3. TASK-XX_progress.md
|
|
90
|
-
|
|
91
|
-
Path: `works/{WORK_ID}/TASK-XX_progress.md`
|
|
92
|
-
|
|
93
|
-
```markdown
|
|
94
|
-
# TASK-XX Progress
|
|
95
|
-
|
|
96
|
-
- Status: {PENDING | STARTED | IN_PROGRESS | COMPLETED}
|
|
97
|
-
- Started: {ISO 8601}
|
|
98
|
-
- Updated: {ISO 8601}
|
|
99
|
-
- Files changed:
|
|
100
|
-
- `path/to/file` — {CREATE | MODIFY | DELETE}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
| Timing | Status |
|
|
104
|
-
|--------|--------|
|
|
105
|
-
| planner template | `PENDING` |
|
|
106
|
-
| builder starts | `STARTED` |
|
|
107
|
-
| file changes in progress | `IN_PROGRESS` |
|
|
108
|
-
| completed | `COMPLETED` |
|
|
109
|
-
|
|
110
|
-
committer gate: file exists + `Status: COMPLETED` + Files changed is not empty
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## § 4. TASK-XX_result.md (full / pipeline)
|
|
115
|
-
|
|
116
|
-
Path: `works/{WORK_ID}/TASK-XX_result.md`
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
# TASK-XX Result
|
|
120
|
-
|
|
121
|
-
> WORK: {WORK_ID} — {title}
|
|
122
|
-
> Completed: {YYYY-MM-DD HH:MM}
|
|
123
|
-
> Status: **DONE**
|
|
124
|
-
|
|
125
|
-
{## Summary | ## 요약 | ## サマリー}
|
|
126
|
-
{1-2 lines}
|
|
127
|
-
|
|
128
|
-
{## Completed Checklist | ## 완료 체크리스트 | ## 完了チェックリスト}
|
|
129
|
-
- [x] {item}
|
|
130
|
-
|
|
131
|
-
{## Verification Results | ## 검증 결과 | ## 検証結果}
|
|
132
|
-
- Build: ✅
|
|
133
|
-
- Lint: ✅
|
|
134
|
-
- Tests: ✅ (N passed)
|
|
135
|
-
|
|
136
|
-
{## Files Changed | ## 변경 파일 | ## 変更ファイル}
|
|
137
|
-
### Created
|
|
138
|
-
- `path` — {description}
|
|
139
|
-
|
|
140
|
-
{## Issues Encountered | ## 발생 이슈 | ## 発生した問題}
|
|
141
|
-
None
|
|
142
|
-
|
|
143
|
-
{## Notes for Subsequent Tasks | ## 후속 TASK 참고사항 | ## 後続タスクへの注記}
|
|
144
|
-
None
|
|
145
|
-
|
|
146
|
-
{## Context Handoff | ## 컨텍스트 핸드오프 | ## コンテキスト引き継ぎ}
|
|
147
|
-
|
|
148
|
-
### Builder Context (SUMMARY)
|
|
149
|
-
{builder what field 1-3 lines}
|
|
150
|
-
|
|
151
|
-
### Verifier Context (FULL)
|
|
152
|
-
{verifier context-handoff 4 fields}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
| Section | en | ko | ja |
|
|
156
|
-
|---------|----|----|-----|
|
|
157
|
-
| Summary | `## Summary` | `## 요약` | `## サマリー` |
|
|
158
|
-
| Completed Checklist | `## Completed Checklist` | `## 완료 체크리스트` | `## 完了チェックリスト` |
|
|
159
|
-
| Verification Results | `## Verification Results` | `## 검증 결과` | `## 検証結果` |
|
|
160
|
-
| Files Changed | `## Files Changed` | `## 변경 파일` | `## 変更ファイル` |
|
|
161
|
-
| Issues Encountered | `## Issues Encountered` | `## 발생 이슈` | `## 発生した問題` |
|
|
162
|
-
| Notes for Subsequent Tasks | `## Notes for Subsequent Tasks` | `## 후속 TASK 참고사항` | `## 後続タスクへの注記` |
|
|
163
|
-
| Context Handoff | `## Context Handoff` | `## 컨텍스트 핸드오프` | `## コンテキスト引き継ぎ` |
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## § 5. TASK-XX_result.md (direct mode)
|
|
168
|
-
|
|
169
|
-
```markdown
|
|
170
|
-
# TASK-00 Result
|
|
171
|
-
|
|
172
|
-
> WORK: WORK-NN — {title}
|
|
173
|
-
> Completed: {YYYY-MM-DD HH:MM}
|
|
174
|
-
> Execution-Mode: direct
|
|
175
|
-
> Status: **DONE**
|
|
176
|
-
> Commit: {hash}
|
|
177
|
-
|
|
178
|
-
## Summary
|
|
179
|
-
{1 line}
|
|
180
|
-
|
|
181
|
-
## Files Changed
|
|
182
|
-
- `{path}` — {description}
|
|
183
|
-
|
|
184
|
-
## Verification
|
|
185
|
-
- Build: PASS (self-check)
|
|
186
|
-
- Lint: PASS (self-check)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## § 6. PROGRESS.md
|
|
192
|
-
|
|
193
|
-
Path: `works/{WORK_ID}/PROGRESS.md`
|
|
194
|
-
|
|
195
|
-
```markdown
|
|
196
|
-
# {WORK_ID} Progress
|
|
197
|
-
|
|
198
|
-
> WORK: {title}
|
|
199
|
-
> Last updated: {timestamp}
|
|
200
|
-
> Mode: manual | auto
|
|
201
|
-
|
|
202
|
-
| TASK | Title | Status | Commit | Duration |
|
|
203
|
-
|------|-------|--------|--------|----------|
|
|
204
|
-
| TASK-00 | {title} | ✅ Done | abc1234 | 12min |
|
|
205
|
-
| TASK-01 | {title} | 🔄 In Progress | — | — |
|
|
206
|
-
|
|
207
|
-
## Log
|
|
208
|
-
- [10:00] TASK-00 started
|
|
209
|
-
- [10:12] TASK-00 verified ✅, committed abc1234
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## § 7. File Naming Rules
|
|
215
|
-
|
|
216
|
-
| Type | Format | Created By |
|
|
217
|
-
|------|--------|------------|
|
|
218
|
-
| WORK plan | `PLAN.md` | planner / router |
|
|
219
|
-
| TASK plan | `TASK-NN.md` | planner / router |
|
|
220
|
-
| TASK progress | `TASK-NN_progress.md` | planner (template) / builder (update) |
|
|
221
|
-
| TASK result | `TASK-NN_result.md` | committer / router (direct) |
|
|
222
|
-
| WORK progress | `PROGRESS.md` | scheduler |
|
|
223
|
-
|
|
224
|
-
`WORK-NN-TASK-NN.md` format prohibited → `parseTaskFilename()` cannot recognize it.
|
|
1
|
+
# File Content Schema
|
|
2
|
+
|
|
3
|
+
Single source of truth for pipeline artifact file formats.
|
|
4
|
+
|
|
5
|
+
## COMPLIANCE
|
|
6
|
+
|
|
7
|
+
| Generated File | Reference Section | Violation Consequence |
|
|
8
|
+
|----------------|-------------------|----------------------|
|
|
9
|
+
| `PLAN.md` | § 1 | `parsePlanMd()` parsing failure, scheduler inoperable |
|
|
10
|
+
| `TASK-XX.md` | § 2 | `parseTaskFilename()` DB registration missed |
|
|
11
|
+
| `TASK-XX_progress.md` | § 3 | committer gate FAIL |
|
|
12
|
+
| `TASK-XX_result.md` | § 4 | context-handoff missing |
|
|
13
|
+
| `TASK-XX_result.md` (direct) | § 5 | result.md recognition failure |
|
|
14
|
+
| `PROGRESS.md` | § 6 | scheduler progress tracking inoperable |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## § 1. PLAN.md
|
|
19
|
+
|
|
20
|
+
Path: `works/{WORK_ID}/PLAN.md`
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# WORK-01: {title}
|
|
24
|
+
|
|
25
|
+
> Created: {YYYY-MM-DD}
|
|
26
|
+
> Requirement: {REQ-XXX | user request text}
|
|
27
|
+
> Execution-Mode: {direct | pipeline | full}
|
|
28
|
+
> Project: {project name}
|
|
29
|
+
> Tech Stack: {stack}
|
|
30
|
+
> Language: {lang_code}
|
|
31
|
+
> Status: PLANNED
|
|
32
|
+
|
|
33
|
+
## Goal
|
|
34
|
+
{1-2 sentences}
|
|
35
|
+
|
|
36
|
+
## Task Dependency Graph
|
|
37
|
+
{ASCII diagram}
|
|
38
|
+
|
|
39
|
+
## Tasks
|
|
40
|
+
|
|
41
|
+
### TASK-00: {title}
|
|
42
|
+
- **Depends on**: (none)
|
|
43
|
+
- **Scope**: {description}
|
|
44
|
+
- **Files**:
|
|
45
|
+
- `path/to/file` — {description}
|
|
46
|
+
|
|
47
|
+
### TASK-01: {title}
|
|
48
|
+
- **Depends on**: TASK-00
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Title format: `# WORK-NN: title` — `# PLAN WORK-NN:` is prohibited (`parsePlanMd()` error)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## § 2. TASK-XX.md
|
|
56
|
+
|
|
57
|
+
Path: `works/{WORK_ID}/TASK-XX.md`
|
|
58
|
+
|
|
59
|
+
> `parseTaskFilename()` regex: `/^TASK-(\d+)\.md$/` — WORK prefix prohibited
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
# TASK-XX: {title}
|
|
63
|
+
|
|
64
|
+
## WORK
|
|
65
|
+
{WORK_ID}: {WORK title}
|
|
66
|
+
|
|
67
|
+
## Dependencies
|
|
68
|
+
- TASK-YY (required)
|
|
69
|
+
|
|
70
|
+
## Scope
|
|
71
|
+
{description}
|
|
72
|
+
|
|
73
|
+
## Files
|
|
74
|
+
| Path | Action | Description |
|
|
75
|
+
|------|--------|-------------|
|
|
76
|
+
| `src/file.ts` | CREATE | description |
|
|
77
|
+
|
|
78
|
+
## Acceptance Criteria
|
|
79
|
+
- [ ] {criterion}
|
|
80
|
+
|
|
81
|
+
## Verify
|
|
82
|
+
```bash
|
|
83
|
+
{verification commands}
|
|
84
|
+
```
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## § 3. TASK-XX_progress.md
|
|
90
|
+
|
|
91
|
+
Path: `works/{WORK_ID}/TASK-XX_progress.md`
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
# TASK-XX Progress
|
|
95
|
+
|
|
96
|
+
- Status: {PENDING | STARTED | IN_PROGRESS | COMPLETED}
|
|
97
|
+
- Started: {ISO 8601}
|
|
98
|
+
- Updated: {ISO 8601}
|
|
99
|
+
- Files changed:
|
|
100
|
+
- `path/to/file` — {CREATE | MODIFY | DELETE}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
| Timing | Status |
|
|
104
|
+
|--------|--------|
|
|
105
|
+
| planner template | `PENDING` |
|
|
106
|
+
| builder starts | `STARTED` |
|
|
107
|
+
| file changes in progress | `IN_PROGRESS` |
|
|
108
|
+
| completed | `COMPLETED` |
|
|
109
|
+
|
|
110
|
+
committer gate: file exists + `Status: COMPLETED` + Files changed is not empty
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## § 4. TASK-XX_result.md (full / pipeline)
|
|
115
|
+
|
|
116
|
+
Path: `works/{WORK_ID}/TASK-XX_result.md`
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
# TASK-XX Result
|
|
120
|
+
|
|
121
|
+
> WORK: {WORK_ID} — {title}
|
|
122
|
+
> Completed: {YYYY-MM-DD HH:MM}
|
|
123
|
+
> Status: **DONE**
|
|
124
|
+
|
|
125
|
+
{## Summary | ## 요약 | ## サマリー}
|
|
126
|
+
{1-2 lines}
|
|
127
|
+
|
|
128
|
+
{## Completed Checklist | ## 완료 체크리스트 | ## 完了チェックリスト}
|
|
129
|
+
- [x] {item}
|
|
130
|
+
|
|
131
|
+
{## Verification Results | ## 검증 결과 | ## 検証結果}
|
|
132
|
+
- Build: ✅
|
|
133
|
+
- Lint: ✅
|
|
134
|
+
- Tests: ✅ (N passed)
|
|
135
|
+
|
|
136
|
+
{## Files Changed | ## 변경 파일 | ## 変更ファイル}
|
|
137
|
+
### Created
|
|
138
|
+
- `path` — {description}
|
|
139
|
+
|
|
140
|
+
{## Issues Encountered | ## 발생 이슈 | ## 発生した問題}
|
|
141
|
+
None
|
|
142
|
+
|
|
143
|
+
{## Notes for Subsequent Tasks | ## 후속 TASK 참고사항 | ## 後続タスクへの注記}
|
|
144
|
+
None
|
|
145
|
+
|
|
146
|
+
{## Context Handoff | ## 컨텍스트 핸드오프 | ## コンテキスト引き継ぎ}
|
|
147
|
+
|
|
148
|
+
### Builder Context (SUMMARY)
|
|
149
|
+
{builder what field 1-3 lines}
|
|
150
|
+
|
|
151
|
+
### Verifier Context (FULL)
|
|
152
|
+
{verifier context-handoff 4 fields}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
| Section | en | ko | ja |
|
|
156
|
+
|---------|----|----|-----|
|
|
157
|
+
| Summary | `## Summary` | `## 요약` | `## サマリー` |
|
|
158
|
+
| Completed Checklist | `## Completed Checklist` | `## 완료 체크리스트` | `## 完了チェックリスト` |
|
|
159
|
+
| Verification Results | `## Verification Results` | `## 검증 결과` | `## 検証結果` |
|
|
160
|
+
| Files Changed | `## Files Changed` | `## 변경 파일` | `## 変更ファイル` |
|
|
161
|
+
| Issues Encountered | `## Issues Encountered` | `## 발생 이슈` | `## 発生した問題` |
|
|
162
|
+
| Notes for Subsequent Tasks | `## Notes for Subsequent Tasks` | `## 후속 TASK 참고사항` | `## 後続タスクへの注記` |
|
|
163
|
+
| Context Handoff | `## Context Handoff` | `## 컨텍스트 핸드오프` | `## コンテキスト引き継ぎ` |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## § 5. TASK-XX_result.md (direct mode)
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
# TASK-00 Result
|
|
171
|
+
|
|
172
|
+
> WORK: WORK-NN — {title}
|
|
173
|
+
> Completed: {YYYY-MM-DD HH:MM}
|
|
174
|
+
> Execution-Mode: direct
|
|
175
|
+
> Status: **DONE**
|
|
176
|
+
> Commit: {hash}
|
|
177
|
+
|
|
178
|
+
## Summary
|
|
179
|
+
{1 line}
|
|
180
|
+
|
|
181
|
+
## Files Changed
|
|
182
|
+
- `{path}` — {description}
|
|
183
|
+
|
|
184
|
+
## Verification
|
|
185
|
+
- Build: PASS (self-check)
|
|
186
|
+
- Lint: PASS (self-check)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## § 6. PROGRESS.md
|
|
192
|
+
|
|
193
|
+
Path: `works/{WORK_ID}/PROGRESS.md`
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
# {WORK_ID} Progress
|
|
197
|
+
|
|
198
|
+
> WORK: {title}
|
|
199
|
+
> Last updated: {timestamp}
|
|
200
|
+
> Mode: manual | auto
|
|
201
|
+
|
|
202
|
+
| TASK | Title | Status | Commit | Duration |
|
|
203
|
+
|------|-------|--------|--------|----------|
|
|
204
|
+
| TASK-00 | {title} | ✅ Done | abc1234 | 12min |
|
|
205
|
+
| TASK-01 | {title} | 🔄 In Progress | — | — |
|
|
206
|
+
|
|
207
|
+
## Log
|
|
208
|
+
- [10:00] TASK-00 started
|
|
209
|
+
- [10:12] TASK-00 verified ✅, committed abc1234
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## § 7. File Naming Rules
|
|
215
|
+
|
|
216
|
+
| Type | Format | Created By |
|
|
217
|
+
|------|--------|------------|
|
|
218
|
+
| WORK plan | `PLAN.md` | planner / router |
|
|
219
|
+
| TASK plan | `TASK-NN.md` | planner / router |
|
|
220
|
+
| TASK progress | `TASK-NN_progress.md` | planner (template) / builder (update) |
|
|
221
|
+
| TASK result | `TASK-NN_result.md` | committer / router (direct) |
|
|
222
|
+
| WORK progress | `PROGRESS.md` | scheduler |
|
|
223
|
+
|
|
224
|
+
`WORK-NN-TASK-NN.md` format prohibited → `parseTaskFilename()` cannot recognize it.
|
package/agents/en/planner.md
CHANGED
|
@@ -143,7 +143,7 @@ Record resolved language in PLAN.md `> Language:` field. Write all outputs in th
|
|
|
143
143
|
### 3-9. Requirement Code (REQ) Recording
|
|
144
144
|
|
|
145
145
|
- `REQ-XXX` pattern exists: `> Requirement: REQ-XXX`
|
|
146
|
-
- If absent: `> Requirement:
|
|
146
|
+
- If absent: `> Requirement: {user request text}` — record the user's request text as-is
|
|
147
147
|
|
|
148
148
|
---
|
|
149
149
|
|
package/agents/en/router.md
CHANGED
|
@@ -103,9 +103,21 @@ Router handles everything on its own. Use Serena MCP first for code exploration:
|
|
|
103
103
|
16. Add WORK-LIST.md IN_PROGRESS
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
### 3-5.
|
|
106
|
+
### 3-5. Pipeline Mode Execution
|
|
107
107
|
|
|
108
|
-
|
|
108
|
+
> ⚠️ In pipeline mode, Router only creates PLAN.md + TASK-NN.md.
|
|
109
|
+
> Code modification, builder invocation, and commits are strictly prohibited. Only return dispatch XML.
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
1. Determine WORK ID
|
|
113
|
+
2. mkdir works/WORK-NN/
|
|
114
|
+
3. log_work INIT "WORK-NN created — Execution-Mode: pipeline"
|
|
115
|
+
4. Create PLAN.md (Execution-Mode: pipeline) → file-content-schema.md § 1
|
|
116
|
+
5. Create TASK-NN.md (multiple if needed) → file-content-schema.md § 2
|
|
117
|
+
6. Add IN_PROGRESS to WORK-LIST.md
|
|
118
|
+
7. Generate and return dispatch XML below. **Invocation is performed by Main Claude.**
|
|
119
|
+
8. log_work DISPATCH "Builder dispatch XML returned"
|
|
120
|
+
```
|
|
109
121
|
|
|
110
122
|
→ dispatch XML format: see `xml-schema.md` § 1 (to="builder", task="TASK-00", execution-mode="pipeline")
|
|
111
123
|
|
|
@@ -141,7 +153,7 @@ Router handles everything on its own. Use Serena MCP first for code exploration:
|
|
|
141
153
|
→ see `.claude/agents/shared-prompt-sections.md` § 8
|
|
142
154
|
|
|
143
155
|
- On WORK creation: add `IN_PROGRESS`
|
|
144
|
-
- COMPLETED change:
|
|
156
|
+
- COMPLETED change: automatically changed by committer when last TASK is completed
|
|
145
157
|
|
|
146
158
|
### File Naming Rules
|
|
147
159
|
- TASK filenames: `TASK-XX.md` format
|
|
@@ -111,7 +111,7 @@ echo "$DONE / $TOTAL"
|
|
|
111
111
|
| Field | Required | Description |
|
|
112
112
|
|-------|----------|-------------|
|
|
113
113
|
| `> Created:` | ✅ | YYYY-MM-DD |
|
|
114
|
-
| `> Requirement:` | ✅ | `REQ-XXX` or
|
|
114
|
+
| `> Requirement:` | ✅ | `REQ-XXX` or user request text |
|
|
115
115
|
| `> Execution-Mode:` | ✅ | `direct` / `pipeline` / `full` |
|
|
116
116
|
| `> Project:` | ✅ | Project name |
|
|
117
117
|
| `> Tech Stack:` | ✅ | Detected tech stack |
|
|
@@ -127,11 +127,10 @@ File: `works/WORK-LIST.md`
|
|
|
127
127
|
| Status | Timing |
|
|
128
128
|
|--------|--------|
|
|
129
129
|
| `IN_PROGRESS` | Added when WORK directory is created |
|
|
130
|
-
| `COMPLETED` |
|
|
130
|
+
| `COMPLETED` | Automatically changed by committer when last TASK is completed |
|
|
131
131
|
|
|
132
|
-
- committer / scheduler → changing to COMPLETED is prohibited
|
|
133
132
|
- Must add IN_PROGRESS when WORK directory is created
|
|
134
|
-
-
|
|
133
|
+
- committer: after committing the last TASK, change WORK-LIST.md from `IN_PROGRESS` to `COMPLETED`
|
|
135
134
|
|
|
136
135
|
---
|
|
137
136
|
|
package/agents/ko/committer.md
CHANGED
|
@@ -155,7 +155,23 @@ committer 고유 추가 필드:
|
|
|
155
155
|
</next-tasks>
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
WORK-LIST.md
|
|
158
|
+
### 3-9-1. WORK-LIST.md 자동 완료 처리
|
|
159
|
+
|
|
160
|
+
마지막 TASK인지 확인 후, 마지막 TASK이면 WORK-LIST.md를 `IN_PROGRESS` → `COMPLETED`로 변경한다.
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# 마지막 TASK 확인
|
|
164
|
+
TOTAL=$(ls works/${WORK_ID}/TASK-*.md 2>/dev/null | grep -cv '_result\|_progress')
|
|
165
|
+
DONE=$(ls works/${WORK_ID}/TASK-*_result.md 2>/dev/null | wc -l)
|
|
166
|
+
|
|
167
|
+
if [ "$DONE" -ge "$TOTAL" ]; then
|
|
168
|
+
# WORK-LIST.md에서 해당 WORK의 IN_PROGRESS → COMPLETED 변경
|
|
169
|
+
sed -i "s/| ${WORK_ID} |\\(.*\\)| IN_PROGRESS |\\(.*\\)|\\(.*\\)|/| ${WORK_ID} |\\1| COMPLETED |\\2| $(date '+%Y-%m-%d') |/" works/WORK-LIST.md
|
|
170
|
+
git add works/WORK-LIST.md
|
|
171
|
+
git commit --amend --no-edit
|
|
172
|
+
fi
|
|
173
|
+
```
|
|
174
|
+
|
|
159
175
|
→ `.claude/agents/shared-prompt-sections.md` § 8 참조
|
|
160
176
|
|
|
161
177
|
---
|
|
@@ -173,7 +189,7 @@ WORK-LIST.md를 COMPLETED로 변경하지 않는다 — git push 시에만 변
|
|
|
173
189
|
- Files changed 없으면 즉시 FAIL 반환
|
|
174
190
|
|
|
175
191
|
### WORK-LIST.md 규칙
|
|
176
|
-
-
|
|
192
|
+
- 마지막 TASK 완료 시 WORK-LIST.md를 `IN_PROGRESS` → `COMPLETED`로 자동 변경
|
|
177
193
|
|
|
178
194
|
### Output Language Rule
|
|
179
195
|
→ `shared-prompt-sections.md` § 1 참조
|
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
# File Content Schema
|
|
2
|
-
|
|
3
|
-
파이프라인 산출물 파일 포맷 단일 정의.
|
|
4
|
-
|
|
5
|
-
## COMPLIANCE
|
|
6
|
-
|
|
7
|
-
| 생성 파일 | 준수 섹션 | 위반 시 결과 |
|
|
8
|
-
|-----------|-----------|-------------|
|
|
9
|
-
| `PLAN.md` | § 1 | `parsePlanMd()` 파싱 실패, scheduler 동작 불가 |
|
|
10
|
-
| `TASK-XX.md` | § 2 | `parseTaskFilename()` DB 등록 누락 |
|
|
11
|
-
| `TASK-XX_progress.md` | § 3 | committer gate FAIL |
|
|
12
|
-
| `TASK-XX_result.md` | § 4 | context-handoff 누락 |
|
|
13
|
-
| `TASK-XX_result.md` (direct) | § 5 | result.md 인식 실패 |
|
|
14
|
-
| `PROGRESS.md` | § 6 | scheduler 진행률 추적 불가 |
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## § 1. PLAN.md
|
|
19
|
-
|
|
20
|
-
경로: `works/{WORK_ID}/PLAN.md`
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
# WORK-01: {제목}
|
|
24
|
-
|
|
25
|
-
> Created: {YYYY-MM-DD}
|
|
26
|
-
> 요구사항: {REQ-XXX |
|
|
27
|
-
> Execution-Mode: {direct | pipeline | full}
|
|
28
|
-
> Project: {project name}
|
|
29
|
-
> Tech Stack: {stack}
|
|
30
|
-
> Language: {lang_code}
|
|
31
|
-
> Status: PLANNED
|
|
32
|
-
|
|
33
|
-
## Goal
|
|
34
|
-
{1-2문장}
|
|
35
|
-
|
|
36
|
-
## Task Dependency Graph
|
|
37
|
-
{ASCII diagram}
|
|
38
|
-
|
|
39
|
-
## Tasks
|
|
40
|
-
|
|
41
|
-
### TASK-00: {title}
|
|
42
|
-
- **Depends on**: (none)
|
|
43
|
-
- **Scope**: {description}
|
|
44
|
-
- **Files**:
|
|
45
|
-
- `path/to/file` — {description}
|
|
46
|
-
|
|
47
|
-
### TASK-01: {title}
|
|
48
|
-
- **Depends on**: TASK-00
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
제목 형식: `# WORK-NN: 제목` — `# PLAN WORK-NN:` 금지 (`parsePlanMd()` 오류)
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## § 2. TASK-XX.md
|
|
56
|
-
|
|
57
|
-
경로: `works/{WORK_ID}/TASK-XX.md`
|
|
58
|
-
|
|
59
|
-
> `parseTaskFilename()` 정규식: `/^TASK-(\d+)\.md$/` — WORK prefix 금지
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
# TASK-XX: {title}
|
|
63
|
-
|
|
64
|
-
## WORK
|
|
65
|
-
{WORK_ID}: {WORK title}
|
|
66
|
-
|
|
67
|
-
## Dependencies
|
|
68
|
-
- TASK-YY (required)
|
|
69
|
-
|
|
70
|
-
## Scope
|
|
71
|
-
{description}
|
|
72
|
-
|
|
73
|
-
## Files
|
|
74
|
-
| Path | Action | Description |
|
|
75
|
-
|------|--------|-------------|
|
|
76
|
-
| `src/file.ts` | CREATE | 설명 |
|
|
77
|
-
|
|
78
|
-
## Acceptance Criteria
|
|
79
|
-
- [ ] {criterion}
|
|
80
|
-
|
|
81
|
-
## Verify
|
|
82
|
-
```bash
|
|
83
|
-
{verification commands}
|
|
84
|
-
```
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## § 3. TASK-XX_progress.md
|
|
90
|
-
|
|
91
|
-
경로: `works/{WORK_ID}/TASK-XX_progress.md`
|
|
92
|
-
|
|
93
|
-
```markdown
|
|
94
|
-
# TASK-XX Progress
|
|
95
|
-
|
|
96
|
-
- Status: {PENDING | STARTED | IN_PROGRESS | COMPLETED}
|
|
97
|
-
- Started: {ISO 8601}
|
|
98
|
-
- Updated: {ISO 8601}
|
|
99
|
-
- Files changed:
|
|
100
|
-
- `path/to/file` — {CREATE | MODIFY | DELETE}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
| 시점 | Status |
|
|
104
|
-
|------|--------|
|
|
105
|
-
| planner 템플릿 | `PENDING` |
|
|
106
|
-
| builder 착수 | `STARTED` |
|
|
107
|
-
| 파일 변경 중 | `IN_PROGRESS` |
|
|
108
|
-
| 완료 | `COMPLETED` |
|
|
109
|
-
|
|
110
|
-
committer gate: 파일 존재 + `Status: COMPLETED` + Files changed 비어있지 않음
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## § 4. TASK-XX_result.md (full / pipeline)
|
|
115
|
-
|
|
116
|
-
경로: `works/{WORK_ID}/TASK-XX_result.md`
|
|
117
|
-
|
|
118
|
-
```markdown
|
|
119
|
-
# TASK-XX Result
|
|
120
|
-
|
|
121
|
-
> WORK: {WORK_ID} — {title}
|
|
122
|
-
> Completed: {YYYY-MM-DD HH:MM}
|
|
123
|
-
> Status: **DONE**
|
|
124
|
-
|
|
125
|
-
{## Summary | ## 요약 | ## サマリー}
|
|
126
|
-
{1-2줄}
|
|
127
|
-
|
|
128
|
-
{## Completed Checklist | ## 완료 체크리스트 | ## 完了チェックリスト}
|
|
129
|
-
- [x] {item}
|
|
130
|
-
|
|
131
|
-
{## Verification Results | ## 검증 결과 | ## 検証結果}
|
|
132
|
-
- Build: ✅
|
|
133
|
-
- Lint: ✅
|
|
134
|
-
- Tests: ✅ (N passed)
|
|
135
|
-
|
|
136
|
-
{## Files Changed | ## 변경 파일 | ## 変更ファイル}
|
|
137
|
-
### Created
|
|
138
|
-
- `path` — {description}
|
|
139
|
-
|
|
140
|
-
{## Issues Encountered | ## 발생 이슈 | ## 発生した問題}
|
|
141
|
-
None
|
|
142
|
-
|
|
143
|
-
{## Notes for Subsequent Tasks | ## 후속 TASK 참고사항 | ## 後続タスクへの注記}
|
|
144
|
-
None
|
|
145
|
-
|
|
146
|
-
{## Context Handoff | ## 컨텍스트 핸드오프 | ## コンテキスト引き継ぎ}
|
|
147
|
-
|
|
148
|
-
### Builder Context (SUMMARY)
|
|
149
|
-
{builder what 필드 1-3줄}
|
|
150
|
-
|
|
151
|
-
### Verifier Context (FULL)
|
|
152
|
-
{verifier context-handoff 4개 필드}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
| 섹션 | en | ko | ja |
|
|
156
|
-
|------|----|----|-----|
|
|
157
|
-
| Summary | `## Summary` | `## 요약` | `## サマリー` |
|
|
158
|
-
| Completed Checklist | `## Completed Checklist` | `## 완료 체크리스트` | `## 完了チェックリスト` |
|
|
159
|
-
| Verification Results | `## Verification Results` | `## 검증 결과` | `## 検証結果` |
|
|
160
|
-
| Files Changed | `## Files Changed` | `## 변경 파일` | `## 変更ファイル` |
|
|
161
|
-
| Issues Encountered | `## Issues Encountered` | `## 발생 이슈` | `## 発生した問題` |
|
|
162
|
-
| Notes for Subsequent Tasks | `## Notes for Subsequent Tasks` | `## 후속 TASK 참고사항` | `## 後続タスクへの注記` |
|
|
163
|
-
| Context Handoff | `## Context Handoff` | `## 컨텍스트 핸드오프` | `## コンテキスト引き継ぎ` |
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## § 5. TASK-XX_result.md (direct 모드)
|
|
168
|
-
|
|
169
|
-
```markdown
|
|
170
|
-
# TASK-00 Result
|
|
171
|
-
|
|
172
|
-
> WORK: WORK-NN — {제목}
|
|
173
|
-
> Completed: {YYYY-MM-DD HH:MM}
|
|
174
|
-
> Execution-Mode: direct
|
|
175
|
-
> Status: **DONE**
|
|
176
|
-
> Commit: {hash}
|
|
177
|
-
|
|
178
|
-
## 요약
|
|
179
|
-
{1줄}
|
|
180
|
-
|
|
181
|
-
## 변경 파일
|
|
182
|
-
- `{path}` — {내용}
|
|
183
|
-
|
|
184
|
-
## 검증
|
|
185
|
-
- Build: PASS (self-check)
|
|
186
|
-
- Lint: PASS (self-check)
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## § 6. PROGRESS.md
|
|
192
|
-
|
|
193
|
-
경로: `works/{WORK_ID}/PROGRESS.md`
|
|
194
|
-
|
|
195
|
-
```markdown
|
|
196
|
-
# {WORK_ID} Progress
|
|
197
|
-
|
|
198
|
-
> WORK: {title}
|
|
199
|
-
> Last updated: {timestamp}
|
|
200
|
-
> Mode: manual | auto
|
|
201
|
-
|
|
202
|
-
| TASK | Title | Status | Commit | Duration |
|
|
203
|
-
|------|-------|--------|--------|----------|
|
|
204
|
-
| TASK-00 | {title} | ✅ Done | abc1234 | 12min |
|
|
205
|
-
| TASK-01 | {title} | 🔄 In Progress | — | — |
|
|
206
|
-
|
|
207
|
-
## Log
|
|
208
|
-
- [10:00] TASK-00 started
|
|
209
|
-
- [10:12] TASK-00 verified ✅, committed abc1234
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
---
|
|
213
|
-
|
|
214
|
-
## § 7. 파일명 규칙
|
|
215
|
-
|
|
216
|
-
| 종류 | 형식 | 생성 주체 |
|
|
217
|
-
|------|------|----------|
|
|
218
|
-
| WORK 계획 | `PLAN.md` | planner / router |
|
|
219
|
-
| TASK 계획 | `TASK-NN.md` | planner / router |
|
|
220
|
-
| TASK 진행 | `TASK-NN_progress.md` | planner(템플릿) / builder(갱신) |
|
|
221
|
-
| TASK 결과 | `TASK-NN_result.md` | committer / router(direct) |
|
|
222
|
-
| WORK 진행 | `PROGRESS.md` | scheduler |
|
|
223
|
-
|
|
224
|
-
`WORK-NN-TASK-NN.md` 형식 금지 → `parseTaskFilename()` 인식 불가.
|
|
1
|
+
# File Content Schema
|
|
2
|
+
|
|
3
|
+
파이프라인 산출물 파일 포맷 단일 정의.
|
|
4
|
+
|
|
5
|
+
## COMPLIANCE
|
|
6
|
+
|
|
7
|
+
| 생성 파일 | 준수 섹션 | 위반 시 결과 |
|
|
8
|
+
|-----------|-----------|-------------|
|
|
9
|
+
| `PLAN.md` | § 1 | `parsePlanMd()` 파싱 실패, scheduler 동작 불가 |
|
|
10
|
+
| `TASK-XX.md` | § 2 | `parseTaskFilename()` DB 등록 누락 |
|
|
11
|
+
| `TASK-XX_progress.md` | § 3 | committer gate FAIL |
|
|
12
|
+
| `TASK-XX_result.md` | § 4 | context-handoff 누락 |
|
|
13
|
+
| `TASK-XX_result.md` (direct) | § 5 | result.md 인식 실패 |
|
|
14
|
+
| `PROGRESS.md` | § 6 | scheduler 진행률 추적 불가 |
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## § 1. PLAN.md
|
|
19
|
+
|
|
20
|
+
경로: `works/{WORK_ID}/PLAN.md`
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# WORK-01: {제목}
|
|
24
|
+
|
|
25
|
+
> Created: {YYYY-MM-DD}
|
|
26
|
+
> 요구사항: {REQ-XXX | 사용자 요청 텍스트}
|
|
27
|
+
> Execution-Mode: {direct | pipeline | full}
|
|
28
|
+
> Project: {project name}
|
|
29
|
+
> Tech Stack: {stack}
|
|
30
|
+
> Language: {lang_code}
|
|
31
|
+
> Status: PLANNED
|
|
32
|
+
|
|
33
|
+
## Goal
|
|
34
|
+
{1-2문장}
|
|
35
|
+
|
|
36
|
+
## Task Dependency Graph
|
|
37
|
+
{ASCII diagram}
|
|
38
|
+
|
|
39
|
+
## Tasks
|
|
40
|
+
|
|
41
|
+
### TASK-00: {title}
|
|
42
|
+
- **Depends on**: (none)
|
|
43
|
+
- **Scope**: {description}
|
|
44
|
+
- **Files**:
|
|
45
|
+
- `path/to/file` — {description}
|
|
46
|
+
|
|
47
|
+
### TASK-01: {title}
|
|
48
|
+
- **Depends on**: TASK-00
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
제목 형식: `# WORK-NN: 제목` — `# PLAN WORK-NN:` 금지 (`parsePlanMd()` 오류)
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## § 2. TASK-XX.md
|
|
56
|
+
|
|
57
|
+
경로: `works/{WORK_ID}/TASK-XX.md`
|
|
58
|
+
|
|
59
|
+
> `parseTaskFilename()` 정규식: `/^TASK-(\d+)\.md$/` — WORK prefix 금지
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
# TASK-XX: {title}
|
|
63
|
+
|
|
64
|
+
## WORK
|
|
65
|
+
{WORK_ID}: {WORK title}
|
|
66
|
+
|
|
67
|
+
## Dependencies
|
|
68
|
+
- TASK-YY (required)
|
|
69
|
+
|
|
70
|
+
## Scope
|
|
71
|
+
{description}
|
|
72
|
+
|
|
73
|
+
## Files
|
|
74
|
+
| Path | Action | Description |
|
|
75
|
+
|------|--------|-------------|
|
|
76
|
+
| `src/file.ts` | CREATE | 설명 |
|
|
77
|
+
|
|
78
|
+
## Acceptance Criteria
|
|
79
|
+
- [ ] {criterion}
|
|
80
|
+
|
|
81
|
+
## Verify
|
|
82
|
+
```bash
|
|
83
|
+
{verification commands}
|
|
84
|
+
```
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## § 3. TASK-XX_progress.md
|
|
90
|
+
|
|
91
|
+
경로: `works/{WORK_ID}/TASK-XX_progress.md`
|
|
92
|
+
|
|
93
|
+
```markdown
|
|
94
|
+
# TASK-XX Progress
|
|
95
|
+
|
|
96
|
+
- Status: {PENDING | STARTED | IN_PROGRESS | COMPLETED}
|
|
97
|
+
- Started: {ISO 8601}
|
|
98
|
+
- Updated: {ISO 8601}
|
|
99
|
+
- Files changed:
|
|
100
|
+
- `path/to/file` — {CREATE | MODIFY | DELETE}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
| 시점 | Status |
|
|
104
|
+
|------|--------|
|
|
105
|
+
| planner 템플릿 | `PENDING` |
|
|
106
|
+
| builder 착수 | `STARTED` |
|
|
107
|
+
| 파일 변경 중 | `IN_PROGRESS` |
|
|
108
|
+
| 완료 | `COMPLETED` |
|
|
109
|
+
|
|
110
|
+
committer gate: 파일 존재 + `Status: COMPLETED` + Files changed 비어있지 않음
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## § 4. TASK-XX_result.md (full / pipeline)
|
|
115
|
+
|
|
116
|
+
경로: `works/{WORK_ID}/TASK-XX_result.md`
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
# TASK-XX Result
|
|
120
|
+
|
|
121
|
+
> WORK: {WORK_ID} — {title}
|
|
122
|
+
> Completed: {YYYY-MM-DD HH:MM}
|
|
123
|
+
> Status: **DONE**
|
|
124
|
+
|
|
125
|
+
{## Summary | ## 요약 | ## サマリー}
|
|
126
|
+
{1-2줄}
|
|
127
|
+
|
|
128
|
+
{## Completed Checklist | ## 완료 체크리스트 | ## 完了チェックリスト}
|
|
129
|
+
- [x] {item}
|
|
130
|
+
|
|
131
|
+
{## Verification Results | ## 검증 결과 | ## 検証結果}
|
|
132
|
+
- Build: ✅
|
|
133
|
+
- Lint: ✅
|
|
134
|
+
- Tests: ✅ (N passed)
|
|
135
|
+
|
|
136
|
+
{## Files Changed | ## 변경 파일 | ## 変更ファイル}
|
|
137
|
+
### Created
|
|
138
|
+
- `path` — {description}
|
|
139
|
+
|
|
140
|
+
{## Issues Encountered | ## 발생 이슈 | ## 発生した問題}
|
|
141
|
+
None
|
|
142
|
+
|
|
143
|
+
{## Notes for Subsequent Tasks | ## 후속 TASK 참고사항 | ## 後続タスクへの注記}
|
|
144
|
+
None
|
|
145
|
+
|
|
146
|
+
{## Context Handoff | ## 컨텍스트 핸드오프 | ## コンテキスト引き継ぎ}
|
|
147
|
+
|
|
148
|
+
### Builder Context (SUMMARY)
|
|
149
|
+
{builder what 필드 1-3줄}
|
|
150
|
+
|
|
151
|
+
### Verifier Context (FULL)
|
|
152
|
+
{verifier context-handoff 4개 필드}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
| 섹션 | en | ko | ja |
|
|
156
|
+
|------|----|----|-----|
|
|
157
|
+
| Summary | `## Summary` | `## 요약` | `## サマリー` |
|
|
158
|
+
| Completed Checklist | `## Completed Checklist` | `## 완료 체크리스트` | `## 完了チェックリスト` |
|
|
159
|
+
| Verification Results | `## Verification Results` | `## 검증 결과` | `## 検証結果` |
|
|
160
|
+
| Files Changed | `## Files Changed` | `## 변경 파일` | `## 変更ファイル` |
|
|
161
|
+
| Issues Encountered | `## Issues Encountered` | `## 발생 이슈` | `## 発生した問題` |
|
|
162
|
+
| Notes for Subsequent Tasks | `## Notes for Subsequent Tasks` | `## 후속 TASK 참고사항` | `## 後続タスクへの注記` |
|
|
163
|
+
| Context Handoff | `## Context Handoff` | `## 컨텍스트 핸드오프` | `## コンテキスト引き継ぎ` |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## § 5. TASK-XX_result.md (direct 모드)
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
# TASK-00 Result
|
|
171
|
+
|
|
172
|
+
> WORK: WORK-NN — {제목}
|
|
173
|
+
> Completed: {YYYY-MM-DD HH:MM}
|
|
174
|
+
> Execution-Mode: direct
|
|
175
|
+
> Status: **DONE**
|
|
176
|
+
> Commit: {hash}
|
|
177
|
+
|
|
178
|
+
## 요약
|
|
179
|
+
{1줄}
|
|
180
|
+
|
|
181
|
+
## 변경 파일
|
|
182
|
+
- `{path}` — {내용}
|
|
183
|
+
|
|
184
|
+
## 검증
|
|
185
|
+
- Build: PASS (self-check)
|
|
186
|
+
- Lint: PASS (self-check)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## § 6. PROGRESS.md
|
|
192
|
+
|
|
193
|
+
경로: `works/{WORK_ID}/PROGRESS.md`
|
|
194
|
+
|
|
195
|
+
```markdown
|
|
196
|
+
# {WORK_ID} Progress
|
|
197
|
+
|
|
198
|
+
> WORK: {title}
|
|
199
|
+
> Last updated: {timestamp}
|
|
200
|
+
> Mode: manual | auto
|
|
201
|
+
|
|
202
|
+
| TASK | Title | Status | Commit | Duration |
|
|
203
|
+
|------|-------|--------|--------|----------|
|
|
204
|
+
| TASK-00 | {title} | ✅ Done | abc1234 | 12min |
|
|
205
|
+
| TASK-01 | {title} | 🔄 In Progress | — | — |
|
|
206
|
+
|
|
207
|
+
## Log
|
|
208
|
+
- [10:00] TASK-00 started
|
|
209
|
+
- [10:12] TASK-00 verified ✅, committed abc1234
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## § 7. 파일명 규칙
|
|
215
|
+
|
|
216
|
+
| 종류 | 형식 | 생성 주체 |
|
|
217
|
+
|------|------|----------|
|
|
218
|
+
| WORK 계획 | `PLAN.md` | planner / router |
|
|
219
|
+
| TASK 계획 | `TASK-NN.md` | planner / router |
|
|
220
|
+
| TASK 진행 | `TASK-NN_progress.md` | planner(템플릿) / builder(갱신) |
|
|
221
|
+
| TASK 결과 | `TASK-NN_result.md` | committer / router(direct) |
|
|
222
|
+
| WORK 진행 | `PROGRESS.md` | scheduler |
|
|
223
|
+
|
|
224
|
+
`WORK-NN-TASK-NN.md` 형식 금지 → `parseTaskFilename()` 인식 불가.
|
package/agents/ko/planner.md
CHANGED
package/agents/ko/router.md
CHANGED
|
@@ -104,7 +104,19 @@ Router가 단독 수행. 코드 탐색 시 Serena MCP 우선 사용:
|
|
|
104
104
|
```
|
|
105
105
|
### 3-5. pipeline 모드 일때 실행
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
> ⚠️ pipeline 모드에서 Router는 PLAN.md + TASK-NN.md 생성까지만 수행한다.
|
|
108
|
+
> 코드 수정, builder 호출, commit 등은 절대 금지. dispatch XML만 반환하라.
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
1. WORK ID 결정
|
|
112
|
+
2. mkdir works/WORK-NN/
|
|
113
|
+
3. log_work INIT "WORK-NN 생성 — Execution-Mode: pipeline"
|
|
114
|
+
4. PLAN.md 생성 (Execution-Mode: pipeline) → file-content-schema.md § 1
|
|
115
|
+
5. TASK-NN.md 생성 (필요 시 복수) → file-content-schema.md § 2
|
|
116
|
+
6. WORK-LIST.md IN_PROGRESS 추가
|
|
117
|
+
7. 아래 dispatch XML을 생성하여 반환한다. **호출은 Main Claude가 수행한다.**
|
|
118
|
+
8. log_work DISPATCH "Builder dispatch XML 반환"
|
|
119
|
+
```
|
|
108
120
|
|
|
109
121
|
→ dispatch XML 포맷: `xml-schema.md` § 1 참조 (to="builder", task="TASK-00", execution-mode="pipeline")
|
|
110
122
|
|
|
@@ -140,7 +152,7 @@ Router가 단독 수행. 코드 탐색 시 Serena MCP 우선 사용:
|
|
|
140
152
|
→ `.claude/agents/shared-prompt-sections.md` § 8 참조
|
|
141
153
|
|
|
142
154
|
- WORK 생성 시: `IN_PROGRESS` 추가
|
|
143
|
-
- COMPLETED 변경:
|
|
155
|
+
- COMPLETED 변경: 마지막 TASK 완료 시 committer가 자동 변경
|
|
144
156
|
|
|
145
157
|
### 파일명 규칙
|
|
146
158
|
- TASK 파일명: `TASK-XX.md` 형식
|
|
@@ -111,7 +111,7 @@ echo "$DONE / $TOTAL"
|
|
|
111
111
|
| 필드 | 필수 | 설명 |
|
|
112
112
|
|------|------|------|
|
|
113
113
|
| `> Created:` | ✅ | YYYY-MM-DD |
|
|
114
|
-
| `> 요구사항:` | ✅ | `REQ-XXX` 또는
|
|
114
|
+
| `> 요구사항:` | ✅ | `REQ-XXX` 또는 사용자 요청 텍스트 |
|
|
115
115
|
| `> Execution-Mode:` | ✅ | `direct` / `pipeline` / `full` |
|
|
116
116
|
| `> Project:` | ✅ | 프로젝트명 |
|
|
117
117
|
| `> Tech Stack:` | ✅ | 감지된 기술 스택 |
|
|
@@ -127,11 +127,10 @@ echo "$DONE / $TOTAL"
|
|
|
127
127
|
| 상태 | 시점 |
|
|
128
128
|
|------|------|
|
|
129
129
|
| `IN_PROGRESS` | WORK 디렉토리 생성 시 추가 |
|
|
130
|
-
| `COMPLETED` |
|
|
130
|
+
| `COMPLETED` | 마지막 TASK 완료 시 committer가 자동 변경 |
|
|
131
131
|
|
|
132
|
-
- committer / scheduler → COMPLETED 변경 금지
|
|
133
132
|
- WORK 디렉토리 생성 시 반드시 IN_PROGRESS 추가
|
|
134
|
-
-
|
|
133
|
+
- committer: 마지막 TASK commit 후 WORK-LIST.md를 `IN_PROGRESS` → `COMPLETED`로 변경
|
|
135
134
|
|
|
136
135
|
---
|
|
137
136
|
|