uctm 1.5.3 → 1.5.4

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.
@@ -1,24 +1,24 @@
1
- # Shared Prompt Sections
1
+ # 공유 프롬프트 섹션
2
2
 
3
- Common reusable sections. Each agent references these via `cache_control` markers.
3
+ 에이전트가 `cache_control` 마커를 통해 참조하는 공통 재사용 섹션.
4
4
 
5
5
  ---
6
6
 
7
- ## § 1. Output Language Rule
7
+ ## § 1. 출력 언어 규칙
8
8
 
9
9
  ```
10
- Priority: PLAN.md > Language: → CLAUDE.md ## Language → en (default)
10
+ 우선순위: PLAN.md > Language: → CLAUDE.md ## Language → en (기본값)
11
11
 
12
- On dispatch: pass resolved language code in <context><language> field
13
- Section headers (##) are also written in the resolved language (refer to language mapping table)
12
+ 디스패치 시: <context><language> 필드에 결정된 언어 코드 전달
13
+ 섹션 헤더(##) 결정된 언어로 작성 (언어 매핑 참조)
14
14
  ```
15
15
 
16
16
  ---
17
17
 
18
- ## § 2. Build and Lint Commands
18
+ ## § 2. 빌드 린트 명령
19
19
 
20
20
  ```bash
21
- # Auto-detect Build (execute only if script exists)
21
+ # 빌드 자동 감지 (스크립트가 있을 때만 실행)
22
22
  if [ -f "package.json" ]; then
23
23
  if node -e "const p=JSON.parse(require('fs').readFileSync('package.json','utf8')); process.exit(p.scripts&&p.scripts.build?0:1)" 2>/dev/null; then
24
24
  npm run build 2>&1 || bun run build 2>&1 || yarn build 2>&1
@@ -33,7 +33,7 @@ elif [ -f "Makefile" ]; then
33
33
  make build 2>&1 || make 2>&1
34
34
  fi
35
35
 
36
- # Auto-detect Lint (execute only if script exists)
36
+ # 린트 자동 감지 (스크립트가 있을 때만 실행)
37
37
  if [ -f "package.json" ]; then
38
38
  if node -e "const p=JSON.parse(require('fs').readFileSync('package.json','utf8')); process.exit(p.scripts&&p.scripts.lint?0:1)" 2>/dev/null; then
39
39
  npm run lint 2>&1 || bun run lint 2>&1 || true
@@ -43,99 +43,99 @@ elif [ -f "pyproject.toml" ]; then
43
43
  fi
44
44
  ```
45
45
 
46
- - If build/lint scripts do not exist **skip (treat as N/A)**.
47
- - On build/lint failure, always fix before reporting.
46
+ - 빌드/린트 스크립트가 없으면**생략 (N/A로 처리)**.
47
+ - 빌드/린트 실패 보고 전에 항상 수정.
48
48
 
49
49
  ---
50
50
 
51
- ## § 3. WORK and TASK File Path Patterns
51
+ ## § 3. WORK TASK 파일 경로 패턴
52
52
 
53
53
  ```
54
54
  works/{WORK_ID}/
55
- ├─ Requirement.md # Created by Specifier (mandatory)
55
+ ├─ Requirement.md # Specifier가 생성 (필수)
56
56
  ├─ PLAN.md
57
- ├─ TASK-00.md # No WORK prefix
58
- ├─ TASK-00_result.md # Separator: underscore
57
+ ├─ TASK-00.md # WORK 접두사 없음
58
+ ├─ TASK-00_result.md # 구분자: 언더스코어
59
59
  └─ TASK-01.md ...
60
60
  ```
61
61
 
62
- - WORK ID: `WORK-NN` (e.g., `WORK-03`)
63
- - TASK ID: `TASK-NN` (e.g., `TASK-00`) — WORK prefix must NOT be included
62
+ - WORK ID: `WORK-NN` (예: `WORK-03`)
63
+ - TASK ID: `TASK-NN` (예: `TASK-00`) — WORK 접두사 포함 금지
64
64
 
65
65
  ---
66
66
 
67
- ## § 4. File System Discovery Scripts
67
+ ## § 4. 파일 시스템 Discovery 스크립트
68
68
 
69
69
  ```
70
- # Find latest WORK with incomplete TASKs
71
- # Use Glob tool: pattern "works/WORK-*/" → list all WORK directories (sorted)
72
- # For each WORK (descending), read last line of works/WORK-NN/work_WORK-NN.log
73
- # - No log filenot started
74
- # - Last line contains "COMMITTER_DONE" with last TASK number check if more TASKs remain
75
- # First WORK that is not fully completed is the active WORK
76
-
77
- # List all WORKs
78
- # Use Glob tool: pattern "works/WORK-*/"
79
-
80
- # WORK/TASK status from activity log (last line)
81
- # Read last line of works/${WORK_ID}/work_${WORK_ID}.log
82
- # Format: [timestamp] EVENT — description
70
+ # 미완료 TASK가 있는 최신 WORK 찾기
71
+ # Glob 도구 사용: pattern "works/WORK-*/" → 모든 WORK 디렉토리 목록 (정렬)
72
+ # WORK (내림차순) 대해 works/WORK-NN/work_WORK-NN.log 마지막 줄 읽기
73
+ # - 로그 파일 없음시작 안 됨
74
+ # - 마지막 줄에 마지막 TASK 번호의 "COMMITTER_DONE" 포함남은 TASK 확인
75
+ # 완전히 완료되지 않은 번째 WORK가 활성 WORK
76
+
77
+ # 모든 WORK 목록
78
+ # Glob 도구 사용: pattern "works/WORK-*/"
79
+
80
+ # 활동 로그의 마지막 줄로 WORK/TASK 상태 파악
81
+ # works/${WORK_ID}/work_${WORK_ID}.log 마지막 줄 읽기
82
+ # 형식: [timestamp] EVENT — description
83
83
  #
84
- # Key rule: *_START without matching *_DONE = interrupted, must REDO that step
84
+ # 핵심 규칙: *_START 대응하는 *_DONE 없으면 = 중단됨, 해당 단계 재수행 필요
85
85
  #
86
- # COMMITTER_DONE — TASK-NN → TASK-NN completed, next TASK is TASK-(NN+1)
87
- # COMMITTER_START — TASK-NN → committer interrupted, redo verifier+committer for TASK-NN
88
- # VERIFIER_DONE — TASK-NN → TASK-NN verified, needs committer
89
- # VERIFIER_START — TASK-NN → verifier interrupted, redo verifier+committer for TASK-NN
90
- # BUILDER_DONE — TASK-NN → TASK-NN builder done, needs verifier+committer
91
- # BUILDER_START — TASK-NN → builder interrupted, redo builder for TASK-NN
92
- # PLANNER_DONE → planning done, start first TASK
93
- # PLANNER_START → planner interrupted, redo specifier+planner
94
- # SPECIFIER_DONE → specifier done, needs planner
95
- # SPECIFIER_START → specifier interrupted, redo specifier+planner
96
- # No log file start from scratch
86
+ # COMMITTER_DONE — TASK-NN → TASK-NN 완료, 다음은 TASK-(NN+1)
87
+ # COMMITTER_START — TASK-NN → committer 중단됨, TASK-NN committer 재수행
88
+ # VERIFIER_DONE — TASK-NN → TASK-NN 검증됨, committer 필요
89
+ # VERIFIER_START — TASK-NN → verifier 중단됨, TASK-NN verifier 재수행
90
+ # BUILDER_DONE — TASK-NN → TASK-NN builder 완료, verifier 필요
91
+ # BUILDER_START — TASK-NN → builder 중단됨, TASK-NN builder 재수행
92
+ # PLANNER_DONE → 계획 완료, TASK 시작
93
+ # PLANNER_START → planner 중단됨, planner 재수행
94
+ # SPECIFIER_DONE → specifier 완료, planner 필요
95
+ # SPECIFIER_START → specifier 중단됨, specifier 재수행
96
+ # 로그 파일 없음 처음부터 시작
97
97
  ```
98
98
 
99
99
  ---
100
100
 
101
- ## § 5. Task Result XML Format
101
+ ## § 5. Task Result XML 형식
102
102
 
103
103
  ```xml
104
104
  <task-result work="{WORK_ID}" task="{TASK_ID}" agent="{agent}" status="{PASS|FAIL}">
105
- <summary>{1-2 line summary}</summary>
105
+ <summary>{1-2 요약}</summary>
106
106
  <files-changed>
107
- <file action="{created|modified|deleted}" path="{path}">{description}</file>
107
+ <file action="{created|modified|deleted}" path="{path}">{설명}</file>
108
108
  </files-changed>
109
109
  <verification>
110
- <check name="{type}" status="{PASS|FAIL|N/A}">{details}</check>
110
+ <check name="{type}" status="{PASS|FAIL|N/A}">{상세}</check>
111
111
  </verification>
112
- <notes>{notes for next steps}</notes>
112
+ <notes>{다음 단계를 위한 메모}</notes>
113
113
  </task-result>
114
114
  ```
115
115
 
116
116
  ---
117
117
 
118
- ## § 7. PLAN.md Required Meta-Information — 7 Fields
118
+ ## § 7. PLAN.md 필수 메타 정보 — 7 필드
119
119
 
120
- → `{REFERENCES_DIR}/file-content-schema.md` § 1 reference
120
+ → `{REFERENCES_DIR}/file-content-schema.md` § 1 참조
121
121
 
122
- | Field | Required | Description |
123
- |-------|----------|-------------|
122
+ | 필드 | 필수 | 설명 |
123
+ |------|------|------|
124
124
  | `> Created:` | ✅ | YYYY-MM-DD |
125
- | `> Requirement:` | ✅ | `REQ-XXX` or user request text |
125
+ | `> Requirement:` | ✅ | `REQ-XXX` 또는 사용자 요청 텍스트 |
126
126
  | `> Execution-Mode:` | ✅ | `direct` / `pipeline` / `full` |
127
- | `> Project:` | ✅ | Project name |
128
- | `> Tech Stack:` | ✅ | Detected tech stack |
129
- | `> Language:` | ✅ | Language code (`ko`, `en`, etc.) |
130
- | `> Status:` | ✅ | Always starts as `PLANNED` |
127
+ | `> Project:` | ✅ | 프로젝트 이름 |
128
+ | `> Tech Stack:` | ✅ | 감지된 기술 스택 |
129
+ | `> Language:` | ✅ | 언어 코드 (`ko`, `en` ) |
130
+ | `> Status:` | ✅ | 항상 `PLANNED`로 시작 |
131
131
 
132
132
  ---
133
133
 
134
- ## § 8. WORK-LIST.md Update Rules
134
+ ## § 8. WORK-LIST.md 업데이트 규칙
135
135
 
136
- File: `works/WORK-LIST.md`
136
+ 파일: `works/WORK-LIST.md`
137
137
 
138
- **Format:**
138
+ **형식:**
139
139
  ```
140
140
  LAST_WORK_ID: WORK-XX
141
141
 
@@ -145,163 +145,57 @@ LAST_WORK_ID: WORK-XX
145
145
  | WORK-MM | ... | DONE | YYYY-MM-DD | YYYY-MM-DD |
146
146
  ```
147
147
 
148
- | Status | Meaning | Trigger |
149
- |--------|---------|---------|
150
- | `IN_PROGRESS` | WORK is being executed | specifier creates WORK |
151
- | `DONE` | All TASKs completed, awaiting review/push | committer completes last TASK |
152
- | `COMPLETED` | Archived to _COMPLETED/ | push merge (Main Claude batch processes all DONE) |
148
+ | 상태 | 의미 | 트리거 |
149
+ |------|------|--------|
150
+ | `IN_PROGRESS` | WORK 실행 | specifier WORK 생성 |
151
+ | `DONE` | 모든 TASK 완료, 리뷰/push 대기 | committer 마지막 TASK 완료 |
152
+ | `COMPLETED` | _COMPLETED/로 아카이빙됨 | push 머지 (Main Claude 모든 DONE 일괄 처리) |
153
153
 
154
- Rules:
155
- - `LAST_WORK_ID` header tracks the highest WORK ID ever created
156
- - **specifier**: on WORK creation, add IN_PROGRESS row + update `LAST_WORK_ID`
157
- - **committer**: when last TASK is completed, change `IN_PROGRESS` → `DONE` and fill completion date (do NOT move folder or remove row)
158
- - **Main Claude** (push procedure): move all DONE WORKs to `works/_COMPLETED/`, remove their rows from WORK-LIST.md
154
+ 규칙:
155
+ - `LAST_WORK_ID` 헤더는 지금까지 생성된 가장 높은 WORK ID 추적
156
+ - **specifier**: WORK 생성 IN_PROGRESS 추가 + `LAST_WORK_ID` 업데이트
157
+ - **committer**: 마지막 TASK 완료 `IN_PROGRESS` → `DONE`으로 변경하고 완료일 기입 (폴더 이동이나 제거 금지)
158
+ - **Main Claude** (push 절차): 모든 DONE WORK를 `works/_COMPLETED/`로 이동, WORK-LIST.md에서 해당 행 제거
159
159
 
160
160
  ---
161
161
 
162
- ## § 9. Locale Detection
162
+ ## § 9. 로케일 감지
163
163
 
164
164
  ```
165
- 1. Use Grep tool: pattern "Language:\s*[a-z]{2}" path="CLAUDE.md" → extract language code
166
- 2. If not found, ask user for language
167
- 3. If not found, auto-detect system locale via Bash:
165
+ 1. Grep 도구 사용: pattern "Language:\s*[a-z]{2}" path="CLAUDE.md" → 언어 코드 추출
166
+ 2. 없으면 사용자에게 언어 확인
167
+ 3. 없으면 Bash로 시스템 로케일 자동 감지:
168
168
  - Windows: powershell -c "[CultureInfo]::CurrentCulture.TwoLetterISOLanguageName"
169
169
  - Linux/Mac: locale | grep LANG
170
- - Fallback: "en"
171
- ```
172
-
173
- ---
174
-
175
- ## § 10. Callback & Activity Log
176
-
177
- ### 10-1. Callback (CE7)
178
-
179
- Each agent sends START/DONE/FAILED events to the server via CE7 API.
180
-
181
- **Activation condition:** Only when `CALLBACK_URL` is available. Check in order:
182
- 1. Dispatch XML `<callback-url>` element (passed from Main Claude)
183
- 2. Prompt text containing `CALLBACK_URL=...` line
184
- 3. If neither found → **skip all callbacks**
185
-
186
- **How to resolve CALLBACK_URL and CALLBACK_TOKEN:**
187
-
188
- The runner injects callback info directly into the prompt:
189
- ```
190
- POST {CALLBACK_URL}
191
- Authorization: Bearer {CALLBACK_TOKEN}
192
- ```
193
- The first agent (specifier) extracts these and passes them via dispatch XML to subsequent agents.
194
-
195
- **When to send:**
196
- - **START**: At the very beginning of agent execution (after STARTUP)
197
- - **DONE**: At the very end, before returning task-result XML
198
- - **FAILED**: On unrecoverable failure, before returning FAIL task-result
199
-
200
- **How to send** (single curl command):
201
- ```bash
202
- curl -s --connect-timeout 3 --max-time 5 -X POST "$CALLBACK_URL" \
203
- -H "Authorization: Bearer $CALLBACK_TOKEN" \
204
- -H "Content-Type: application/json" \
205
- -d '{"stage":"BUILDER","event":"START","workId":"WORK-09","taskId":"TASK-01"}' \
206
- 2>/dev/null || true
207
- ```
208
-
209
- - `--connect-timeout 3`: 연결 대기 최대 3초
210
- - `--max-time 5`: 전체 요청 최대 5초
211
- - `|| true`: 실패해도 agent 실행 계속
212
-
213
- **Include docs (actual file content, not references):**
214
- - specifier DONE: `"docs": {"requirementContent": "<Requirement.md content>"}`
215
- - planner DONE: `"docs": {"planContent": "<PLAN.md content>"}`
216
- - builder START: `"docs": {"taskContent": "<TASK-NN.md content>"}`
217
- - committer DONE: `"docs": {"resultContent": "<TASK-NN_result.md content>"}`
218
-
219
- **Token usage** (DONE event only, optional):
220
- ```json
221
- {"inputTokens": 1234, "outputTokens": 567, "cacheCreationTokens": 890, "cacheReadTokens": 456}
222
- ```
223
-
224
- Callback failure must NOT block agent execution. Always continue.
225
-
226
- ### 10-2. Activity Log
227
-
228
- Each agent records start/end to `works/{WORK_ID}/work_{WORK_ID}.log`.
229
-
230
- **All WORKs** — no CALLBACK_URL condition.
231
-
232
- **Timestamp:** Run `date -u +"%Y-%m-%dT%H:%M:%SZ"` via Bash tool to get the real UTC time. Do NOT use dummy/placeholder timestamps.
233
-
234
- **Format:**
235
- ```
236
- [2026-03-30T14:30:00Z] AGENT_EVENT — description
237
- ```
238
-
239
- **How to write:** Use Bash `echo "[timestamp] EVENT — description" >> works/{WORK_ID}/work_{WORK_ID}.log`
240
-
241
- **Required entries per agent (START and DONE only):**
242
- ```
243
- [{timestamp}] SPECIFIER_START — WORK-NN specifier started
244
- [{timestamp}] SPECIFIER_DONE — WORK-NN specifier completed
245
- [{timestamp}] BUILDER_START — TASK-NN implement
246
- [{timestamp}] BUILDER_DONE — TASK-NN complete
247
- [{timestamp}] VERIFIER_START — TASK-NN verification
248
- [{timestamp}] VERIFIER_DONE — TASK-NN verified
249
- [{timestamp}] COMMITTER_START — TASK-NN commit
250
- [{timestamp}] COMMITTER_DONE — TASK-NN committed
251
- ```
252
-
253
- Do NOT write INIT, REF, PLAN, DISPATCH or other intermediate entries. Only START and DONE per agent role.
254
-
255
- ---
256
-
257
- ## § 11. Project Discovery
258
-
259
- ```
260
- # 1. Check CLAUDE.md language setting
261
- Use Grep tool: pattern "Language:\s*[a-z]{2}" path="CLAUDE.md"
262
-
263
- # 2. Tech stack (read first 50/30/20/10 lines if file exists)
264
- Use Read tool: "package.json" (limit=50)
265
- Use Read tool: "pyproject.toml" (limit=30)
266
- Use Read tool: "Cargo.toml" (limit=20)
267
- Use Read tool: "go.mod" (limit=10)
268
-
269
- # 3. Structure (when needed)
270
- Use Glob tool: pattern "**/*.{md,json,toml}" (exclude node_modules)
170
+ - 폴백: "en"
271
171
  ```
272
172
 
273
173
  ---
274
174
 
275
- ## § 12. Bash Command Rules
276
-
277
- Bash commands MUST follow these rules for permission compatibility.
175
+ ## § 12. Bash 명령 규칙
278
176
 
279
- **MANDATORY:**
280
- - One simple command per Bash call — NO compound commands (`&&`, `||`, `;`, `|`)
281
- - NO `cd` — Bash tool cwd is always the project root. Never use `cd dir &&`, `cd dir ;`, or `cd dir` in any form. Use relative paths from project root
282
- - NO multi-line scripts — split into separate Bash calls
283
- - NO sub-shell expansions in arguments — e.g., `$(date ...)` inside `printf`
284
- - Use relative paths from project root (e.g., `works/WORK-01/`) — NO absolute paths
285
- - Use `git add file`, `git commit -m "msg"` — NO `git -C path` flag
177
+ Bash 명령은 권한 호환성을 위해 다음 규칙을 반드시 따라야 합니다.
286
178
 
287
- **For file operations, prefer dedicated tools over Bash:**
288
- - Read files `Read` tool (NOT `cat`)
289
- - Write/append files `Write` tool (NOT `echo >>` or `printf >>`)
290
- - Edit files `Edit` tool (NOT `sed -i`)
291
- - Search files `Grep` tool (NOT `grep`)
292
- - Find files `Glob` tool (NOT `find`)
179
+ **필수:**
180
+ - Bash 호출당 단순 명령 하나 — 복합 명령 금지 (`&&`, `||`, `;`, `|`)
181
+ - `cd` 금지 Bash 도구의 cwd는 항상 프로젝트 루트. `cd dir &&`, `cd dir ;`, `cd dir` 어떤 형태든 사용 금지. 프로젝트 루트 기준 상대 경로 사용
182
+ - 멀티라인 스크립트 금지 별도 Bash 호출로 분할
183
+ - 인수 서브셸 확장 금지 — 예: `printf` 안의 `$(date ...)`
184
+ - 프로젝트 루트 기준 상대 경로 사용 (예: `works/WORK-01/`) — 절대 경로 금지
185
+ - `git add file`, `git commit -m "msg"` 사용 — `git -C path` 플래그 금지
293
186
 
294
- **Activity log example:**
295
- ```
296
- WRONG: printf '[%s]_%s\n' "$(date ...)" "INIT" >> work.log
297
- RIGHT: Use Write tool to append a line to the log file
298
- ```
187
+ **파일 작업에는 Bash 대신 전용 도구를 우선 사용:**
188
+ - 파일 읽기 → `Read` 도구 (`cat` 아님)
189
+ - 파일 쓰기/추가 → `Write` 도구 (`echo >>` 또는 `printf >>` 아님)
190
+ - 파일 편집 `Edit` 도구 (`sed -i` 아님)
191
+ - 파일 검색 → `Grep` 도구 (`grep` 아님)
192
+ - 파일 찾기 → `Glob` 도구 (`find` 아님)
299
193
 
300
- **Git example:**
194
+ **Git 예시:**
301
195
  ```
302
- WRONG: cd /path/to/project && git add file && git commit -m "msg"
303
- RIGHT: git add file (one call)
304
- git commit -m "msg" (next call)
196
+ 잘못됨: cd /path/to/project && git add file && git commit -m "msg"
197
+ 올바름: git add file ( 번의 호출)
198
+ git commit -m "msg" (다음 호출)
305
199
  ```
