<!-- GENERATED by tools/build_examples.py. Do not edit by hand.
     Every number here is derived from the artifact bytes next to it,
     with no clock and no environment read, so the file is a pure
     function of the examples. tools/tests/test_examples.py
     regenerates it and requires a byte-for-byte match, which is what
     stops a published measurement from quietly describing a build
     that no longer exists. -->

# Worked examples: current facts

Two Wisps, published so that an implementer has something real to read
rather than only a specification to interpret. One per profile.

Verify either of them yourself. Nothing below has to be taken on
trust: the manifest digest is the identity, every payload file is
pinned by SHA-256 inside the manifest, and one changed byte anywhere
fails verification.

```
python3 -B wisp-kit-v0/wisp.py verify <file>.wisp
python3 -B wisp-kit-v0/wisp.py resources eventhorizon-cicd.wisp
```

**The signatures prove bytes, not people.** Both are signed with a
deliberately public, deliberately worthless test seed whose only job
is to exercise the signature path. The correct reading of a valid
signature with no trust anchor supplied is `signed-unverified-publisher`,
and the publisher of these examples is NOT established. A key carried
inside a Wisp can never establish that Wisp's own publisher.

---

## `eventhorizon-cicd.wisp`

A governance gate for a repository: fail-closed checks, a deviation register whose records expire, and the honest split between what a machine enforces and what a person judges. Carries real, runnable resources.

| Fact | Value |
|---|---|
| Wisp id | `eventhorizon-cicd` |
| Title | Governed CI: gates, deviations and cold-start inheritance |
| Profile | `resources/0` |
| Bounded outcome | a governance gate in your own pipeline that can block a merge, plus a register of every shortcut you have knowingly taken, each with an owner and a date the pipeline enforces |
| Container bytes | 68884 |
| Container digest | `sha256:ed28055a7e6b862b6e87aae02a8f8caddcd868a89d1313ceacb780f87fbcdc8a` |
| Manifest digest (THE IDENTITY) | `sha256:65e7ef231aa72cfda9b375c77176dee084b7ba2ef790c9bf492a2aa64b97fb29` |
| Container entries | 23 |
| Inventoried payload files | 21 |
| Projections offered | `conversation`, `read-only` |
| Signature state (no trust anchor supplied) | `signed-unverified-publisher` |
| Publisher established | no |
| Classified resources | 6 |
| Execution default | `never` |
| Declared materials | 3 |

| Path | Bytes | SHA-256 |
|---|---|---|
| `DNA/adaptation.md` | 7253 | `sha256:66c7c171cc04bbc82f8257dd43d12356102a4d6ec638c2d4041b7073cbd8d50c` |
| `DNA/concepts.md` | 7046 | `sha256:357aef40193722cb7a062adb65a7b1f2a97f1ffef5998cda3eda6d174570b999` |
| `DNA/decisions.md` | 8580 | `sha256:4b110b3e0dfcf5a59ca40661dda8a8ba595c4351c01874026ca70383a4386001` |
| `DNA/evidence.md` | 6928 | `sha256:958548d4bf00bb558254097273fdb42288da46ec56043cade26e4d0cac7b17d1` |
| `DNA/failure-modes.md` | 7576 | `sha256:5b3dd59fa03ed95abfd5f63dea32cc5ace8bd5c5a321078d20edb9108300a87a` |
| `DNA/invariants.md` | 5330 | `sha256:2844b8512d99c9be79914f924f66418910265057167c58c9162759276f694d3d` |
| `DNA/mission.md` | 3131 | `sha256:0f3c83ca51b8641305e6532945e4d5e76b1d93f3a9f6d03ffbbb25883f0ae0f4` |
| `DNA/procedures.md` | 7110 | `sha256:b991bae0e5da4e762c9a164d6b21e4a6c686e2ff21186af931a64c10fbe7c7aa` |
| `DNA/provenance.md` | 6113 | `sha256:69fac4a20ae5f6ffe42e419d4b1dfbefe48165d13a8eb056d1ab7db12bded0d2` |
| `DNA/safety.md` | 4219 | `sha256:15fa4cbbefbbccb0cdf9f6920be2ca3b23e5a701b49e14160d9a1355ab53a019` |
| `DNA/tools.md` | 4932 | `sha256:7a07ab1176b1c4c667679c4fe2569a4703ebb59d67d78270923bb296ebe646b4` |
| `OPEN.md` | 6620 | `sha256:aecda22060152454d35b61fe175ef52717d9ffdc0a8de3f0977c4dcac8196d1f` |
| `PURPOSE.md` | 3686 | `sha256:bceb743f6ea71205579671bfd07c1b74e14d2943430140107bdce8d134410940` |
| `RESOURCES/ci/governance-gate.yml` | 4718 | `sha256:b7f889e624b903a3732d8c4015d226e2fdcfa6d70a3f43707546830a1a544ec5` |
| `RESOURCES/config/gates.example.json` | 4401 | `sha256:4e7e30dc38ebadd1ff8ab14daf04df84e8f2083450b41d53450990815f2d7d94` |
| `RESOURCES/config/gates.schema.json` | 5978 | `sha256:ff3232f8f88b5d8f904dc01b1d21e06b6e5db20837a462cf3f0e1bfab0894edc` |
| `RESOURCES/scripts/check_gates.py` | 32534 | `sha256:cea637588e777e9f74c110075630d1239c4e5a5e0259dc0bdf051411c90881a9` |
| `RESOURCES/templates/deviation-record.md` | 3767 | `sha256:8cbdde14d60648a6fb23c284de2df38fe1bd00b6991a9d6338a95591290660c6` |
| `RESOURCES/templates/pull-request-checklist.md` | 3599 | `sha256:5d52a586d7d7389ffc74f90a0bcc12b2b4f3fc60dd9f10c8cca53b341d2be9c7` |
| `SIGNATURE/manifest.sig` | 379 | `sha256:b5844c09ce768cccba6fc8b843c64d864a418b4b9db0b737df8502d6ed537550` |
| `TESTS/acceptance.json` | 9403 | `sha256:5362b2aeb7c56381b295ff7240e4b0649c6bdf10a7b83fa8d361179f36eb99fd` |
| `TESTS/competence.json` | 14756 | `sha256:b2258e60192d89a9b325eca5465b8a973d25bfa45dc01401a8e6253a1b6d0c53` |
| `WISP.json` | 10783 | `sha256:65e7ef231aa72cfda9b375c77176dee084b7ba2ef790c9bf492a2aa64b97fb29` |

