[verified] docs(skill): harden rework orchestration

This commit is contained in:
2026-10-04 04:40:38 +00:00
parent 627cb515ce
commit 2289ef36b1
@@ -1,7 +1,7 @@
--- ---
name: gitea-issue-rework name: gitea-issue-rework
description: Gitea PR 검토 지적을 계약에 맞춰 재작업하고 검증한다. description: Gitea PR 검토 지적을 계약에 맞춰 재작업하고 검증한다.
version: 0.2.7 version: 0.2.8
author: genichin, Hermes Agent author: genichin, Hermes Agent
license: MIT license: MIT
platforms: [linux] platforms: [linux]
@@ -90,7 +90,7 @@ evidence_paths: [<source/test/document path>...]
verification: <test/static/runtime/browser evidence> verification: <test/static/runtime/browser evidence>
``` ```
Baseline 항목은 중복 없이 정확히 한 번 나타나야 한다. `intentionally_changed`에는 승인된 Issue 근거가 필요하다. `reviewed_status`의 `missing`은 finding matrix에 포함하고 `ambiguous`는 계약 판단 불가로 중단한다. Repository 첫 write 전 계획 기준 `planned_status`가 `missing=0`, `ambiguous=0`이어야 한다. Baseline 항목은 중복 없이 정확히 한 번 나타나야 한다. `intentionally_changed`에는 승인된 Issue 근거가 필요하다. `reviewed_status`의 `missing`은 finding matrix에 포함하고 `ambiguous`는 계약 판단 불가로 중단한다. Repository 첫 write 전 계획 기준 `planned_status`가 `missing=0`, `ambiguous=0`이어야 한다. Contract Preservation Inventory를 delegate할 때는 immutable pre-write snapshot에 대해 완료·회수한 뒤에만 mutating worker를 시작하며, 편집과 병렬 실행해 중간 상태를 판정하지 않는다.
모든 finding을 다음 matrix의 정확히 한 항목으로 분류한다. 모든 finding을 다음 matrix의 정확히 한 항목으로 분류한다.
@@ -242,7 +242,7 @@ Reviewer가 rework head를 새 snapshot으로 다시 검토해야 하며 이 com
### 7. 기존 PR branch 전달 ### 7. 기존 PR branch 전달
1. Write 직전에 remote branch와 PR head가 snapshot의 reviewed head와 여전히 exact-match하는지 확인한다. 1. Write 직전에 remote branch와 PR head가 snapshot의 reviewed head와 여전히 exact-match하는지 확인한다.
2. Canonical mirror remote를 변경하지 않고 explicit repository URL과 refspec으로 기존 Issue 전용 branch에 fast-forward non-force push한다. Named mirror remote를 사용해야 하면 `operations/repository-cache.md`에 따라 해당 push 호출에서만 `remote.<name>.mirror=false`를 적용한다. 2. 첫 delivery push 전에 승인된 noninteractive credential capability를 preflight하고 필요한 temporary askpass helper를 제한된 권한으로 준비한다. Credential은 출력하지 않고 주입하며 interactive prompt를 비활성화하고 push 시도 뒤 성공·실패와 무관하게 helper를 확정적으로 제거한다. 그 후 canonical mirror remote를 변경하지 않고 explicit repository URL과 refspec으로 기존 Issue 전용 branch에 fast-forward non-force push한다. Named mirror remote를 사용해야 하면 `operations/repository-cache.md`에 따라 해당 push 호출에서만 `remote.<name>.mirror=false`를 적용한다.
3. Push 결과만 신뢰하지 않고 remote branch SHA와 PR head SHA가 final local HEAD와 exact-match하는지 readback한다. 3. Push 결과만 신뢰하지 않고 remote branch SHA와 PR head SHA가 final local HEAD와 exact-match하는지 readback한다.
4. PR body 갱신이 필요한 경우 write 직전에 PR 전체 필드, review·comment·commit collection cardinality와 authenticated impl identity를 다시 읽는다. Current body의 `Closes #<issue-number>`와 기존 구현 내용을 보존하고 재작업 review ID·reviewed head·finding별 조치·최종 검증과 unresolved limitation만 반영한 exact body payload를 명시해 한 번만 호출한다. 성공 응답만 신뢰하지 않고 fresh PR과 관련 collection을 읽어 PR author stable account ID, exact body payload, `updated_at`, base·head·commit/ref, state·draft·merge 상태, labels·assignees·reviewer와 collection cardinality를 baseline과 비교한다. Exact body와 provider가 해당 body update로 파생한 `updated_at` 외의 변경은 승인되지 않았으며 인과를 증명할 수 없으면 partial로 중단한다. 4. PR body 갱신이 필요한 경우 write 직전에 PR 전체 필드, review·comment·commit collection cardinality와 authenticated impl identity를 다시 읽는다. Current body의 `Closes #<issue-number>`와 기존 구현 내용을 보존하고 재작업 review ID·reviewed head·finding별 조치·최종 검증과 unresolved limitation만 반영한 exact body payload를 명시해 한 번만 호출한다. 성공 응답만 신뢰하지 않고 fresh PR과 관련 collection을 읽어 PR author stable account ID, exact body payload, `updated_at`, base·head·commit/ref, state·draft·merge 상태, labels·assignees·reviewer와 collection cardinality를 baseline과 비교한다. Exact body와 provider가 해당 body update로 파생한 `updated_at` 외의 변경은 승인되지 않았으며 인과를 증명할 수 없으면 partial로 중단한다.
5. PR changed files, commits, state, merge 상태, statuses와 workflow runs를 다시 읽는다. Local test, commit status와 Actions run을 별도 사실로 기록한다. 5. PR changed files, commits, state, merge 상태, statuses와 workflow runs를 다시 읽는다. Local test, commit status와 Actions run을 별도 사실로 기록한다.