306
200
 
307
201
  ---
@@ -309,4 +203,4 @@ RIGHT: git add file (one call)
309
203
  ## Version
310
204
 
311
205
  - Created: 2026-03-10
312
- - Updated: 2026-03-28
206
+ - Updated: 2026-03-31
@@ -1,26 +1,26 @@
1
- # Work Activity Log
2
-
3
- Records agent start/end events in `works/{WORK_ID}/work_{WORK_ID}.log`.
4
-
5
- ## Rules
6
-
7
- 1. **Timestamp**: Run `date -u +"%Y-%m-%dT%H:%M:%SZ"` via Bash to get real UTC time. Never use dummy values.
8
- 2. **Write method**: Use `Edit` tool to append. Do NOT use Bash for log writes.
9
- 3. **Entries**: Only START and DONE per agent role. No intermediate stages.
10
-
11
- ## Format
12
-
13
- ```
14
- [YYYY-MM-DDTHH:MM:SSZ] AGENT_EVENT — description
15
- ```
16
-
17
- ## Required Entries
18
-
19
- | Agent | START | DONE |
20
- |-------|-------|------|
21
- | specifier | `SPECIFIER_START — WORK-NN specifier started` | `SPECIFIER_DONE — WORK-NN specifier completed` |
22
- | planner | `PLANNER_START — WORK-NN planner started` | `PLANNER_DONE — WORK-NN planner completed` |
23
- | scheduler | `SCHEDULER_START — WORK-NN scheduler started` | `SCHEDULER_DONE — WORK-NN scheduler completed` |
24
- | builder | `BUILDER_START — TASK-NN implement` | `BUILDER_DONE — TASK-NN complete` |
25
- | verifier | `VERIFIER_START — TASK-NN verification` | `VERIFIER_DONE — TASK-NN verified` |
26
- | committer | `COMMITTER_START — TASK-NN commit` | `COMMITTER_DONE — TASK-NN committed` |
1
+ # 작업 활동 로그
2
+
3
+ `works/{WORK_ID}/work_{WORK_ID}.log`에 에이전트 시작/종료 이벤트를 기록.
4
+
5
+ ## 규칙
6
+
7
+ 1. **타임스탬프**: Bash로 `date -u +"%Y-%m-%dT%H:%M:%SZ"` 실행하여 실제 UTC 시간 획득. 더미 사용 금지.
8
+ 2. **기록 방법**: Bash `echo` 추가.
9
+ 3. **항목**: 에이전트 역할별 START DONE만. 중간 단계 없음.
10
+
11
+ ## 형식
12
+
13
+ ```
14
+ [YYYY-MM-DDTHH:MM:SSZ] AGENT_EVENT — description
15
+ ```
16
+
17
+ ## 필수 항목
18
+
19
+ | 에이전트 | START | DONE |
20
+ |----------|-------|------|
21
+ | specifier | `SPECIFIER_START — WORK-NN specifier started` | `SPECIFIER_DONE — WORK-NN specifier completed` |
22
+ | planner | `PLANNER_START — WORK-NN planner started` | `PLANNER_DONE — WORK-NN planner completed` |
23
+ | scheduler | `SCHEDULER_START — WORK-NN scheduler started` | `SCHEDULER_DONE — WORK-NN scheduler completed` |
24
+ | builder | `BUILDER_START — TASK-NN implement` | `BUILDER_DONE — TASK-NN complete` |
25
+ | verifier | `VERIFIER_START — TASK-NN verification` | `VERIFIER_DONE — TASK-NN verified` |
26
+ | committer | `COMMITTER_START — TASK-NN commit` | `COMMITTER_DONE — TASK-NN committed` |
@@ -1,120 +1,120 @@
1
- # Agent Communication XML Schema
1
+ # 에이전트 통신 XML 스키마
2
2
 
3
- XML communication format definition for uc-taskmanager agents.
3
+ uc-taskmanager 에이전트용 XML 통신 형식 정의.
4
4
 
5
5
  ---
6
6
 
7
- ## 1. Dispatch Format (DispatcherReceiver)
7
+ ## 1. Dispatch 형식 (디스패처수신자)
8
8
 
