docs(agents): 스킬 선택과 오케스트레이션 규칙을 정리한다
This commit is contained in:
@@ -0,0 +1,174 @@
|
||||
# 스킬 오케스트레이션 구현 계획
|
||||
|
||||
| 항목 | 내용 |
|
||||
|---|---|
|
||||
| 상태 | 구현 완료 |
|
||||
| 작성일 | 2026-10-19 |
|
||||
| 요구사항 기준 | [`prd.md`](prd.md) |
|
||||
| 현재 Phase | Phase 1: 문서 및 루트 정책 통합 |
|
||||
| 현재 활성 Goal | 없음 |
|
||||
|
||||
## 목표
|
||||
|
||||
사용자 의도에 맞는 skill orchestration 정책을 루트 `AGENTS.md`에 적용하고, 근거 감사와 9개 routing scenario 및 문서 검증 증거를 완성한다.
|
||||
|
||||
## 현재 상태
|
||||
|
||||
| Phase | 상태 | 완료 Task | 활성/다음 Goal | 차단 또는 남은 조건 |
|
||||
|---:|---|---:|---|---|
|
||||
| 1 | 완료 | `2/2` | 없음 | 논리 대조·문서 검사·별도 검토 완료, 런타임 자동 호출은 미검증 |
|
||||
|
||||
동시에 하나의 미완료 Goal만 실행한다. 사용자는 안전한 조사, 문서 및 범위 내 루트 변경을 이미 명시적으로 승인했다. 후속 승인 대기 단계를 만들지 않는다.
|
||||
|
||||
## 범위
|
||||
|
||||
### 포함
|
||||
|
||||
- `AGENTS.md`의 기존 원칙 아래 skill orchestration 요약 변경.
|
||||
- `docs/20261019_스킬오케스트레이션/`의 PRD, 계획, 근거 감사, 지정 원문 기반 9 scenario.
|
||||
- scenario/PRD/audit/루트 정책 사이 일관성 및 문서 검증.
|
||||
|
||||
### 제외
|
||||
|
||||
- 앱 코드/테스트/스크립트, 전역 설정/지침, skill/plugin 파일 수정 또는 설치.
|
||||
- `AGENTS.md`의 요청 범위 바깥 기존 내용 변경.
|
||||
- gstack/worktree/commit/push 및 실제 skill invocation 실험.
|
||||
- 자동 invocation이 동작한다고 주장하거나 누락된 checklist를 만들고 sign-off 기준을 완화하는 일.
|
||||
|
||||
## 문서 작업 TDD 예외
|
||||
|
||||
문서/정책 변경은 생산 동작을 바꾸지 않으므로 fake unit test를 만들지 않는다. 대체 검증은 네 파일 정확성, 9개 원문/필드, source·metadata 주장 및 root diff의 assertion 대조다. 실행 시 다음을 사용하고 결과를 사실대로 기록한다.
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
git diff --no-index --check /dev/null docs/20261019_스킬오케스트레이션/prd.md
|
||||
git diff --no-index --check /dev/null docs/20261019_스킬오케스트레이션/plan-task.md
|
||||
git diff --no-index --check /dev/null docs/20261019_스킬오케스트레이션/audit.md
|
||||
git diff --no-index --check /dev/null docs/20261019_스킬오케스트레이션/routing-scenarios.md
|
||||
wc -c AGENTS.md
|
||||
./gradlew tasks --all
|
||||
```
|
||||
|
||||
현재 문서 정정 작업에서는 이 명령들을 실행하지 않는다. `wc -c` 출력은 Codex의 32,768 byte 기본 budget과 비교하고, Gradle 명령은 문서 변경에 대한 프로젝트 요구 점검이다. 네 파일 신규 비교가 필요하면 `git diff --no-index -- /dev/null <위의 실제 파일 경로>`를 실행한다. 이는 차이를 출력하고 통상 exit 1이므로 차이 출력과 실제 오류를 구분한다.
|
||||
|
||||
### Phase 1: 문서 및 루트 정책 통합
|
||||
|
||||
**Phase 결과:** 루트 정책과 네 문서가 같은 책임 분리와 승인 경계를 표현하며, 지정 시나리오와 실제 점검 결과를 추적할 수 있다.
|
||||
|
||||
**선행조건:** 필수 프로젝트 문서와 설치 근거를 읽었고 사용자가 전체 범위를 승인했다.
|
||||
|
||||
- [x] **Task 1.1: 사전 문서 작성 및 정정**
|
||||
|
||||
**Goal ID: `P1-T1`**
|
||||
|
||||
- **Objective:** 정확한 범위, 조사 근거, 9개 지정 요청의 라우팅 기대를 네 문서에 일관되게 남긴다.
|
||||
- **시작 조건:** 루트 지침/가이드/샘플 및 조사된 host/skill 근거 확인.
|
||||
- **정확한 파일 경로:** `docs/20261019_스킬오케스트레이션/prd.md`, `plan-task.md`, `audit.md`, `routing-scenarios.md`.
|
||||
- **완료 증거:** 네 파일 존재, PRD/plan이 루트 구현까지 포괄, 9개 원문과 필수 8필드, 확정된 metadata 사실, 계획된 검증을 실제 수행했다고 오기하지 않음.
|
||||
- **범위 밖:** `AGENTS.md` 편집, 기존 문서/설정/skill 변경, 실제 skill invocation.
|
||||
- **TDD 예외 사유:** 문서만 작성한다.
|
||||
- **대체 검증 방법:** 파일 수, assertion, 시나리오/근거 대조. 검증 명령 미실행 상태를 보존한다.
|
||||
|
||||
- [x] 필수 문서 및 조사 근거 기반 초안 네 파일을 작성했다.
|
||||
- [x] 정정 요청을 반영해 PRD/plan 범위, invocation 사실, 감사 근거 및 시나리오를 갱신했다.
|
||||
|
||||
- [x] **Task 1.2: 루트 skill orchestration 정책 적용**
|
||||
|
||||
**Goal ID: `P1-T2`**
|
||||
|
||||
- **Objective:** PRD의 확정 요구와 audit의 근거를 적용해 기존 루트 정책 아래에 최소 routing 요약을 반영한다.
|
||||
- **시작 조건:** `P1-T1`의 정정된 문서가 있고 기존 CORE/프로젝트 규칙을 보존한다.
|
||||
- **정확한 파일 경로:** 수정 `AGENTS.md`; 근거 `docs/20261019_스킬오케스트레이션/prd.md`, `audit.md`, `routing-scenarios.md`.
|
||||
- **완료 증거:** 요청된 제한 영역만 바꾸고 9 scenario에 대조하며 실제 실행한 검증만 기록한다.
|
||||
- **범위 밖:** 다른 기존 파일, 글로벌 설정, `SKILL.md`/plugin, 설치, gstack, 자동 commit, runtime 호출 주장.
|
||||
- **TDD 예외 사유:** 자연어 정책 편집이며 독립 생산 동작이 없다.
|
||||
- **대체 검증 방법:** AGENTS diff와 문서 assertion 대조, `git diff --check`, actual-path no-index whitespace check, byte budget 및 `./gradlew tasks --all` 결과.
|
||||
|
||||
- [x] 변경할 루트 영역을 읽고 유지할 기존 우선순위/작업 절차를 대조한다.
|
||||
- [x] 분류, 조건부 deep-interview, 단일 실행 경로, 중복 방지, 권한/발견 제한, 검증 시점만 최소 문구로 반영한다.
|
||||
- [x] 일반 architecture 요청에서 explicit-only skill을 선택하지 않으며 `grilling`을 explicit-only로 잘못 분류하지 않았는지 확인한다.
|
||||
- [x] 9개 exact prompt와 정책을 대조하고 실제 검증 결과를 기록한다.
|
||||
|
||||
- [x] **Phase Gate: 정책·근거·시나리오 정합성**
|
||||
|
||||
**Goal ID: `P1-GATE`**
|
||||
|
||||
- **Objective:** 루트 변경과 네 문서가 사용자 범위, 사실 근거, 프로젝트 문서 검증 요건을 충족하는지 판정한다.
|
||||
- **시작 조건:** `P1-T1`, `P1-T2` 완료.
|
||||
- **정확한 파일 경로:** `AGENTS.md`, `docs/20261019_스킬오케스트레이션/{prd.md,plan-task.md,audit.md,routing-scenarios.md}`.
|
||||
- **완료 증거:** 4파일/9원문 assertion, 9 scenario 8필드, diff 공백 확인, `wc -c AGENTS.md`, Gradle task 명령 결과와 미확인 조건 기록.
|
||||
- **범위 밖:** 자동 호출 성공 주장, checklist 결손 은폐/완화, 무관한 수정.
|
||||
- **TDD 예외 사유:** 최종 정책·문서 검토.
|
||||
- **대체 검증 방법:** 위 명령을 실제 실행하고 출력 및 exit status를 기록한다. `git diff --no-index`의 정상 차이 exit 1은 whitespace 검사 실패로 취급하지 않는다.
|
||||
|
||||
- [x] 모든 자동/보조 라우팅 조건이 audit의 설치/metadata 근거와 일치한다.
|
||||
- [x] 전역 공유 checklist 부재를 보고하고 그 checklist 기반 full sign-off를 주장하지 않는다.
|
||||
- [x] 실제 검증 결과, 남은 제한, 요청 범위 외 변경 부재를 기록한다.
|
||||
|
||||
## 실행 순서와 의존성
|
||||
|
||||
| 순서 | Goal | 선행조건 | 상태 |
|
||||
|---:|---|---|---|
|
||||
| 1 | `P1-T1` | 필수 가이드/근거 확인 | 완료, 이 정정판으로 갱신 |
|
||||
| 2 | `P1-T2` | 정정된 사전 문서 | 완료 |
|
||||
| 3 | `P1-GATE` | `P1-T1`, `P1-T2` 및 실제 검증 | 완료 |
|
||||
|
||||
## Progress
|
||||
|
||||
### `P1-T1` 실행 기록 (최초 작성)
|
||||
|
||||
- 무엇을: PRD/plan을 별도 patch로 먼저 만들고 audit/scenarios를 뒤에 추가했다.
|
||||
- 어떻게: 네 파일/9개 scenario 존재는 읽기/검색 도구로 확인했다. `git diff --check`, no-index, `wc -c`, Gradle 명령은 실행하지 않았다.
|
||||
- 결과: 초안 작성은 완료했으나 이후 부모 검토에서 범위, grilling metadata, 설치 근거, checklist 결손과 scenario prompt/소유권 오류가 발견되어 아래 정정 기록을 추가했다.
|
||||
|
||||
### `P1-T1` 정정 기록
|
||||
|
||||
- 상태: 문서 정정 완료, 검증 명령 대기.
|
||||
- 무엇을: 전체 사용자 승인 범위와 실제 근거, 요청 원문 그대로의 9 scenario, 명시적 요청/자동 선택 구분을 네 파일에 반영했다.
|
||||
- 검증: `P1-T1` 문서 편집을 완료로 표시한다. 최종 문서 점검 명령은 실행하지 않았다.
|
||||
- 이전 오류 기록을 삭제하지 않고 현재 문서 내용을 정정했다.
|
||||
|
||||
### `P1-T2` 실행 기록
|
||||
|
||||
- 상태: 대기.
|
||||
- 다음 행동: 정정된 PRD/audit/scenarios를 따라 루트 정책 편집.
|
||||
|
||||
### `P1-T1` 부모 검증 및 `P1-T2` 착수 - 2026-10-19
|
||||
|
||||
- 무엇을: 네 선행 문서를 모두 읽고 설치 파일·사용자 원문과 대조했다.
|
||||
- 보정: `.opencode/` 자체의 존재와 활성 설정 부재를 구분하고, deep-interview의 `argument-hint` 및 Context 평가 조건을 바로잡았다.
|
||||
- `test`/`rg` 검사: 종료 코드 0. 필수 문서 존재, 시나리오 9개 및 각 8개 필드(총 72개)를 확인했다.
|
||||
- 신규 네 파일의 `git diff --no-index --check /dev/null "$file"`: 종료 코드 0, 공백 오류 없음.
|
||||
- 결과: 선행 문서 검증 완료. `P1-T2`는 기존 내용 보존 및 한 줄 우선순위 명확화와 7개 짧은 정책 섹션 추가를 위임해 진행 중이다.
|
||||
|
||||
### `P1-GATE` 실행 기록
|
||||
|
||||
- 상태: 대기.
|
||||
- 다음 행동: 루트 편집 및 실제 검증 결과가 준비된 뒤 판정.
|
||||
|
||||
### `P1-T2` 완료 및 `P1-GATE` 1차 검증 - 2026-10-19
|
||||
|
||||
- 무엇을: 기존 우선순위 문장 한 줄을 상위 지침/권한 경계로 명확히 하고 7개 routing 섹션을 추가했다.
|
||||
- 왜: Superpowers 메인 흐름과 단계별 단일 책임, 선택적 specialist, 명시 호출 전용 제한을 실제 루트 지침에 반영하기 위해서다.
|
||||
- `git diff -- AGENTS.md`: 기존 본문은 우선순위 한 줄 외 보존. `git diff --numstat`는 77줄 추가/1줄 삭제다.
|
||||
- `git status --short --untracked-files=all`: `AGENTS.md`와 이 폴더의 신규 네 Markdown 문서만 변경됐다.
|
||||
- `git diff --check` 및 신규 네 문서의 no-index `--check`: 종료 코드 0, 공백 오류 없음.
|
||||
- `test`/`rg`: 종료 코드 0. 7개 루트 heading이 각각 한 번, 9개 원문 요청과 72개 필드, 참조 파일 존재 및 내부 주석/루트 override 미생성을 확인했다.
|
||||
- 수동 논리 대조: 9개 scenario 모두 현재 루트 정책에 일치. 도메인 분석·보안 리뷰·버그 수정 등 가상 작업 자체나 모델의 자동 호출은 실행하지 않았다.
|
||||
- `wc -c AGENTS.md`: 17,988 bytes로 Codex 기본 32,768 byte 예산 미만이다.
|
||||
- `./gradlew tasks --all`: 종료 코드 0, `BUILD SUCCESSFUL`. 기존 Gradle 9.0 관련 deprecation 경고는 유지된다.
|
||||
- 전역 설정 두 개 및 deep-interview/명시 호출 제한 관련 다섯 파일의 SHA-256은 편집 전 값과 동일하다. 전역 설정·설치 파일은 수정하지 않았다.
|
||||
- 다섯 변경 파일에 LSP 진단을 요청했으나 `.md` 서버가 설정되지 않아 수행할 수 없었다. 서버/설정은 추가하지 않고 문서 대조 및 공백 검사로 검증했다.
|
||||
- 전체 테스트·빌드는 실행하지 않았다. 실행 코드·의존성·빌드 설정 변경이 없어 문서 정합성·diff 검사와 Gradle task 목록으로 검증했다.
|
||||
- 남은 항목: 별도 최종 검토 결과와 최종 문서 공백/범위 재검사. 런타임 자동 invocation은 이번 Gate 범위 밖이며 미검증이다.
|
||||
|
||||
### `P1-GATE` 별도 검토 및 완료 판정 - 2026-10-19
|
||||
|
||||
- 별도 검토 결과: 수정 필수/권고 수준의 실질적 finding 없음. 기존 내용 보존, 실제 스킬 원문/metadata와의 일치,
|
||||
명시 호출 제한, 문서 크기, checklist 결손 보고 및 변경 범위를 확인했다.
|
||||
- 검토자는 Gradle·모델 실행을 반복하지 않았다. 사용자 9개 원문 대조와 Gradle/전역 파일 해시 검증은 부모 실행 결과를 근거로 한다.
|
||||
- 시나리오 문서에 9개 논리 대조 PASS와 9개 런타임 자동 호출 미실행을 별도로 기록했다.
|
||||
- 결과: `P1-T1`, `P1-T2`, `P1-GATE` 완료. 남은 호스트 활성화/참조 결손은 audit의 비보장 및 별도 승인 영역으로 남긴다.
|
||||
- 커밋·푸시·전역 설정 변경·스킬 설치·gstack 실행은 수행하지 않았다.
|
||||
- 최종 재검사: 시나리오 9개/72개 필드/논리 PASS 9행 및 미완료 계획 항목 부재를 확인했고,
|
||||
변경·신규 문서 공백 검사는 종료 코드 0, `./gradlew tasks --all` 재실행도 `BUILD SUCCESSFUL`이었다.
|
||||
Reference in New Issue
Block a user