docs(okf-v0.2): A-E3 no longer outlives the decision it encoded
The operator chose V1(d) for OKF_V0_2, so the pilot expectation A-E3 was
written against — a producer-and-version actor — is stale. Corrected in place,
with the reason, before po-claude receives the tag rather than after they run.
V1's own section records what the choice does and does not settle: DEFAULT's
generated is commons' §5 layer and stays in their queue as item 8. TDD step 5
is marked done at c90171d.
This commit is contained in:
parent
c90171dad0
commit
aac765fa5a
1 changed files with 29 additions and 2 deletions
|
|
@ -648,8 +648,16 @@ output is the baseline. Materialize it twice with the *same* explicit
|
|||
frontmatter block where the profile requires one satisfies A-E2; a diff in
|
||||
body bytes does not.
|
||||
- **A-E3** `generated` is an inline flow mapping
|
||||
`{ by: llm-ingestion-okf/<version>, at: <ingested_at> }` — not the string
|
||||
`{ by: process:llm-ingestion-okf, at: <ingested_at> }` — not the string
|
||||
`true` — and `at` equals the `ingested_at` argument **exactly**.
|
||||
|
||||
**Corrected 2026-07-27**, before the pilot receives the tag. The original read
|
||||
`{ by: llm-ingestion-okf/<version>, ... }`, written before V1 resolved. The
|
||||
actor now carries **no version**, which is the whole point of the change: a
|
||||
producer version inside a byte-compared golden fires regression on every
|
||||
release with no contract having changed. A pilot expectation that outlives its
|
||||
own decision is the A-E6 defect class, so this is sent to po-claude rather than
|
||||
left to surface during their run.
|
||||
- **A-E4** `sources` is present as an inline flow sequence of one flow mapping —
|
||||
`[{ id: <source id>, resource: <source reference> }]` — carrying at least a
|
||||
`resource` derived from the manifest's source. **Corrected 2026-07-26** from
|
||||
|
|
@ -906,6 +914,17 @@ Either way the decision is the operator's via commons' queue, not ours. Our only
|
|||
ask: if (d) is ratified, we want it before freezing a v0.2 fixture carrying
|
||||
`generated`, so the regeneration happens once.
|
||||
|
||||
**Settled for OUR profile 2026-07-27 — and only for ours.** The operator chose
|
||||
(d) for `OKF_V0_2`, which shipped in D2 as
|
||||
`OwnershipPolicy(actor="process:llm-ingestion-okf")`. Keep the two apart: V1 as
|
||||
raised is about `DEFAULT`'s `generated`, and `DEFAULT` states **commons'** §5
|
||||
layer, so that half stays in their ratification queue as item 8 and is not
|
||||
settled by this. What this does settle is that the ask above is discharged in the
|
||||
direction we control — the v0.2 fixture will be frozen at D5 carrying the
|
||||
constant actor, so there is no regeneration to do later. It also makes our
|
||||
recommendation to commons and our own implementation agree, which is worth
|
||||
something when they weigh it: we took the cost we were recommending they take.
|
||||
|
||||
**V2 — Which D1 direction?** (c) recommended above; needs a decision before code
|
||||
because it determines whether `mypy --strict` churn lands across the existing
|
||||
call sites or stays confined to the new path.
|
||||
|
|
@ -997,7 +1016,15 @@ everything after. **Done 2026-07-26** (`1215f98`, `7bc366b`).
|
|||
needs no emitter change — so this stays here for D1/Door C and drops out of
|
||||
the critical path to `v0.5.0a1`.
|
||||
5. **D2** — the `OKF_V0_2` profile, profile-aware `_is_ingest_owned`, `sources`
|
||||
derivation. `OKF_LATEST` stays on v0.1 semantics.
|
||||
derivation. `OKF_LATEST` stays on v0.1 semantics. **Done 2026-07-27**
|
||||
(`c90171d`, 542 tests). Ownership became an `OwnershipPolicy` on the profile
|
||||
rather than a literal in the gate — the emitter and the predicate are coupled
|
||||
through the stamp value, and a policy is what makes them changeable only
|
||||
together. Recognition is one-way by decision (v0.2 owns the v0.1 stamp, not
|
||||
the reverse), so V-A3's fail-safe survives. `okf_version` is deliberately NOT
|
||||
declared here; it lands once, at D5, when the placement question closes.
|
||||
Requirement 6 — the keyword-only `profile` parameter on `materialize_bundle`
|
||||
— is next and is what makes the profile reachable from outside the library.
|
||||
6. **D5** — the v0.2 golden fixture, generated by the code. `okf_version: 0.2`
|
||||
is declared only here, once 1–5 are green (conform first, claim after).
|
||||
**Unquoted** — the quoted form written here previously contradicted A-E6 and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue