You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: 소크라테스 spec coverage와 phase kickoff 계약 강화
- clarification coverage category와 kickoff gate를 runtime에 추가
- phase bootstrap metadata와 doctor consistency 검증을 보강
- docs, skills, tests, workflow task artifact를 새 계약에 맞춤
* chore: git-ranker 서브모듈 포인터를 리뷰 브랜치에 반영
- workflow task를 reopen하고 follow-up phase로 범위를 재잠금
- git-ranker gitlink를 backend PR #89 커밋으로 맞춤
- review_ready evidence를 다시 남기고 PR 리뷰 준비 상태로 복구
* fix: legacy 빈 inputs phase plan 호환성을 유지
- bootstrap default가 빈 required_reads를 저장하지 않도록 보정
- legacy empty-input phase planning 회귀 테스트를 추가
- PR review follow-up을 task evidence와 함께 다시 review_ready로 기록
Copy file name to clipboardExpand all lines: .codex/skills/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,8 +29,8 @@
29
29
1.`request-intake`
30
30
2.`socratic-spec-authoring`
31
31
3.`phase-planner`
32
-
4.`boundary-check -> phase-executor -> verification-runner`를 active phase마다 반복
32
+
4.`boundary-check -> phase-executor -> verification-runner`를 active phase마다 반복한다. 단, `task.json.kickoff_required_for_phase`가 active phase와 같으면 새 세션이 먼저 `kickoff`를 실행해야 한다.
33
33
5. 모든 phase가 끝나면 `review-closeout`
34
34
6. 실패, block, follow-up이면 `repair-reopen`
35
35
36
-
새 workflow에서는 markdown spec과 JSON state를 분리한다. `spec.md`는 사람용 요구사항 초안이고, `approve`가 이를 `task.json.intake`로 잠근다. `task.json`/`phases.json`/`runs/*.json`은 자동화용 canonical source다.
36
+
새 workflow에서는 markdown spec과 JSON state를 분리한다. `spec.md`는 사람용 요구사항 초안이고, `approve`가 이를 `task.json.intake`로 잠근다. 새 spec contract에서는 clarification coverage category를 모두 채워야 승인된다. `task.json`/`phases.json`/`runs/*.json`은 자동화용 canonical source고, phase boundary kickoff proof도 여기 남긴다.
12.`pre_push`의 branch-aware 예외는 현재 브랜치가 `main`이고 로컬 `main` tip이 로컬 `develop` tip과 같을 때의 동기화 publish에만 허용한다.
43
+
5.`plan --from <json>` 또는 `plan --stdin`이 phase 초안을 읽어 `phases.json`으로 적재한다. 각 phase는 `required_reads`, `starting_points`, `deliverables`, `completion_signal` bootstrap 정보를 가져야 하며, `spec.md`와 `task.json.intake`가 어긋나 있으면 plan을 시작하지 않는다.
44
+
6. phase-1은 `run --start`로 바로 시작할 수 있다.
45
+
7. 이전 phase verification이 통과해 다음 pending phase가 활성화되면, 새 세션이 먼저 `kickoff`를 실행해 bootstrap proof를 남겨야 한다.
46
+
8. 그 다음 `run --start`가 active phase를 시작한다.
47
+
9. 구현 후 `run --complete --changed-path ...`가 write scope와 TDD guard를 통과해야 한다.
3. 사용자가 현재 spec 초안에 명시적으로 동의하면 `approve`가 같은 `spec.md`에 Approval block을 추가하고, 내용을 `task.json.intake`로 잠근 뒤 `task.json`을 `approved`로 전이한다.
33
33
4. 추가 요구사항으로 spec을 다시 잠그면 `approve`를 다시 실행해 `task.json.intake`를 갱신한다.
34
34
5.`plan --from` 또는 `plan --stdin`이 외부 phase 초안을 읽어 같은 task 디렉터리의 `phases.json`으로 적재한다.
@@ -40,6 +40,7 @@ workflows/
40
40
41
41
-`id`
42
42
-`title`
43
+
-`contract_version`
43
44
-`state`
44
45
-`primary_repo`
45
46
-`created_at`
@@ -48,6 +49,8 @@ workflows/
48
49
-`active_phase_id`
49
50
-`latest_run_id`
50
51
-`last_verified_run_id`
52
+
-`kickoff_required_for_phase`
53
+
-`last_kickoff_run_id`
51
54
-`blocked_reason`
52
55
-`user_validated`
53
56
-`user_validation_note`
@@ -62,6 +65,7 @@ workflows/
62
65
`intake.clarifications`의 각 항목은 아래 필드를 가진다.
63
66
64
67
-`question`
68
+
-`category`
65
69
-`answer`
66
70
-`decision`
67
71
-`resolved`
@@ -75,6 +79,10 @@ workflows/
75
79
-`title`
76
80
-`goal`
77
81
-`inputs`
82
+
-`required_reads`
83
+
-`starting_points`
84
+
-`deliverables`
85
+
-`completion_signal`
78
86
-`allowed_write_paths`
79
87
-`acceptance.commands`
80
88
-`test_policy.mode`
@@ -87,6 +95,8 @@ workflows/
87
95
-`require_tests`: 구현 변경이 있으면 대응 테스트 변경이 필요하다.
88
96
-`evidence_only`: 테스트 delta 대신 명시적 evidence 배열을 근거로 허용한다.
89
97
98
+
`required_reads`, `starting_points`, `deliverables`, `completion_signal`은 다음 phase를 새 세션에서 시작할 때 `task.json`/`phases.json`/`spec.md`만으로 bootstrap할 수 있게 만드는 canonical metadata다.
python3 scripts/workflow.py new task-001 --title "..." --primary-repo git-ranker-workflow
17
17
```
18
18
19
-
이후 `workflows/tasks/task-001/spec.md`를 소크라테스 질문으로 잠근다. `Socratic Clarification Log`는 아래처럼 `Q/A/Decision`triplet만 사용한다.
19
+
이후 `workflows/tasks/task-001/spec.md`를 소크라테스 질문으로 잠근다. 새 spec contract에서는 `Socratic Clarification Log`가 아래처럼 coverage category를 포함한 `Q/A/Decision`triplet을 모두 채워야 한다.
20
20
21
21
```md
22
-
- Q: phase canonical source는 무엇인가?
22
+
- Q: [scope]phase canonical source는 무엇인가?
23
23
- A: executable plan은 prose가 아니라 JSON이어야 한다.
24
24
- Decision: `phases.json`만 canonical plan으로 쓴다.
25
25
```
@@ -39,14 +39,18 @@ python3 scripts/workflow.py plan task-001 --from /tmp/task-001-phases.json
39
39
cat /tmp/task-001-phases.json | python3 scripts/workflow.py plan task-001 --stdin
40
40
```
41
41
42
+
새 phase JSON은 `required_reads`, `starting_points`, `deliverables`, `completion_signal`을 포함해 다음 세션 kickoff 시작점을 잠가야 한다.
43
+
42
44
## 실행과 검증
43
45
44
-
`verify`는 `run --complete`로 닫힌 phase에 대해서만 실행한다.
46
+
`verify`는 `run --complete`로 닫힌 phase에 대해서만 실행한다. verification이 다음 pending phase를 활성화하면, 그 phase는 새 세션 kickoff를 거쳐야만 시작할 수 있다.
45
47
46
48
```bash
47
49
python3 scripts/workflow.py run task-001 --start
48
50
python3 scripts/workflow.py run task-001 --complete --changed-path scripts/workflow.py --changed-path tests/test_workflow_cli.py
0 commit comments