(#27) Trust-gated speaking + directed assignment #34

Merged
jacisjake merged 2 commits from task/27-trust-gated-speaking into main 2026-10-28 11:46:54 +00:00
jacisjake commented 2026-10-28 11:46:41 +00:00 (Migrated from github.com)
  • Trust gate for unprompted speech (spec section 5/10): respondConspiracy skips strangers; an open request (no addressee, not conspiracy) invites exactly one regular-and-up crow as a claim opportunity; a nest of only strangers stays open (0 invocations). Addressed requests still must-respond regardless of trust.
  • Claim-author rule: while the asked crow has not answered (Answered), a different crow cannot claim a solo/split request; the 409 names the asked crow. After it answers/declines, normal first-claim arbitration applies.
  • Ledger.Level(crow,"other") is the gate; C3 fixtures now promote their crows — the behavior change this encodes.

Closes #27 · Epic: #21

Red (impl reverted): TestStrangerOnlyWhenAddressed FAIL (stranger was invited before).
Green: 4 new tests + full suite pass.

- **Trust gate for unprompted speech** (spec section 5/10): `respondConspiracy` skips strangers; an **open request** (no addressee, not conspiracy) invites exactly one regular-and-up crow as a claim opportunity; a nest of only strangers stays open (0 invocations). Addressed requests still must-respond regardless of trust. - **Claim-author rule:** while the asked crow has not answered (`Answered`), a different crow cannot claim a solo/split request; the 409 names the asked crow. After it answers/declines, normal first-claim arbitration applies. - `Ledger.Level(crow,"other")` is the gate; C3 fixtures now `promote` their crows — the behavior change this encodes. Closes #27 · Epic: #21 **Red (impl reverted):** TestStrangerOnlyWhenAddressed FAIL (stranger was invited before). **Green:** 4 new tests + full suite pass.
Sign in to join this conversation.