9.2 KiB
| name | description |
|---|---|
| finalize-task-routing | PLAN/CODE_REVIEW 작성 직전 build는 local-first로 라우팅하고 review는 실제 G와 고정 공식 리뷰 target을 확정한다. capability-gap 기반 cloud 선택과 follow-up 재평가에 사용한다. |
Finalize Task Routing
목적
build의 lane/G와 review의 G를 평가해 canonical 파일명을 확정한다.
공식 review는 항상 cloud의 Codex gpt-5.6-sol xhigh다. 이 스킬은 task 파일을 수정하지 않는다.
호출 시점
plan이 최초 또는 follow-up pair를 쓰기 직전- scope, 증거, 소유권, 결정 조건이 달라져 기존 route가 무효가 된 때
- 사용자가 현재 pair의 lane/G 판정을 요청한 때
입력
evaluation_mode:first-pass | isolated-reassessmenttargets.build,targets.review: 각 target의 요구, scope, 영향 경로, 불변조건, 검증 계획과 실제 증거- target별
context_snapshot: 함께 유지해야 할 source/test/diff/log/contract와 분할 가능성 - target별
ownership_snapshot: 공유 상태, 병행 작업, sibling task, 외부 책임 - target별
decision_snapshot: 미해결 의미 판단, 사용자 권한, 외부 환경 의존성 - build의
loop_risk_snapshot:ordered_transitions:state_count,adverse_paths,evidenceconcurrent_consistency:actor_count,constraints,evidenceboundary_contract:component_count,consumer_count,constraints,evidencestructured_interpretation:mechanisms,hazards,evidencevariant_product:independent_axis_count,combination_verification_required,evidence
invalidation_evidence: 실패 로그, review finding, 변경된 범위 등 재평가 근거
이전 lane/G, 점수, 라우팅 사유와 filename은 입력에서 제외한다. 이전 로그와 finding은 원본에서 확인한 사실만 사용한다. 확인된 부재는 0/false/빈 목록, 미확인은 unknown이다.
절차
1. 평가 격리
각 target을 unrouted로 시작한다. isolated-reassessment는 route 정보가 제거된 현재 snapshot만 평가한다. 중립 snapshot을 만들 수 없으면 blocked: isolated-routing-unavailable을 반환한다.
실패·review 횟수, Required/finding 개수와 이전 grade는 승격 조건이나 점수가 아니다.
2. 증거 gate
build와 review에 다음 값을 독립적으로 true | false | unknown으로 판정하고 파일·diff·명령 출력 근거를 한 줄씩 기록한다.
scope_closed: 정확성 조건과 영향 경로가 확정됐는가context_closed: 중요한 증거를 빠뜨리지 않고 함께 다룰 수 있는가verification_closed: 결정적 명령과 관찰로 성공을 판정할 수 있는가evidence_trusted: 검증이 실제 경로를 실행하며 재현 가능한가ownership_closed: 공유 상태와 외부 소유권이 명확한가decision_closed: 사용자 결정이나 외부 의미 판단 없이 완료할 수 있는가
파일 수, 긴 문서, 동시성, dirty worktree와 finding 수만으로 false를 주지 않는다.
- closure 또는 build loop-risk 필드가 하나라도
unknown이면needs_evidence다. 이를false로 낮추지 않는다. - closure
false가 권한, secret, 사용자 결정, 환경·의존성 또는 신뢰할 증거 부재라면blocked다. - closure
false를 cloud capability가 해소할 수 있을 때만capability-gap후보로 둔다.
3. G 등급
각 target을 다음 다섯 차원에서 독립적으로 0~2로 채점한다.
scope_coupling: 국소 / 여러 연결 지점 / 다중 모듈·계약state_concurrency: 무상태 / 상태 전이 / 공유 상태·순서·동시성blast_irreversibility: 내부 가역 / 다중 호출자·지속 상태 / 외부 계약·권한·비가역evidence_diagnosis: 직접 증거 / 복수 증거 조합 / 충돌·불신 증거 진단verification_complexity: 단일 명령 / 복수 단계·통합 / 외부·상호작용·장시간
grade = max(1, 점수 합)이다. lane과 반복 횟수는 점수에 더하지 않는다.
4. Route basis
build basis를 하나만 선택한다.
local-fit: 모든 closure가true이고 G01~G08grade-boundary: 모든 closure가true이고 G09~G10capability-gap: 하나 이상의 closurefalse를 cloud가 실제로 해소함
capability-gap에는 관측된 gap, source/test/diff/log 증거, cloud가 해소하는 방법을 모두 기록한다. 이 세 근거 없는 G01G08 build cloud route는 금지한다. G09G10에 실제 gap도 있으면 basis는 capability-gap으로 두고 grade 점수도 함께 보존한다.
review basis는 항상 official-review다. review G는 실제 복잡도 점수를 유지하고 G floor를 적용하지 않는다. lane은 cloud, 실행 target은 Codex gpt-5.6-sol xhigh로 고정한다. local worker의 자가검증은 공식 review를 대체하지 않는다.
5. Loop-risk audit
build의 다음 signature를 현재 증거로 기록한다.
temporal_state: 상태 3개 이상과 partial/retry/cancel/recovery/stale/duplicate 경로concurrent_consistency: actor 2개 이상과 atomic snapshot/lock order/exactly-once/race-free 제약boundary_contract: component 3개 이상 또는 consumer 2개 이상과 validation/immutability/compatibility 제약structured_interpretation: parser/lexer/protocol assembly/multi-source merge와 nesting/quoting/precedence/deduplication 위험variant_product: 독립 variant 축 2개 이상과 조합 검증
signature와 triggered는 audit 정보다. lane/G를 바꾸지 않는다.
WARN/FAIL 후에는 현재 scope를 다시 평가한다. local에서 닫히면 local을 유지하고, plan/split/fixture/test 문제면 local에서 재구성한다. 실제 capability gap만 해당 새 PLAN 세대를 cloud로 보낸다. 고정 시도 횟수나 finding 재발로 cloud를 확정하지 않는다.
6. Canonical filename
모든 gate를 통과한 뒤 pair mode를 정확히 한 번 실행한다. finalizer는 lane을 입력받지 않고 route basis와 grade에서 lane을 산출한다.
agent-ops/skills/common/finalize-task-routing/scripts/finalize-task-policy.sh pair \
<build-route-basis> <true|false> \
<build-scope> <build-state> <build-blast> <build-evidence> <build-verification> \
official-review \
<review-scope> <review-state> <review-blast> <review-evidence> <review-verification>
loop_risk.triggered는 두 번째 인자에 전달하지만 route에는 영향을 주지 않는다. unknown 상태에서는 finalizer를 호출하지 않는다. 호출자는 저수준 formatter를 직접 실행하거나 lane, grade, filename을 수작업으로 만들지 않는다.
검증
- 두 target의 closure, 근거와 점수가 독립적인가
- closure나 loop-risk의
unknown에서 finalizer를 호출하지 않았는가 - G01~G08 build cloud route가
capability-gap이고 세 근거가 있는가 - build의
local-fit은 G01G08,G10인가grade-boundary는 G09 - review가
official-review, cloud, Codexgpt-5.6-solxhigh인가 - signature와 반복 횟수가 route에 영향을 주지 않았는가
- finalizer 출력과 active filename이 일치하는가
출력 형식
status: routed | needs_evidence | blocked
evaluation_mode: first-pass | isolated-reassessment
finalizer: finalize-task-policy.sh
finalizer_mode: pair
targets:
build:
closures: {scope_closed: true, context_closed: true, verification_closed: true, evidence_trusted: true, ownership_closed: true, decision_closed: true}
closure_basis: {scope_closed: "<evidence>", context_closed: "<evidence>", verification_closed: "<evidence>", evidence_trusted: "<evidence>", ownership_closed: "<evidence>", decision_closed: "<evidence>"}
route_basis: local-fit
capability_gap: none
grade_scores: {scope_coupling: 2, state_concurrency: 1, blast_irreversibility: 1, evidence_diagnosis: 1, verification_complexity: 1}
loop_risk: {matched_signatures: [boundary_contract], triggered: true}
lane: local
grade: G06
filename: PLAN-local-G06.md
review:
closures: {scope_closed: true, context_closed: true, verification_closed: true, evidence_trusted: true, ownership_closed: true, decision_closed: true}
closure_basis: {scope_closed: "<evidence>", context_closed: "<evidence>", verification_closed: "<evidence>", evidence_trusted: "<evidence>", ownership_closed: "<evidence>", decision_closed: "<evidence>"}
route_basis: local-fit
capability_gap: none
grade_scores: {scope_coupling: 1, state_concurrency: 1, blast_irreversibility: 1, evidence_diagnosis: 1, verification_complexity: 1}
lane: local
grade: G05
filename: CODE_REVIEW-local-G05.md
missing_evidence: []
blocked_reason: null
capability-gap이면 capability_gap에 observed, evidence, cloud_resolution을 기록한다. needs_evidence/blocked에서는 finalizer와 route 결과를 null로 둔다.
금지 사항
- 이전 route나 반복 횟수로 자동 승격하지 않는다.
- signature로 cloud lane 또는 G floor를 강제하지 않는다.
- cloud가 해소할 수 없는 문제를 cloud route로 바꾸지 않는다.
- review에 universal cloud/G floor를 적용하지 않는다.
- PLAN, CODE_REVIEW, archive와 complete.log를 직접 수정하지 않는다.