diff --git a/docs/agent-constraints.md b/docs/agent-constraints.md index 1e6754b..7a9f9c5 100644 --- a/docs/agent-constraints.md +++ b/docs/agent-constraints.md @@ -37,6 +37,11 @@ It is distinct from `docs/requirements-log.md`, which records **project/product - Keep `workflow/session-handover.md` updated with a same-day entry for the active branch. - If the check fails, stop and fix handover artifacts first. +6. **Process-change-first execution gate** + - If process/governance change is required, merge the process ticket to the feature branch first. + - Do not start code/test edits for implementation tickets until process merge evidence is confirmed. + - Subagents must be constrained to read-only exploration until the process gate is satisfied. + ## Change Control - Changes to this file follow the same workflow as code changes. @@ -56,3 +61,9 @@ It is distinct from `docs/requirements-log.md`, which records **project/product - All agents must pre-read `docs/commands.md` and `docs/workflow.md` troubleshooting before running Gitea issue/PR/comment commands. - `gh` CLI is prohibited for repository ticket/PR operations; use `tea` (or documented Gitea API fallback only). - Session start must pass `python3 scripts/session_handover_check.py --strict`, with branch-matched entry in `workflow/session-handover.md`. + +### 2026-02-27 + +- Apply process-change-first as an execution gate: process ticket must be merged before implementation ticket coding. +- Handover entry must record concrete `next_ticket` and `process_gate_checked`; placeholders are not allowed in strict gate. +- Before process merge confirmation, all subagent tasks must remain read-only (analysis only). diff --git a/docs/workflow.md b/docs/workflow.md index d8ba052..1b07639 100644 --- a/docs/workflow.md +++ b/docs/workflow.md @@ -188,6 +188,19 @@ Use `run_in_background=True` for independent tasks that don't block subsequent w - process ticket 미반영 상태에서 기능 티켓 코딩/머지 금지 - 세션 전환 시에도 동일 규칙 유지 +### Implementation Start Gate (Mandatory) + +구현 티켓을 시작하기 전에 아래 3개를 모두 만족해야 한다. + +1. `process ticket merge` 증적 확인 (feature branch 반영 커밋/PR) +2. `workflow/session-handover.md` 최신 엔트리에 `next_ticket`과 `process_gate_checked` 기록 +3. `python3 scripts/session_handover_check.py --strict` 통과 + +강제 규칙: +- 위 3개 중 하나라도 불충족이면 코드/테스트 수정 금지 +- 서브에이전트 지시도 동일하게 제한한다 (`process merged 확인 전 read-only 탐색만 허용`) +- 성급 착수 발견 시 구현 작업을 즉시 중단하고 handover/proces gate부터 복구한다 + ### Ticket Maturity Stages (Mandatory) 모든 티켓은 아래 4단계를 순서대로 통과해야 한다. diff --git a/scripts/session_handover_check.py b/scripts/session_handover_check.py index 229301e..b2ded16 100755 --- a/scripts/session_handover_check.py +++ b/scripts/session_handover_check.py @@ -81,6 +81,7 @@ def _check_handover_entry( "- docs_checked:", "- open_issues_reviewed:", "- next_ticket:", + "- process_gate_checked:", ) for token in required_tokens: if token not in latest: @@ -98,6 +99,13 @@ def _check_handover_entry( "latest handover entry must target current branch " f"({branch_token})" ) + if "- next_ticket: #TBD" in latest: + errors.append("latest handover entry must not use placeholder next_ticket (#TBD)") + if "merged_to_feature_branch=no" in latest: + errors.append( + "process gate indicates not merged; implementation must stay blocked " + "(merged_to_feature_branch=no)" + ) def main() -> int: diff --git a/workflow/session-handover.md b/workflow/session-handover.md index 4233291..68085f6 100644 --- a/workflow/session-handover.md +++ b/workflow/session-handover.md @@ -15,6 +15,7 @@ - docs_checked: docs/workflow.md, docs/commands.md, docs/agent-constraints.md - open_issues_reviewed: #... - next_ticket: #... +- process_gate_checked: process_ticket=#..., merged_to_feature_branch=yes|no|n/a - risks_or_notes: ... ``` @@ -24,3 +25,19 @@ - open_issues_reviewed: #304, #305, #306 - next_ticket: #304 - risks_or_notes: 세션 시작 게이트를 문서/스크립트/CI로 강제 적용 + +### 2026-02-27 | session=codex-handover-start +- branch: feature/v3-session-policy-stream +- docs_checked: docs/workflow.md, docs/commands.md, docs/agent-constraints.md +- open_issues_reviewed: #306, #308, #309 +- next_ticket: #304 +- process_gate_checked: process_ticket=#306,#308 merged_to_feature_branch=yes +- risks_or_notes: 미추적 로컬 파일 존재(문서/DB/lock)로 커밋 범위 분리 필요 + +### 2026-02-27 | session=codex-process-gate-hardening +- branch: feature/issue-304-runtime-staged-exit-semantics +- docs_checked: docs/workflow.md, docs/commands.md, docs/agent-constraints.md +- open_issues_reviewed: #304, #305 +- next_ticket: #304 +- process_gate_checked: process_ticket=#306,#308 merged_to_feature_branch=yes +- risks_or_notes: process-change-first 실행 게이트를 문서+스크립트로 강화