docs: align guidance with simplified agent and harness workflow

This commit is contained in:
KOKO\Mimi
2026-09-07 22:12:48 +09:00
parent d7e9629640
commit 5e2a30fce0
10 changed files with 593 additions and 1304 deletions
+66 -4
View File
@@ -23,8 +23,9 @@ FESA는 유한요소법 기반 구조해석 솔버를 단계적으로 구축한
- 현재 선택된 toolchain, 외부 형식과 구현별 계약은 [AGENTS.md](../AGENTS.md) 및 승인된
설정·Feature 계약을 따른다. 문서 일반화만으로 이를 교체하지 않는다.
- 기존 결정 번호는 다른 의미로 재사용하지 않는다. 후속 결정은 마지막 번호 다음으로 추가한다.
- ADR-024~027은 현재 agent·skill·Feature 문서 운영 계약을 기록한다. 새 해석 기능이나
외부 실행 권한을 승인하는 결정이 아니다.
- ADR-024~027은 당시 agent·skill·Feature 문서 운영 계약의 이력이다. 현행 운영은
[ADR-028](#adr-028)을 따른다. 대체 안내 아래의 기존 결정 본문과 그 안의 링크는
결정 당시 설명으로 읽으며 현행 절차를 요구하는 근거로 사용하지 않는다.
## 프로젝트 공통 결정
@@ -36,7 +37,7 @@ FESA는 유한요소법 기반 구조해석 솔버를 단계적으로 구축한
**이유**: 개발 자동화의 편의가 물리적 의미, 사용자 요구와 수치 검증을 대신하지 않게 한다.
**트레이드오프**: Solver의 완료 evidence와 자동화 자체의 correctness를 별도로 관리해야 한다.
현재 운영 역할과 검증 범위는 ADR-024·026에서 보완한다.
현재 운영 역할과 검증 범위는 ADR-028을 따른다.
### ADR-002: 구현·검증 환경은 명시된 프로젝트 baseline으로 관리한다
@@ -47,7 +48,7 @@ backend를 처리할 수 있다는 사실을 FESA 제품 지원으로 간주하
**이유**: 개발 환경의 암묵적 차이가 build와 numerical regression 판정을 흐리지 않게 한다.
**트레이드오프**: 새 환경은 별도의 compatibility와 실행 evidence가 필요하다. 원문의
기술 선택 이력은 유지하며, 현재 preset·명령 선택은 ADR-026의 구성 경계를 따른다.
기술 선택 이력은 유지하며, 현재 preset·명령 선택은 ADR-028이 유지하는 구성 경계를 따른다.
### ADR-003: 외부 입력은 승인된 subset의 의미로 지원한다
@@ -133,6 +134,9 @@ pattern·scatter와 deterministic reduction을 사용한다.
### ADR-012: 계획, 실행과 Hook 검증의 책임을 분리한다
> **부분 대체 — ADR-028:** 전용 Planning/Executor/Hook 분업은 폐기한다. 실제 검증
> evidence와 테스트 파일 존재의 구분은 유지한다. 아래 본문은 당시 결정의 이력이다.
**결정**: Planning은 할당된 계획 파일, Executor는 실행 상태와 Git 처리, Hook은 등록된
guardrail과 종료 검증을 담당한다. 테스트 파일 존재는 RED 관찰의 증거가 아니다.
@@ -245,6 +249,9 @@ ADR-014·020의 과거 수치 정책을 대체하지만 artifact 선택·identit
### ADR-024: Coordinator가 evidence 기반 workflow와 유한 correction을 소유한다
> **부분 대체 — ADR-028:** 전용 Coordinator·고정 상태 전이·correction/rerun 예산을
> 폐기한다. 승인 범위의 자율 작업, 필요한 사용자 결정과 필수 evidence는 유지한다.
**상태**: 현재 [agent 운영 계약](SOLVER_AGENT_DESIGN.md)의 기록.
ADR-012의 계획·실행·검증 계층을 보완하며 specialist의 계약 소유권을 변경하지 않는다.
@@ -264,6 +271,9 @@ Release readiness가 외부 게시나 배포 권한을 주지는 않는다.
### ADR-025: 프로젝트 기준과 Feature 문서의 원본·소유권을 분리한다
> **부분 대체 — ADR-028:** 관리 문서 4개·coordination 상태 원본·필수 requirements
> 분리·전체 bundle 인계를 폐기한다. 프로젝트/Feature 경계, 전문 소유권과 원본 구분은 유지한다.
**상태**: 현재 [Feature 문서 관리](FEATURE_DOCUMENTATION.md) 계약의 기록.
**결정**: 프로젝트 PRD·ARCHITECTURE·ADR에는 공통 기준만 둔다. Coordinator는
@@ -283,6 +293,9 @@ upstream 변경의 영향과 stale evidence를 추적할 수 있다.
### ADR-026: Harness의 구성, Git 소유권과 검증 범위를 신뢰 경계로 관리한다
> **부분 대체 — ADR-028:** Executor의 자동 Git·transport·자체 sandbox 통제와 hook
> 검증을 폐기한다. Config/command 신뢰 경계, 사용자 변경 보존과 실제 runtime 권한은 유지한다.
**상태**: 현재 [Harness skill](../.agents/skills/harness/SKILL.md)과
[프로젝트 지침](../AGENTS.md)의 실행 계약 기록. ADR-002의 구체적 실행 구성과
ADR-012의 운영 설명을 보완한다.
@@ -312,6 +325,9 @@ PreToolUse의 파일 존재 검사는 RED evidence가 아니다. Stop의 문서
### ADR-027: Harness의 Step 결과와 커밋 범위를 명시적 계약으로 검증한다
> **실행 계약 대체 — ADR-028:** phase Step payload·owned_paths·attempt_history·자동
> commit·transport retry는 더 이상 사용하지 않는다. 실패 증거와 사용자 변경 보존은 유지한다.
**상태**: 사용자 승인된 Harness 보완 계획(실패 상태 보존, 파일 소유권 검증, 환경 오류
분류)에 따른 결정. ADR-026의 실행 경계를 보완하며 solver·Hook·sandbox 권한을 변경하지 않는다.
@@ -334,6 +350,52 @@ Planning은 Step마다 정확한 상대 파일 목록 `owned_paths`를 작성한
경로 검사는 filesystem sandbox나 동시 writer에 대한 원자적 격리가 아니다. 구현·metadata
커밋도 단일 transaction이 아니므로 뒤쪽 커밋 실패 시 앞선 커밋을 보존하고 오류로 반환한다.
<a id="adr-028"></a>
### ADR-028: 메인이 필요한 전문 작업을 조정하고 Harness를 명시적 검증 실행기로 사용한다
**상태**: Accepted. 2026-09-07 사용자가 승인한
[문서 갱신 계획](superpowers/plans/2026-09-07-agent-harness-documentation-update.md)에 따라
Agent·Harness 경량화 결정을 공통 운영 문서에 반영한다. 솔버의 제품·물리·수치·입출력
계약과 외부 실행 권한은 변경하지 않는다.
**결정**:
- 메인 assistant가 작업 분해, 필요한 전문 작업의 위임, 구현 조정과 완료 확인을 맡는다.
7개 specialist는 필요한 경우에만 호출한다. 고정 stage 순회와 전용
coordinator/planning/correction/release profile은 사용하지 않는다.
- Harness는 `python scripts/execute.py`로 구성된 build/test를 한 번 명시 실행한다.
내부 LLM·프롬프트 주입, phase 상태기계, 자동 Git·재시도, 파일명 TDD gate와 대화 종료
hook은 사용하지 않는다. 기존 phase와 coordination 기록은 이력으로 보존한다.
- 동작 변경은 의미 있는 테스트로 검증하고, 버그는 가능한 경우 재현한 뒤 최소 수정한다.
개발 중 관련 검사를 수행하며 솔버 기능 완료 시 전체 build/test와 필수 reference 비교를
한 번 수행한다. 이후 변경·실패가 없으면 반복하지 않는다. 수식·요소·재료·적분·상태
갱신 변경의 독립 수치 검토와 필요한 analytical/invariant·물리 검증은 유지한다.
- 관련 입력 경로/절, 작업·수정 범위와 검증 기준만 인계하고 결과·변경 파일·검사·미해결
항목을 간결하게 반환한다. 일반 역할은 `medium`, 정식화·수치·물리 역할은 `high`를
기본으로 하며 난해한 작업에만 필요한 범위에서 높인다.
- Feature를 초기화하면 메인이 `FEATURED_AGENTS.md`, `PRD.md`, `ADR.md`를 관리한다.
현재 checklist와 작은 요구사항의 원본은 PRD에 둔다. 필요한 상세 계약·결과만 분리하여
연결하고 간단한 구현·build/test·reference evidence는 하나의 보고서에 기록한다.
Release-readiness 감사는 사용자가 명시적으로 요청할 때만 수행한다.
이 결정은 ADR-012·024~027의 위에 표시한 운영 부분을 대체한다. Config·preset·실행
command는 검토해야 할 실행 입력이며 `shell=False`나 경로 검사가 그 side effect를
sandbox처럼 격리하지는 않는다. 사용자 변경·reference를 보존하고 미실행·실패·stale
evidence를 통과로 표시하지 않는 원칙, 실제 도구 권한과 외부 작업의 명시적 승인은 유지한다.
**이유**: 반복적인 문맥 주입, 역할 전환, 형식적 보고와 중복 검증을 줄이면서 필요한
공학적 판단과 재현 가능한 evidence에 집중한다.
**트레이드오프**: 고정 상태기계나 자동 Git gate가 완료·변경 범위를 강제하지 않으므로
메인이 할당 범위, 필요한 검증과 미해결 항목을 확인한다. 명령 실패의 원인은 현재 구현
owner가 수정하며 새 근거나 변경 없이 같은 명령·agent 호출을 반복하지 않는다.
역할과 호출 조건은 [Agent 운영](SOLVER_AGENT_DESIGN.md), skill 적용은
[Skill 설계](SOLVER_SKILL_DESIGN.md), 문서 원본과 소유권은
[Feature 문서 관리](FEATURE_DOCUMENTATION.md), CLI·설정과 실패 진단은
[Harness](HARNESS.md) 및 [동작 과정](HARNESS_WORKFLOW.md)을 따른다.
## 후속 ADR 작성 기준
프로젝트 전체의 dependency 방향, 공통 identity·수명·결과 의미, 기술 baseline,