feat(profiles): DEFAULT stamps commons' O2 generated, V1 executed
Commons ratified V1 2026-08-02 and executed it at `54e0ec7`; verified
against their tree rather than taken on report. ingest-spec.md:217 now
defines `generated` as `{ by: process:okf-ingest, at: <ingested_at> }`,
unquoted, `at` repeating `ingested_at` verbatim. `generated: true` no
longer appears in the spec.
`DEFAULT` states commons' §5 layer, so its stamp is theirs to decide.
`DEFAULT.ownership` gains the actor; the four goldens this repo's plan
named in advance were regenerated by RUNNING the materializer, each on
its own case's `ingested-at.txt`. The v0.2 golden was untouched, as
predicted -- it has carried the O2 form since D5.
Not a migration onto OKF v0.2: `DEFAULT` stays v0.1 on every axis
upstream owns and still emits no `sources`. Commons' spec and the Google
version are independent axes, and comments that narrated them as one
were rewritten rather than left to mislead. README and CLAUDE.md said
the additive rule without that boundary, which would have told a
consumer their DEFAULT bytes can never move; both now state it.
V-A3 is amended, not dropped. `DEFAULT` must OWN the mapping it now
writes -- a profile refusing its own output fires the collision gate on
files its own previous run wrote -- while a mapping naming a foreign
actor, or §7's `human:` actor on curated content, stays unowned. That
half is what carried the safety and it is asserted directly.
§11's stamp-integrity condition moved with the value: the forgeable
stamp was `true` and is now the mapping naming the ingest actor. The
defence was never the value -- the §3 scan globs `ingest-*.md`, so a
Door C import is unreachable however well it forges. Second spoof test
added; both were hand-mutated (glob widened to `*.md`) to confirm they
can fail.
The characterization test derived its foreign-stamp fixture from the
literal `generated: true`, which V1 leaves without a referent -- a
silent no-op waiting to happen. It now derives the needle from the
profile and asserts the substitution occurred.
Door B is deliberately untouched: not the ingest-spec's, marker is
`generated` + `source_file`, disjoint from Door A's `ingest_manifest`,
and the divergence predates V1.
Nothing released or notified. The pilot set pins `v0.5.0a2`, not `main`,
so this is invisible to portfolio-optimiser's freeze and demo; the
consumer exposure report is owed at the release that carries this.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VwcjUXbKySLbEG5WqTNkta
This commit is contained in:
parent
bb49fad0e3
commit
8318605e34
15 changed files with 280 additions and 50 deletions
13
README.md
13
README.md
|
|
@ -128,12 +128,21 @@ verification criteria:
|
|||
|
||||
The library targets the current latest version of Google's OKF. Support is
|
||||
**additive** — a new upstream version arrives as a new profile, never as a
|
||||
migration of an existing one — so upgrading the library does not change the
|
||||
migration of an existing one — so an *upstream* release does not change the
|
||||
bytes an existing profile emits.
|
||||
|
||||
That guarantee is about upstream, and one profile tracks a second contract as
|
||||
well. `DEFAULT` states the ingest-spec owned by `portfolio-optimiser-commons`,
|
||||
so when they change that spec, `DEFAULT` follows them. It happened on
|
||||
2026-08-09: `generated` moved from `true` to
|
||||
`{ by: process:okf-ingest, at: <ingested_at> }`, one changed line per generated
|
||||
file. Upgrading across it costs a re-run and nothing more — a profile still
|
||||
recognises bundles stamped by earlier versions, so re-running writes in place
|
||||
instead of refusing. `DEFAULT` remains OKF v0.1 on every axis upstream owns.
|
||||
|
||||
| Profile | Contract | Status |
|
||||
|---|---|---|
|
||||
| `DEFAULT` | commons' ingest-spec §5 layer (OKF v0.1 semantics) | stable |
|
||||
| `DEFAULT` | commons' ingest-spec layer (OKF v0.1 semantics) | stable |
|
||||
| `STRICT_V1` | a consumer's ratified v0.1 contract | stable |
|
||||
| `OKF_V0_2` | OKF v0.2 | **provisional**, pre-release only |
|
||||
| `OKF_LATEST` | alias for the latest version supported as *stable* | currently `DEFAULT` |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue