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,69 +1,69 @@
1
- # Context Handoff Policy
1
+ # Context Handoff 정책
2
2
 
3
- Sliding window context transfer rules between agents.
3
+ 에이전트 슬라이딩 윈도우 컨텍스트 전달 규칙.
4
4
 
5
- ## Sliding Window
5
+ ## 슬라이딩 윈도우
6
6
 
7
- | Step Distance | Detail Level | Rule |
8
- |---------------|-------------|------|
9
- | Immediate (1 step) | `FULL` | All 4 fields transmitted |
10
- | 2 steps back | `SUMMARY` | `what` field only, 1-3 lines |
11
- | 3+ steps back | `DROP` | Omitted |
7
+ | 단계 거리 | 상세 레벨 | 규칙 |
8
+ |-----------|----------|------|
9
+ | 직전 (1단계) | `FULL` | 4 필드 모두 전달 |
10
+ | 2단계 | `SUMMARY` | `what` 필드만, 1-3 |
11
+ | 3단계+ | `DROP` | 생략 |
12
12
 
13
- ## Context-Handoff 4 Fields
13
+ ## Context-Handoff 4 필드
14
14
 
15
- | Field | FULL | SUMMARY | Content |
16
- |-------|:----:|:-------:|---------|
17
- | `what` | ✅ | ✅ | Summary of changes/verification (2-5 lines) |
18
- | `why` | ✅ | ❌ | Decision rationale (2-4 lines) |
19
- | `caution` | ✅ | ❌ | Caveats, conditional completion (1-3 lines) |
20
- | `incomplete` | ✅ | ❌ | Incomplete items (1-2 lines, "None" if empty) |
15
+ | 필드 | FULL | SUMMARY | 내용 |
16
+ |------|:----:|:-------:|------|
17
+ | `what` | ✅ | ✅ | 변경/검증 요약 (2-5) |
18
+ | `why` | ✅ | ❌ | 결정 근거 (2-4) |
19
+ | `caution` | ✅ | ❌ | 주의사항, 조건부 완료 (1-3) |
20
+ | `incomplete` | ✅ | ❌ | 미완료 항목 (1-2줄, 없으면 "None") |
21
21
 
22
- ## Pipeline Stage Input/Output
22
+ ## 파이프라인 단계별 입출력
23
23
 
24
24
  ### Builder
25
25
 
26
- Input: TASK spec + dependent TASK result.md context-handoff (sliding window)
26
+ 입력: TASK 스펙 + 의존 TASK result.md context-handoff (슬라이딩 윈도우)
27
27
 
28
- Output:
28
+ 출력:
29
29
  ```xml
30
30
  <task-result status="PASS|FAIL">
31
31
  <context-handoff from="builder" detail-level="FULL">
32
- <what>Changes made</what><why>Rationale</why><caution>Caveats</caution><incomplete>Incomplete items</incomplete>
32
+ <what>변경 내용</what><why>근거</why><caution>주의사항</caution><incomplete>미완료 항목</incomplete>
33
33
  </context-handoff>
34
34
  </task-result>
35
35
  ```
36
36
 
37
37
  ### Verifier
38
38
 
39
- Input: TASK spec + Builder context-handoff (FULL)
39
+ 입력: TASK 스펙 + Builder context-handoff (FULL)
40
40
 
41
- Output:
41
+ 출력:
42
42
  ```xml
43
43
  <task-result status="PASS|FAIL">
44
44
  <context-handoff from="verifier" detail-level="FULL">
45
- <what>Verification results</what><why>Judgment rationale</why><caution>Manual checks needed</caution><incomplete>Items that could not be verified</incomplete>
45
+ <what>검증 결과</what><why>판단 근거</why><caution>수동 확인 필요 항목</caution><incomplete>검증할 없었던 항목</incomplete>
46
46
  </context-handoff>
47
47
  </task-result>
48
48
  ```
49
49
 
50
50
  ### Committer
51
51
 
