{
  "markdown": "# remember — OKF v0.2 sample bundle (deletion semantics)\n\nA small, fixture-driven OKF v0.2 bundle emitted by the *remember* wiki compiler\n(Lexenne), published so the deletion-semantics conventions discussed on\n[knowledge-catalog #207](https://github.com/GoogleCloudPlatform/knowledge-catalog/issues/207)\ncan be tested against real producer output rather than prose.\n\n## What this is, and is not\n\n- **Is:** the unedited output of our production emitter (private repo\n  `lexenne-remember`, compiler commit `77b283f8b2406f24bf573da21b196ea989a06847`)\n  run over a fixture lesson,\n  two log write-claims, and one tombstone. Every byte under `bundle/` came out\n  of the compiler; nothing was hand-written.\n- **Is not:** an export of our live corpus. That is a larger artifact and\n  separate work. This bundle proves the emission path end to end, no more.\n\n## What is planted in it (expected findings)\n\n| case | where | expected reading |\n|---|---|---|\n| write-claim that landed | `bundle/log.md` → `okf-conformance-fixture-001` | resolves to the concept in `bundle/facts/` |\n| actor-class routing (OKF v0.2 section 7) | `bundle/claims/` asserted lesson vs `bundle/facts/` observed lesson | asserted emits `generated.by: human:<8-hex>` (pseudonymous, derived from the session id when the lesson carries one, otherwise from its stable lesson id); observed emits the process form `remember/0.2` |\n| basis mapping (#159 enum) | same two lessons | observed emits `basis: live-source`; asserted OMITS `basis` - who stood behind it travels in `generated.by`, and omission carries no negative claim |\n| write-claim that never landed | `bundle/log.md` → `okf-conformance-never-landed-999` | `never_landed` — recorded, nothing behind it |\n| deliberate removal | `bundle/tombstones.md` | `presence: removed`, reason `curation`, successor named |\n| dangling lifecycle edges | concept frontmatter `supersedes` / `contested_by` targets | ordinary §6.1 tolerance — references, not assertions |\n\nPresence is sparse per the #207 convention: `removed` and `never_landed` are\nthe only values; the default carries no marker.\n\n`bundle/tombstones.md` is the human narration of a removal. **The machine-readable\nlocation for absence records is `bundle/.manifest.json`**, under its `absences` key:\nevery removed and never-landed concept is filed there against its stable\n`remember://lesson/<id>`, so a checker never has to parse prose. A `removed` record\ncarries the tombstone `date`, the `reason`, the attributing `recorded_by`, and a\n`successor` where one exists; a `never_landed` record carries none of those, because\nnobody recorded that absence — it is inferred by reconciling `log.md` write-claims\nagainst the bundle. The sibling `absenceReconciliation` key states whether that\nreconciliation pass actually ran (`ok` with a `parsedCount`, `failed`, or `not_run`),\nso an empty never-landed set is never mistaken for a clean corpus that was never\nexamined. `entries` and `absences` are mutually exclusive: a currently removed\nconcept is excluded from `entries` and has no generated page.\n\n**One identifier form for the exclusivity check.** `entries` is keyed by bare lesson\nid for page addressing, but every `entries` value now carries an `id` field in the\nsame `remember://lesson/<id>` form that keys `absences`. A checker asserts\nDC-F2 exclusivity by intersecting the `id` VALUES of `entries` with the `id` values\n(or keys) of `absences` — one identifier form, no normalisation step — so an empty\nintersection is a real assertion, not an accident of two disjoint key namespaces\n(knowledge-catalog #207, leesharks run 08; producer fix PCC-6668). Legacy manifests\nwithout the field are backfilled on load. `absenceReconciliation` also now carries\n`falseRemovalClaims` (write-claims that named a removed concept), empty here.\n\n## For checker authors — two things you need about our format\n\n1. **Our log prose.** Write-claims in `log.md` look like\n   `* **Lesson created**: lesson <id> `. The compiler's own reconciliation\n   pass parses them with:\n\n   ```\n   /^\\*\\s\\*\\*[^*]*created[^*]*\\*\\*:\\s+lesson\\s+(\\S+)/i\n   ```\n\n   Note the claim verb precedes the id.\n\n2. **Our identity scheme.** The stable id lives in each concept's frontmatter\n   `id:` key (`remember://lesson/<id>` in edge references); **filenames are\n   summary slugs and do not contain the id.** A checker that resolves claims\n   against filename stems will not resolve ours — it needs to read `id:` from\n   frontmatter. This is the stable-id-versus-path question from\n   knowledge-catalog #120 showing up as tooling.\n\n## Integrity\n\n`SHA256SUMS` covers every file under `bundle/`. Verify in a shell:\n\n```\nshasum -a 256 -c SHA256SUMS\n```\n\n## License\n\nCC0 1.0 Universal (see `LICENSE`) — same terms as the deletion conformance\nfixture this is meant to be tested alongside.\n",
  "bytes": 4809,
  "sha": "1b5ff2157207b32d8ecce931af2d9053be6685a3c1f1b5bf1379b9d00022c824",
  "repo_slug": "andrewcrenshaw/remember-okf-sample-bundle",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_andrewcrenshaw_remember_okf_sample_bundl_2d3e7166/readme"
}