Files
llm-wiki/harness/source/skills/branch-from-project.md
T

2.8 KiB

project 실행계획의 Work Item을 결정론 runtime으로 branch-note에 적용합니다.

입력: {{arguments}}

실행 계약

  • 이 workflow는 harness/runtime/branch_from_project.py의 얇은 wrapper다.
  • project 표나 decision registry를 직접 파싱하지 않는다.
  • branch 문서, Work Item 상태, parent MOC를 직접 작성하거나 수정하지 않는다.
  • runtime 실패를 임의 보정하거나 같은 로직을 자연어로 재구현하지 않는다.

작업 절차

  1. 인자가 project slug와 WI-<PROJECT>-NNN 두 값인지 확인한다. 값이 없거나 두 개가 아니면 사용법만 보고하고 종료한다.

  2. runtime이 선택한 parent project의 current hub semantic certificate를 status와 무관하게 검사한다. 직접 우회하지 않는다. 독립 재현 명령은 다음과 같다.

    python3 harness/runtime/semantic_certificate.py --root . --check --mode hub --path raw/project-notes/<project>.md
    

    SEMANTIC_CERTIFICATE_MISSING, SEMANTIC_CERTIFICATE_STALE, semantic blocking verdict, certificate에 bind된 typed graph drift 중 하나라도 있으면 branch 생성을 중단한다.

  3. 다음 dry-run을 실행한다. branch_from_project.py도 같은 parent certificate 검사를 내부에서 수행하므로 wrapper 문구만으로 통과시킬 수 없다.

    python3 harness/runtime/branch_from_project.py <project> <WI-ID> --dry-run
    
  4. exit code가 0이고 JSON의 schema_versionbranch-from-project-result/v1, statusDRY_RUN인지 확인한다. plan_sha256이 64자리 소문자 SHA-256이 아니면 쓰지 않고 종료한다.

  5. dry-run이 반환한 plan_sha256을 그대로 사용해 다음 apply를 한 번 실행한다.

    python3 harness/runtime/branch_from_project.py <project> <WI-ID> --apply --expected-plan-sha256 <plan_sha256>
    
  6. exit code가 0이고 JSON의 schema_versionbranch-from-project-result/v1, statusAPPLIED이며 plan_sha256이 dry-run 값과 같은지 확인한다. generated-only scaffold의 local semantic audit는 이 단계에서 꾸며내지 않고 /branch-spec까지 명시적으로 유예한다.

  7. 성공 시 APPLIED JSON에 존재하는 필드만 짧게 요약하고 /branch-spec <branch>를 다음 단계로 안내한다. 실패 시 runtime 오류를 그대로 보고하고 추가 쓰기나 보정을 수행하지 않는다.

금지 사항

  • project 또는 Work Item Markdown 직접 해석
  • template 복사나 placeholder 치환
  • branch 파일 직접 생성·수정
  • Work Item status 또는 generated MOC 직접 수정
  • dry-run 없이 apply 실행
  • --expected-plan-sha256 생략 또는 임의 값 사용
  • 실패 후 partial write 정리나 수동 재시도
  • parent hub certificate 검사 생략 또는 stale certificate로 branch 파생
  • wiki/log.md 기록