workflows/
├── system/
│ ├── hooks.json
│ └── circuit-breaker.json
└── tasks/
└── <task-id>/
├── spec.md
├── task.json
├── phases.json
└── runs/
└── <run-id>.json
workflows/tasks/<task-id>/spec.md: 사람용 requirement artifact. 요청, 문제, 목표, 비목표, 제약, acceptance, 소크라테스 질문 로그, 승인 기록을 담는다. 새 spec contract에서는 clarification마다Status: open|resolved를 명시하고, 열린 질문이 없어질 때까지 질의를 계속한다.workflows/tasks/<task-id>/task.json: mutable task state이자 승인 시점의 locked intake source다. approval, active phase, latest run, latest verified run, kickoff requirement, blocked reason, user validation과intake를 담는다.workflows/tasks/<task-id>/phases.json: 승인 이후 생성된 executable phase 집합이다. phase 목표, write scope, acceptance command, test policy, retry count와 다음 세션 kickoff용 bootstrap metadata를 담는다.workflows/tasks/<task-id>/runs/*.json: phase completion, phase kickoff, verification, review, reopen evidence다.workflows/system/hooks.json: 전역 hook/guard/breaker 정책이다.workflows/system/circuit-breaker.json: 반복 실패 fingerprint 메모리다.
new가 task 디렉터리와spec.md,task.json,phases.jsonskeleton을 만든다.- 소크라테스 질문으로
spec.md를 채운다.Socratic Clarification Log는 clarification마다Q:로 시작하고 마지막 줄에Status:를 둔다.open은Q:와 선택적A:를 허용하고,resolved는Q:/A:/Decision:/Status: resolved를 순서대로 가진다. - 사용자가 현재 spec 초안에 명시적으로 동의하면
approve가 같은spec.md에 Approval block을 추가하고, 내용을task.json.intake로 잠근 뒤task.json을approved로 전이한다. - 추가 요구사항으로 spec을 다시 잠그면
approve를 다시 실행해task.json.intake를 갱신한다. plan --from또는plan --stdin이 외부 phase 초안을 읽어 같은 task 디렉터리의phases.json으로 적재한다.- 이후 실행, verification, review, reopen은 같은 task 디렉터리 artifact만 읽고 쓴다.
task.json은 최소한 아래 필드를 가진다.
idtitlecontract_versionstateprimary_repocreated_atapproved_atapprovalactive_phase_idlatest_run_idlast_verified_run_idkickoff_required_for_phaselast_kickoff_run_idblocked_reasonuser_validateduser_validation_noteintake.request_summaryintake.problem_summaryintake.goalsintake.non_goalsintake.constraintsintake.acceptanceintake.clarifications
intake.clarifications의 각 항목은 아래 필드를 가진다.
questionanswerdecisionstatus
phases.json의 각 phase는 최소한 아래 필드를 가진다.
idordertitlegoalinputsrequired_readsstarting_pointsdeliverablescompletion_signalallowed_write_pathsacceptance.commandstest_policy.modetest_policy.evidencestatusretry_count
test_policy.mode는 아래 둘 중 하나다.
require_tests: 구현 변경이 있으면 대응 테스트 변경이 필요하다.evidence_only: 테스트 delta 대신 명시적 evidence 배열을 근거로 허용한다.
required_reads, starting_points, deliverables, completion_signal은 다음 phase를 새 세션에서 시작할 때 task.json/phases.json/spec.md만으로 bootstrap할 수 있게 만드는 canonical metadata다.
- JSON schema 파일은 사용하지 않는다.
- artifact validation과 상태 전이는
scripts/workflow_runtime/models.py와engine.py가 소유한다. - 문서는 구조를 설명하지만 enforcement owner는 코드와 테스트다.