uctm 1.0.1 → 1.0.3

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 CHANGED
@@ -93,7 +93,7 @@ Six subagents work across any project and any language, automatically handling *
93
93
  > [bugfix] Fix typo in login error message
94
94
  ```
95
95
 
96
- Router selects `execution-mode: direct` handles entirely in its own session. No subagent spawned. Creates WORK-NN directory + PLAN + result.md + commit.
96
+ Main Claude calls router, which selects `execution-mode: direct` and handles everything in its session. No additional subagent spawned. Creates WORK-NN directory + PLAN + result.md + commit.
97
97
 
98
98
  ### Quick Task (pipeline mode)
99
99
 
@@ -101,7 +101,7 @@ Router selects `execution-mode: direct` → handles entirely in its own session.
101
101
  > [bugfix] Fix the login button not responding on mobile
102
102
  ```
103
103
 
104
- Router selects `execution-mode: pipeline` creates PLAN, delegates to builder → verifier → committer. Router context stays clean.
104
+ Main Claude calls router, which selects `execution-mode: pipeline` and creates PLAN. Then Main Claude calls builder → verifier → committer in sequence.
105
105
 
106
106
  ### Complex Feature (WORK)
107
107
 
@@ -166,7 +166,7 @@ Skip to a specific TASK within a WORK (e.g., retry after a failure):
166
166
  > Run WORK-02: TASK-02
167
167
  ```
168
168
 
169
- The scheduler reads the TASK file directly and dispatches builder → verifier → committer.
169
+ The scheduler returns the next TASK, then Main Claude calls builder → verifier → committer in sequence.
170
170
 
171
171
  #### 7. Force WORK Creation (Skip Complexity Check)
172
172
 
@@ -276,34 +276,26 @@ claude
276
276
 
277
277
  ## Concept: Three Execution Modes
278
278
 
279
- The **router** analyzes every `[]`-tagged request and selects one of three `execution-mode` values:
279
+ Main Claude detects the `[]` tag and calls the **router** subagent, which selects one of three `execution-mode` values:
280
280
 
281
281
  ```
282
- User Request
283
-
284
-
285
- ┌────────┐
286
- │ router │ ── no [] tag ──▶ handle directly (no pipeline)
287
- └───┬────┘
288
- [] tag detected
289
-
290
- Assess complexity → execution-mode
291
- (reads .agent/router_rule_config.json if present)
292
-
282
+ User Request → Main Claude (orchestrator)
283
+
284
+
285
+ ┌────────┐
286
+ │ router │ (called by Main Claude)
287
+ └───┬────┘
288
+
289
+ execution-mode returned
290
+
293
291
  ├─ direct (no build/test required)
294
-
295
- │ Router handles everything — no subagent overhead
296
- │ Creates WORK-NN/PLAN.md + result.md + commit (0 extra sessions)
292
+ → router handles everything — 0 additional subagent calls
297
293
 
298
294
  ├─ pipeline (build/test required, single domain, sequential)
299
-
300
- │ router → builder → verifier → committer
301
- │ Router creates PLAN, dispatches 3 subagents
295
+ → Main Claude calls: builder → verifier → committer (in sequence)
302
296
 
303
297
  └─ full (multi-domain / complex DAG / new module / 5+ tasks)
304
-
305
- router → planner → scheduler → [builder → verifier → committer] × N
306
- (full planning + multi-task pipeline)
298
+ → Main Claude calls: planner → scheduler → [builder → verifier → committer] × N
307
299
  ```
308
300
 
309
301
  All three modes output to `works/WORK-NN/` and guarantee `result.md` + `COMMITTER DONE` callback.
@@ -320,18 +312,19 @@ WORK (unit of work) A single goal. The unit requested by the user.
320
312
 
321
313
  ### pipeline mode (Single Task, Delegated)
322
314
 
323
- Subagent-delegated path for moderate single tasks. Router stays clean.
315
+ Subagent-delegated path for moderate single tasks. Main Claude calls each agent in sequence. Router stays clean.
324
316
 
325
317
  ```
326
- router → builder(sonnet) → verifier(haiku) → committer(haiku)
318
+ Main Claude → builder(sonnet) → verifier(haiku) → committer(haiku)
319
+ (each called individually by Main Claude)
327
320
  ```
328
321
 
329
322
  ### direct mode (Trivial)
330
323
 
331
- Router handles everything in its own context. No subagent sessions spawned.
324
+ Main Claude calls router, which handles everything in its own session. No additional subagent calls.
332
325
 
333
326
  ```
334
- router: Analyze → Implement → Self-verify → Commit → result.md
327
+ Main Claude → router: Analyze → Implement → Self-verify → Commit → result.md
335
328
  ```
336
329
 
337
330
  ---
@@ -340,7 +333,12 @@ router: Analyze → Implement → Self-verify → Commit → result.md
340
333
 
341
334
  ### WORK Pipeline (Complex)
342
335
 
336
+ > Subagents cannot nest — Main Claude (CLI terminal) orchestrates every call.
337
+
343
338
  ```
