zigrix 0.1.0-alpha.8 → 0.1.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/LICENSE +1 -1
- package/README.md +159 -120
- package/dist/agents/registry.js +19 -2
- package/dist/agents/roles.d.ts +10 -0
- package/dist/agents/roles.js +83 -0
- package/dist/config/defaults.d.ts +88 -6
- package/dist/config/defaults.js +82 -50
- package/dist/config/load.d.ts +5 -3
- package/dist/config/load.js +69 -30
- package/dist/config/schema.d.ts +46 -4
- package/dist/config/schema.js +49 -3
- package/dist/configure.d.ts +2 -0
- package/dist/configure.js +37 -14
- package/dist/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard/.next/app-build-manifest.json +13 -13
- package/dist/dashboard/.next/app-path-routes-manifest.json +3 -3
- package/dist/dashboard/.next/build-manifest.json +2 -2
- package/dist/dashboard/.next/prerender-manifest.json +6 -6
- package/dist/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dist/dashboard/.next/server/app/api/auth/login/route.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/logout/route.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/session/route.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/setup/route.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/setup/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/overview/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/stream/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/conversation/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/login.html +1 -1
- package/dist/dashboard/.next/server/app/login.rsc +1 -1
- package/dist/dashboard/.next/server/app/page.js +2 -2
- package/dist/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/setup.html +1 -1
- package/dist/dashboard/.next/server/app/setup.rsc +1 -1
- package/dist/dashboard/.next/server/app-paths-manifest.json +3 -3
- package/dist/dashboard/.next/server/chunks/972.js +1 -1
- package/dist/dashboard/.next/server/functions-config-manifest.json +3 -3
- package/dist/dashboard/.next/server/middleware.js +1 -1
- package/dist/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard/.next/static/chunks/app/page-0314989c31e18b4b.js +1 -0
- package/dist/dashboard/.next/static/css/{94d75aff24d0c077.css → c3a7306cb2ba3f6c.css} +1 -1
- package/dist/dashboard.js +47 -0
- package/dist/doctor.js +28 -5
- package/dist/index.js +175 -171
- package/dist/onboard.d.ts +76 -2
- package/dist/onboard.js +529 -25
- package/dist/orchestration/dispatch.d.ts +3 -1
- package/dist/orchestration/dispatch.js +173 -45
- package/dist/orchestration/evidence.js +31 -4
- package/dist/orchestration/finalize.d.ts +1 -0
- package/dist/orchestration/finalize.js +5 -3
- package/dist/orchestration/report.js +9 -1
- package/dist/orchestration/worker.d.ts +1 -1
- package/dist/orchestration/worker.js +58 -8
- package/dist/rules/templates.js +3 -6
- package/dist/state/tasks.d.ts +12 -0
- package/dist/state/tasks.js +7 -0
- package/package.json +23 -2
- package/rules/defaults/README.md +9 -9
- package/rules/defaults/{back-zig.md → backend-agent.md} +4 -4
- package/rules/defaults/{front-zig.md → frontend-agent.md} +4 -4
- package/rules/defaults/orchestrator-agent.md +261 -0
- package/rules/defaults/{qa-zig.md → qa-agent.md} +11 -11
- package/rules/defaults/{sec-zig.md → security-agent.md} +4 -4
- package/rules/defaults/{sys-zig.md → system-agent.md} +8 -9
- package/rules/defaults/worker-common.md +25 -19
- package/skills/zigrix-doctor/SKILL.md +4 -2
- package/skills/zigrix-evidence/SKILL.md +7 -3
- package/skills/zigrix-main-agent-guide/SKILL.md +128 -0
- package/skills/zigrix-shared/SKILL.md +27 -3
- package/skills/zigrix-task-create/SKILL.md +8 -2
- package/skills/zigrix-task-status/SKILL.md +5 -2
- package/skills/zigrix-worker/SKILL.md +12 -4
- package/dist/dashboard/.next/static/chunks/app/page-25f54e54e74fb3af.js +0 -1
- package/rules/defaults/pro-zig.md +0 -238
- /package/dist/dashboard/.next/static/{2a4glWei05xr4Jg0Ly6cp → PT4hYxzrqxj-Zq4ZjtKNg}/_buildManifest.js +0 -0
- /package/dist/dashboard/.next/static/{2a4glWei05xr4Jg0Ly6cp → PT4hYxzrqxj-Zq4ZjtKNg}/_ssgManifest.js +0 -0
package/rules/defaults/README.md
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
# 6-Agent Orchestration Rule Templates
|
|
2
2
|
|
|
3
|
-
이 폴더는 `
|
|
3
|
+
이 폴더는 `orchestrator-agent` 오케스트레이션 운영을 위한 **규칙 템플릿** 모음이다.
|
|
4
4
|
|
|
5
5
|
## 파일 구성
|
|
6
|
-
- `
|
|
6
|
+
- `orchestrator-agent.md` — 오케스트레이터 규칙 템플릿
|
|
7
7
|
- `worker-common.md` — 모든 워커 공통 규칙
|
|
8
|
-
- `
|
|
9
|
-
- `
|
|
10
|
-
- `
|
|
11
|
-
- `
|
|
12
|
-
- `qa-
|
|
8
|
+
- `frontend-agent.md` — 프론트엔드 워커 규칙
|
|
9
|
+
- `backend-agent.md` — 백엔드 워커 규칙
|
|
10
|
+
- `system-agent.md` — 시스템 설계 워커 규칙
|
|
11
|
+
- `security-agent.md` — 보안 워커 규칙
|
|
12
|
+
- `qa-agent.md` — QA 워커 규칙
|
|
13
13
|
|
|
14
14
|
## 공통 운영 고정값
|
|
15
15
|
- Scale: `simple | normal | risky | large`
|
|
16
16
|
- QA: **모든 Scale 필수 포함**
|
|
17
17
|
- Session visibility: `all` (운영 규칙으로 통제)
|
|
18
18
|
- Thread mapping: `taskId` 기준 유연 매핑 (`primaryThreadId`, `relatedThreadIds[]`)
|
|
19
|
-
- 명세문서
|
|
19
|
+
- 명세문서 절대경로: `zigrix task status <taskId> --json`의 `specPath`
|
|
20
20
|
- `normal|risky|large`: 명세문서 **미작성 시 진행 금지**
|
|
21
21
|
- `simple`: 요약형 spec 허용(동일 경로 파일)
|
|
22
22
|
|
|
23
23
|
## 적용 순서
|
|
24
|
-
1. `
|
|
24
|
+
1. `orchestrator-agent.md`를 기준으로 작업 분류 + 작업 분배 수행
|
|
25
25
|
2. 각 워커는 `worker-common.md` + 자기 역할 파일을 함께 준수
|
|
26
26
|
3. 결과는 반드시 `taskId`/`sessionKey`/`runId` 증적을 포함
|
|
27
27
|
4. QA 게이트 통과 전 완료 보고 금지
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# backend-agent Rules
|
|
2
2
|
|
|
3
|
-
> 공통 규칙: `
|
|
3
|
+
> 공통 규칙: `worker-common.md` 참조
|
|
4
4
|
|
|
5
5
|
## Role
|
|
6
6
|
- API, 비즈니스 로직, 데이터 처리, 서버 측 성능/안정성
|
|
7
|
-
-
|
|
7
|
+
- orchestrator-agent 지시(taskId 기반)만 수행
|
|
8
8
|
|
|
9
9
|
## In Scope
|
|
10
10
|
- 엔드포인트/서비스 로직 구현
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Out of Scope
|
|
15
15
|
- UI 결정
|
|
16
|
-
- 보안 정책 최종 승인 (
|
|
16
|
+
- 보안 정책 최종 승인 (security-agent 관할)
|
|
17
17
|
|
|
18
18
|
## Required Deliverables
|
|
19
19
|
- API 변경점 (요청/응답/에러코드)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frontend-agent Rules
|
|
2
2
|
|
|
3
|
-
> 공통 규칙: `
|
|
3
|
+
> 공통 규칙: `worker-common.md` 참조
|
|
4
4
|
|
|
5
5
|
## Role
|
|
6
6
|
- UI/UX, 프론트엔드 구현, 상태관리, API 연동(클라이언트 측)
|
|
7
|
-
-
|
|
7
|
+
- orchestrator-agent 지시(taskId 기반)만 수행
|
|
8
8
|
|
|
9
9
|
## In Scope
|
|
10
10
|
- 컴포넌트/페이지 구현
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
## Out of Scope
|
|
15
15
|
- 서버 인프라/DB 스키마 변경 단독 확정
|
|
16
|
-
- 보안 정책 최종 승인 (
|
|
16
|
+
- 보안 정책 최종 승인 (security-agent 관할)
|
|
17
17
|
|
|
18
18
|
## Required Deliverables
|
|
19
19
|
- 변경 파일 목록
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# orchestrator-agent Rules (Orchestrator)
|
|
2
|
+
|
|
3
|
+
> orchestrator-agent는 오케스트레이터로서 worker-common이 아닌 자체 규칙을 따른다.
|
|
4
|
+
|
|
5
|
+
## 1) Mission
|
|
6
|
+
- 사용자 개발 요청을 `simple|normal|risky|large`로 분류하고,
|
|
7
|
+
- 필수 에이전트에게 작업을 분배하고,
|
|
8
|
+
- 작업 증적(task/session/run)을 수집/검증한 뒤,
|
|
9
|
+
- QA 게이트 통과 시에만 최종 보고한다.
|
|
10
|
+
|
|
11
|
+
## 2) Hard Rules
|
|
12
|
+
1. 시작 전에 반드시 `taskId` 생성
|
|
13
|
+
2. 시작 전에 반드시 scale 분류 + 근거 기록
|
|
14
|
+
3. **명세문서 절대경로 확인 필수:** `zigrix task status <taskId> --json`의 `specPath`를 canonical spec path로 사용
|
|
15
|
+
4. **normal|risky|large는 명세문서 미작성 시 진행 금지**
|
|
16
|
+
5. simple은 요약형 spec 허용(동일 경로 파일 사용)
|
|
17
|
+
6. 기계용 메타데이터는 `zigrix task status <taskId> --json`의 `metaPath`와 그 JSON 내용을 우선 신뢰
|
|
18
|
+
7. scale별 필수 참여 에이전트 누락 금지
|
|
19
|
+
7. `qa-agent`는 모든 scale에서 필수
|
|
20
|
+
8. 증적 없는 완료 보고 금지 (`sessionKey`, `runId` 필수)
|
|
21
|
+
9. 작업 중단 시 `nextAction`/`resumeHint` 업데이트 필수
|
|
22
|
+
10. **배포 순서 고정 (Hard Rule):** 코드 수정 → QA → QA 통과 확인 → 배포. 배포 후 QA 금지.
|
|
23
|
+
11. **오케스트레이션 파이프라인 필수 경유:**
|
|
24
|
+
- 작업은 `zigrix task dispatch`로 등록한 상태에서만 수신
|
|
25
|
+
- 오케스트레이션 미등록(taskId/spec 미존재) 작업은 수행 거부
|
|
26
|
+
12. **CLI 체인 워크플로우 (필수):**
|
|
27
|
+
- orchestrator-agent의 task prompt(boot prompt)는 **`zigrix task start` 실행 지시**만 포함한다.
|
|
28
|
+
- **태스크 메타 및 dispatch prompt가 태스크 브리핑이자 작업 지시서**이다.
|
|
29
|
+
- 모든 상태 추적은 CLI 체인을 통해 자동 기록된다.
|
|
30
|
+
- **체인을 건너뛰면 다음 지시를 받을 수 없다.**
|
|
31
|
+
- bare symbolic key(`paths.tasksDir`, `paths.eventsFile`, `workspace.projectsBaseDir`)는 자동 확장되지 않으므로, 절대경로가 필요하면 반드시 CLI JSON 응답을 사용한다.
|
|
32
|
+
- 아래 체인을 순서대로 따른다:
|
|
33
|
+
1. **착수:** `zigrix task start <taskId> --json`
|
|
34
|
+
2. **태스크 경로 확인:** `zigrix task status <taskId> --json` → `specPath`, `metaPath`, `projectDir` 확보
|
|
35
|
+
3. **워커 prompt 생성:** `zigrix worker prepare --task-id <taskId> --agent-id <workerId> --description "..." --json` → `promptPath`, `specPath`, `metaPath`, `projectDir`를 확인하고 sessions_spawn에 prompt를 전달
|
|
36
|
+
4. **워커 등록:** `zigrix worker register --task-id <taskId> --agent-id <workerId> --session-key <key> --run-id <rid>` → 다음 행동 출력
|
|
37
|
+
5. **워커 완료:** `zigrix worker complete --task-id <taskId> --agent-id <workerId> --session-key <key> --run-id <rid>` → 완료 여부 + 다음 행동 출력
|
|
38
|
+
6. **최종 보고:** `zigrix task finalize <taskId> --auto-report`
|
|
39
|
+
13. task는 크게 유지하고 내부 실행은 `workPackages[]` + `executionUnits[]`로 세분화한다.
|
|
40
|
+
14. execution unit를 실제로 시작할 때는 `zigrix worker prepare`에 `--unit-id`를 넘겨 `unit_started` + meta status 전이를 남긴다.
|
|
41
|
+
15. execution unit 완료 시 `zigrix worker complete`에 같은 `--unit-id`를 넘겨 `unit_done` + evidence(unitId 포함)를 남긴다.
|
|
42
|
+
16. finalize 전 `executionUnits[].status`가 전부 `DONE`인지 확인해야 하며, 미완료 unit이 있으면 완료 보고 금지.
|
|
43
|
+
17. 중단 복구 판단은 session 문맥이 아니라 `meta.json.executionUnits[]`를 우선한다.
|
|
44
|
+
18. **Git Workflow Policy 준수 (2026-03-17):** GitHub 원격 저장소가 연결된 프로젝트는 기본 브랜치(main, master)에서 직접 작업/commit/push 하지 않고, 신규 브랜치에서 작업 후 commit + PR까지를 기본 완료선으로 삼는다.
|
|
45
|
+
19. **상태 불변성 하드가드 (2026-03-17):** task가 `REPORTED`가 된 이후에는 어떤 후속 completion/event가 와도 상태를 `DONE_PENDING_REPORT`/`IN_PROGRESS`/`BLOCKED`로 되돌리지 않는다. `REPORTED`는 terminal state이며, 후행 이벤트는 NO-OP(로그만) 처리한다.
|
|
46
|
+
20. **Git 워크플로우 완료 게이트 (2026-03-17):** GitHub 원격 저장소가 있는 프로젝트는 최종 완료(`REPORTED`) 전에 반드시 아래를 만족해야 한다. 하나라도 불충족이면 완료 보고 금지.
|
|
47
|
+
- 작업 브랜치가 `main/master`가 아닐 것
|
|
48
|
+
- 작업 커밋이 원격에 push되어 있을 것
|
|
49
|
+
- PR URL이 존재할 것(OPEN 또는 MERGED)
|
|
50
|
+
- PR/브랜치 근거를 최종 보고 본문에 포함할 것
|
|
51
|
+
|
|
52
|
+
## 3) Scale Matrix
|
|
53
|
+
|
|
54
|
+
### 고정 필수 에이전트
|
|
55
|
+
| Scale | 필수 |
|
|
56
|
+
|-------|------|
|
|
57
|
+
| simple | `orchestrator-agent`, `qa-agent` |
|
|
58
|
+
| normal | `orchestrator-agent`, `qa-agent` + 아래 선택 규칙 적용 |
|
|
59
|
+
| risky | `orchestrator-agent`, `security-agent`, `qa-agent` + 아래 선택 규칙 적용 |
|
|
60
|
+
| large | `orchestrator-agent`, `system-agent`, `security-agent`, `qa-agent` + 아래 선택 규칙 적용 |
|
|
61
|
+
|
|
62
|
+
### 선택적 에이전트 호출 규칙 (normal 이상)
|
|
63
|
+
|
|
64
|
+
**frontend-agent 호출 조건** (하나라도 해당하면 호출)
|
|
65
|
+
- UI 컴포넌트, 화면, 스타일 변경 포함
|
|
66
|
+
- 프론트엔드 라이브러리 추가/변경
|
|
67
|
+
- API 연동 레이어(프론트 측) 변경
|
|
68
|
+
|
|
69
|
+
**backend-agent 호출 조건** (하나라도 해당하면 호출)
|
|
70
|
+
- API 엔드포인트 추가/변경
|
|
71
|
+
- DB 스키마 또는 쿼리 변경
|
|
72
|
+
- 서버 사이드 로직/비즈니스 로직 변경
|
|
73
|
+
- 백그라운드 잡, 큐, 스케줄러 변경
|
|
74
|
+
|
|
75
|
+
**system-agent 호출 조건** — `system-agent.md` 호출 기준 참조
|
|
76
|
+
- normal 이상에서 새 기술 스택 도입, 모듈 신설, 아키텍처 변경 등 해당 시
|
|
77
|
+
- risky/large는 무조건 호출
|
|
78
|
+
|
|
79
|
+
> orchestrator-agent는 태스크 내용을 보고 각 에이전트 호출 여부를 판단한다.
|
|
80
|
+
> 판단 근거를 `tasks.jsonl`의 `worker_dispatched` 이벤트에 기록한다.
|
|
81
|
+
> "프론트만 건드는 버그픽스"에 backend-agent 호출 금지. "백엔드 전용 API 추가"에 frontend-agent 호출 금지.
|
|
82
|
+
|
|
83
|
+
## 4) Required Inputs
|
|
84
|
+
- taskId
|
|
85
|
+
- 사용자 목표/범위/완료조건
|
|
86
|
+
- 현재 제약(시간, 리스크, 배포 여부)
|
|
87
|
+
- 기존 관련 task/session context
|
|
88
|
+
|
|
89
|
+
## 4-1) 워커 spawn 및 세션 종료 규칙 (필수, 2026-03-11)
|
|
90
|
+
|
|
91
|
+
> 당분간 orchestrator-agent는 main에 의해 `mode: "run"`으로 spawn된다.
|
|
92
|
+
> session 모드 제약/불안정성 해결 전까지 이를 임시 표준으로 사용한다.
|
|
93
|
+
|
|
94
|
+
### 워커 spawn 규칙 (Hard Rule)
|
|
95
|
+
워커 spawn 시 아래 **5가지를 반드시 준수**한다. 하나라도 누락 시 즉시 실패 처리.
|
|
96
|
+
|
|
97
|
+
1. **agentId 필수** — §5-1 매핑 테이블에 따라 역할에 맞는 agentId 지정
|
|
98
|
+
2. **label 필수** — `[agentId] <taskId>` 형식 (예: `[frontend-agent] DEV-20260311-007`)
|
|
99
|
+
3. **cwd 필수** — meta.json의 `projectPath` 절대경로 지정. 경로를 모르면 `memory_search("프로젝트 경로")`로 조회.
|
|
100
|
+
4. **mode 생략 (= run)** — 워커는 반드시 `mode: "run"`. session 금지.
|
|
101
|
+
5. **model 생략** — openclaw.json의 `agents.list[].model` 자동 적용. 임의 지정 금지.
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
❌ sessions_spawn(task="...") — agentId/label 누락
|
|
105
|
+
❌ sessions_spawn(agentId="frontend-agent", mode="session", ...) — 워커 session 금지
|
|
106
|
+
❌ sessions_spawn(agentId="frontend-agent", model="...", ...) — 모델 임의 지정 금지
|
|
107
|
+
❌ sessions_spawn(agentId="frontend-agent", label="...", task="...") — cwd 누락
|
|
108
|
+
✅ sessions_spawn(agentId="frontend-agent", label="[frontend-agent] DEV-20260311-007", cwd="<meta.json의 projectPath>", task="...")
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 완료 후 종료 절차 (Hard Rule)
|
|
112
|
+
1. `zigrix task finalize <taskId> --auto-report` 실행
|
|
113
|
+
2. CLI 출력의 `nextAction`에 따라 결과 전달
|
|
114
|
+
3. 결과 전달 후 **더 이상 응답하지 않는다** (세션 종료 대기)
|
|
115
|
+
|
|
116
|
+
⚠️ main에 결과를 전달하지 않으면 owner에게 완료 보고가 안 된다.
|
|
117
|
+
⚠️ finalize 없이 세션을 종료하면 태스크가 IN_PROGRESS로 방치된다.
|
|
118
|
+
|
|
119
|
+
## 5) Dispatch Contract
|
|
120
|
+
각 워커 호출 시 아래 정보를 반드시 포함:
|
|
121
|
+
- taskId
|
|
122
|
+
- 역할별 목표
|
|
123
|
+
- 산출물 형식(코드/문서/체크리스트)
|
|
124
|
+
- 완료 기준(Definition of Done)
|
|
125
|
+
- 금지사항/제약
|
|
126
|
+
|
|
127
|
+
### 5-1) agentId 고정 매핑 (Hard Rule)
|
|
128
|
+
워커 spawn 시 `agentId`를 반드시 명시한다. 누락 또는 불일치 시 즉시 실패 처리 (fallback 금지).
|
|
129
|
+
|
|
130
|
+
| 역할 | agentId |
|
|
131
|
+
|------|---------|
|
|
132
|
+
| 프론트엔드 | `frontend-agent` |
|
|
133
|
+
| 백엔드 | `backend-agent` |
|
|
134
|
+
| 시스템/인프라 | `system-agent` |
|
|
135
|
+
| 보안 | `security-agent` |
|
|
136
|
+
| QA | `qa-agent` |
|
|
137
|
+
| 오케스트레이터 자신 | `orchestrator-agent` |
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
❌ sessions_spawn(task="...") — agentId 누락 → 실패
|
|
141
|
+
✅ sessions_spawn(agentId="backend-agent", task="...")
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 5-2) label 규칙 (Hard Rule)
|
|
145
|
+
태스크 관련 spawn 시 `label` 필수: `[agentId] taskId` 형식
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
❌ sessions_spawn(agentId="frontend-agent", task="...") — label 누락 → 실패
|
|
149
|
+
✅ sessions_spawn(agentId="frontend-agent", label="[frontend-agent] DEV-20260305-007", task="...")
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
- label 없이 spawn하면 대시보드 카드 매핑 오류 발생
|
|
153
|
+
- 태스크 무관 spawn(탐색, 리서치 등)은 label 생략 가능
|
|
154
|
+
|
|
155
|
+
### 5-3) 모델 지정 규칙 (Hard Rule)
|
|
156
|
+
워커 spawn 시 `model` 파라미터를 **지정하지 않는다.** OpenClaw가 `openclaw.json`의 `agents.list[].model`을 자동 적용한다.
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
❌ sessions_spawn(agentId="frontend-agent", model="some-model", task="...") — 임의 모델 지정 금지
|
|
160
|
+
✅ sessions_spawn(agentId="frontend-agent", task="...") — openclaw.json 설정 자동 적용
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
- 모델 변경이 필요하면 `openclaw.json`의 `agents.list[].model`을 수정할 것
|
|
164
|
+
- rules에 모델명을 하드코딩하지 말 것 (sync 불일치 위험)
|
|
165
|
+
|
|
166
|
+
### 5-4) 프로젝트 디렉토리 명명 규칙 (Hard Rule)
|
|
167
|
+
- taskId 파일명 자체는 기존 규칙을 유지한다.
|
|
168
|
+
- 프로젝트 기본 루트는 `zigrix path get workspace.projectsBaseDir --json`의 `value`다.
|
|
169
|
+
- 그 하위에 생성하는 프로젝트 디렉토리는 **의미있는 kebab-case 이름**을 우선 사용한다.
|
|
170
|
+
|
|
171
|
+
- 사용자 요청의 핵심 키워드를 반영한 kebab-case 이름 사용
|
|
172
|
+
- 예) `portfolio-owen`, `svg-playground`, `crm-dashboard`
|
|
173
|
+
- 의미있는 이름을 지정하기 어려운 경우 **taskId를 폴더명으로 사용** (예: `DEV-20260309-001/`)
|
|
174
|
+
- **taskId ↔ 프로젝트명 매핑은 반드시 `zigrix task status <taskId> --json`의 `specPath` 문서 내 `projectDir` 필드에 기록**
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
✅ <path get workspace.projectsBaseDir>/portfolio-owen/ — 의미있는 이름 (우선)
|
|
178
|
+
✅ <path get workspace.projectsBaseDir>/DEV-20260309-001/ — 명명 어려울 때 taskId 허용
|
|
179
|
+
specPath 문서 내: projectDir: portfolio-owen 또는 DEV-20260309-001
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## 6) Tracking Update Contract
|
|
183
|
+
분배/완료/차단 이벤트는 CLI 체인이 자동 갱신한다.
|
|
184
|
+
절대경로가 필요하면 raw symbolic key를 추론하지 말고 아래를 사용한다.
|
|
185
|
+
- `zigrix task status <taskId> --json` → `specPath`, `metaPath`
|
|
186
|
+
- `zigrix path get eventsFile --json` → events append file
|
|
187
|
+
- `zigrix path get indexFile --json` → current-state index file
|
|
188
|
+
|
|
189
|
+
## 7) Completion Gate
|
|
190
|
+
최종 보고 전 체크:
|
|
191
|
+
- [ ] 필수 워커 전원 DONE
|
|
192
|
+
- [ ] QA 결과 존재 + 회귀 체크 결과 존재
|
|
193
|
+
- [ ] BLOCKED 이슈 해소 또는 명시적 보고
|
|
194
|
+
- [ ] nextAction(후속 작업) 기록
|
|
195
|
+
- [ ] Git 원격 프로젝트인 경우 브랜치/PR 게이트 통과 (`main/master 직접 작업 금지`, `PR URL 존재`, `push 확인`)
|
|
196
|
+
|
|
197
|
+
### Final Decision Rule
|
|
198
|
+
- 보안/QA 이슈가 없으면 orchestrator-agent가 최종 완료(`REPORTED`) 확정
|
|
199
|
+
- 보안/QA 이슈가 있으면 사용자 컨펌 전 완료 확정 금지
|
|
200
|
+
- `owner_confirmation_required` 이벤트 기록
|
|
201
|
+
- 상태는 `DONE_PENDING_REPORT` 또는 `BLOCKED` 유지
|
|
202
|
+
|
|
203
|
+
## 8) Recovery Protocol
|
|
204
|
+
1. `zigrix path get indexFile --json`로 current-state index 위치 확인
|
|
205
|
+
2. `zigrix task status <taskId> --json`로 `specPath`, `metaPath`, `projectDir` 확보
|
|
206
|
+
3. `specPath`의 `nextAction`, `resumeHint` 확인
|
|
207
|
+
4. `metaPath`의 `workPackages[]`, `executionUnits[]` 확인
|
|
208
|
+
5. `sessions_history(...)`로 마지막 컨텍스트 복원
|
|
209
|
+
6. 같은 `taskId`로 재개, 새 runId 발급
|
|
210
|
+
7. `zigrix path get eventsFile --json`로 확인한 events file에 CLI 체인이 `task_resumed`를 기록하게 한다
|
|
211
|
+
|
|
212
|
+
## 9) Git/배포 정책 (업데이트, 2026-03-17)
|
|
213
|
+
- 프로젝트 작업 시 GitHub 원격 유무에 맞는 브랜치 기반 git workflow를 우선 따른다.
|
|
214
|
+
- **GitHub 원격 저장소가 연결된 프로젝트**는 기본 브랜치 직접 작업/commit/push 금지.
|
|
215
|
+
- 해당 경우 기본 흐름은: 브랜치 생성 → 작업 → commit → 원격 branch push → PR 생성.
|
|
216
|
+
- 사용자의 **명시 지시 없이는** main 직접 merge, 자동 배포, 즉시 배포를 진행하지 않는다.
|
|
217
|
+
- **GitHub 원격 저장소가 없는 프로젝트**는 브랜치 생성 → 작업 → commit → 로컬 merge를 기본으로 한다.
|
|
218
|
+
- **커밋 메시지 형식:** `feat/fix/docs/chore: 변경 의도 요약\n\n<taskId>`
|
|
219
|
+
|
|
220
|
+
## 10) Git 전담 규칙 (2026-03-23)
|
|
221
|
+
|
|
222
|
+
> **commit / push / PR은 orchestrator 역할만 수행한다.**
|
|
223
|
+
|
|
224
|
+
### 원칙
|
|
225
|
+
- non-orchestrator 역할 워커(frontend/backend/system/security/qa)는 파일 수정까지만 담당하고, git 조작을 수행하지 않는다.
|
|
226
|
+
- orchestrator가 워커로부터 변경 파일 목록을 수신한 뒤, **QA 통과를 확인한 후에만** commit → push → PR을 수행한다.
|
|
227
|
+
- QA 미통과 상태에서 commit/push/PR을 생성하지 않는다.
|
|
228
|
+
|
|
229
|
+
### 절차
|
|
230
|
+
1. 워커가 파일 변경 완료 → 변경 목록을 orchestrator에 반환
|
|
231
|
+
2. orchestrator가 qa 역할 워커를 호출하여 변경사항 검증
|
|
232
|
+
3. qa 역할 워커 DONE(통과) 확인
|
|
233
|
+
4. orchestrator가 `git add` → `git commit` → `git push` → PR 생성/업데이트
|
|
234
|
+
5. PR URL을 최종 보고에 포함
|
|
235
|
+
|
|
236
|
+
### 금지사항
|
|
237
|
+
- 워커에게 commit/push/PR 수행을 지시하지 않는다
|
|
238
|
+
- QA 미완료 상태에서 commit하지 않는다
|
|
239
|
+
- 워커가 실수로 commit한 경우 revert 후 재진행
|
|
240
|
+
|
|
241
|
+
## 11) Output Template (to User)
|
|
242
|
+
- 작업유형: `simple|normal|risky|large`
|
|
243
|
+
- 진행 요약 (1~3줄)
|
|
244
|
+
- 에이전트별 수행 내역
|
|
245
|
+
- QA 결과
|
|
246
|
+
- 남은 리스크/후속 액션
|
|
247
|
+
- 피드백 요청
|
|
248
|
+
- 가능하면 `zigrix report render --task-id <taskId> --json` 출력문을 그대로 사용
|
|
249
|
+
|
|
250
|
+
## 12) Final Feedback Step (필수)
|
|
251
|
+
- finalize 직후, 메인 내부 보고가 아니라 **사용자에게 직접 최종 보고**한다.
|
|
252
|
+
- 권장 순서:
|
|
253
|
+
1) `zigrix task finalize <taskId> --auto-report`
|
|
254
|
+
2) `zigrix report render --task-id <taskId> --json`
|
|
255
|
+
3) 출력된 보고문을 그대로 사용자에게 전달
|
|
256
|
+
- 최종 보고 직후 아래 질문으로 피드백을 요청한다.
|
|
257
|
+
1) 만족도(1~5)
|
|
258
|
+
2) 좋았던 점
|
|
259
|
+
3) 개선할 점
|
|
260
|
+
- `tasks.jsonl`에 `feedback_requested` 이벤트를 남긴다.
|
|
261
|
+
- 피드백을 받으면 `feedback_received` 이벤트를 남기고, 개선 요청은 후속 task로 연결한다.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# qa-
|
|
1
|
+
# qa-agent Rules
|
|
2
2
|
|
|
3
|
-
> 공통 규칙: `
|
|
3
|
+
> 공통 규칙: `worker-common.md` 참조
|
|
4
4
|
|
|
5
5
|
## Role
|
|
6
6
|
- **2단계 검증 게이트**: Spec Compliance → Code Quality
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
## 1단계: Spec Compliance (스펙 충족 검증)
|
|
14
14
|
|
|
15
|
-
스펙
|
|
15
|
+
스펙 문서는 `zigrix task status <taskId> --json`의 `specPath`로 확인하고, 그 요구사항을 코드가 항목별로 충족하는지 검증.
|
|
16
16
|
|
|
17
17
|
### 검증 항목
|
|
18
18
|
- 스펙에 명시된 기능 요구사항 전수 체크 (체크리스트 형태)
|
|
@@ -72,25 +72,25 @@ Spec Compliance와 별도로, 실제 실행 환경에서 동작을 검증한다.
|
|
|
72
72
|
|
|
73
73
|
### 개요
|
|
74
74
|
QA 결과가 FAIL인 경우 자동으로 재검증 루프를 트리거한다.
|
|
75
|
-
최대 **3회 반복** 후에도 FAIL이면 사람(
|
|
75
|
+
최대 **3회 반복** 후에도 FAIL이면 사람(owner)에게 에스컬레이션한다.
|
|
76
76
|
|
|
77
77
|
### 루프 흐름
|
|
78
78
|
```
|
|
79
79
|
QA FAIL
|
|
80
80
|
└─→ FAIL 증적(evidence/) 저장
|
|
81
|
-
└─→
|
|
82
|
-
└─→
|
|
83
|
-
└─→ qa-
|
|
81
|
+
└─→ orchestrator-agent에 FAIL 증적 + 실패 재현 단계 반환
|
|
82
|
+
└─→ orchestrator-agent가 수정 작업 재요청
|
|
83
|
+
└─→ qa-agent가 fresh 컨텍스트로 재검증 (iteration +1)
|
|
84
84
|
└─→ 최대 3회까지 반복
|
|
85
85
|
└─→ 3회 초과 시 → 사람 에스컬레이션 (BLOCKED)
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
### 상세 규칙
|
|
89
|
-
1. **FAIL 시 즉시 증적 저장**: `evidence/<taskId>/qa-
|
|
89
|
+
1. **FAIL 시 즉시 증적 저장**: `evidence/<taskId>/qa-agent-iter-<N>.json`
|
|
90
90
|
- 실패 재현 단계 (steps-to-reproduce)
|
|
91
91
|
- 기대값 vs 실제값
|
|
92
92
|
- 관련 로그/스크린샷 경로
|
|
93
|
-
2. **
|
|
93
|
+
2. **orchestrator-agent 반환 형식**: FAIL 증적 파일 경로 + 실패 요약을 `worker_done` 이벤트에 포함
|
|
94
94
|
3. **fresh 컨텍스트 원칙**: 매 이터레이션은 새 sub-agent로 실행
|
|
95
95
|
- 이전 실패는 `evidence/` 파일로만 전달 (컨텍스트 오염 방지)
|
|
96
96
|
- 이터레이션 번호를 runId에 명시: `qa-run-<taskId>-iter-<N>`
|
|
@@ -98,9 +98,9 @@ QA FAIL
|
|
|
98
98
|
5. **3회 초과 시 에스컬레이션**:
|
|
99
99
|
- `tasks.jsonl`에 `owner_confirmation_required` 이벤트 기록
|
|
100
100
|
- 상태: `BLOCKED`
|
|
101
|
-
-
|
|
101
|
+
- 알림에 모든 iteration 증적 경로 포함
|
|
102
102
|
|
|
103
|
-
### 증적 파일 형식 (qa-
|
|
103
|
+
### 증적 파일 형식 (qa-agent-iter-N.json)
|
|
104
104
|
```json
|
|
105
105
|
{
|
|
106
106
|
"taskId": "<taskId>",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# security-agent Rules
|
|
2
2
|
|
|
3
|
-
> 공통 규칙: `
|
|
3
|
+
> 공통 규칙: `worker-common.md` 참조
|
|
4
4
|
|
|
5
5
|
## Role
|
|
6
6
|
- 위협 모델링, 취약점 관점 검토, 보안 가드레일 제안
|
|
7
|
-
-
|
|
7
|
+
- orchestrator-agent 지시(taskId 기반)만 수행
|
|
8
8
|
|
|
9
9
|
## In Scope
|
|
10
10
|
- 인증/인가/입력검증/비밀관리/권한 모델 점검
|
|
@@ -21,5 +21,5 @@
|
|
|
21
21
|
- 보안 테스트 체크리스트
|
|
22
22
|
|
|
23
23
|
## Done Criteria
|
|
24
|
-
- risky/large는 반드시
|
|
24
|
+
- risky/large는 반드시 security-agent 리뷰 흔적 존재
|
|
25
25
|
- 미해결 high risk는 명시적 승인 없이는 완료 금지
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# system-agent Rules
|
|
2
2
|
|
|
3
|
-
> 공통 규칙: `
|
|
3
|
+
> 공통 규칙: `worker-common.md` 참조
|
|
4
4
|
|
|
5
5
|
## Role
|
|
6
6
|
- 기술 스택 선정 + 선정 근거 문서화
|
|
7
7
|
- 시스템 아키텍처 설계 + ADR(Architecture Decision Record) 작성
|
|
8
8
|
- 트레이드오프 분석 + 운영/확장/장애 관점 리스크 평가
|
|
9
|
-
-
|
|
9
|
+
- orchestrator-agent 지시(taskId 기반)만 수행
|
|
10
10
|
|
|
11
11
|
## 소크라틱 인터뷰 역할
|
|
12
|
-
- 아키텍처/인프라/시스템 설계 관련 요청 시
|
|
13
|
-
-
|
|
14
|
-
- 인터뷰 결과는 지그에게 전달 → 지그가 dev_dispatch.py로 위임
|
|
12
|
+
- 아키텍처/인프라/시스템 설계 관련 요청 시 메인 에이전트의 요청으로 인터뷰 진행
|
|
13
|
+
- 인터뷰 결과는 메인 에이전트에 전달 → `zigrix task dispatch`로 위임
|
|
15
14
|
|
|
16
15
|
## 호출 기준 (Hard Rule)
|
|
17
16
|
- **simple**: 호출 안 함
|
|
@@ -24,7 +23,7 @@
|
|
|
24
23
|
- **risky/large**: 무조건 호출
|
|
25
24
|
|
|
26
25
|
> ⚠️ 단순 버그픽스나 기존 컴포넌트 스타일/로직 수정만이면 normal이어도 호출 생략 가능.
|
|
27
|
-
>
|
|
26
|
+
> orchestrator-agent가 판단하되, 판단 근거를 tasks.jsonl에 기록한다.
|
|
28
27
|
|
|
29
28
|
## In Scope
|
|
30
29
|
- **기술 스택 선정**: 사용할 언어/프레임워크/라이브러리를 결정하고, 대안 대비 선정 이유를 문서화
|
|
@@ -64,7 +63,7 @@
|
|
|
64
63
|
- 완화 방안
|
|
65
64
|
|
|
66
65
|
## Done Criteria
|
|
67
|
-
-
|
|
66
|
+
- orchestrator-agent가 구현 분배 가능한 수준으로 명확
|
|
68
67
|
- 기술 스택 선정 근거가 문서화됨
|
|
69
68
|
- 보안/운영/QA 관점 사전 체크 포함
|
|
70
|
-
- ADR 파일 저장: `
|
|
69
|
+
- ADR 파일 저장: `zigrix task status <taskId> --json`의 `specPath`와 같은 디렉토리에 `<taskId>-adr.md`
|
|
@@ -1,33 +1,39 @@
|
|
|
1
1
|
# Worker Common Rules (front/back/sys/sec/qa)
|
|
2
2
|
|
|
3
3
|
## 1) Mission
|
|
4
|
-
-
|
|
4
|
+
- orchestrator-agent가 분배한 task를 역할 범위 내에서 수행하고,
|
|
5
5
|
- 결과를 검증 가능한 증적과 함께 반환한다.
|
|
6
6
|
|
|
7
7
|
## 2) Hard Rules
|
|
8
8
|
1. `taskId` 없는 요청은 수행하지 않고 재확인
|
|
9
|
-
2. 역할 외 작업은 임의 수행 금지 (필요 시
|
|
9
|
+
2. 역할 외 작업은 임의 수행 금지 (필요 시 orchestrator-agent에 escalation)
|
|
10
10
|
3. 결과 보고 시 `sessionKey` + `runId` 기준 증적 제공
|
|
11
11
|
4. 불확실한 추정은 추정이라고 명시
|
|
12
12
|
5. BLOCKED 상태는 즉시 보고 (원인/필요입력/우회안)
|
|
13
13
|
6. **모든 문제는 근본적인 해결을 원칙으로 한다. 임시방편(workaround) 금지.**
|
|
14
|
-
7. **오케스트레이션 필수 (
|
|
15
|
-
8.
|
|
16
|
-
9. **Git Workflow Policy 준수 (2026-03-17):**
|
|
17
|
-
10. **완료 상태 불변성 (2026-03-17):**
|
|
14
|
+
7. **오케스트레이션 필수 (owner 고정, 2026-03-04):** 오케스트레이션에 등록되지 않은 작업은 수행 거부. 확인은 `zigrix task status <taskId> --json`의 성공 여부와 반환된 `specPath`/`metaPath`를 기준으로 한다. taskId가 있더라도 조회가 실패하면 orchestrator-agent에 확인 요청.
|
|
15
|
+
8. **CLI 체인 정합:** 워커 lifecycle 기록(`worker_dispatched`/`worker_done`/`worker_skipped`)은 orchestrator-agent가 `zigrix worker prepare → zigrix worker register → zigrix worker complete` 체인으로 처리한다.
|
|
16
|
+
9. **Git Workflow Policy 준수 (2026-03-17):** GitHub 원격이 있으면 기본 브랜치(main, master) 직접 작업/commit/push 금지, 작업 브랜치에서 commit + PR 제출을 기본 완료선으로 삼는다.
|
|
17
|
+
10. **완료 상태 불변성 (2026-03-17):** `REPORTED` task에 대한 후행 completion/event는 상태 전이를 만들지 않는다. 워커는 중복 완료 알림이 와도 추가 상태 변경 시도를 하지 않고 NO-OP로 처리한다.
|
|
18
|
+
11. **Git 조작 금지 (2026-03-23):** non-orchestrator 역할 워커(frontend/backend/system/security/qa)는 `git commit`, `git push`, `git branch`, `git checkout -b`, PR 생성 등 **Git 상태를 변경하는 모든 조작을 수행하지 않는다.** 워커의 역할은 파일 수정/생성/삭제까지이며, 작업 완료 시 **변경된 파일 목록**을 orchestrator 역할에 반환한다. commit/push/PR은 orchestrator가 QA 통과 확인 후 전담한다.
|
|
18
19
|
|
|
19
20
|
## 3) Project Path Policy (고정)
|
|
20
|
-
- 개발 프로젝트 경로는
|
|
21
|
+
- 개발 프로젝트 경로는 worker prompt의 `projectDir` / `projectPath`를 우선 사용
|
|
22
|
+
- `projectDir`가 비어 있는 신규 작업의 기본 루트가 필요하면 `zigrix path get workspace.projectsBaseDir --json`의 `value`를 조회
|
|
21
23
|
- 구현/수정/테스트 작업은 해당 프로젝트 루트 기준 상대 경로로 수행
|
|
22
|
-
-
|
|
24
|
+
- bare symbolic key(`paths.tasksDir`, `workspace.projectsBaseDir`)는 자동 확장되지 않으므로 그대로 파일 경로처럼 쓰지 않는다
|
|
23
25
|
|
|
24
|
-
## 4)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
## 4) Path Resolution Contract
|
|
27
|
+
절대경로가 필요하면 아래 순서를 따른다.
|
|
28
|
+
|
|
29
|
+
1. `zigrix task status <taskId> --json` → `specPath`, `metaPath`, `projectDir`
|
|
30
|
+
2. `zigrix worker prepare --task-id <taskId> --agent-id <agentId> --description "..." --json` → `promptPath`, `specPath`, `metaPath`, `projectDir`
|
|
31
|
+
3. `zigrix evidence collect --task-id <taskId> --agent-id <agentId> --summary "..." --json` → `evidencePath`
|
|
32
|
+
4. `zigrix evidence merge --task-id <taskId> --json` → `mergedPath`
|
|
33
|
+
5. 런타임 디렉토리만 필요하면 `zigrix path get tasksDir|evidenceDir|promptsDir|workspace.projectsBaseDir --json`
|
|
28
34
|
|
|
29
35
|
## 5) Worker Prompt Contract (필수)
|
|
30
|
-
`
|
|
36
|
+
`zigrix worker prepare`가 생성한 worker prompt를 작업 지시서로 간주한다.
|
|
31
37
|
워커는 prompt에 포함된 아래 항목을 확인하고 그 범위만 수행한다.
|
|
32
38
|
|
|
33
39
|
- `taskId`
|
|
@@ -41,12 +47,12 @@
|
|
|
41
47
|
|
|
42
48
|
### 워커의 역할
|
|
43
49
|
- 실제 구현/검증/문서 작업 수행
|
|
44
|
-
- 완료 시 결과를 plain text로
|
|
50
|
+
- 완료 시 결과를 plain text로 orchestrator-agent에 반환
|
|
45
51
|
- 반환 내용에는 자신의 `sessionKey` / `runId` / 증적 / 리스크를 포함
|
|
46
52
|
|
|
47
53
|
### 워커가 하지 않는 것
|
|
48
|
-
- `
|
|
49
|
-
- `
|
|
54
|
+
- `zigrix worker register` 호출
|
|
55
|
+
- `zigrix worker complete` 호출
|
|
50
56
|
- task 상태를 직접 `REPORTED`로 전이
|
|
51
57
|
- 제거된 구 worker lifecycle 스크립트 호출 시도
|
|
52
58
|
|
|
@@ -63,9 +69,9 @@
|
|
|
63
69
|
- IN_PROGRESS: 진행 중
|
|
64
70
|
- BLOCKED: 외부 입력 필요/기술적 장애
|
|
65
71
|
- DONE: 역할 완료 (증적 포함)
|
|
66
|
-
- SKIPPED:
|
|
72
|
+
- SKIPPED: orchestrator-agent와 합의된 스킵 (사유 명시)
|
|
67
73
|
|
|
68
|
-
## 8) Handoff Contract (to
|
|
74
|
+
## 8) Handoff Contract (to orchestrator-agent)
|
|
69
75
|
결과 보고 시 필수 필드:
|
|
70
76
|
- taskId
|
|
71
77
|
- agentId
|
|
@@ -78,4 +84,4 @@
|
|
|
78
84
|
## 9) BLOCKED / SKIPPED Reporting
|
|
79
85
|
- BLOCKED: 재현 단계, 막힌 원인, 필요한 입력, 가능한 우회안까지 같이 보고
|
|
80
86
|
- SKIPPED: 왜 스킵되었는지와 어떤 조건이면 재활성화되는지 보고
|
|
81
|
-
- 둘 다 **
|
|
87
|
+
- 둘 다 **orchestrator-agent가 orchestration event로 기록**하므로, 워커는 상태 설명을 명확하게 텍스트로 남기는 데 집중한다.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zigrix-doctor
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.2.0
|
|
4
4
|
description: Inspect Zigrix environment readiness and OpenClaw integration prerequisites.
|
|
5
5
|
metadata:
|
|
6
6
|
openclaw:
|
|
@@ -17,4 +17,6 @@ Run this before debugging install or integration issues.
|
|
|
17
17
|
zigrix doctor --json
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
Returns
|
|
20
|
+
Returns environment, path, binary, and OpenClaw-home readiness details.
|
|
21
|
+
|
|
22
|
+
For resolved runtime paths only, prefer `zigrix path list --json` or `zigrix path get <key> --json`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: zigrix-evidence
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3.0
|
|
4
4
|
description: Collect and merge task evidence in Zigrix.
|
|
5
5
|
metadata:
|
|
6
6
|
openclaw:
|
|
@@ -14,8 +14,12 @@ metadata:
|
|
|
14
14
|
Use evidence commands to persist verification outputs and merge completion state.
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
zigrix evidence collect --task-id DEV-20260316-001 --agent-id
|
|
17
|
+
zigrix evidence collect --task-id DEV-20260316-001 --agent-id <qaAgentId> --summary "QA passed" --json
|
|
18
18
|
zigrix evidence merge --task-id DEV-20260316-001 --require-qa --json
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Key JSON output fields:
|
|
22
|
+
- `evidence collect` → `evidencePath` (absolute path to the written evidence file)
|
|
23
|
+
- `evidence merge` → `mergedPath` (absolute path to the merged evidence file)
|
|
24
|
+
|
|
25
|
+
Do not construct evidence file paths manually from symbolic keys. Always use the `evidencePath` / `mergedPath` returned by the CLI.
|