docs(impl): preserve requirement contract inventory
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: gitea-issue-rework
|
||||
description: Gitea PR 검토 지적을 계약에 맞춰 재작업하고 검증한다.
|
||||
version: 0.2.3
|
||||
version: 0.2.4
|
||||
author: genichin, Hermes Agent
|
||||
license: MIT
|
||||
platforms: [linux]
|
||||
@@ -73,6 +73,25 @@ Repository file을 수정하기 전에 다음을 모두 검증한다.
|
||||
- 전체 native review baseline과 대상 review의 ID, author, state, body digest, reviewed head, submitted time, stale·dismissed 상태와 inline comments
|
||||
- Worktree state identity, base SHA, current HEAD, detached·locked 상태, staged·unstaged·untracked file과 미완료 Git operation
|
||||
|
||||
기존 canonical requirement revision을 갱신하거나 기존 계약 보존이 승인 조건이면 pinned source revision 또는 직전 승인 revision의 모든 requirement·acceptance criterion·상태 불변조건을 의미 단위로 추출해 다음 Contract Preservation Inventory를 같은 snapshot에 고정한다. ID 변경만으로 보존을 판정하지 않는다.
|
||||
|
||||
```text
|
||||
baseline_revision: <full SHA>
|
||||
path: <repository-relative canonical requirement path>
|
||||
baseline_id: <기존 requirement 또는 AC ID>
|
||||
semantic_key: <ID와 독립적인 안정된 의미 식별자>
|
||||
meaning: <정상·실패·경계·불변조건의 bounded 설명>
|
||||
reviewed_ids: [<reviewed head의 대응 ID>...]
|
||||
reviewed_status: preserved | intentionally_changed | missing | ambiguous
|
||||
planned_ids: [<재작업 후 대응 ID>...]
|
||||
planned_status: preserved | intentionally_changed | missing | ambiguous
|
||||
authorization: Issue contract citation authorizing intentional change, or none
|
||||
evidence_paths: [<source/test/document path>...]
|
||||
verification: <test/static/runtime/browser evidence>
|
||||
```
|
||||
|
||||
Baseline 항목은 중복 없이 정확히 한 번 나타나야 한다. `intentionally_changed`에는 승인된 Issue 근거가 필요하다. `reviewed_status`의 `missing`은 finding matrix에 포함하고 `ambiguous`는 계약 판단 불가로 중단한다. Repository 첫 write 전 계획 기준 `planned_status`가 `missing=0`, `ambiguous=0`이어야 한다.
|
||||
|
||||
모든 finding을 다음 matrix의 정확히 한 항목으로 분류한다.
|
||||
|
||||
```text
|
||||
@@ -92,7 +111,7 @@ reason: <bounded 판정 근거>
|
||||
- `reviewer_misunderstanding`: 지적이 승인 계약 밖의 새 요구사항이거나 authoritative tree와 맞지 않는다. 이를 만족시키려고 범위를 확장하지 않고 근거와 함께 unresolved로 보고한다.
|
||||
- `blocked_spec`: 명세 모순이나 새 결정이 필요하다. 모든 repository write를 중단한다.
|
||||
|
||||
완료 조건: 모든 review finding과 unsatisfied·indeterminate criterion이 matrix에 정확히 한 번 나타나고, `valid_fix`와 `evidence_gap`마다 변경 또는 검증 경로가 있으며, 이미 satisfied인 계약을 약화하는 항목이 없다.
|
||||
완료 조건: 모든 review finding과 unsatisfied·indeterminate criterion이 matrix에 정확히 한 번 나타나고, `valid_fix`와 `evidence_gap`마다 변경 또는 검증 경로가 있으며, 이미 satisfied인 계약을 약화하는 항목이 없다. Contract Preservation Inventory가 필요한 경우 baseline 전체가 대응되고 `missing=0`, `ambiguous=0`이다.
|
||||
|
||||
## Canonical 재작업 결과 comment
|
||||
|
||||
@@ -206,12 +225,13 @@ Reviewer가 rework head를 새 snapshot으로 다시 검토해야 하며 이 com
|
||||
1. Issue, comments, PR, commits, changed files, branch SHA와 전체 reviews를 다시 읽는다.
|
||||
2. Issue body digest·`updated_at`, PR base·head, 대상 review binding, review baseline 또는 default branch가 snapshot에서 material하게 drift하면 새 상태를 자동 채택하지 않고 중단한다.
|
||||
3. Worktree의 staged·unstaged·untracked state와 미완료 Git operation을 확인한다.
|
||||
4. Exact allowlist만 stage하고 staged diff를 다시 읽는다.
|
||||
5. Repository convention에 맞는 새 non-amended rework commit을 생성한다. Review별 traceability가 필요하면 commit message나 검증 기록에 PR과 review ID를 포함하되 review body를 그대로 복제하지 않는다.
|
||||
6. Commit 후 clean HEAD에서 최종 formatter, test와 필요한 runtime·browser 검증을 다시 실행한다. 이 뒤 repository file을 바꾸면 영향을 받은 검증을 다시 실행한다.
|
||||
7. 최종 검증 기록은 exact HEAD 또는 검증한 source tree, command, exit code, pass·skip·fail 수치, 환경, relevant output과 artifact path를 포함한다. Tracked evidence가 final HEAD 자체를 포함할 수 없어 evidence-only descendant가 생기면 검증한 commit과 final head의 ancestry 및 검증 대상 path가 불변임을 명시하고 숨기지 않는다.
|
||||
4. Contract Preservation Inventory가 필요한 경우 final tree에 다시 대응해 baseline 항목 수와 실제 상태를 검증하고 `missing=0`, `ambiguous=0`이 아니면 stage하거나 commit하지 않는다.
|
||||
5. Exact allowlist만 stage하고 staged diff를 다시 읽는다.
|
||||
6. Repository convention에 맞는 새 non-amended rework commit을 생성한다. Review별 traceability가 필요하면 commit message나 검증 기록에 PR과 review ID를 포함하되 review body를 그대로 복제하지 않는다.
|
||||
7. Commit 후 clean HEAD에서 최종 formatter, test와 필요한 runtime·browser 검증을 다시 실행한다. 이 뒤 repository file을 바꾸면 영향을 받은 검증을 다시 실행한다.
|
||||
8. 최종 검증 기록은 exact HEAD 또는 검증한 source tree, command, exit code, pass·skip·fail 수치, 환경, relevant output과 artifact path를 포함한다. Tracked evidence가 final HEAD 자체를 포함할 수 없어 evidence-only descendant가 생기면 검증한 commit과 final head의 ancestry 및 검증 대상 path가 불변임을 명시하고 숨기지 않는다.
|
||||
|
||||
완료 조건: final local HEAD, clean state, finding별 해결 evidence와 단일 검증 기록이 일치한다.
|
||||
완료 조건: final local HEAD, clean state, finding별 해결 evidence와 단일 검증 기록이 일치하며, 필요한 Contract Preservation Inventory는 `missing=0`, `ambiguous=0`이다.
|
||||
|
||||
### 7. 기존 PR branch 전달
|
||||
|
||||
|
||||
Reference in New Issue
Block a user