feat(stage2): add S2_00 AgentBackend spec
Keep the adapter non-executable until the native loader primitive and signed runtime admission contracts are bound.
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
# S2_00 AgentBackend YAML 구현
|
||||
|
||||
## Objective
|
||||
|
||||
`S_00_SOW.md`와 Stage 2 v4 계약을 그대로 실행 경계로 삼아, 이미 배포된 `Default_Agent/Stage_2_Clean/` 고정 자산을 소비하는 독립 실행용 `Stage_2_S2_00.yml`을 작성한다.
|
||||
|
||||
## Deliverables
|
||||
|
||||
- `YAML_Prompts/2. Stage_2/Stage_2_S2_00.yml`
|
||||
- `YAML_Prompts/2. Stage_2/MEMORY.md`의 압축 작업 기록
|
||||
- 후보 2개, 앙상블, 2회 독립 병렬 평가의 검증 근거
|
||||
|
||||
## Scope and Non-Scope
|
||||
|
||||
- 범위: AgentBackend orchestration YAML, loader/runtime 호출 계약, deterministic 분기·출력·오류 전파, 정적 검증.
|
||||
- 비범위: 신규 Python 구현, 법률 content 보강, Stage 1 live 실행, production admission, 외부 서명·법률가 승인.
|
||||
|
||||
## Known Inputs
|
||||
|
||||
- `YAML_Prompts/2. Stage_2/S_00_SOW.md`
|
||||
- `YAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.md`
|
||||
- `YAML_Prompts/2. Stage_2/SKILL.md`
|
||||
- `YAML_Prompts/2. Stage_2/Default_Agent/Stage_2_Clean/`
|
||||
- `YAML_Prompts/2. Stage_2/Prompt_stage_2_S2_00_assets_creation.txt`
|
||||
|
||||
## Material Assumptions
|
||||
|
||||
- 사용자 문구의 `S2_00_SOW.md`는 저장소 정본 파일명 `S_00_SOW.md`를 가리킨다.
|
||||
- 최종 YAML은 Main working directory에 저장하며, 고정 Python의 내용을 인라인 재구현하지 않고 배포 자산을 호출한다.
|
||||
|
||||
## Questions That Could Change the Outcome
|
||||
|
||||
- 없음. 경로·실행 경계는 정본 SOW, 배포 binding 및 로컬 YAML 가이드에서 확인한다.
|
||||
|
||||
## Workstreams and Dependencies
|
||||
|
||||
1. 정본 계약과 실제 배포 자산의 일치 여부를 조사한다.
|
||||
2. 독립 후보 YAML 2개를 병렬 설계한다.
|
||||
3. Main agent가 계약별 장점을 취합해 단일 초안을 작성한다.
|
||||
4. 독립 evaluator 2개로 Round 1 평가 후 증분 개정한다.
|
||||
5. 새 evaluator 2개로 Round 2 평가 후 증분 개정한다.
|
||||
6. 구문·DAG·경로·금지 edge·MEMORY를 검증한다.
|
||||
|
||||
## Source and Tool Plan
|
||||
|
||||
- 로컬 정본 문서와 실제 파일을 우선한다.
|
||||
- `rg`, YAML parser, 프로젝트 테스트와 읽기 전용 sub-agent 감사를 사용한다.
|
||||
- 외부 웹 조사나 외부 write는 수행하지 않는다.
|
||||
|
||||
## Validation Plan
|
||||
|
||||
- YAML parse 및 Agent/Stages/task_procedure/tasks 연결 검증
|
||||
- 모든 참조 자산의 존재·NFC 경로 검증
|
||||
- loader/runtime 호출·상태 분기·single writer·구 v.0~v.3 dependency 0 확인
|
||||
- 독립 평가 2개 × 정확히 2회
|
||||
- staged/working tree의 무관 파일 비변경 확인
|
||||
|
||||
## Approval Boundaries
|
||||
|
||||
- 요청된 로컬 파일 생성·검증만 수행한다.
|
||||
- commit, production 배포, 외부 실행, 서명·법률 승인 상태 변경은 수행하지 않는다.
|
||||
|
||||
## Progress
|
||||
|
||||
- [x] 프로젝트 규칙·MEMORY·SKILL 위치 확인
|
||||
- [x] 정본 SOW·v4·배포 계약 조사
|
||||
- [x] 독립 후보 2개
|
||||
- [x] 앙상블 초안
|
||||
- [x] Round 1 평가·개정
|
||||
- [x] Round 2 평가·개정
|
||||
- [x] 정적 검증
|
||||
- [x] MEMORY 기록
|
||||
|
||||
## Decision Log
|
||||
|
||||
| Date/Stage | Decision | Basis | Consequence |
|
||||
|---|---|---|---|
|
||||
| 2026-08-30 / 착수 | `S_00_SOW.md`를 사용자 지칭 SOW의 정본으로 사용 | 저장소에 `S2_00_SOW.md`는 없고 해당 내용·history가 `S_00_SOW.md`에 존재 | 잘못된 유사 파일 생성·참조 방지 |
|
||||
| 2026-08-30 / 앙상블 | canonical workflow를 복제하지 않는 thin loader-adapter를 기본으로 하고 필요한 보존·route view만 둔다 | 후보 A는 계약 완전성, 후보 B는 drift 최소화를 각각 강화 | release가 유일 정본이며 이 파일의 복사 field는 비권위 view |
|
||||
| 2026-08-30 / Round 1 | O-06 전에는 빈 tasks·nexts와 host reject를 유지하고, O-06 후에는 지원 field만 가진 native projection으로 원자 교체한다 | 현재 AgentBackend에 외부 `.py` native primitive가 확인되지 않았고 확장 field는 실행 grammar가 아님 | 성공 no-op·미확인 tool 창작·loader 우회 방지 |
|
||||
| 2026-08-30 / Round 1 | loader/runtime 변경 요구는 YAML의 activation prerequisite로만 기록한다 | 이번 deliverable은 YAML 1개이며 기존 고정 자산 수정은 범위 밖 | single receipt·timeout·context binding 없이는 case activation 금지 |
|
||||
| 2026-08-30 / Round 2 | review enum은 `SUPPORTED`, slot enum은 `UNEVALUABLE` 포함으로 실제 schema와 일치시키고 explicit relation adapter가 미결속이면 해당 hard join만 비활성화한다 | 두 evaluator가 enum drift와 자유형 explicit relation 결속을 MAJOR로 식별 | 입력 의미를 임의 확장하지 않고 scope별 issue로 보존 |
|
||||
| 2026-08-30 / Round 2 | validate-only receipt v1과 사건 실행 receipt v2를 분리하고 native task를 loader invoke·receipt 검증·상호배타 dispatch를 담당하는 단일 원자 primitive로 한정한다 | 현재 loader는 case receipt·stdout capture·timeout·non-DEV admission을 구현하지 않음 | O-06/O-07 및 후속 구현 전 `tasks: []`, `nexts: []` 유지 |
|
||||
| 2026-08-30 / 최종 | 복사 view 24개를 machine-addressable local/authority pointer 또는 명시적 future blocking row로 관리한다 | evaluator의 drift-control·self-binding 지적 | canonical 자산 변경을 묵시적으로 수용하지 않고 activation 차단 |
|
||||
|
||||
## Evidence Ledger
|
||||
|
||||
| Claim/Issue | Source or Test | Status | Notes |
|
||||
|---|---|---|---|
|
||||
| S2_00 계약 | `S_00_SOW.md` | 조사 중 | 전체 계약 확인 필요 |
|
||||
| Stage 2 상하류 경계 | `stage_2_optimal_update_strategy_v.4.md` | 조사 중 | S2_10/S2_40 handoff 포함 |
|
||||
| AgentBackend YAML 문법 | `YAML_Prompts/2. Stage_2/SKILL.md` | 확인 | 독립 실행 YAML 구조·code-executor 규칙 적용 |
|
||||
| 배포 자산 | `Default_Agent/Stage_2_Clean/` | 조사 중 | manifest/binding/runtime 확인 필요 |
|
||||
| 후보 설계 | `plans/s2-00-agent-yaml-candidate-a.yml`, `candidate-b.yml` | 확인 | 2개 독립 후보 모두 O-06 OPEN을 보존 |
|
||||
| Round 1 법률·계약 평가 | 독립 evaluator | 반영 | affected-scope·review·slot·relation·route 보강 |
|
||||
| Round 1 architecture 평가 | 독립 evaluator | 반영 | native projection·single receipt·activation·retry·self-binding 보강 |
|
||||
| Round 2 법률·계약 평가 | 독립 evaluator | 반영 | CRITICAL 0, MAJOR 4, MINOR 1; review/slot·explicit relation·receipt profile·활성화 경계 개정 |
|
||||
| Round 2 architecture 평가 | 독립 evaluator | 반영 | CRITICAL 0, MAJOR 6, MINOR 1; native graph·workspace·timeout·self-binding·drift row 개정 |
|
||||
| 최종 YAML 정적 계약 | duplicate-key detector + pointer cross-check | PASS | 24 comparison rows(19 bound, 5 future-blocking), 16+1 ingress, C00→C15, 12/5 output 확인 |
|
||||
| 기존 S2_00 회귀검사 | `unittest discover tests/s2_00` | PASS | 38/38 PASS |
|
||||
| loader trust-boundary 검사 | validate-only loader 호출 | PASS WITH PENDING | `VALIDATED_WITH_PENDING_BINDINGS`; production 또는 case invoke 증명 아님 |
|
||||
|
||||
## Risks and Failure Modes
|
||||
|
||||
- 정본 workflow YAML과 AgentBackend 실행 YAML을 혼동해 duplicate runtime logic을 만드는 위험
|
||||
- DRAFT/DEV release를 production-ready로 오인하는 위험
|
||||
- localdocs user/workspace 격리 또는 host loader 경계를 우회하는 위험
|
||||
- 조건 분기에서 diagnostic artifact가 누락되거나 두 consumer가 동시에 실행되는 위험
|
||||
|
||||
## Results and Residual Uncertainty
|
||||
|
||||
`Stage_2_S2_00.yml`을 954행/45,833 bytes/SHA-256
|
||||
`3fbadd9bf48e8d3921b43f766690bf67ad1dd2cd0a8f624d78a9b3223edeeeb7`로 생성했다.
|
||||
이는 S2_00 고정 자산을 가리키는 정적 AgentBackend loader-adapter 계약이다. O-06 native
|
||||
primitive, O-07 signed admission, receipt v2, authenticated workspace mapping, loader timeout,
|
||||
explicit relation adapter, completion seal·detached signature가 닫히지 않아 실행 task와 downstream
|
||||
edge는 의도적으로 비어 있다. 따라서 현 결과는 production-ready 실행 YAML이 아니라 검증 가능한
|
||||
`DRAFT_NOT_EXECUTABLE` authoring projection이며, 위 전제들을 모두 충족한 atomic native projection으로
|
||||
교체·재봉인한 뒤에만 case activation을 주장할 수 있다.
|
||||
Reference in New Issue
Block a user