52
- Input: Verifier context-handoff (FULL) + Builder context-handoff (SUMMARY)
52
+ 입력: Verifier context-handoff (FULL) + Builder context-handoff (SUMMARY)
53
53
 
54
- Processing:
55
- 1. Verify builder completed successfully (check context-handoff status)
56
- 2. Write result.md + git commit
54
+ 처리:
55
+ 1. builder 성공 여부 확인 (context-handoff 상태 확인)
56
+ 2. result.md 작성 + git commit
57
57
 
58
- Output: → `{REFERENCES_DIR}/file-content-schema.md` § 4 reference
58
+ 출력: → `{REFERENCES_DIR}/file-content-schema.md` § 4 참조
59
59
 
60
- ## Inter-TASK Dependency Transfer
60
+ ## TASK 의존성 전달
61
61
 
62
- - Immediate dependent TASK: context-handoff **FULL** (all 4 fields)
63
- - 2 steps back: **SUMMARY** (what only)
64
- - 3+ steps back: **DROP**
62
+ - 직전 의존 TASK: context-handoff **FULL** (4 필드 모두)
63
+ - 2단계 전: **SUMMARY** (what)
64
+ - 3단계+: **DROP**
65
65
 
66
- ## Scheduler Dispatch
66
+ ## Scheduler 디스패치
67
67
 
68
68
  ```xml
69
69
  <!-- Verifier: Builder FULL -->
@@ -77,7 +77,7 @@ Output: → `{REFERENCES_DIR}/file-content-schema.md` § 4 reference
77
77
  <context-handoff from="builder" detail-level="SUMMARY"><what>...</what></context-handoff>
78
78
  </dispatch>
79
79
 
80
- <!-- Next TASK Builder: dependency distance applied -->
80
+ <!-- 다음 TASK Builder: 의존성 거리 적용 -->
81
81
  <dispatch to="builder" task="TASK-YY">
82
82
  <previous-results>
83
83
  <context-handoff from="prev-task" task="TASK-XX" detail-level="FULL">...</context-handoff>
@@ -86,8 +86,8 @@ Output: → `{REFERENCES_DIR}/file-content-schema.md` § 4 reference
86
86
  </dispatch>
87
87
  ```
88
88
 
89
- ## Committer Retry
89
+ ## Committer 재시도
90
90
 
91
- 1. Failure cause: verification FAIL / No files changed
92
- 2. Re-dispatch to builder
93
- 3. Maximum 2 retries (3 attempts total). 3 failures → TASK FAILED, pipeline halted
91
+ 1. 실패 원인: 검증 FAIL / 변경 파일 없음
92
+ 2. builder에 재디스패치
93
+ 3. 최대 2 재시도 (3 시도). 3 실패 → TASK FAILED, 파이프라인 중단
@@ -1,27 +1,28 @@
1
- # File Content Schema
1
+ # 파일 내용 스키마
2
2
 
3
- Single source of truth for pipeline artifact file formats.
3
+ 파이프라인 산출물 파일 형식의 단일 정의 소스.
4
4
 
5
- ## COMPLIANCE
5
+ ## 준수사항
6
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_result.md` | § 3 | context-handoff missing |
12
- | `TASK-XX_result.md` (direct) | § 4 | result.md recognition failure |
7
+ | 생성 파일 | 참조 섹션 | 위반 결과 |
8
+ |-----------|----------|-------------|
9
+ | `Requirement.md` | § 0 | |
10
+ | `PLAN.md` | § 1 | `parsePlanMd()` 파싱 실패, scheduler 작동 불가 |
11
+ | `TASK-XX.md` | § 2 | `parseTaskFilename()` DB 등록 누락 |
12
+ | `TASK-XX_result.md` | § 3 | context-handoff 누락 |
13
+ | `TASK-XX_result.md` (direct) | § 4 | result.md 인식 실패 |
13
14
 
14
15
  ---
15
16
 
16
17
  ## § 0. Requirement.md
17
18
 
18
- Path: `works/{WORK_ID}/Requirement.md`
19
+ 경로: `works/{WORK_ID}/Requirement.md`
19
20
 
20
21
  ```markdown
