feat(okf-v0.2): D4 — door C surfaces the §10 pointers it imports [skip-docs]
V6, settled by the operator today: import and report, not refuse. Door C imports the POINTER to executable code and never the code — it writes concepts verbatim and skips every non-`.md` file. So an imported Attested Computation can name an `executor`/`attester` resource that did not arrive, or one that RESOLVES against a file the destination tree already holds under that path. The second is the outcome worth surfacing: it looks valid. Refusing was the plan's leaning and is not what shipped. §14 forbids a consumer to reject a bundle over a broken cross-link and does not settle whether `executor.resource` is one; §10.5 asks a consumer to surface rather than silently drop. Reporting honours the second without testing the first, and leaves the door's one invariant — verbatim bytes — alone. `ImportResult.unverified_references` is an advisory over the merged set, not a fifth bucket: every concept it names has already merged, the bytes are unchanged, and a refused concept is never named (there is no imported pointer to check). The report is at KEY level, and that is a measured limit rather than a choice. Resolving the resource means reading `executor.resource` — the value the line-oriented parser cannot recover in either canonical form: a block mapping flattens and collides, a flow mapping stays one opaque string. A resource-level report would be empty or wrong on exactly the forms upstream writes. Precision arrives with the structured reader (D1b); the key-level signal is robust in both forms today. [skip-docs] is on the CLAUDE.md half only: README carries the new public surface (`unverified_references`), and the invariant this work put in CLAUDE.md — flow form, never block — landed with the previous commit and needs no restatement. 584 tests, mypy --strict clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKKMwi7e7PVHoFW6dJK5XP
This commit is contained in:
parent
deeb248091
commit
c6d64c3fd6
4 changed files with 188 additions and 0 deletions
10
README.md
10
README.md
|
|
@ -162,6 +162,16 @@ the question an attestation answers — was this value produced the sanctioned
|
|||
way — is not this library's. It re-enters scope when upstream specifies the
|
||||
protocol.
|
||||
|
||||
On the import side, a third-party concept may name an `executor` or `attester`
|
||||
resource pointing at executable code. Door C imports the **pointer** and never
|
||||
the code — it writes concepts verbatim and skips every non-`.md` file — so such
|
||||
a reference may not resolve, or may resolve to a file the destination tree
|
||||
already holds under that path. Each one is reported in
|
||||
`ImportResult.unverified_references`; the concept still merges, because §14
|
||||
forbids rejecting a bundle over a broken cross-link while §10.5 asks a consumer
|
||||
to surface rather than silently drop. The report names the pointer key, not the
|
||||
resource it points at: recovering the resource needs the structured reader.
|
||||
|
||||
One limit worth knowing before you write such a concept: §10.2 presents
|
||||
`executor` and `attester` as nested block mappings, and this library's
|
||||
frontmatter parser is line-oriented. It reads inline **flow** mappings
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue