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
@@ -1,6 +1,6 @@
|
||||
# 📑 Target State Transitions and CAS Specification
|
||||
|
||||
- **Document Version**: Rev.4 (운영자 권한 전이 2행 및 권한 축 추가 — 교차 리뷰 반영)
|
||||
- **Document Version**: Rev.5 (멱등 ACK 구분 및 관측 증거 필수 요건 명문화)
|
||||
- **Issue**: [Gitea Issue #5](https://git.godopu.com/tmpl/multi-agent-mux/issues/5)
|
||||
- **Scope**: Target Compare-And-Swap (CAS) State Machine & Attribution Contract
|
||||
|
||||
@@ -54,6 +54,8 @@ $$\text{Attribution Tuple} = (\text{job\_id}, \text{attempt\_id}, \text{agent\_s
|
||||
|
||||
> 🔑 **권한 축(Authority)**: `redispatch`·`finalize`는 `source ∈ {registry_cli, operator}`에서만 허용된다. 에이전트(`publish_event`)는 **자신의 terminal을 되돌릴 수 없다** — 이것이 CAS 표의 존재 이유이며, 위 두 행은 그 원칙의 예외가 아니라 래퍼가 수행하는 별개 전이를 이름 붙인 것이다.
|
||||
>
|
||||
> 🔑 **멱등 ACK는 거부가 아니다**: `terminal` 상태에서 같은 terminal을 재수신하면 표는 이를 **No-op ACK**로 정의한다. 호출자(운영자 CLI)는 이를 성공(rc 0)으로 취급해야 한다. 실제 거부(상충 신호·권한 부족)만 non-zero다. — 교차 리뷰 `cb792e91` F-C
|
||||
>
|
||||
> 🔑 **status는 요청으로만 설정된다**: 임의 필드로 실린 `status`는 경계 내부에서 거부된다(`progress`가 terminal을 커밋하는 우회 차단). 알 수 없는 요청명도 거부된다. `pending`도 소유 요청(`redispatch`)을 갖는다.
|
||||
|
||||
---
|
||||
|
||||
Reference in new issue
Block a user