21
22
  # Requirement — WORK-NN
22
23
 
23
24
  ## Original Request
24
- > User's exact input
25
+ > 사용자의 정확한 입력
25
26
 
26
27
  ## Functional Requirements
27
28
  - FR-01: ...
@@ -31,100 +32,168 @@ Path: `works/{WORK_ID}/Requirement.md`
31
32
  - NFR-01: ...
32
33
 
33
34
  ## Acceptance Criteria
34
- - [ ] Verifiable criteria
35
+ - [ ] 검증 가능한 기준
35
36
  ```
36
37
 
37
- Created by: Specifier (mandatory for all requests)
38
+ 생성 주체: Specifier (모든 요청에 필수)
38
39
 
39
40
  ---
40
41
 
41
42
  ## § 1. PLAN.md
42
43
 
43
- Path: `works/{WORK_ID}/PLAN.md`
44
+ 경로: `works/{WORK_ID}/PLAN.md`
45
+
46
+ > 요구사항 수준에 따라 ## 설계 이하 간략화 가능
44
47
 
45
48
  ```markdown
46
- # WORK-01: {title}
49
+ # WORK-01: {제목}
47
50
 
48
51
  > Created: {YYYY-MM-DD}
49
- > Requirement: {REQ-XXX | user request text}
52
+ > Requirement: {REQ-XXX | 사용자 요청 텍스트}
50
53
  > Execution-Mode: {direct | pipeline | full}
51
- > Project: {project name}
52
- > Tech Stack: {stack}
54
+ > Project: {프로젝트 이름}
55
+ > Tech Stack: {스택}
53
56
  > Language: {lang_code}
54
57
  > Status: PLANNED
55
58
 
56
- ## Goal
57
- {1-2 sentences}
59
+ ## 목표
60
+ {1-2문장}
61
+
62
+ ## 설계
63
+
64
+ ### 1. 아키텍처 방향
65
+
66
+ - **접근 방식**: 신규 구축 / 기존 수정 / 확장
67
+ - **구조**: (계층형, 이벤트 기반, 마이크로서비스 등)
68
+ - **데이터 흐름**: (입력 → 처리 → 출력 경로 요약)
69
+
70
+ ### 2. 데이터 설계
71
+
72
+ | 항목 | 내용 |
73
+ |------|------|
74
+ | 스키마 변경 | 있음 / 없음 |
75
+ | 마이그레이션 필요 | 있음 / 없음 |
76
+ | 변경 내용 | |
77
+
78
+ ### 3. 인터페이스 설계
79
+
80
+ | 인터페이스 | 방식 | 엔드포인트/형식 | 관련 FR |
81
+ |-----------|------|---------------|--------|
82
+ | | REST / GraphQL / gRPC / 파일 | | |
83
+
84
+ ### 4. NFR 대응 설계
85
+
86
+ | NFR ID | 요구사항 | 대응 방안 |
87
+ |--------|---------|----------|
88
+ | NFR-01 | | |
89
+ | NFR-02 | | |
90
+
91
+ ## 작업 목록
92
+
93
+ | Task ID | 제목 | 의존관계 | Phase | 우선순위 | 매핑 FR/NFR | 예상 규모 |
94
+ |---------|------|---------|-------|---------|------------|----------|
95
+ | TASK-01 | | 없음 | 1 | Must | FR-01 | S/M/L |
96
+ | TASK-02 | | TASK-01 | 2 | Must | FR-02, NFR-01 | S/M/L |
97
+ | TASK-03 | | 없음 | 1 | Should | FR-03 | S/M/L |
98
+ | | | | | | | |
58
99
 
59
- ## Task Dependency Graph
60
- {ASCII diagram}
61
100
 
62
- ## Tasks
101
+ ## Task 의존성 그래프
102
+ {ASCII 다이어그램}
63
103
 
64
- ### TASK-00: {title}
65
- - **Depends on**: (none)
66
- - **Scope**: {description}
67
- - **Files**:
68
- - `path/to/file` — {description}
104
+ ## 리스크 및 대응
69
105
 