9
9
  ```xml
10
10
  <dispatch to="{receiver}" work="{WORK_ID}" task="{TASK_ID}" execution-mode="{direct|pipeline|full}">
11
- <ref-cache> <!-- optional -->
12
- <ref key="shared-prompt-sections">{file content}</ref>
13
- <ref key="file-content-schema">{file content}</ref>
14
- <ref key="xml-schema">{file content}</ref>
15
- <ref key="context-policy">{file content}</ref>
16
- <ref key="work-activity-log">{file content}</ref>
11
+ <ref-cache> <!-- 선택사항 -->
12
+ <ref key="shared-prompt-sections">{파일 내용}</ref>
13
+ <ref key="file-content-schema">{파일 내용}</ref>
14
+ <ref key="xml-schema">{파일 내용}</ref>
15
+ <ref key="context-policy">{파일 내용}</ref>
16
+ <ref key="work-activity-log">{파일 내용}</ref>
17
17
  </ref-cache>
18
- <references-dir>{absolute path to references directory}</references-dir>
18
+ <references-dir>{references 디렉토리 절대 경로}</references-dir>
19
19
  <context>
20
- <project>{project name}</project>
20
+ <project>{프로젝트 이름}</project>
21
21
  <language>{lang_code}</language>
22
22
  <plan-file>works/{WORK_ID}/PLAN.md</plan-file>
23
23
  </context>
24
24
  <task-spec>
25
25
  <file>works/{WORK_ID}/TASK-XX.md</file>
26
- <title>{title}</title>
26
+ <title>{제목}</title>
27
27
  <action>{implement|verify|commit|plan|route}</action>
28
- <description>{optional}</description>
28
+ <description>{선택사항}</description>
29
29
  </task-spec>
30
30
  <previous-results>
31
- <result task="{TASK_ID}" status="{PASS|FAIL|SKIP}">{summary}</result>
31
+ <result task="{TASK_ID}" status="{PASS|FAIL|SKIP}">{요약}</result>
32
32
  </previous-results>
33
33
  <cache-hint sections="{section1},{section2}"/>
34
34
  </dispatch>
35
35
  ```
36
36
 
37
- | Attribute | Value |
38
- |-----------|-------|
37
+ | 속성 | |
38
+ |------|-----|
39
39
  | `to` | builder, verifier, committer, planner, scheduler, specifier |
40
- | `task` | `TASK-NN` — WORK prefix must NOT be included |
41
- | `execution-mode` | direct / pipeline / full (defaults to full if omitted) |
40
+ | `task` | `TASK-NN` — WORK 접두사 포함 금지 |
41
+ | `execution-mode` | direct / pipeline / full (생략 full 기본값) |
42
42
 
43
43
  ---
44
44
 
45
- ## 2. Task Result Format (ReceiverDispatcher)
45
+ ## 2. Task Result 형식 (수신자디스패처)
46
46
 
47
47
  ```xml
48
48
  <task-result work="{WORK_ID}" task="{TASK_ID}" agent="{agent}" status="{PASS|FAIL}">
49
- <summary>{1-2 line summary}</summary>
49
+ <summary>{1-2 요약}</summary>
50
50
  <files-changed>
51
- <file action="{created|modified|deleted}" path="{path}">{description}</file>
51
+ <file action="{created|modified|deleted}" path="{path}">{설명}</file>
52
52
  </files-changed>
53
53
  <verification>
54
- <check name="{type}" status="{PASS|FAIL|N/A}">{output}</check>
54
+ <check name="{type}" status="{PASS|FAIL|N/A}">{출력}</check>
55
55
  </verification>
56
- <notes>{notes}</notes>
57
- <ref-cache> <!-- optional -->
58
- <ref key="shared-prompt-sections">{file content}</ref>
59
- <ref key="file-content-schema">{file content}</ref>
60
- <ref key="xml-schema">{file content}</ref>
61
- <ref key="context-policy">{file content}</ref>
62
- <ref key="work-activity-log">{file content}</ref>
56
+ <notes>{메모}</notes>
57
+ <ref-cache> <!-- 선택사항 -->
58
+ <ref key="shared-prompt-sections">{파일 내용}</ref>
59
+ <ref key="file-content-schema">{파일 내용}</ref>
60
+ <ref key="xml-schema">{파일 내용}</ref>
61
+ <ref key="context-policy">{파일 내용}</ref>
62
+ <ref key="work-activity-log">{파일 내용}</ref>
63
63
  </ref-cache>
64
64
  </task-result>
65
65
  ```
66
66
 
67
67
  ---
68
68
 
69
- ## 3. Context-Handoff Element
69
+ ## 3. Context-Handoff 요소
70
70
 
