73 lines
4.9 KiB
Markdown
73 lines
4.9 KiB
Markdown
# 실행 모드 4종 — 판별 · 전달 · 기동 범위
|
|
|
|
`SKILL.md` §Phase 1·2 에서 분리한 상세 규약. 모드 이름은 **`초기` / `이어서` / `부분` / `전면`** 이며
|
|
이 문자열 그대로 팀원에게 전달한다.
|
|
|
|
## 판별 (Phase 1)
|
|
|
|
`_workspace/`(**저장소 루트 기준**. Ubisam 하네스의 `docs/[Ubisam산출물]/_workspace/`와 다른 곳)의
|
|
**분석 산출물 `01`~`06` 존재 여부**로 판별한다 — 폴더 존재만 보면 채점·로그 파일만 있어도 오판정한다.
|
|
|
|
**두 축을 각각 본 뒤 교차한다** — ① 산출물 `01`~`06`이 있는가 ② 요청이 전체인가 특정 영역인가.
|
|
한 축만 보면 오판정한다.
|
|
|
|
| ① 산출물 상태 | ② 요청 | 모드 | 동작 |
|
|
|---|---|---|---|
|
|
| 하나도 없음 | 전체 / 특정 영역 **무관** | **`초기`** | Phase 2부터 전원 기동. 폴더가 있어도, 특정 영역만 요청받았어도 만들 것이 없으므로 전원이다 |
|
|
| 일부만 있음 | 전체 | **`이어서`** | 있는 것 재사용, **없는 것만 생성**, 이동 없음 |
|
|
| 일부·전부 있음 | 특정 영역("아키텍처만 다시") | **`부분`** | **지목된 에이전트를 다시 돌린다.** 나머지는 재사용, 이동 없음 |
|
|
| 무관 | **"처음부터 다시" 명시** | **`전면`** | 기존을 `_workspace_prev/`로 이동. ②가 ①을 덮는 유일한 행 |
|
|
|
|
> **①이 "하나도 없음"이면 ②를 보지 않고 `초기`다.** 산출물 0건인데 "아키텍처만 다시"를 받으면
|
|
> `부분`처럼 보이지만, 재사용할 것이 없으므로 `초기`로 처리하고 사용자에게 그 사실을 알린다.
|
|
> 반대로 **`전면`은 ②가 우선**한다 — "처음부터 다시"는 산출물 상태와 무관한 명시적 지시다.
|
|
>
|
|
> 맨 "전체 분석"은 최초 실행과 같은 발화라 **이동 근거가 아니다** — 되돌리기 어려우니 확인 후 옮긴다.
|
|
> `_workspace_prev/` 이동은 **오케스트레이터만** 한다. 팀원은 모드를 "재사용할지" 판단에만 쓴다
|
|
> (에이전트 정의 6종에 같은 금지문이 있다 — 한쪽만 고치지 말 것).
|
|
>
|
|
> **`생략` 으로 적었는데 해당 산출물 파일이 실제로 없으면** 그 에이전트는 생략 대상이 아니다.
|
|
> 원장을 `진행중` 으로 고치고 기동한다 — 파일 존재 판정(§생략의 파급 2)이 성립하지 않기 때문이다.
|
|
|
|
## 기동 범위 (Phase 2)
|
|
|
|
**기동 대상을 줄이는 기준은 모드마다 다르다**(아래 §모드별 기준 표). `이어서` 는 **담당 산출물이
|
|
이미 있으면** 띄우지 않으며 **에이전트 3인 전원이 대상이다**:
|
|
|
|
| 에이전트 | 담당 산출물 | 전부 있으면 |
|
|
|---|---|---|
|
|
| `ptop-lead` | `01` | 생략 |
|
|
| `build-devops-engineer` | `04`·`05`·`06` | 생략 |
|
|
| `ptop-developer` | `02`·`03` | 생략 — 판단 시점만 Phase 3다 (`SKILL.md` §Phase 3 "developer 자신을 생략하는 경우") |
|
|
|
|
모드가 바꾸는 것이 이동 여부뿐이면 "있는 것 재사용, 없는 것만 생성"이라는 정의가 지켜지지 않는다.
|
|
|
|
⚠ **`부분`은 기준이 다르다 — 산출물 유무가 아니라 "지목됐는가"다.** `부분`은 지목된 에이전트를
|
|
**다시 돌리는** 모드라, 산출물이 있다는 이유로 생략하면 **재기동 대상이 곧 생략 대상이 되어
|
|
아무도 기동되지 않는다.** `부분`에서는 지목된 에이전트를 반드시 띄우고, 지목되지 않은 에이전트만
|
|
재사용한다(그쪽이 `생략` 이다).
|
|
|
|
`초기`·`전면` 은 전원 기동이며 생략이 없다.
|
|
|
|
| 모드 | 기동하지 않는 조건 |
|
|
|---|---|
|
|
| `초기` · `전면` | 없음 (전원 기동) |
|
|
| `이어서` | 담당 산출물이 **이미 있음** |
|
|
| `부분` | **지목되지 않음** (산출물 유무 무관) |
|
|
|
|
## 생략의 파급 (Phase 3·4)
|
|
|
|
**생략된 에이전트는 완료 알림을 보내지 않는다.** 알림을 기다리면 무기한 대기한다.
|
|
|
|
> **`생략` 은 모드가 아니라 "이번 실행에서 기동하지 않음"을 뜻한다.** `이어서`에서 산출물이
|
|
> 이미 있어 건너뛴 경우와 **`부분`에서 지목되지 않은 경우 둘 다** 여기에 해당한다.
|
|
> 상태 enum 정의부 → `data-protocol.md` §진행 원장.
|
|
|
|
1. 기동하지 않는 에이전트를 `_progress.md`에 **`생략 — 이전 산출물 재사용`** 으로 먼저 기록한다.
|
|
2. Phase 3·4는 그 에이전트를 **알림 대기 없이 파일 존재만으로 완료 판정**한다.
|
|
3. 생략된 에이전트는 Phase 4의 "살아 있는" 대상이 **아니다** — 교차 확인 질문을 보내지 않는다.
|
|
4. 그 산출물에는 `SKILL.md` §후속 작업의 **재사용 stale 문구**를 남긴다.
|
|
|
|
> 기동 대상을 늘리거나 줄이는 규칙을 고치면 **위 3개 소비처(Phase 2 기동 · Phase 3 완료 판정 ·
|
|
> Phase 4 교차 질문)를 같은 편집에서 확인**한다 (`docs/harness-ptop.md` §소비처 확인 의무).
|