70
- ### TASK-01: {title}
71
- - **Depends on**: TASK-00
106
+ | # | 리스크 | 발생 가능성 | 영향도 | 대응 전략 | 비고 |
107
+ |---|--------|-----------|-------|----------|------|
108
+ | R-01 | | 높/중/낮 | 높/중/낮 | 회피 / 완화 / 수용 | |
109
+ | R-02 | | | | | |
110
+
111
+ ---
112
+
113
+ ## 추적성 매트릭스
114
+
115
+ | 원본 요청 | FR/NFR | Task | 인수 기준 | 검증 방법 |
116
+ |----------|--------|------|----------|----------|
117
+ | | FR-01 | TASK-01 | AC-01 | 단위테스트 / 수동확인 / 자동화 |
118
+ | | FR-02 | TASK-02 | AC-02 | |
119
+ | | NFR-01 | TASK-02 | AC-03 | |
120
+
121
+ ---
122
+
123
+ ## 자체 검증 체크리스트
124
+
125
+ - [ ] 모든 FR이 최소 1개 Task에 매핑됨
126
+ - [ ] 모든 NFR이 설계 또는 Task에 반영됨
127
+ - [ ] Task 간 순환 의존 없음
128
+ - [ ] 제약조건 내 실현 가능
129
+ - [ ] 각 Task에 완료 조건이 있음
130
+ - [ ] 리스크가 식별되고 대응 전략이 있음
131
+ - [ ] 실행 순서가 의존관계와 일치함
132
+
133
+ ---
72
134
  ```
73
135
 
74
- Title format: `# WORK-NN: title` — `# PLAN WORK-NN:` is prohibited (`parsePlanMd()` error)
136
+ 제목 형식: `# WORK-NN: title` — `# PLAN WORK-NN:` 금지 (`parsePlanMd()` 오류)
75
137
 
76
138
  ---
77
139
 
78
140
  ## § 2. TASK-XX.md
79
141
 
80
- Path: `works/{WORK_ID}/TASK-XX.md`
142
+ 경로: `works/{WORK_ID}/TASK-XX.md`
81
143
 
82
- > `parseTaskFilename()` regex: `/^TASK-(\d+)\.md$/` — WORK prefix prohibited
144
+ > `parseTaskFilename()` regex: `/^TASK-(\d+)\.md$/` — WORK 접두사 금지
83
145
 
84
146
  ```markdown
85
- # TASK-XX: {title}
147
+ # TASK-XX: {제목}
86
148
 
87
149
  ## WORK
88
- {WORK_ID}: {WORK title}
150
+ {WORK_ID}: {WORK 제목}
151
+
152
+ ## Task 개요
89
153
 
90
- ## Dependencies
91
- - TASK-YY (required)
154
+ | 항목 | 내용 |
155
+ |------|------|
156
+ | 목적 | (이 Task가 완료되면 무엇이 달라지는가) |
157
+ | 매핑 요구사항 | FR-{NN}, NFR-{NN} |
158
+ | 우선순위 | Must / Should / Could |
159
+ | 예상 규모 | S / M / L |
160
+ | 의존관계 | 없음 / TASK-{NN} 완료 후 |
161
+ | Phase | Phase {N} |
92
162
 
93
163
  ## Scope
94
- {description}
164
+ {설명}
95
165
 
96
166
  ## Files
97
167
  | Path | Action | Description |
98
168
  |------|--------|-------------|
99
- | `src/file.ts` | CREATE | description |
169
+ | `src/file.ts` | CREATE | 설명 |
100
170
 
101
171
  ## Acceptance Criteria
102
- - [ ] {criterion}
172
+ - [ ] {기준}
103
173
 
104
174
  ## Verify
105
175
  ```bash
106
- {verification commands}
107
- ```
176
+ {검증 명령}
108
177
  ```
109
178
 
110
179
  ---
111
180
 
112
181
  ## § 3. TASK-XX_result.md (full / pipeline)