339
+ Main Claude (orchestrator)
340
+ ┌──────────┼──────────────────────┐
341
+ │ │ │
344
342
  router planner scheduler builder verifier committer
345
343
  ┌────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
346
344
  │Request │────▶│Create │────▶│Dependency │────▶│Code │────▶│Build/Test│────▶│Result │
@@ -360,7 +358,8 @@ router: Analyze → Implement → Self-verify → Commit → result.md
360
358
  │PLAN │─────▶│Code │────▶│Build/Test│────▶│Result │
361
359
  │+TASK │ │Implement │ │Verify │ │→ git │
362
360
  └────────┘ └──────────┘ └──────────┘ └──────────┘
363
- (context clean) (sonnet) (haiku) (haiku)
361
+ (sonnet) (haiku) (haiku)
362
+ ← each called by Main Claude →
364
363
  ```
365
364
 
366
365
  ### direct mode (Trivial)
@@ -686,8 +685,8 @@ For a monorepo with strict build requirements:
686
685
  ### Three Execution Modes
687
686
 
688
687
  The router matches effort to complexity via `execution-mode`:
689
- - **direct**: 1-line typo fix — 0 extra sessions, Router handles everything. Committer session overhead (~12,500 tokens) completely eliminated.
690
- - **pipeline**: Moderate fix — delegated to builder → verifier → committer, router context stays clean
688
+ - **direct**: 1-line typo fix — Main Claude calls router, which handles everything. 0 additional subagent sessions.
689
+ - **pipeline**: Moderate fix — Main Claude calls builder → verifier → committer in sequence. Main Claude only orchestrates, minimizing its own context usage
691
690
  - **full**: Complex features — full planning, decomposition, and tracking
692
691
 
693
692
  All three modes output to `works/WORK-NN/` with identical artifact structure (PLAN.md + result.md + COMMITTER DONE callback), ensuring Runner integration works regardless of mode.
package/agents/builder.md CHANGED
@@ -84,7 +84,9 @@ ls works/${WORK_ID}/*_result.md 2>/dev/null
84
84
 
85
85
  → Build/Lint 명령: `shared-prompt-sections.md` § 2 참조
86
86
 
87
- 빌드/린트 실패 보고 전에 반드시 수정.
87
+ - 빌드/린트 스크립트가 존재하지 않으면 해당 check는 **N/A** 처리 (수정 시도 금지).
88
+ - 빌드/린트 실패 시 보고 전에 수정 시도. **최대 2회 재시도**.
89
+ - 3회째도 실패 시 → `status="FAIL"`로 task-result XML 반환하고 종료. 무한 루프 금지.
88
90
 
89
91
  ### 3-6. Progress Checkpoint 기록
90
92
 
@@ -18,9 +18,11 @@ dispatch 시: <context><language> 필드에 resolved language code 전달
18
18
  ## § 2. Build and Lint Commands
19
19
 
20
20
  ```bash
21
- # Auto-detect Build
21
+ # Auto-detect Build (스크립트 존재 시에만 실행)
22
22
  if [ -f "package.json" ]; then
23
- npm run build 2>&1 || bun run build 2>&1 || yarn build 2>&1
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
+ npm run build 2>&1 || bun run build 2>&1 || yarn build 2>&1
25
+ fi
24
26
  elif [ -f "Cargo.toml" ]; then
25
27
  cargo build 2>&1
26
28
  elif [ -f "go.mod" ]; then
@@ -31,15 +33,18 @@ elif [ -f "Makefile" ]; then
31
33
  make build 2>&1 || make 2>&1
32
34
  fi
33
35
 
34
- # Auto-detect Lint
36
+ # Auto-detect Lint (스크립트 존재 시에만 실행)
35
37
  if [ -f "package.json" ]; then
36
- npm run lint 2>&1 || bun run lint 2>&1 || true
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
+ npm run lint 2>&1 || bun run lint 2>&1 || true
40
+ fi
37
41
  elif [ -f "pyproject.toml" ]; then
38
42
  ruff check . 2>&1 || python -m flake8 . 2>&1 || true
39
43
  fi
40
44
  ```
41
45
 
42
- 빌드/린트 실패 보고 전에 반드시 수정.
46
+ - 빌드/린트 스크립트가 존재하지 않으면 **skip (N/A 처리)**.
47
+ - 빌드/린트 실패 시 보고 전에 반드시 수정.
43
48
 
44
49
  ---
45
50
 
package/bin/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  import { VERSION } from '../lib/constants.mjs';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uctm",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Universal Claude Task Manager — SDD-based task pipeline subagent system for Claude Code CLI",
5
5
  "type": "module",
6
6
  "bin": {