docs(issue-5): record the evidence requirement, the audit lock and the ack rule
Three contract points the round 2 fixes established. An idempotent re-receipt is an ACK in the table, so a caller must treat it as success. Only a genuine refusal is non-zero, and an invalid status stays the usage error it always was. That distinction is what keeps the wrapper's approved path from aborting under set -e. Completion attribution now requires evidence to be present, not merely non-contradictory, and names where it may be read from: a collector envelope beside the payload, or a non-native source's own payload. Never from inside a native Herdr payload, because MAM fields are forbidden there and one appearing anyway is not evidence of anything. The audit mirror's ordering guard is documented as a locked read-compare-write, with the reason a bare sequence number was not enough, and the note that the lock is deliberately taken outside the registry transaction. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrDNJkHmm18uu7n7JwV5Qd
This commit is contained in:
1 parent
cb575fa851
commit
0e74aa1e4e
3 files changed
+18
-3
No files matched your search
@@ -87,6 +87,8 @@
|
||||
- *증거*: 커밋 `964abc6`. `ShadowRunner`는 engine 참조를 **갖지 않는다**(구조적 차단, AST 단정). 측정: 전체 시나리오 실행 전후 **레지스트리 디렉터리 전 파일 SHA-256 동일**.
|
||||
- [x] **P2A-05** 교차 리뷰(`68abd0ff` Claude / `cae12436` Codex) 지적 5건 전건 수용·수정.
|
||||
- *증거*: 커밋 `56d08ef`. F-A(래퍼 loop/discuss 전이 2건 누락 → 운영자 권한 요청 `redispatch`/`finalize` 신설 + CLI 거부 시 non-zero), F-B(감사 mirror 순서 회귀 → `transition_seq` 비교), R1(관측 식별자 미대조 → `collect_observed_identity` 전량 대조 + 매니페스트 attempt 검증), R2(`expected_attempt`가 레코드에 없으면 무시 → fail-closed), R3(raw `status` 필드 우회 → 요청만이 status를 설정). 신규 회귀 11종 전부 수정 전 코드에서 실패함을 역검증.
|
||||
- [x] **P2A-06** 교차 리뷰 Round 2(`cb792e91` Claude / `0026165b` Codex) 지적 4건 전건 수용·수정.
|
||||
- *증거*: 커밋 `cb575fa`. F-C(멱등 ACK를 거부로 분류 → 래퍼 성공 경로가 `set -e`로 중단; 멱등은 rc 0, 진짜 거부만 rc 4), F-D(`VALID_STATUSES` 검증 소실 → 두 모드 공통 rc 1·레코드 불변), R1(증거 부재 시에도 승인 → 4식별자와 매니페스트 attempt **필수**, 식별자는 네이티브 payload가 아닌 `collector_attribution` 봉투에서 수집), R4(비원자적 비교-후-쓰기 → per-job 감사 락 + 고유 임시 파일). 신규 회귀 8종 전부 수정 전 코드에서 실패함을 역검증.
|
||||
- [x] **P2A-04** race/attempt 재사용/부분 report/도구 실행/blocked/unknown/재시작 시나리오.
|
||||
- *증거*: 신규 5종(`race_double_dispatch`, `attempt_reuse`, `partial_report`, `unknown_status`, `restart_midflight`)을 Phase 0 스키마로 작성해 **Phase 0의 `validate_watcher_scenario`를 통과**시켰고, 기존 7종과 합쳐 **12종 전부 `expected_policy.decision`과 일치**함을 단정한다.
|
||||
|
||||
|
||||
Reference in new issue
Block a user