113
182
 
114
- Path: `works/{WORK_ID}/TASK-XX_result.md`
183
+ 경로: `works/{WORK_ID}/TASK-XX_result.md`
115
184
 
116
185
  ```markdown
117
186
  # TASK-XX Result
118
187
 
119
- > WORK: {WORK_ID} — {title}
188
+ > WORK: {WORK_ID} — {제목}
120
189
  > Completed: {YYYY-MM-DD HH:MM}
121
190
  > Status: **DONE**
122
191
 
123
192
  {## Summary | ## 요약 | ## サマリー}
124
- {1-2 lines}
193
+ {1-2}
125
194
 
126
195
  {## Completed Checklist | ## 완료 체크리스트 | ## 完了チェックリスト}
127
- - [x] {item}
196
+ - [x] {항목}
128
197
 
129
198
  {## Verification Results | ## 검증 결과 | ## 検証結果}
130
199
  - Build: ✅
@@ -133,7 +202,7 @@ Path: `works/{WORK_ID}/TASK-XX_result.md`
133
202
 
134
203
  {## Files Changed | ## 변경 파일 | ## 変更ファイル}
135
204
  ### Created
136
- - `path` — {description}
205
+ - `path` — {설명}
137
206
 
138
207
  {## Issues Encountered | ## 발생 이슈 | ## 発生した問題}
139
208
  None
@@ -144,14 +213,14 @@ None
144
213
  {## Context Handoff | ## 컨텍스트 핸드오프 | ## コンテキスト引き継ぎ}
145
214
 
146
215
  ### Builder Context (SUMMARY)
147
- {builder what field 1-3 lines}
216
+ {builder what 필드 1-3}
148
217
 
149
218
  ### Verifier Context (FULL)
150
- {verifier context-handoff 4 fields}
219
+ {verifier context-handoff 4 필드}
151
220
  ```
152
221
 
153
- | Section | en | ko | ja |
154
- |---------|----|----|-----|
222
+ | 섹션 | en | ko | ja |
223
+ |------|----|----|-----|
155
224
  | Summary | `## Summary` | `## 요약` | `## サマリー` |
156
225
  | Completed Checklist | `## Completed Checklist` | `## 완료 체크리스트` | `## 完了チェックリスト` |
157
226
  | Verification Results | `## Verification Results` | `## 검증 결과` | `## 検証結果` |
@@ -162,37 +231,37 @@ None
162
231
 
163
232
  ---
164
233
 
165
- ## § 4. TASK-XX_result.md (direct mode)
234
+ ## § 4. TASK-XX_result.md (direct 모드)
166
235
 
167
236
  ```markdown
168
237
  # TASK-00 Result
169
238
 
170
- > WORK: WORK-NN — {title}
239
+ > WORK: WORK-NN — {제목}
171
240
  > Completed: {YYYY-MM-DD HH:MM}
172
241
  > Execution-Mode: direct
173
242
  > Status: **DONE**
174
243
 
175
- ## Summary
176
- {1 line}
244
+ ## 요약
245
+ {1}
177
246
 
178
- ## Files Changed
179
- - `{path}` — {description}
247
+ ## 변경 파일
248
+ - `{path}` — {설명}
180
249
 
181
- ## Verification
250
+ ## 검증
182
251
  - Build: PASS (self-check)
183
252
  - Lint: PASS (self-check)
184
253
  ```
185
254
 
186
255
  ---
187
256
 
188
- ## § 5. File Naming Rules
257
+ ## § 5. 파일 이름 규칙
189
258
 
190
- | Type | Format | Created By |
191
- |------|--------|------------|
192
- | Requirement | `Requirement.md` | specifier |
193
- | WORK plan | `PLAN.md` | planner / specifier |
194
- | TASK plan | `TASK-NN.md` | planner / specifier |
195
- | TASK result | `TASK-NN_result.md` | committer |
196
- | Activity log | `work_WORK-NN.log` | all agents (append) |
259
+ | 유형 | 형식 | 생성 주체 |
260
+ |------|------|-----------|
261
+ | 요구사항 | `Requirement.md` | specifier |
262
+ | WORK 계획 | `PLAN.md` | planner / specifier |
263
+ | TASK 계획 | `TASK-NN.md` | planner / specifier |
264
+ | TASK 결과 | `TASK-NN_result.md` | committer |
265
+ | 활동 로그 | `work_WORK-NN.log` | 모든 에이전트 (추가) |
197
266
 