---

## `sourdough-starter-rescue.wisp`

A diagnostic system for a misbehaving sourdough starter. Carries no executable byte at all, and exists to show the same DNA vocabulary describing a domain with no software in it.

| Fact | Value |
|---|---|
| Wisp id | `sourdough-starter-rescue` |
| Title | Sourdough starter rescue: diagnose it, fix it, or stop |
| Profile | `declarative/0` |
| Bounded outcome | a named diagnosis for a misbehaving sourdough starter, the one protocol that matches it, and a clear rule for when the right answer is to throw it away and start again |
| Container bytes | 51686 |
| Container digest | `sha256:7d212afa8cff46f60e6927617c0ab878aa12b9c01b12100cef08ab4c6dc2b83a` |
| Manifest digest (THE IDENTITY) | `sha256:5bb0b1d3426fd72820528f76b171e8d4b770189c4c204d7f5bf38933381fd12b` |
| Container entries | 20 |
| Inventoried payload files | 18 |
| Projections offered | `conversation`, `read-only` |
| Signature state (no trust anchor supplied) | `signed-unverified-publisher` |
| Publisher established | no |
| Resources | none: `declarative/0` forbids `RESOURCES/` entirely |

| Path | Bytes | SHA-256 |
|---|---|---|
| `CONTENT/diagnostic-tree.md` | 9641 | `sha256:a51ed5885e237577969efed113b25c157dcd587422083704b0b615beca1637e7` |
| `CONTENT/observation-log.md` | 3554 | `sha256:571db68fc659566f20317d22a0d75f91c0958a21a408f087ea4b04bcd5565509` |
| `CONTENT/rescue-protocols.md` | 7201 | `sha256:8540b711553df17746fdab46c76fafabd0a7ed6a347685c6ea05512ce719c0dd` |
| `DNA/adaptation.md` | 5119 | `sha256:ff949e4f62810a88ed5f4cc870089e0fe5033484d5c577393cd2684753e17fa7` |
| `DNA/concepts.md` | 7587 | `sha256:6502b1e3e60d12ceb1e4536732de5b0dca4fe1ed676bb0065a3055a9397c8b7f` |
| `DNA/decisions.md` | 6207 | `sha256:648dd61812ccbe6c9613ac9a5e05e85df9d980719079539aac6fbbda916be793` |
| `DNA/evidence.md` | 6395 | `sha256:38943d528ae5a38332ee67985ab3f812835cecdcedf4931942fa395ea0f098e4` |
| `DNA/failure-modes.md` | 5889 | `sha256:971840a684fb716b7afefb962fadb0f23bcdac5ca315fc50b9aee591b9dc8ee3` |
| `DNA/invariants.md` | 3946 | `sha256:062925b216ddd98336efc71ab083da0d0ff10fb7284d9b14c2a5870a00c609e3` |
| `DNA/mission.md` | 3207 | `sha256:394b9aea7dad8d7259605edcd01f08722629b56be3256ae5a973c0456fd02ac6` |
| `DNA/procedures.md` | 4779 | `sha256:e42eb41b5610e87f20c2cdc9b760bd600db705a9421d246da84aa12ab8912e5f` |
| `DNA/provenance.md` | 5260 | `sha256:7ea6905087b5940cefe13ea9b74ea7adb802351d89f3636eb4860144e22688b6` |
| `DNA/safety.md` | 3840 | `sha256:d94043786749cfc4559037dbe3f1152a2b823de3bf2e0e8fbec4827073117a3b` |
| `DNA/tools.md` | 2974 | `sha256:abd5a693bf8d4193f4396067ddd75058bf09bd022a2488849c2cca28167807ce` |
| `OPEN.md` | 5464 | `sha256:550864bd27caccffd2c25f5f9723871af7b720abb2e5229ca7017895db6637f9` |
| `PURPOSE.md` | 3532 | `sha256:631beafa47ce92521ceea3a027a1412c1d4d4b72da3c2625bf8682c3b31ad085` |
| `SIGNATURE/manifest.sig` | 379 | `sha256:9c9fd8d20eb25c861692c972a34ef9392a6c2a04e89c6b6b08fa9a45d374eb10` |
| `TESTS/acceptance.json` | 8712 | `sha256:435e3fc8c238de76e98b21f8227dfb58f6bef0d6f77483eb98b77d6cbdefa023` |
| `TESTS/competence.json` | 13978 | `sha256:da23cd7de146ffa3b764c7849a875ca3b35855b2d10622e9c51f7f63c05ee7fc` |
| `WISP.json` | 4851 | `sha256:5bb0b1d3426fd72820528f76b171e8d4b770189c4c204d7f5bf38933381fd12b` |
