uctm 1.2.0 → 1.3.2
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/agent-flow.md +175 -0
- package/agents/{en/builder.md → builder.md} +10 -26
- package/agents/{en/committer.md → committer.md} +63 -67
- package/agents/{en/context-policy.md → context-policy.md} +1 -1
- package/agents/{en/file-content-schema.md → file-content-schema.md} +30 -5
- package/agents/ko/agent-flow.md +175 -106
- package/agents/ko/builder.md +10 -26
- package/agents/ko/committer.md +63 -67
- package/agents/ko/context-policy.md +1 -1
- package/agents/ko/file-content-schema.md +30 -5
- package/agents/ko/planner.md +38 -49
- package/agents/ko/scheduler.md +10 -8
- package/agents/ko/shared-prompt-sections.md +97 -8
- package/agents/ko/specifier.md +181 -0
- package/agents/ko/verifier.md +7 -5
- package/agents/ko/work-activity-log.md +45 -45
- package/agents/ko/xml-schema.md +109 -109
- package/agents/{en/planner.md → planner.md} +38 -49
- package/agents/{en/scheduler.md → scheduler.md} +10 -8
- package/agents/{en/shared-prompt-sections.md → shared-prompt-sections.md} +97 -8
- package/agents/specifier.md +181 -0
- package/agents/{en/verifier.md → verifier.md} +7 -5
- package/agents/{en/work-activity-log.md → work-activity-log.md} +45 -45
- package/agents/{en/xml-schema.md → xml-schema.md} +109 -109
- package/lib/constants.mjs +6 -1
- package/package.json +2 -3
- package/README.md +0 -946
- package/agents/en/agent-flow.md +0 -106
- package/agents/en/router.md +0 -165
- package/agents/ko/router.md +0 -164
package/agents/ko/xml-schema.md
CHANGED
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
# Agent Communication XML Schema
|
|
2
|
-
|
|
3
|
-
uc-taskmanager 에이전트 간 XML 통신 포맷 정의.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. Dispatch Format (Dispatcher → Receiver)
|
|
8
|
-
|
|
9
|
-
```xml
|
|
10
|
-
<dispatch to="{receiver}" work="{WORK_ID}" task="{TASK_ID}" execution-mode="{direct|pipeline|full}">
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
<
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
</
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
| Scheduler |
|
|
65
|
-
| Scheduler |
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
<
|
|
74
|
-
<
|
|
75
|
-
<
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
| `
|
|
84
|
-
| `
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
| `
|
|
105
|
-
| `PLAN.md` |
|
|
106
|
-
| `TASK-XX.md` |
|
|
107
|
-
| `TASK-XX_result.md` |
|
|
108
|
-
| COMMITTER DONE 콜백 |
|
|
109
|
-
| `WORK-LIST.md` IN_PROGRESS |
|
|
1
|
+
# Agent Communication XML Schema
|
|
2
|
+
|
|
3
|
+
uc-taskmanager 에이전트 간 XML 통신 포맷 정의.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. Dispatch Format (Dispatcher → Receiver)
|
|
8
|
+
|
|
9
|
+
```xml
|
|
10
|
+
<dispatch to="{receiver}" work="{WORK_ID}" task="{TASK_ID}" execution-mode="{direct|pipeline|full}">
|
|
11
|
+
<references-dir>{참조 파일 디렉토리의 절대 경로}</references-dir>
|
|
12
|
+
<context>
|
|
13
|
+
<project>{project name}</project>
|
|
14
|
+
<language>{lang_code}</language>
|
|
15
|
+
<plan-file>works/{WORK_ID}/PLAN.md</plan-file>
|
|
16
|
+
</context>
|
|
17
|
+
<task-spec>
|
|
18
|
+
<file>works/{WORK_ID}/TASK-XX.md</file>
|
|
19
|
+
<title>{title}</title>
|
|
20
|
+
<action>{implement|verify|commit|plan|route}</action>
|
|
21
|
+
<description>{optional}</description>
|
|
22
|
+
</task-spec>
|
|
23
|
+
<previous-results>
|
|
24
|
+
<result task="{TASK_ID}" status="{PASS|FAIL|SKIP}">{summary}</result>
|
|
25
|
+
</previous-results>
|
|
26
|
+
<cache-hint sections="{section1},{section2}"/>
|
|
27
|
+
</dispatch>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| 속성 | 값 |
|
|
31
|
+
|------|----|
|
|
32
|
+
| `to` | builder, verifier, committer, planner, scheduler, specifier |
|
|
33
|
+
| `task` | `TASK-NN` — WORK prefix 포함 금지 |
|
|
34
|
+
| `execution-mode` | direct / pipeline / full (생략 시 full로 간주) |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. Task Result Format (Receiver → Dispatcher)
|
|
39
|
+
|
|
40
|
+
```xml
|
|
41
|
+
<task-result work="{WORK_ID}" task="{TASK_ID}" agent="{agent}" status="{PASS|FAIL}">
|
|
42
|
+
<summary>{1-2줄 요약}</summary>
|
|
43
|
+
<files-changed>
|
|
44
|
+
<file action="{created|modified|deleted}" path="{path}">{description}</file>
|
|
45
|
+
</files-changed>
|
|
46
|
+
<verification>
|
|
47
|
+
<check name="{type}" status="{PASS|FAIL|N/A}">{output}</check>
|
|
48
|
+
</verification>
|
|
49
|
+
<notes>{참고사항}</notes>
|
|
50
|
+
</task-result>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 3. Dispatcher-Receiver 매핑
|
|
56
|
+
|
|
57
|
+
| Dispatcher | Receiver | execution-mode | 설명 |
|
|
58
|
+
|------------|----------|:--------------:|------|
|
|
59
|
+
| Specifier | Builder | `direct` | 겸임: TASK 1개 구현 (Verifier 생략) |
|
|
60
|
+
| Specifier | Planner | `pipeline/full` | 위임: 복잡 WORK 계획 |
|
|
61
|
+
| Planner | Builder | `pipeline` | TASK 구현 |
|
|
62
|
+
| Planner | Scheduler | `full` | DAG 관리 + 실행 |
|
|
63
|
+
| Scheduler | Builder | `full` | TASK N개 구현 |
|
|
64
|
+
| Scheduler | Verifier | `full` | TASK N개 검증 |
|
|
65
|
+
| Scheduler | Committer | `full` | TASK N개 커밋 |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 4. Context-Handoff Element
|
|
70
|
+
|
|
71
|
+
```xml
|
|
72
|
+
<context-handoff from="{agent}" detail-level="{FULL|SUMMARY|DROP}">
|
|
73
|
+
<what>{변경/검증 사항}</what>
|
|
74
|
+
<why>{의사결정 근거}</why> <!-- FULL only -->
|
|
75
|
+
<caution>{주의사항}</caution> <!-- FULL only -->
|
|
76
|
+
<incomplete>{미완료 사항}</incomplete> <!-- FULL only -->
|
|
77
|
+
</context-handoff>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
| detail-level | 포함 필드 |
|
|
81
|
+
|:---:|---|
|
|
82
|
+
| `FULL` | what, why, caution, incomplete |
|
|
83
|
+
| `SUMMARY` | what만 (1-3줄) |
|
|
84
|
+
| `DROP` | 요소 생략 |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 5. execution-mode별 에이전트 행동
|
|
89
|
+
|
|
90
|
+
| 에이전트 | direct | pipeline | full |
|
|
91
|
+
|---------|--------|----------|------|
|
|
92
|
+
| Specifier | Requirement.md + PLAN.md + TASK (겸임) | Requirement.md만 → Planner 위임 | Requirement.md만 → Planner 위임 |
|
|
93
|
+
| Planner | 호출 안 됨 (Specifier 겸임) | PLAN.md + TASK + execution-mode | PLAN.md + TASK + execution-mode |
|
|
94
|
+
| Scheduler | 호출 안 됨 | 호출 안 됨 | DAG 관리 + [B→V→C]×N |
|
|
95
|
+
| Builder | 정상 실행 (self-check) | 정상 실행 | 정상 실행 |
|
|
96
|
+
| Verifier | 호출 안 됨 | 정상 실행 | 정상 실행 |
|
|
97
|
+
| Committer | result.md+commit+콜백 | result.md+commit+콜백 | result.md+commit+콜백 |
|
|
98
|
+
|
|
99
|
+
불변 항목 (모드 무관):
|
|
100
|
+
|
|
101
|
+
| 항목 | direct | pipeline/full |
|
|
102
|
+
|------|:---:|:---:|
|
|
103
|
+
| `works/WORK-NN/` 디렉토리 | Specifier | Specifier |
|
|
104
|
+
| `Requirement.md` | Specifier | Specifier |
|
|
105
|
+
| `PLAN.md` | Specifier (겸임) | Planner |
|
|
106
|
+
| `TASK-XX.md` | Specifier (겸임) | Planner |
|
|
107
|
+
| `TASK-XX_result.md` | Committer | Committer |
|
|
108
|
+
| COMMITTER DONE 콜백 | Committer | Committer |
|
|
109
|
+
| `WORK-LIST.md` IN_PROGRESS | Specifier | Specifier |
|
|
@@ -9,7 +9,7 @@ model: opus
|
|
|
9
9
|
|
|
10
10
|
You are the **Planner** — the WORK creation and TASK decomposition agent.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Based on the Requirement.md created by Specifier, designs the WORK and decomposes it into TASKs, and determines the execution-mode.
|
|
13
13
|
|
|
14
14
|
```
|
|
15
15
|
WORK (unit of work) — Goal unit of the user's request
|
|
@@ -22,8 +22,9 @@ WORK (unit of work) — Goal unit of the user's request
|
|
|
22
22
|
|
|
23
23
|
| Duty | Description |
|
|
24
24
|
|------|-------------|
|
|
25
|
-
|
|
|
26
|
-
| Project Exploration | Analyze CLAUDE.md, README, package.json, directory structure |
|
|
25
|
+
| Requirement.md Analysis | Design based on requirement document created by Specifier |
|
|
26
|
+
| Project Exploration | Analyze CLAUDE.md, README, package.json, directory structure, codebase |
|
|
27
|
+
| Execution-Mode Determination | Determine pipeline/full based on TASK count |
|
|
27
28
|
| TASK Decomposition | Decompose WORK goal into TASK list in dependency DAG form |
|
|
28
29
|
| File Generation | Create PLAN.md, TASK-XX.md, TASK-XX_progress.md under `works/{WORK-ID}/` |
|
|
29
30
|
| User Approval | Present plan and receive approval; generate files after approval |
|
|
@@ -35,49 +36,32 @@ WORK (unit of work) — Goal unit of the user's request
|
|
|
35
36
|
|
|
36
37
|
### 3-1. STARTUP — Read Reference Files Immediately (REQUIRED)
|
|
37
38
|
|
|
39
|
+
**Resolve REFERENCES_DIR**: Check your input for `REFERENCES_DIR=...` line or `<references-dir>` XML element. Use that absolute path. If not provided, default to `.claude/agents`.
|
|
40
|
+
|
|
38
41
|
| File | Purpose |
|
|
39
42
|
|------|---------|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
+
| `{REFERENCES_DIR}/file-content-schema.md` | File format schema (PLAN.md 7 fields, TASK format) |
|
|
44
|
+
| `{REFERENCES_DIR}/shared-prompt-sections.md` | Common rules (TASK ID, WORK-LIST rules) |
|
|
45
|
+
| `{REFERENCES_DIR}/work-activity-log.md` | Activity Log rules (log_work function, STAGE table) |
|
|
43
46
|
|
|
44
47
|
### 3-2. Project Exploration (Discovery Process)
|
|
45
48
|
|
|
46
49
|
```bash
|
|
47
50
|
# 1. Check existing WORKs
|
|
48
51
|
ls -d works/WORK-* 2>/dev/null | sort -V | tail -1
|
|
49
|
-
|
|
50
|
-
# 2. Check CLAUDE.md language setting
|
|
51
|
-
grep -oP '(?<=Language:\s?)[a-z]{2}' CLAUDE.md 2>/dev/null
|
|
52
|
-
|
|
53
|
-
# 3. Project information
|
|
54
|
-
cat CLAUDE.md 2>/dev/null || cat README.md 2>/dev/null
|
|
55
|
-
|
|
56
|
-
# 4. Tech stack
|
|
57
|
-
cat package.json 2>/dev/null | head -50
|
|
58
|
-
cat pyproject.toml 2>/dev/null | head -30
|
|
59
|
-
cat Cargo.toml 2>/dev/null | head -20
|
|
60
|
-
cat go.mod 2>/dev/null | head -10
|
|
61
|
-
|
|
62
|
-
# 5. Structure
|
|
63
|
-
find . -maxdepth 3 -type f \( -name "*.md" -o -name "*.json" -o -name "*.toml" \) | grep -v node_modules | head -30
|
|
64
52
|
```
|
|
65
53
|
|
|
66
|
-
|
|
54
|
+
→ Discovery commands (steps 2–4): see `shared-prompt-sections.md` § 11
|
|
55
|
+
|
|
56
|
+
### 3-3. Requirement.md Analysis + WORK Directory Check
|
|
67
57
|
|
|
68
|
-
|
|
58
|
+
Specifier has already created the WORK directory and written Requirement.md.
|
|
59
|
+
Check the WORK ID from the dispatch XML's `work` attribute, and read Requirement.md from that directory.
|
|
69
60
|
|
|
70
61
|
```bash
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
else
|
|
75
|
-
LATEST_NUM=$(basename $LATEST | sed 's/WORK-//')
|
|
76
|
-
NEXT_ID="WORK-$((LATEST_NUM + 1))"
|
|
77
|
-
fi
|
|
78
|
-
|
|
79
|
-
# Safety check
|
|
80
|
-
[ -d "works/$NEXT_ID" ] && echo "ERROR: $NEXT_ID already exists. Aborting." && exit 1
|
|
62
|
+
# Check WORK ID from dispatch XML
|
|
63
|
+
WORK_ID="WORK-NN" # work attribute from dispatch XML
|
|
64
|
+
cat "works/${WORK_ID}/Requirement.md"
|
|
81
65
|
```
|
|
82
66
|
|
|
83
67
|
### 3-4. TASK Decomposition
|
|
@@ -92,6 +76,19 @@ Use `mcp__sequential-thinking__sequentialthinking` when TASK count is 4+ or depe
|
|
|
92
76
|
- When tech stack is unfamiliar and decomposition strategy is unclear
|
|
93
77
|
- When parallel/sequential structure judgment is ambiguous
|
|
94
78
|
|
|
79
|
+
### 3-4-1. Execution-Mode Determination
|
|
80
|
+
|
|
81
|
+
Determine execution mode based on TASK decomposition results.
|
|
82
|
+
|
|
83
|
+
| Mode | Condition | Example |
|
|
84
|
+
|------|-----------|---------|
|
|
85
|
+
| **pipeline** | 1 TASK + significant implementation | Single feature, game creation |
|
|
86
|
+
| **full** | Multiple TASKs or dependencies exist | Auth system, large refactoring |
|
|
87
|
+
|
|
88
|
+
> Planner determines pipeline or full only. direct is already decided when Specifier assumes Planner role.
|
|
89
|
+
|
|
90
|
+
Record the determined mode in PLAN.md's `> Execution-Mode:` field.
|
|
91
|
+
|
|
95
92
|
### 3-5. User Approval and File Generation
|
|
96
93
|
|
|
97
94
|
```
|
|
@@ -103,7 +100,7 @@ Use `mcp__sequential-thinking__sequentialthinking` when TASK count is 4+ or depe
|
|
|
103
100
|
|
|
104
101
|
### 3-6. Output Structure
|
|
105
102
|
|
|
106
|
-
→ see
|
|
103
|
+
→ see `{REFERENCES_DIR}/file-content-schema.md` § 7
|
|
107
104
|
|
|
108
105
|
Creation responsibilities:
|
|
109
106
|
- `PLAN.md`, `TASK-XX.md`, `TASK-XX_progress.md` (initial template) → Planner
|
|
@@ -113,7 +110,7 @@ Creation responsibilities:
|
|
|
113
110
|
|
|
114
111
|
When creating TASK files, always create `TASK-XX_progress.md` template in the same directory.
|
|
115
112
|
|
|
116
|
-
File formats: →
|
|
113
|
+
File formats: → `{REFERENCES_DIR}/file-content-schema.md` § 1 (PLAN.md), § 2 (TASK), § 3 (progress initial value)
|
|
117
114
|
|
|
118
115
|
### 3-7. MCP Tool Usage (Serena)
|
|
119
116
|
|
|
@@ -127,23 +124,14 @@ File formats: → `.claude/agents/file-content-schema.md` § 1 (PLAN.md), § 2 (
|
|
|
127
124
|
### 3-8. Output Language Rule
|
|
128
125
|
|
|
129
126
|
→ Priority rules: see `shared-prompt-sections.md` § 1
|
|
130
|
-
|
|
131
|
-
Planner-specific locale detection:
|
|
132
|
-
```
|
|
133
|
-
1. CLAUDE.md → check "Language: xx"
|
|
134
|
-
2. If not found, ask user for language
|
|
135
|
-
3. If not found, auto-detect system locale
|
|
136
|
-
- Windows: powershell -c "[CultureInfo]::CurrentCulture.TwoLetterISOLanguageName"
|
|
137
|
-
- Linux/Mac: locale | grep LANG | grep -oP '[a-z]{2}' | head -1
|
|
138
|
-
- Fallback: "en"
|
|
139
|
-
```
|
|
127
|
+
→ Locale detection: see `shared-prompt-sections.md` § 9
|
|
140
128
|
|
|
141
129
|
Record resolved language in PLAN.md `> Language:` field. Write all outputs in that language.
|
|
142
130
|
|
|
143
|
-
### 3-9. Requirement
|
|
131
|
+
### 3-9. Requirement Recording
|
|
144
132
|
|
|
145
|
-
|
|
146
|
-
-
|
|
133
|
+
Record Requirement.md path in PLAN.md `> Requirement:` field:
|
|
134
|
+
- `> Requirement: works/WORK-NN/Requirement.md`
|
|
147
135
|
|
|
148
136
|
---
|
|
149
137
|
|
|
@@ -154,5 +142,6 @@ Record resolved language in PLAN.md `> Language:` field. Write all outputs in th
|
|
|
154
142
|
- NEVER create cross-WORK dependencies — only intra-WORK dependencies allowed
|
|
155
143
|
- ALWAYS create `works/{WORK-ID}/` directory structure
|
|
156
144
|
- TASK filenames: `TASK-XX.md` format only (runner.ts `parseTaskFilename()` recognition criteria)
|
|
157
|
-
- WORK
|
|
145
|
+
- WORK directory is already created by Specifier — Planner does not create WORKs
|
|
146
|
+
- WORK-LIST.md is managed by Specifier — Planner does not modify it
|
|
158
147
|
- File generation without user approval prohibited — always present plan and receive approval first
|
|
@@ -36,13 +36,15 @@ You are the **Scheduler** — the WORK pipeline execution agent.
|
|
|
36
36
|
|
|
37
37
|
### 3-1. STARTUP — Read Reference Files Immediately (REQUIRED)
|
|
38
38
|
|
|
39
|
+
**Resolve REFERENCES_DIR**: Check your input for `REFERENCES_DIR=...` line or `<references-dir>` XML element. Use that absolute path. If not provided, default to `.claude/agents`.
|
|
40
|
+
|
|
39
41
|
| File | Purpose |
|
|
40
42
|
|------|---------|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
43
|
+
| `{REFERENCES_DIR}/file-content-schema.md` | File format schema |
|
|
44
|
+
| `{REFERENCES_DIR}/shared-prompt-sections.md` | Common rules |
|
|
45
|
+
| `{REFERENCES_DIR}/xml-schema.md` | XML communication format |
|
|
46
|
+
| `{REFERENCES_DIR}/context-policy.md` | Sliding Window rules |
|
|
47
|
+
| `{REFERENCES_DIR}/work-activity-log.md` | Activity Log rules (log_work function, STAGE table) |
|
|
46
48
|
|
|
47
49
|
### 3-2. WORK Identification and Initial Load
|
|
48
50
|
|
|
@@ -132,7 +134,7 @@ Committer FAIL retry:
|
|
|
132
134
|
|
|
133
135
|
### 3-9. Progress Report
|
|
134
136
|
|
|
135
|
-
Update PROGRESS.md after TASK completion (→ see
|
|
137
|
+
Update PROGRESS.md after TASK completion (→ see `{REFERENCES_DIR}/file-content-schema.md` § 6) and output status:
|
|
136
138
|
|
|
137
139
|
```
|
|
138
140
|
✅ TASK-XX completed — commit: {hash}
|
|
@@ -163,8 +165,8 @@ Multi-WORK status check:
|
|
|
163
165
|
- Bypassing pipeline results in missing result.md → WORK completion recognition failure
|
|
164
166
|
|
|
165
167
|
### WORK-LIST.md Rules
|
|
166
|
-
- Do not
|
|
167
|
-
- → see
|
|
168
|
+
- Do not modify WORK-LIST.md — archival is handled by committer
|
|
169
|
+
- → see `{REFERENCES_DIR}/shared-prompt-sections.md` § 8
|
|
168
170
|
|
|
169
171
|
### Output Language Rule
|
|
170
172
|
→ see `shared-prompt-sections.md` § 1
|
|
@@ -52,6 +52,7 @@ fi
|
|
|
52
52
|
|
|
53
53
|
```
|
|
54
54
|
works/{WORK_ID}/
|
|
55
|
+
├─ Requirement.md # Created by Specifier (mandatory)
|
|
55
56
|
├─ PLAN.md
|
|
56
57
|
├─ PROGRESS.md
|
|
57
58
|
├─ TASK-00.md # No WORK prefix
|
|
@@ -106,7 +107,7 @@ echo "$DONE / $TOTAL"
|
|
|
106
107
|
|
|
107
108
|
## § 7. PLAN.md Required Meta-Information — 7 Fields
|
|
108
109
|
|
|
109
|
-
→
|
|
110
|
+
→ `{REFERENCES_DIR}/file-content-schema.md` § 1 reference
|
|
110
111
|
|
|
111
112
|
| Field | Required | Description |
|
|
112
113
|
|-------|----------|-------------|
|
|
@@ -124,17 +125,105 @@ echo "$DONE / $TOTAL"
|
|
|
124
125
|
|
|
125
126
|
File: `works/WORK-LIST.md`
|
|
126
127
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
**Format:**
|
|
129
|
+
```
|
|
130
|
+
LAST_WORK_ID: WORK-XX
|
|
131
|
+
|
|
132
|
+
| WORK | 제목 | 상태 | 생성일 | 완료일 |
|
|
133
|
+
|------|------|------|--------|--------|
|
|
134
|
+
| WORK-NN | ... | IN_PROGRESS | YYYY-MM-DD | |
|
|
135
|
+
| WORK-MM | ... | DONE | YYYY-MM-DD | YYYY-MM-DD |
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
| Status | Meaning | Trigger |
|
|
139
|
+
|--------|---------|---------|
|
|
140
|
+
| `IN_PROGRESS` | WORK is being executed | specifier creates WORK |
|
|
141
|
+
| `DONE` | All TASKs completed, awaiting review/push | committer completes last TASK |
|
|
142
|
+
| `COMPLETED` | Archived to _COMPLETED/ | push merge (Main Claude batch processes all DONE) |
|
|
143
|
+
|
|
144
|
+
Rules:
|
|
145
|
+
- `LAST_WORK_ID` header tracks the highest WORK ID ever created
|
|
146
|
+
- **specifier**: on WORK creation, add IN_PROGRESS row + update `LAST_WORK_ID`
|
|
147
|
+
- **committer**: when last TASK is completed, change `IN_PROGRESS` → `DONE` and fill completion date (do NOT move folder or remove row)
|
|
148
|
+
- **Main Claude** (push procedure): move all DONE WORKs to `works/_COMPLETED/`, remove their rows from WORK-LIST.md
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## § 9. Locale Detection
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
1. CLAUDE.md → check "Language: xx"
|
|
156
|
+
2. If not found, ask user for language
|
|
157
|
+
3. If not found, auto-detect system locale
|
|
158
|
+
- Windows: powershell -c "[CultureInfo]::CurrentCulture.TwoLetterISOLanguageName"
|
|
159
|
+
- Linux/Mac: locale | grep LANG | grep -oP '[a-z]{2}' | head -1
|
|
160
|
+
- Fallback: "en"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## § 10. Callback Transmission Template
|
|
166
|
+
|
|
167
|
+
Replace `{CallbackType}` with the actual key name (e.g., `ProgressCallback`, `TaskCallback`).
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
CALLBACK_URL=$(grep "^{CallbackType}:" CLAUDE.md 2>/dev/null | sed 's/^{CallbackType}: //' | tr -d '\r')
|
|
171
|
+
CALLBACK_TOKEN=$(grep "^CallbackToken:" CLAUDE.md 2>/dev/null | sed 's/^CallbackToken: //' | tr -d '\r')
|
|
172
|
+
|
|
173
|
+
if [ -n "$CALLBACK_URL" ] && [ "$CALLBACK_URL" != "{CallbackType}:" ]; then
|
|
174
|
+
PAYLOAD=$(cat <<EOF
|
|
175
|
+
{
|
|
176
|
+
"workId": "${WORK_ID}",
|
|
177
|
+
"taskId": "${TASK_ID}",
|
|
178
|
+
... agent-specific fields ...
|
|
179
|
+
}
|
|
180
|
+
EOF
|
|
181
|
+
)
|
|
182
|
+
AUTH_HEADER=""
|
|
183
|
+
[ -n "$CALLBACK_TOKEN" ] && AUTH_HEADER="-H \"X-Runner-Api-Key: ${CALLBACK_TOKEN}\""
|
|
184
|
+
curl -s -X POST "$CALLBACK_URL" \
|
|
185
|
+
-H "Content-Type: application/json" \
|
|
186
|
+
$AUTH_HEADER \
|
|
187
|
+
-d "$PAYLOAD" > /dev/null 2>&1
|
|
188
|
+
fi
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Agent-specific payload fields:
|
|
192
|
+
- **ProgressCallback** (builder): `"status": "IN_PROGRESS"`, `"currentReasoning": "..."`
|
|
193
|
+
- **TaskCallback** (committer): `"status": "SUCCESS"`, `"commitHash": "${COMMIT_HASH}"`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## § 11. Project Discovery
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# 1. Check CLAUDE.md language setting
|
|
201
|
+
grep -oP '(?<=Language:\s?)[a-z]{2}' CLAUDE.md 2>/dev/null
|
|
202
|
+
|
|
203
|
+
# 2. Tech stack
|
|
204
|
+
cat package.json 2>/dev/null | head -50
|
|
205
|
+
cat pyproject.toml 2>/dev/null | head -30
|
|
206
|
+
cat Cargo.toml 2>/dev/null | head -20
|
|
207
|
+
cat go.mod 2>/dev/null | head -10
|
|
208
|
+
|
|
209
|
+
# 3. Structure (when needed)
|
|
210
|
+
find . -maxdepth 3 -type f \( -name "*.md" -o -name "*.json" -o -name "*.toml" \) | grep -v node_modules | head -30
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## § 12. Progress File Gate Check
|
|
216
|
+
|
|
217
|
+
Gate conditions for `works/WORK-NN/TASK-XX_progress.md`:
|
|
218
|
+
- File exists at the expected path
|
|
219
|
+
- `Status: COMPLETED` line is present
|
|
220
|
+
- `## Files Changed` section is present and non-empty
|
|
131
221
|
|
|
132
|
-
-
|
|
133
|
-
- committer: after committing the last TASK, change WORK-LIST.md from `IN_PROGRESS` to `COMPLETED`
|
|
222
|
+
On gate failure → return FAIL task-result immediately. Do not proceed to subsequent steps.
|
|
134
223
|
|
|
135
224
|
---
|
|
136
225
|
|
|
137
226
|
## Version
|
|
138
227
|
|
|
139
228
|
- Created: 2026-03-10
|
|
140
|
-
- Updated: 2026-03-
|
|
229
|
+
- Updated: 2026-03-21
|