198
- `WORK-NN-TASK-NN.md` format prohibited → `parseTaskFilename()` cannot recognize it.
267
+ `WORK-NN-TASK-NN.md` 형식 금지 → `parseTaskFilename()`이 인식할 없음.
@@ -1,31 +1,31 @@
1
- # ref-cache Protocol
2
-
3
- ## Overview
4
-
5
- ref-cache is a mechanism to avoid redundant file reads across sub-agent invocations within a pipeline.
6
- Reference files are passed between agents via `<ref-cache>` XML elements instead of being re-read from disk each time.
7
-
8
- ## Protocol (4 Steps)
9
-
10
- 1. **Check** if `<ref-cache>` exists in the received dispatch XML
11
- 2. For each required reference file:
12
- - If present in ref-cache → **SKIP file read**, use cached content
13
- - If absent from ref-cache → Read from `{REFERENCES_DIR}/{filename}.md` and add to ref-cache
14
- 3. On task completion, include the merged `<ref-cache>` in the returned task-result XML
15
- 4. **Backward compatibility**: If dispatch contains no `<ref-cache>`, read all reference files normally (existing behavior)
16
-
17
- ## ref-cache XML Format
18
-
19
- See `xml-schema.md` § 4 for the full schema.
20
-
21
- ```xml
22
- <ref-cache>
23
- <ref key="file-content-schema">...content...</ref>
24
- <ref key="shared-prompt-sections">...content...</ref>
25
- <!-- one <ref> per loaded reference file -->
26
- </ref-cache>
27
- ```
28
-
29
- ## Chain Propagation
30
-
31
- See `agent-flow.md` § ref-cache Chain Propagation for how ref-cache flows between agents in the pipeline.
1
+ # ref-cache 프로토콜
2
+
3
+ ## 개요
4
+
5
+ ref-cache 파이프라인 서브에이전트 호출 중복 파일 읽기를 방지하는 메커니즘입니다.
6
+ 레퍼런스 파일이 매번 디스크에서 다시 읽히는 대신 `<ref-cache>` XML 요소를 통해 에이전트 간에 전달됩니다.
7
+
8
+ ## 프로토콜 (4단계)
9
+
10
+ 1. 수신한 dispatch XML에 `<ref-cache>`가 있는지 **확인**
11
+ 2. 필수 레퍼런스 파일에 대해:
12
+ - ref-cache 있으면 **파일 읽기 건너뛰기**, 캐시된 내용 사용
13
+ - ref-cache 없으면 → `{REFERENCES_DIR}/{filename}.md`에서 읽고 ref-cache에 추가
14
+ 3. 작업 완료 시, 반환하는 task-result XML에 병합된 `<ref-cache>` 포함
15
+ 4. **하위 호환성**: dispatch `<ref-cache>`가 없으면 모든 레퍼런스 파일을 정상적으로 읽기 (기존 동작)
16
+
17
+ ## ref-cache XML 형식
18
+
19
+ 전체 스키마는 `xml-schema.md` § 4 참조.
20
+
21
+ ```xml
22
+ <ref-cache>
23
+ <ref key="file-content-schema">...내용...</ref>
24
+ <ref key="shared-prompt-sections">...내용...</ref>
25
+ <!-- 로딩된 레퍼런스 파일당 하나의 <ref> -->
26
+ </ref-cache>
27
+ ```
28
+
29
+ ## 체인 전파
30
+
31
+ 파이프라인에서 ref-cache가 에이전트 간에 어떻게 흐르는지는 `agent-flow.md` § ref-cache Chain Propagation 참조.