Keep the adapter non-executable until the native loader primitive and signed runtime admission contracts are bound.
7.8 KiB
7.8 KiB
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.ymlYAML_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.mdYAML_Prompts/2. Stage_2/stage_2_optimal_update_strategy_v.4.mdYAML_Prompts/2. Stage_2/SKILL.mdYAML_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
- 정본 계약과 실제 배포 자산의 일치 여부를 조사한다.
- 독립 후보 YAML 2개를 병렬 설계한다.
- Main agent가 계약별 장점을 취합해 단일 초안을 작성한다.
- 독립 evaluator 2개로 Round 1 평가 후 증분 개정한다.
- 새 evaluator 2개로 Round 2 평가 후 증분 개정한다.
- 구문·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
- 프로젝트 규칙·MEMORY·SKILL 위치 확인
- 정본 SOW·v4·배포 계약 조사
- 독립 후보 2개
- 앙상블 초안
- Round 1 평가·개정
- Round 2 평가·개정
- 정적 검증
- 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을 주장할 수 있다.