uctm 1.2.0 → 1.3.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/README.md +58 -57
- package/agents/en/agent-flow.md +152 -106
- package/agents/en/file-content-schema.md +30 -4
- package/agents/en/planner.md +28 -19
- package/agents/en/shared-prompt-sections.md +1 -0
- package/agents/en/specifier.md +202 -0
- package/agents/en/work-activity-log.md +45 -45
- package/agents/en/xml-schema.md +108 -109
- package/agents/ko/agent-flow.md +152 -106
- package/agents/ko/file-content-schema.md +30 -4
- package/agents/ko/planner.md +28 -19
- package/agents/ko/shared-prompt-sections.md +1 -0
- package/agents/ko/specifier.md +202 -0
- package/agents/ko/work-activity-log.md +45 -45
- package/agents/ko/xml-schema.md +108 -109
- package/bin/cli.mjs +1 -1
- package/lib/constants.mjs +3 -1
- package/package.json +1 -1
- package/agents/en/router.md +0 -165
- package/agents/ko/router.md +0 -164
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
# Work Activity Log
|
|
2
|
-
|
|
3
|
-
각 에이전트가 WORK 진행 상황을 `works/{WORK_ID}/work_{WORK_ID}.log` 파일에 기록하는 규칙을 정의한다.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 1. 작업 단계 및 로그 기록 내용
|
|
8
|
-
* 최초 실행 시 : 수신한 프롬프트 메시지** Agent 시작 시 수신한 프롬프트 메시지 내용 (Required 필수)
|
|
9
|
-
* Callback 호출 시 : 호출한 Callback URL, 성공여부, Payload, Respoonse (Required 필수)
|
|
10
|
-
* 작업 진행 시 : 작업항목 및 작업내용
|
|
11
|
-
* 수행작업 완료 시 : 타 Agent에 전송한 프롬프트 메시지** Agent 시작 시 수신한 프롬프트 메시지 내용 (Required 필수)
|
|
12
|
-
|
|
13
|
-
## log_work 함수
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
AGENT_NAME="
|
|
17
|
-
|
|
18
|
-
log_work() {
|
|
19
|
-
local WORK_ID="$1" AGENT="$2" STAGE="$3" DESC="$4"
|
|
20
|
-
mkdir -p "works/${WORK_ID}"
|
|
21
|
-
printf '[%s]_%s_%s_%s\n' \
|
|
22
|
-
"$(date '+%Y-%m-%dT%H:%M:%S')" "$AGENT" "$STAGE" "$DESC" \
|
|
23
|
-
>> "works/${WORK_ID}/work_${WORK_ID}.log"
|
|
24
|
-
}
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## STAGE 테이블
|
|
30
|
-
|
|
31
|
-
| STAGE | 시점 | 설명 예시 |
|
|
32
|
-
|-------|------|-----------|
|
|
33
|
-
| `INIT` | WORK_ID 결정 후 | `WORK-NN 생성 — Execution-Mode: direct/pipeline/full` |
|
|
34
|
-
| `REF` | STARTUP 참조 직후 | `참조: CLAUDE.md, .agent/router_rule_config.json, agents/file-content-schema.md` |
|
|
35
|
-
| `PLAN` | PLAN.md + TASK 파일 생성 완료 | `PLAN.md, TASK-00.md 생성 완료` |
|
|
36
|
-
| `IMPL` | direct 모드 코드 구현 시작 | `코드 구현 시작 — 참조: {수정 대상 파일 목록}` |
|
|
37
|
-
| `BUILD` | self-check 통과 | `빌드/린트 통과` |
|
|
38
|
-
| `COMMIT` | git commit 완료 | `commit {hash}` |
|
|
39
|
-
| `DISPATCH` | pipeline/full dispatch | `Builder dispatch` 또는 `Planner dispatch` |
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## 참조 자료 수집 규칙
|
|
44
|
-
|
|
45
|
-
STARTUP에서 읽은 파일과 이후 탐색한 파일을 누적 추적하여 `REF` 단계에서 한 번에 기록.
|
|
1
|
+
# Work Activity Log
|
|
2
|
+
|
|
3
|
+
각 에이전트가 WORK 진행 상황을 `works/{WORK_ID}/work_{WORK_ID}.log` 파일에 기록하는 규칙을 정의한다.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 1. 작업 단계 및 로그 기록 내용
|
|
8
|
+
* 최초 실행 시 : 수신한 프롬프트 메시지** Agent 시작 시 수신한 프롬프트 메시지 내용 (Required 필수)
|
|
9
|
+
* Callback 호출 시 : 호출한 Callback URL, 성공여부, Payload, Respoonse (Required 필수)
|
|
10
|
+
* 작업 진행 시 : 작업항목 및 작업내용
|
|
11
|
+
* 수행작업 완료 시 : 타 Agent에 전송한 프롬프트 메시지** Agent 시작 시 수신한 프롬프트 메시지 내용 (Required 필수)
|
|
12
|
+
|
|
13
|
+
## log_work 함수
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
AGENT_NAME="SPECIFIER" # 각 에이전트 파일에서 적절히 설정
|
|
17
|
+
|
|
18
|
+
log_work() {
|
|
19
|
+
local WORK_ID="$1" AGENT="$2" STAGE="$3" DESC="$4"
|
|
20
|
+
mkdir -p "works/${WORK_ID}"
|
|
21
|
+
printf '[%s]_%s_%s_%s\n' \
|
|
22
|
+
"$(date '+%Y-%m-%dT%H:%M:%S')" "$AGENT" "$STAGE" "$DESC" \
|
|
23
|
+
>> "works/${WORK_ID}/work_${WORK_ID}.log"
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## STAGE 테이블
|
|
30
|
+
|
|
31
|
+
| STAGE | 시점 | 설명 예시 |
|
|
32
|
+
|-------|------|-----------|
|
|
33
|
+
| `INIT` | WORK_ID 결정 후 | `WORK-NN 생성 — Execution-Mode: direct/pipeline/full` |
|
|
34
|
+
| `REF` | STARTUP 참조 직후 | `참조: CLAUDE.md, .agent/router_rule_config.json, agents/file-content-schema.md` |
|
|
35
|
+
| `PLAN` | PLAN.md + TASK 파일 생성 완료 | `PLAN.md, TASK-00.md 생성 완료` |
|
|
36
|
+
| `IMPL` | direct 모드 코드 구현 시작 | `코드 구현 시작 — 참조: {수정 대상 파일 목록}` |
|
|
37
|
+
| `BUILD` | self-check 통과 | `빌드/린트 통과` |
|
|
38
|
+
| `COMMIT` | git commit 완료 | `commit {hash}` |
|
|
39
|
+
| `DISPATCH` | pipeline/full dispatch | `Builder dispatch` 또는 `Planner dispatch` |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 참조 자료 수집 규칙
|
|
44
|
+
|
|
45
|
+
STARTUP에서 읽은 파일과 이후 탐색한 파일을 누적 추적하여 `REF` 단계에서 한 번에 기록.
|
package/agents/ko/xml-schema.md
CHANGED
|
@@ -1,109 +1,108 @@
|
|
|
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
|
-
<context>
|
|
12
|
-
<project>{project name}</project>
|
|
13
|
-
<language>{lang_code}</language>
|
|
14
|
-
<plan-file>works/{WORK_ID}/PLAN.md</plan-file>
|
|
15
|
-
</context>
|
|
16
|
-
<task-spec>
|
|
17
|
-
<file>works/{WORK_ID}/TASK-XX.md</file>
|
|
18
|
-
<title>{title}</title>
|
|
19
|
-
<action>{implement|verify|commit|plan|route}</action>
|
|
20
|
-
<description>{optional}</description>
|
|
21
|
-
</task-spec>
|
|
22
|
-
<previous-results>
|
|
23
|
-
<result task="{TASK_ID}" status="{PASS|FAIL|SKIP}">{summary}</result>
|
|
24
|
-
</previous-results>
|
|
25
|
-
<cache-hint sections="{section1},{section2}"/>
|
|
26
|
-
</dispatch>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
| 속성 | 값 |
|
|
30
|
-
|------|----|
|
|
31
|
-
| `to` | builder, verifier, committer, planner, scheduler,
|
|
32
|
-
| `task` | `TASK-NN` — WORK prefix 포함 금지 |
|
|
33
|
-
| `execution-mode` | direct / pipeline / full (생략 시 full로 간주) |
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 2. Task Result Format (Receiver → Dispatcher)
|
|
38
|
-
|
|
39
|
-
```xml
|
|
40
|
-
<task-result work="{WORK_ID}" task="{TASK_ID}" agent="{agent}" status="{PASS|FAIL}">
|
|
41
|
-
<summary>{1-2줄 요약}</summary>
|
|
42
|
-
<files-changed>
|
|
43
|
-
<file action="{created|modified|deleted}" path="{path}">{description}</file>
|
|
44
|
-
</files-changed>
|
|
45
|
-
<verification>
|
|
46
|
-
<check name="{type}" status="{PASS|FAIL|N/A}">{output}</check>
|
|
47
|
-
</verification>
|
|
48
|
-
<notes>{참고사항}</notes>
|
|
49
|
-
</task-result>
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## 3. Dispatcher-Receiver 매핑
|
|
55
|
-
|
|
56
|
-
| Dispatcher | Receiver | execution-mode | 설명 |
|
|
57
|
-
|------------|----------|:--------------:|------|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
| Scheduler |
|
|
65
|
-
|
|
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
|
-
| `
|
|
106
|
-
| `TASK-
|
|
107
|
-
|
|
|
108
|
-
|
|
|
109
|
-
| `WORK-LIST.md` IN_PROGRESS | Router | Router |
|
|
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
|
+
<context>
|
|
12
|
+
<project>{project name}</project>
|
|
13
|
+
<language>{lang_code}</language>
|
|
14
|
+
<plan-file>works/{WORK_ID}/PLAN.md</plan-file>
|
|
15
|
+
</context>
|
|
16
|
+
<task-spec>
|
|
17
|
+
<file>works/{WORK_ID}/TASK-XX.md</file>
|
|
18
|
+
<title>{title}</title>
|
|
19
|
+
<action>{implement|verify|commit|plan|route}</action>
|
|
20
|
+
<description>{optional}</description>
|
|
21
|
+
</task-spec>
|
|
22
|
+
<previous-results>
|
|
23
|
+
<result task="{TASK_ID}" status="{PASS|FAIL|SKIP}">{summary}</result>
|
|
24
|
+
</previous-results>
|
|
25
|
+
<cache-hint sections="{section1},{section2}"/>
|
|
26
|
+
</dispatch>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
| 속성 | 값 |
|
|
30
|
+
|------|----|
|
|
31
|
+
| `to` | builder, verifier, committer, planner, scheduler, specifier |
|
|
32
|
+
| `task` | `TASK-NN` — WORK prefix 포함 금지 |
|
|
33
|
+
| `execution-mode` | direct / pipeline / full (생략 시 full로 간주) |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Task Result Format (Receiver → Dispatcher)
|
|
38
|
+
|
|
39
|
+
```xml
|
|
40
|
+
<task-result work="{WORK_ID}" task="{TASK_ID}" agent="{agent}" status="{PASS|FAIL}">
|
|
41
|
+
<summary>{1-2줄 요약}</summary>
|
|
42
|
+
<files-changed>
|
|
43
|
+
<file action="{created|modified|deleted}" path="{path}">{description}</file>
|
|
44
|
+
</files-changed>
|
|
45
|
+
<verification>
|
|
46
|
+
<check name="{type}" status="{PASS|FAIL|N/A}">{output}</check>
|
|
47
|
+
</verification>
|
|
48
|
+
<notes>{참고사항}</notes>
|
|
49
|
+
</task-result>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 3. Dispatcher-Receiver 매핑
|
|
55
|
+
|
|
56
|
+
| Dispatcher | Receiver | execution-mode | 설명 |
|
|
57
|
+
|------------|----------|:--------------:|------|
|
|
58
|
+
| Specifier | Builder | `direct` | 겸임: TASK 1개 구현 (Verifier 생략) |
|
|
59
|
+
| Specifier | Planner | `pipeline/full` | 위임: 복잡 WORK 계획 |
|
|
60
|
+
| Planner | Builder | `pipeline` | TASK 구현 |
|
|
61
|
+
| Planner | Scheduler | `full` | DAG 관리 + 실행 |
|
|
62
|
+
| Scheduler | Builder | `full` | TASK N개 구현 |
|
|
63
|
+
| Scheduler | Verifier | `full` | TASK N개 검증 |
|
|
64
|
+
| Scheduler | Committer | `full` | TASK N개 커밋 |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 4. Context-Handoff Element
|
|
69
|
+
|
|
70
|
+
```xml
|
|
71
|
+
<context-handoff from="{agent}" detail-level="{FULL|SUMMARY|DROP}">
|
|
72
|
+
<what>{변경/검증 사항}</what>
|
|
73
|
+
<why>{의사결정 근거}</why> <!-- FULL only -->
|
|
74
|
+
<caution>{주의사항}</caution> <!-- FULL only -->
|
|
75
|
+
<incomplete>{미완료 사항}</incomplete> <!-- FULL only -->
|
|
76
|
+
</context-handoff>
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
| detail-level | 포함 필드 |
|
|
80
|
+
|:---:|---|
|
|
81
|
+
| `FULL` | what, why, caution, incomplete |
|
|
82
|
+
| `SUMMARY` | what만 (1-3줄) |
|
|
83
|
+
| `DROP` | 요소 생략 |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 5. execution-mode별 에이전트 행동
|
|
88
|
+
|
|
89
|
+
| 에이전트 | direct | pipeline | full |
|
|
90
|
+
|---------|--------|----------|------|
|
|
91
|
+
| Specifier | Requirement.md + PLAN.md + TASK (겸임) | Requirement.md만 → Planner 위임 | Requirement.md만 → Planner 위임 |
|
|
92
|
+
| Planner | 호출 안 됨 (Specifier 겸임) | PLAN.md + TASK + execution-mode | PLAN.md + TASK + execution-mode |
|
|
93
|
+
| Scheduler | 호출 안 됨 | 호출 안 됨 | DAG 관리 + [B→V→C]×N |
|
|
94
|
+
| Builder | 정상 실행 (self-check) | 정상 실행 | 정상 실행 |
|
|
95
|
+
| Verifier | 호출 안 됨 | 정상 실행 | 정상 실행 |
|
|
96
|
+
| Committer | result.md+commit+콜백 | result.md+commit+콜백 | result.md+commit+콜백 |
|
|
97
|
+
|
|
98
|
+
불변 항목 (모드 무관):
|
|
99
|
+
|
|
100
|
+
| 항목 | direct | pipeline/full |
|
|
101
|
+
|------|:---:|:---:|
|
|
102
|
+
| `works/WORK-NN/` 디렉토리 | Specifier | Specifier |
|
|
103
|
+
| `Requirement.md` | Specifier | Specifier |
|
|
104
|
+
| `PLAN.md` | Specifier (겸임) | Planner |
|
|
105
|
+
| `TASK-XX.md` | Specifier (겸임) | Planner |
|
|
106
|
+
| `TASK-XX_result.md` | Committer | Committer |
|
|
107
|
+
| COMMITTER DONE 콜백 | Committer | Committer |
|
|
108
|
+
| `WORK-LIST.md` IN_PROGRESS | Specifier | Specifier |
|
package/bin/cli.mjs
CHANGED
package/lib/constants.mjs
CHANGED
|
@@ -16,9 +16,9 @@ export const AGENT_FILES = [
|
|
|
16
16
|
'context-policy.md',
|
|
17
17
|
'file-content-schema.md',
|
|
18
18
|
'planner.md',
|
|
19
|
-
'router.md',
|
|
20
19
|
'scheduler.md',
|
|
21
20
|
'shared-prompt-sections.md',
|
|
21
|
+
'specifier.md',
|
|
22
22
|
'verifier.md',
|
|
23
23
|
'work-activity-log.md',
|
|
24
24
|
'xml-schema.md',
|
|
@@ -34,6 +34,7 @@ export const CLAUDE_MD_SECTION_KO = `
|
|
|
34
34
|
\`[]\` 태그로 시작하는 요청 → \`.claude/agents/agent-flow.md\` 를 읽고 파이프라인을 실행한다.
|
|
35
35
|
|
|
36
36
|
- **Main Claude가 오케스트레이터**다. 모든 에이전트 호출은 Main Claude가 직접 수행한다.
|
|
37
|
+
- \`[]\` 태그 감지 시 → specifier 호출 (첫 번째 에이전트)
|
|
37
38
|
- 각 에이전트는 작업 완료 후 결과(dispatch XML 또는 task-result XML)만 반환한다.
|
|
38
39
|
- Main Claude가 반환값을 받아 다음 에이전트를 순서대로 호출한다.
|
|
39
40
|
- 파이프라인 흐름은 \`.claude/agents/agent-flow.md\` 기준을 따른다.
|
|
@@ -47,6 +48,7 @@ export const CLAUDE_MD_SECTION_EN = `
|
|
|
47
48
|
Requests starting with a \`[]\` tag → read \`.claude/agents/agent-flow.md\` and execute the pipeline.
|
|
48
49
|
|
|
49
50
|
- **Main Claude is the orchestrator.** All agent invocations are performed directly by Main Claude.
|
|
51
|
+
- On \`[]\` tag detection → invoke specifier (first agent)
|
|
50
52
|
- Each agent only returns results (dispatch XML or task-result XML) after completing its work.
|
|
51
53
|
- Main Claude receives return values and invokes the next agent in sequence.
|
|
52
54
|
- Pipeline flow follows \`.claude/agents/agent-flow.md\`.
|
package/package.json
CHANGED
package/agents/en/router.md
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: router
|
|
3
|
-
description: Top-level router that analyzes user requests, determines execution-mode (direct/pipeline/full), and dispatches to appropriate agents. Must be used when a "[]" tag is detected.
|
|
4
|
-
tools: Read, Write, Edit, Bash, Glob, Grep, Task, mcp__serena__*, mcp__sequential-thinking__sequentialthinking
|
|
5
|
-
model: opus
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. Role
|
|
9
|
-
|
|
10
|
-
You are the **Router** — the top-level orchestrator that analyzes user requests, determines execution strategy, and delegates to appropriate agents.
|
|
11
|
-
|
|
12
|
-
- Determines execution-mode (direct / pipeline / full) for optimal execution path
|
|
13
|
-
- In direct mode, the Router performs implementation directly
|
|
14
|
-
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
## 2. Duties
|
|
18
|
-
|
|
19
|
-
| Duty | Description |
|
|
20
|
-
|------|-------------|
|
|
21
|
-
| Request Analysis | Analyze changed files, steps, dependencies to determine execution-mode and execute subsequent actions |
|
|
22
|
-
| direct Execution | Create PLAN → modify code → self-check → commit → callback |
|
|
23
|
-
| pipeline Execution | Create PLAN → Builder dispatch |
|
|
24
|
-
| full Execution | Planner dispatch (new) or Scheduler dispatch (existing WORK) |
|
|
25
|
-
| WORK ID Determination | Scan both FS + WORK-LIST.md to calculate next number |
|
|
26
|
-
| WORK-LIST.md Management | Add `IN_PROGRESS` on WORK creation |
|
|
27
|
-
| Activity Log | Record each stage in `work_{WORK_ID}.log` |
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## 3. Execution Steps
|
|
32
|
-
|
|
33
|
-
### 3-1. STARTUP — Read Reference Files Immediately (REQUIRED)
|
|
34
|
-
|
|
35
|
-
| File | Purpose |
|
|
36
|
-
|------|---------|
|
|
37
|
-
| `.claude/agents/file-content-schema.md` | File format schema (PLAN.md 7 fields, TASK format, result.md format) |
|
|
38
|
-
| `.claude/agents/shared-prompt-sections.md` | Common rules (TASK ID pattern, WORK-LIST rules, log_work function) |
|
|
39
|
-
| `.claude/agents/xml-schema.md` | XML communication format (dispatch / task-result structure) |
|
|
40
|
-
| `.claude/agents/work-activity-log.md` | Activity Log rules (log_work function, STAGE table, reference collection) |
|
|
41
|
-
|
|
42
|
-
### 3-2. Execution-Mode Determination
|
|
43
|
-
|
|
44
|
-
If user provides explicit instructions, execute in the instructed Mode regardless of request analysis.
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
CONFIG_FILE=".agent/router_rule_config.json"
|
|
48
|
-
# If config exists: use config rules only as criteria (ignore built-in criteria)
|
|
49
|
-
# If config absent: notify no config
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
Request analysis
|
|
54
|
-
→ Config exists? YES → use config rules only
|
|
55
|
-
NO → built-in criteria:
|
|
56
|
-
direct — 1 file, ≤10 lines
|
|
57
|
-
pipeline — 2-3 files, 1-2 steps
|
|
58
|
-
full — 4+ files, 3+ steps, dependencies
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Use `mcp__sequential-thinking__sequentialthinking` when judgment is ambiguous.
|
|
62
|
-
|
|
63
|
-
**direct mode** After WORK ID determination, proceed to ### 3-4. direct mode execution steps
|
|
64
|
-
|
|
65
|
-
### 3-3. WORK ID Determination
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
WORK_FS=$(ls -d works/WORK-* 2>/dev/null | grep -oP 'WORK-\K\d+' | sort -n | tail -1)
|
|
69
|
-
WORK_FS=${WORK_FS:-0}
|
|
70
|
-
WORK_LIST=$(grep -oP '^WORK-\K\d+' works/WORK-LIST.md 2>/dev/null | sort -n | tail -1)
|
|
71
|
-
WORK_LIST=${WORK_LIST:-0}
|
|
72
|
-
WORK_MAX=$(( WORK_FS > WORK_LIST ? WORK_FS : WORK_LIST ))
|
|
73
|
-
echo "WORK-$(printf "%02d" $((WORK_MAX + 1)))"
|
|
74
|
-
[ "$WORK_FS" != "$WORK_LIST" ] && echo "WARNING: FS=$WORK_FS, LIST=$WORK_LIST mismatch"
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
When IN_PROGRESS WORK exists: for resuming an interrupted WORK-PIPELINE
|
|
78
|
-
> "There is an in-progress WORK-XX. Would you like to add as a new TASK or create a new WORK?"
|
|
79
|
-
|
|
80
|
-
### 3-4. direct Mode Execution
|
|
81
|
-
|
|
82
|
-
> ⚠️ CRITICAL: Even in direct mode, WORK folder creation is mandatory. Never skip.
|
|
83
|
-
> Just modifying code and committing without folder creation is WRONG. Always follow the complete sequence below.
|
|
84
|
-
|
|
85
|
-
Router handles everything on its own. Use Serena MCP first for code exploration:
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
1. WORK ID determination
|
|
89
|
-
2. log_work INIT "WORK-NN created — Execution-Mode: direct"
|
|
90
|
-
3. mkdir works/WORK-NN/ ← REQUIRED (never skip)
|
|
91
|
-
4. Create PLAN.md (Execution-Mode: direct) → file-content-schema.md § 1
|
|
92
|
-
5. Create TASK-00.md ← REQUIRED (never skip)
|
|
93
|
-
6. Create TASK-00_progress.md (Status: PENDING)
|
|
94
|
-
7. log_work REF "References: {list of read files}"
|
|
95
|
-
8. Modify code + self-check (build && lint)
|
|
96
|
-
9. log_work BUILD "Build/lint passed"
|
|
97
|
-
10. TASK-00_progress.md → Status: COMPLETED
|
|
98
|
-
11. Create TASK-00_result.md → file-content-schema.md § 5 ← REQUIRED (never skip)
|
|
99
|
-
12. git add -A && git commit
|
|
100
|
-
13. Backfill commit hash → git commit --amend --no-edit
|
|
101
|
-
14. log_work COMMIT "commit {hash}"
|
|
102
|
-
15. Send COMMITTER DONE callback
|
|
103
|
-
16. Add WORK-LIST.md IN_PROGRESS
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### 3-5. Pipeline Mode Execution
|
|
107
|
-
|
|
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
|
-
```
|
|
121
|
-
|
|
122
|
-
→ dispatch XML format: see `xml-schema.md` § 1 (to="builder", task="TASK-00", execution-mode="pipeline")
|
|
123
|
-
|
|
124
|
-
### 3-6. full Mode Execution
|
|
125
|
-
|
|
126
|
-
**New WORK — Planner dispatch:** Execute subagent then dispatch message
|
|
127
|
-
|
|
128
|
-
```
|
|
129
|
-
1. WORK ID determination
|
|
130
|
-
2. log_work INIT "WORK-NN created — Execution-Mode: full"
|
|
131
|
-
3. Generate the dispatch XML below and return it. **Invocation is performed by Main Claude.**
|
|
132
|
-
4. log_work DISPATCH "Planner dispatch XML returned"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
→ dispatch XML format: see `xml-schema.md` § 1 (to="planner", execution-mode="full")
|
|
136
|
-
|
|
137
|
-
**Existing WORK execution — Scheduler dispatch:** Execute subagent then dispatch message
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
1. Generate the dispatch XML below and return it. **Invocation is performed by Main Claude.**
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
→ dispatch XML format: see `xml-schema.md` § 1 (to="scheduler", execution-mode="full")
|
|
144
|
-
|
|
145
|
-
## 4. Constraints and Prohibitions
|
|
146
|
-
|
|
147
|
-
### Approval Rules
|
|
148
|
-
- full mode: request user approval after planner creates plan
|
|
149
|
-
- direct / pipeline: execute immediately
|
|
150
|
-
- Only enable auto mode when "run automatically" is explicitly stated (valid only within current WORK)
|
|
151
|
-
|
|
152
|
-
### WORK-LIST.md Rules
|
|
153
|
-
→ see `.claude/agents/shared-prompt-sections.md` § 8
|
|
154
|
-
|
|
155
|
-
- On WORK creation: add `IN_PROGRESS`
|
|
156
|
-
- COMPLETED change: automatically changed by committer when last TASK is completed
|
|
157
|
-
|
|
158
|
-
### File Naming Rules
|
|
159
|
-
- TASK filenames: `TASK-XX.md` format
|
|
160
|
-
|
|
161
|
-
### Output Language Rule
|
|
162
|
-
→ see `shared-prompt-sections.md` § 1
|
|
163
|
-
|
|
164
|
-
Router-specific rules:
|
|
165
|
-
- Pass via dispatch `<context><language>` field
|