71
71
  ```xml
72
72
  <context-handoff from="{agent}" detail-level="{FULL|SUMMARY|DROP}">
73
- <what>{changes/verification details}</what>
74
- <why>{decision rationale}</why> <!-- FULL only -->
75
- <caution>{caveats}</caution> <!-- FULL only -->
76
- <incomplete>{incomplete items}</incomplete> <!-- FULL only -->
73
+ <what>{변경/검증 상세}</what>
74
+ <why>{결정 근거}</why> <!-- FULL -->
75
+ <caution>{주의사항}</caution> <!-- FULL -->
76
+ <incomplete>{미완료 항목}</incomplete> <!-- FULL -->
77
77
  </context-handoff>
78
78
  ```
79
79
 
80
- | detail-level | Included Fields |
80
+ | detail-level | 포함 필드 |
81
81
  |:---:|---|
82
82
  | `FULL` | what, why, caution, incomplete |
83
- | `SUMMARY` | what only (1-3 lines) |
84
- | `DROP` | Element omitted |
83
+ | `SUMMARY` | what (1-3) |
84
+ | `DROP` | 요소 생략 |
85
85
 
86
86
  ---
87
87
 
88
- ## 4. ref-cache Element Definition
88
+ ## 4. ref-cache 요소 정의
89
89
 
90
- `<ref-cache>` is an optional container element that carries pre-loaded reference file contents within dispatch and task-result XML. When present, receiving agents MUST use these contents instead of reading files from disk.
90
+ `<ref-cache>`는 dispatch task-result XML 내에서 미리 로딩된 레퍼런스 파일 내용을 전달하는 선택적 컨테이너 요소입니다. 존재할 경우, 수신 에이전트는 디스크에서 파일을 읽는 대신 반드시 내용을 사용해야 합니다.
91
91
 
92
- ### Structure
92
+ ### 구조
93
93
 
94
94
  ```xml
95
95
  <ref-cache>
96
- <ref key="{filename-without-extension}">{full file content}</ref>
96
+ <ref key="{확장자 없는 파일명}">{전체 파일 내용}</ref>
97
97
  ...
98
98
  </ref-cache>
99
99
  ```
100
100
 
101
- | Element | Required | Description |
102
- |---------|----------|-------------|
103
- | `<ref-cache>` | Optional | Container for cached reference files. Omit entirely if no cache is available. |
104
- | `<ref key="...">` | — | Individual reference file. `key` is the filename without extension (e.g., `shared-prompt-sections`). |
101
+ | 요소 | 필수 | 설명 |
102
+ |------|------|------|
103
+ | `<ref-cache>` | 선택 | 캐시된 레퍼런스 파일 컨테이너. 캐시가 없으면 전체 생략. |
104
+ | `<ref key="...">` | — | 개별 레퍼런스 파일. `key`는 확장자 없는 파일명 (예: `shared-prompt-sections`). |
105
105
 
106
- ### Recognized Keys
106
+ ### 인식되는
107
107
 
108
- | Key | Corresponding File |
109
- |-----|--------------------|
108
+ | | 대응 파일 |
109
+ |-----|-----------|
110
110
  | `shared-prompt-sections` | `{REFERENCES_DIR}/shared-prompt-sections.md` |
111
111
  | `file-content-schema` | `{REFERENCES_DIR}/file-content-schema.md` |
112
112
  | `xml-schema` | `{REFERENCES_DIR}/xml-schema.md` |
113
113
  | `context-policy` | `{REFERENCES_DIR}/context-policy.md` |
114
114
  | `work-activity-log` | `{REFERENCES_DIR}/work-activity-log.md` |
115
115
 
116
- ### Backward Compatibility
116
+ ### 하위 호환성
117
117
 
118
- - Dispatch or task-result XML without `<ref-cache>` is fully valid agents fall back to reading files from `REFERENCES_DIR`.
119
- - Agents that do not yet support ref-cache simply ignore the element and read files normally.
120
- - Partial ref-cache (only some keys present) is allowed missing keys are read from disk.
118
+ - `<ref-cache>` 없는 dispatch 또는 task-result XML 완전히 유효에이전트는 `REFERENCES_DIR`에서 파일을 읽는 것으로 폴백.
119
+ - ref-cache 아직 지원하지 않는 에이전트는 해당 요소를 무시하고 정상적으로 파일을 읽음.
120
+ - 부분적 ref-cache (일부 키만 존재) 허용없는 키는 디스크에서 읽음.