Skip to content

Specify retained-column contract and prepare scoped Core RC2 - #274

Merged
kikashy merged 8 commits into
mainfrom
codex/agent011-spec171-adoption
Oct 27, 2026
Merged

kikashy merged 8 commits into
mainfrom
codex/agent011-spec171-adoption

Conversation

@kikashy

@kikashy kikashy commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Adds the exact selected retained-column/1 contract and paired Python/TypeScript offline readers for Agent dialect authoring. The contract preserves all five conversions, eight original field types, complete raw values and source provenance. Exact installed Spec/schema/corpus identities, role-specific limits and smaller reported limits govern complete artifact admission.

Records RFC0029 acceptance at draft maturity for the approved v0.3.0-rc.2 route, with synchronized corpus/inventory pins, release packaging and site resources. RC1 remains immutable; final v0.3.0 retains milestone2. Acceptance is separate from publication, production Desk cutover and general Core or stable conformance. Actual producer/history and final product integration requirements remain with their owners.

Related: Judgment-Pack/judgment-pack-agent#171. The review records and adoption disposition record the authorized same-vendor Codex exception, public-comment treatment, closed R1–R3 and C1 findings, and the whole-release assessment. C1 corrected the source-linked resource proof without removing supported inputs or increasing limits; the complete pinned immediate/published/frozen reference scope is independently confirmed. The older proof table is superseded. This does not claim actual global maxima, independent implementation authorship or completed Agent#171 support.

Checks

Current head: 45dfa132373f5cf0b77ab88524b88cbf8598eafd. The final twelve-file adoption delta changes documentation/status and exact metadata pins only. Manifest publication:release-candidate classifies the immutable distribution; it does not assert remote publication. Corpus expectations, schema, algorithms, resource limits and historical resources are unchanged.

  • Six focused release/inventory tests passed.
  • Two focused site metadata/link tests passed.
  • Local-paths, agent-doc synchronization and diff checks passed.
  • Exact twelve-path source scope, all27 inventory hashes, schema equality and corpus equality except the manifest input digest were verified.
  • Exact-head CI run 40430747889 passed all eight checks (0 failed, skipped or not run), including 464 repository tests. Its synthetic merge tree equals this candidate tree.
  • Independent final adoption review found no material findings; prior whole-release and closed finding evidence were reused. Actual tag, artifact and publication gates remain pending.

Selected schema SHA256: 0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557.
Selected corpus SHA256: 17b16ff7a9b74fe4cc81eb6f6129a6aabdd9834621d9e756aa2d4c1a3f245863.

Prior code head 23cf81f8bf28aef4f83c5c288941312ca0c6e45e passed all eight CI checks in run40426260179 (zero failed/skipped/not run); its tested synthetic-merge tree exactly equals that candidate tree. Independent review found no issue in the generated-value amendment; nine new Spec removal controls and eight Runner controls failed at their intended assertions and passed after restoration. The generated 16,049-byte compatibility counterexample is admitted without clipping. The subsequent C1 mathematical correction preserves its own original and corrected evidence; no product suite was rerun merely to amend that proof.

Stable integrated checklist ran once at ea04160, then grouped fixes reran affected checks only. All initial failures are resolved. The previous candidate dcb57f382dccc9d0edf2f09d4a4cd0f2996f8ec0 passed all eight CI checks and independent review identified three correction requests. Python 3.12.11 and Node 22.23.1; required development setup ran. No local full-suite repetition or CI watch.

Initial complete checklist:

== check summary (dev.json) ==
PASS     local-paths              0s
PASS     agent-docs               0s
PASS     diff-check               0s
FAIL     repository-tests         99s, Python 3.12.11, exit 1
FAIL     policy-prototype         0s, Python 3.12.11, exit 1
FAIL     policy-contract          0s, Python 3.12.11, exit 1
PASS     policy-official-draft    2s, Python 3.12.11
FAIL     retained-column          35s, Python 3.12.11, exit 1
== 4 passed, 4 failed, 0 skipped, 0 not run ==

Grouped affected rerun (remaining site/anchor failures preserved and fixed next):

== check summary (dev.json) ==
FAIL     repository-tests         106s, Python 3.12.11, exit 1
PASS     policy-prototype         1s, Python 3.12.11
PASS     policy-contract          2s, Python 3.12.11
FAIL     retained-column          40s, Python 3.12.11, exit 1
== 2 passed, 2 failed, 0 skipped, 0 not run ==

Final affected rerun:

== check summary (dev.json) ==
PASS     repository-tests         102s, Python 3.12.11
PASS     retained-column          41s, Python 3.12.11
== 2 passed, 0 failed, 0 skipped, 0 not run ==

Final static checks:

== check summary (dev.json) ==
PASS     local-paths              0s
PASS     agent-docs               0s
PASS     diff-check               0s
== 3 passed, 0 failed, 0 skipped, 0 not run ==

The final repository step passed 460 tests; historical Policy prototype/contract passed 38/13. Retained-column checks include paired schema, role, custody and intended safeguard-removal controls. Actual unpacked Policy archives run their verifier. RC1 recovery's validator remains unchanged. Development failures and subsequent evidence are retained; no synthetic fixture is presented as a published product witness.

Use exact retained-frame input references and sole case/response text custody.
Specify complete artifact budgets and package-bound role selection, with paired
readers and handwritten refusal controls.

Refs Judgment-Pack/judgment-pack-agent#171.

Signed-off-by: kikashy <kikashy@hotmail.com>
…erage

Signed-off-by: kikashy <kikashy@hotmail.com>
Signed-off-by: kikashy <kikashy@hotmail.com>
Signed-off-by: kikashy <kikashy@hotmail.com>
Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Independent review of Spec PR #274

Candidate head: dcb57f382dccc9d0edf2f09d4a4cd0f2996f8ec0.
Base: 24b1f05e63b81db7b0983908dbef06936fe149c8.
Review assignment: OpenAI Codex, gpt-6.1-sol/high, selected for concrete serialization, contract and security boundaries. This is the expressly authorized same-vendor exception, not different-vendor compliance or independent authorship. No builder reasoning or conversations were read; no descendants were launched.

Changes requested. Three MEDIUM findings remain. They prevent approving the candidate as satisfying its stated selected-leaf contract; the original review findings need the repository-required fix/disposition before approval. No HIGH finding was confirmed.

Findings

R1 — MEDIUM: retained case text bypasses preserved TypeScript parser ceilings

Location: tools/dialect-verify-ts/src/retained.ts:159–167, especially line 164; normal scanning is tools/dialect-verify-ts/src/verify.ts:113–121.

restoreCase calls parse(text.v) after only the outer string passed the ordinary byte scanner. It never scans the restored case for the 32-level read-value nesting bound or the 128-character/308-exponent number bounds. The independent parser's 1024-depth guard does not implement those contractual limits. Dialect §§11–12 (spec/dialect.md:1696–1698,1853–1856) retain these checks, and the selected companion does not waive them.

Trigger: start with the handwritten asserted-all-conversions-and-omissions fixture, preserving its exact retained frame and expected preparation. Append one opaque case sibling containing either 32 nested arrays (case depth 33), number 1e309, or a 129-digit integer, then carry the complete text in retainedCaseJson. All three exported TypeScript verify calls return reading with the unchanged expected preparation digest. The same three texts passed directly as case are input-over-bound in TypeScript, and Python refuses both forms. The actual TypeScript CLI returns exit 0 and a reading for the depth-33 retained case.

Evidence: probes-input-v3.json contains the exact fixed inputs; probe-ts-v3.jsonl lines 4–6 versus 11–13, and probe-python-v3.jsonl lines 4–6. cli-evidence.json entry 4 records the actual CLI reading. assertions.json records the three failed expected-refusal assertions. Fix by applying the existing owning reader's bounded scan to restored exact text before parsing, while preserving original bytes. Add direct-versus-retained parity regressions for case and signed-response restoration.

Impact: persisted/exported custody changes admission for an otherwise identical input and the two certified readers disagree. These are small deterministic counterexamples; no claim of an observed resource-exhaustion incident is made.

R2 — MEDIUM: TypeScript selected entrypoints leak malformed-input exceptions instead of refusal reports

Location: tools/dialect-verify-ts/src/retained.ts:184–189; callers include lines 41, 164, 177, 194 and 224. Error handling at tools/dialect-verify-ts/src/verify.ts:60–68,312–320 handles engine refusals but never translates the owning JSON reader's NotRead.

Trigger: malformed retained case text {, a duplicate member in retained case text, malformed retained response text {, invalid UTF-8 selector byte ff, or malformed complete SourceInput/export JSON {. The exported TypeScript APIs throw NotRead; the corresponding Python APIs return input-malformed. Actual CLI execution confirms exit 3 and empty stdout for malformed retained case text and for the invalid UTF-8 selector, where the contract requires an input-malformed refusal report (exit 1). The selector CLI probe uses the real source entrypoint and all required file arguments; no installation substitution is needed for that pre-installation decode failure.

Evidence: probe-ts-v3.jsonl lines 2–3 and 7–10; probe-python-v3.jsonl corresponding rows. cli-evidence.json entry 3, cli-ts-selector.json, and cli-python-selector.json preserve commands, status, stdout and stderr. Fix by translating malformed-document decode/parse errors at every selected API/CLI boundary, preserving the distinction between an invalid input and an actual program/I/O fault. Test all three exported entrypoints and the CLI.

Impact: untrusted malformed retained/export input violates the public refusal protocol, produces no machine-readable result, and breaks both-language agreement. This is distinct from R1: error translation alone does not prevent accepting over-bound valid JSON.

R3 — MEDIUM: Python persisted import is bound before its document shapes are validated

Location: tools/retained_column.py:312–319 (call to host.bind at line 319); tools/dialect_verify.py:1805–1820 assumes a validated dialect object and binding.

Trigger: retain the valid asserted SourceInput fixture and add import:{dialect:[],binding:{}}. The new verify_source_input path obtains raw array bytes and calls bind before the ordinary dialect/binding form readers. bind calls document.get, so the exported Python API raises AttributeError: 'list' object has no attribute 'get'. TypeScript returns the expected input-malformed refusal. Other malformed binding forms can reach the same unvalidated helper.

Evidence: exact input is source-import-dialect-array in probes-input-v3.json; final line 14 of probe-python-v3.jsonl and probe-ts-v3.jsonl; final two assertions in assertions.json. Validate the imported dialect and binding through the ordinary form/binding owners before constructing/comparing the bound document, rather than converting programming exceptions into arbitrary success/finding results. Add a malformed import regression at the exported API.

Impact: malformed persisted input escapes the closed refusal contract instead of remaining an inspectable, deterministic refusal.

Reviewed scope and reused checks

Reviewed the complete material batch: selected companion and RFC0029 adoption/status; versioning/process and explicit two-RC mapping; new schema, corpus/manifest/handwritten preparation fixtures; both promoted conversion engines and both actual offline reader integrations; case/response raw custody, installed-identity admission, role and positive lower-limit negotiation, full original inventory projection, receipt/profile checks, actual byte accounting, SourceInput/import/export adapters; packaging/site publication and historical-resource changes; and changed checks/tests. Read Agent issue #171 and both comments, including the later Desk consumption schedule. Full five-kind/eight-type compatibility remains the target. Historical Policy/schema/RC1 resources are not changed by the diff; the Policy reader packaging additions preserve its import dependency closure.

Reused coordinator-verified exact-head CI run 40413331994, job 121889291162: 8 passed, 0 failed, 0 skipped, 0 not run. Checks were local-paths, agent-docs, diff-check, repository-tests (460 tests), policy-prototype (38), policy-contract (13), policy-official-draft (16), retained-column. Saved ci-job.log SHA-256 is 32994540b84f31a564360171b08b960abb0ff667142a0c4d40f1e5f6f6bc1ff9. PR release-evidence-production steps were skipped and are not counted as passed. No broad suite or CI watch was repeated.

Focused commands, identity and limitations

Commands: python -B <review-root>/probe-python.py, node <review-root>/probe-ts.mts, and the actual CLI commands preserved in cli-evidence.json, cli-ts-selector.json, cli-python-selector.json. Node was v22.23.1; Python was 3.12.11. API and selected custody CLI probes use the corpus's independently fixed synthetic installation seam, exactly as candidate tests do; caller/report agreement was never treated as installation authority. Expected outcomes came from the prose limits/refusal contract and original handwritten preparation, not implementation-recorded output. Direct-input controls demonstrate the intended existing guard. No candidate source was mutated, so no safeguard-removal result is claimed for these newly uncovered missing guards.

An exact-head git archive of the reader dependency paths was unpacked only within the review root. Python imports resolved to that extracted archive and succeeded; TypeScript CLI imports resolved there and produced capability-unsupported without release-identity.json, as required. archive-evidence-final.json records paths, archive hash, exact commands and results. This source archive is not a release bundle or evidence of immutable publication. No production release was built: RFC0029 remains Review and its release acceptance gate remains intentionally closed. Archive/source imports and exported APIs were exercised; a fully released installed archive remains a release-owner gate.

The first Python evidence renderer could not JSON-serialize a successful report's retained Num objects; that evidence is preserved. The renderer was corrected to the reader's plain report projection, and the corrected control reads successfully. One Python CLI selector invocation originally omitted mandatory CLI arguments and printed usage; the corrected complete invocation in cli-python-selector.json establishes the refusal comparison. Neither setup artifact is counted as product evidence.

Actual transport/request-reply admission, newly pinned producer version 2, retained history lookup and complete compatible maximum-envelope/one-over product proof remain with their production owners. This review does not infer them from synthetic sizes, corpus fixtures, source citations, or offline receipt consistency. Record signature/chain authority remains separate from the selected export adapter's preparation-agreement scope. Extended preparation is not implemented by these Base readers. Agent #171 completion, Desk unchanged behavior/cutover, full release diff review, immutable artifacts/provenance, public availability and adopter-feedback disposition are not established here. RC1 immutability and final v0.3.0 milestone #2 remain required.

All writes stayed under the initialized review root with supported escalation upfront. No safeguard refusal occurred. No tracked edits, Git writes, network publication, review posting, release, cleanup or descendant work occurred. Heavy suites were not run; the 2,576,980,378-byte reserve was preserved. Source head, clean status and SHA-256 inventory of 2,116 tracked files are identical in source-before.json and source-after.json. evidence-hashes.json hashes this report and the evidence; its own SHA-256 is supplied separately to the coordinator.

Maintainer-authorized disposition

Finding Disposition
R1 Fix in this PR; assigned to original builder.
R2 Fix in this PR; assigned to original builder.
R3 Fix in this PR; assigned to original builder.

Merge and RC2 publication remain held until fixes, exact-head CI and finding-specific independent confirmation. The scoped RC2 route and temporary same-vendor exception were explicitly authorized by the maintainer.

Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Oct 26, 2026

Copy link
Copy Markdown
Contributor Author

Spec PR #274 finding confirmation

Fix head: fd5ee1b0b770f8dc420ff3b556e01863515d0b75; previously reviewed head: dcb57f382dccc9d0edf2f09d4a4cd0f2996f8ec0; original PR base: 24b1f05e63b81db7b0983908dbef06936fe149c8.

R1, R2 and R3 are confirmed closed. No unresolved finding remains from the original review. This confirms the seven-file fix batch, not normative adoption/publication or approval of another product.

Finding Fix and confirmation
R1, MEDIUM TypeScript boundedText now applies the owning scan before parsing restored case/response text and complete SourceInput/export documents. Original independent depth-33, exponent-309 and 129-digit retained-case probes now return input-over-bound, agreeing with direct input and Python. The unchanged control still reads. The actual retained-depth CLI now exits 1 with a refusal instead of exit 0.
R2, MEDIUM translateError now translates owning NotRead into input-malformed. All six original malformed/duplicate custody, UTF-8 selector and complete SourceInput/export probes return the defined refusal in both languages. Actual TypeScript malformed-case and invalid-selector CLI invocations now exit 1 with JSON. Program/I/O faults remain distinguished in the fix regression cases; unrelated exceptions are not blanket-caught.
R3, MEDIUM Python requires imported dialect/binding objects and passes them through ordinary parse_dialect/read_bound before comparison. Original import-dialect-array probe now returns input-malformed, matching TypeScript. New corpus/tests cover valid unbound import and malformed binding forms without replacing real faults with refusals.

Reviewed only the seven-file fix diff and related exposed boundaries. Schema/corpus inventory pins were updated together. Reused exact-head CI run 40416907933, job 121901415406, 8 passed, 0 failed, 0 skipped, 0 not run; saved log SHA-256 7770ebff24bd1af5f8105e3714c676260c20fce88380bebf4a695eb60c0fd6e7. Reused the coordinator-verified eight intended removal/restoration controls; did not repeat suites or mutation runs.

Independent focused commands: original immutable <review-root>/probe-python.py and probe-ts.mts, writing results into reread/probe-python.jsonl and probe-ts.jsonl; 14 fixed inputs per language, control plus refusals all as expected. Four actual CLI commands/results are in reread/cli-evidence.json. They use the original independent synthetic installed test tuple where an installation is required; this is not production installation evidence. Python 3.12.11 and Node v22.23.1, with no build/install. No broad suite/CI watch or source mutation occurred.

Review assignment remains the original OpenAI Codex gpt-6.1-sol/high, under the authorized same-vendor exception; this is not cross-vendor compliance or independent authorship. Original review/evidence are preserved. source-before.json and source-after-fix.json have identical clean head/status and hashes of 2,116 tracked files. No Git writes, public writes, cleanup, descendants or safeguard refusal occurred. Source and report/evidence hashes are preserved in the reread evidence manifest. Adoption readiness is assessed separately in adoption-readiness.md.


Spec PR #274 bounded adoption-readiness assessment

Candidate fd5ee1b0b770f8dc420ff3b556e01863515d0b75, PR base 24b1f05e63b81db7b0983908dbef06936fe149c8. Original reviewer retained: OpenAI Codex, assigned gpt-6.1-sol/high, under the explicit same-vendor exception. This is finding confirmation plus acceptance-evidence assessment, not approval of Runner's unreviewed PR, a product release, Desk cutover, independent authorship or cross-vendor compliance.

The three original reader findings are closed. The supplied evidence does not yet establish readiness for the combined RFC Accepted / immutable RC2 publication step under the current pre-adoption wording. There is a specific remaining maximum-envelope evidence/disposition gap. Missing production producer/history evidence is separately identified below; it is not silently made a prerequisite for accepting a draft design. No new Spec reader defect is alleged by this assessment.

What the actual saved product artifacts establish

Read the artifact-producing Go harness and recorded command lines/log assertions, not a builder reasoning handoff. Reused parent-verified manifest 8a114a14e47e656ea956d520e42631374797dd24677880c518e2a8b0ad697fa3 (192 artifacts, 488,428,606 bytes). Independently measured and hashed saved input, preparation, signed record and v5-wire artifacts for each family; actual record/wire byte lengths equal their recorded metrics. Evidence is in adoption-evidence.json.

Family Original domain exercised Actual selected record / v5 wire bytes
asserted-results Ordinary ingress passes; its ordinary complete offline exports refuse the old 8 MiB bundle limit 2,055,518 / 25,440,759
asserted-original-values Ordinary v2 reader passes; separate actual signed record exists; the attempted ordinary v5 fixture refuses the missing run-chain entry 12,700 / 6,395,539
asserted-full-export Ordinary v3 reader passes and detached signature verifies; includes a 16,000-byte source cell 986,116 / 10,737,979
generated-snapshot Ordinary ingress passes near the 524,288-byte original snapshot limit; ordinary complete exports refuse the old bundle limit 402,134 / 9,105,698
generated-full-export Ordinary v3 reader passes and detached signature verifies, with near-limit original snapshot 443,504 / 5,316,486

The harness exercises actual Runner HTTP preparation, source-worker response custody and SQLite restart where generated, Runtime preview/run dispatch, actual signed Runtime records, persisted run restart, exports v2–v5, offline preparation verification, v5 signature checking and disposition replay. It asserts handwritten expected facts, raw case/response/frame/snapshot restoration, unpooled per-target basis, published/binding custody, and the ordinary/selected Runtime disposition relation. Those are material product witnesses, not merely reported sizes. They use synthetic fixtures/signing context, not an actual Desk history lookup or human review.

Maximum-family source identity is Runner 604c1b7dad897374d4872722bd11ace592fe5be9 with its recorded 84-file freeze; final negotiation source is 83ea98d61dfacde66e06e316f9b967db7993a65a. The Runtime binary hash used for these witnesses is 970b55389de9746802557e9c4b48d8184b1c8f5ec39810487ba37db55654b60c, a development binary. These identities are not relabeled as published releases or as the final RC2-pinned product. Current Runner installedConversionSpec still names Draft RFC0029, revision ade3914b0b81ef299e5b9a8d6147f37ff3f0976c, schema 996cec17473987eebf1aa553536df0ce5a740971532567f411282ee70036879f, corpus e2ac53f56cd5ab779e032d2847b49fa04438ffb9df57d456f75f2ba058dc12d2.

Reused final negotiation commands and actual restored log: 38 focused Go passes, 13 intended Go removals and 35 schema controls. They cover real lower response/carrier/snapshot/profile maxima, runtime document/frame measurement before effects, request discriminator, first-save/resume limit rechecks and ordinary/generated separation. Their positive fixture has a 1,716-byte actual signed Runtime record. Runtime PR #337 is recorded merged at 2fbcd131ee1e9d8405eb126a682d2c80a62822a3, with independent fix confirmation and five green checks. The later local Runtime import infrastructure has not acquired that review by proximity.

Exact remaining clauses and disposition

  1. Pre-adoption maximum-envelope comparison: not closed by these artifacts. spec/retained-column.md:679–681 expressly requires comparing the maximum formerly accepted envelope to the actual projected envelope before adoption, with an explicit reviewed ceiling/profile amendment if it cannot fit. rfcs/0029-retained-column-conversions.md:896–902 retains the previously usable combined-envelope/preparation/signed-record proof, including nested text escaping and repeated results/metadata. The five families establish actual comparisons at specific source-derived extrema; they do not cover the complete joint envelope. The largest observed wire is 25,440,759 bytes, not a universal maximum. Only two families demonstrate both ordinary complete v3 acceptance and detached-signature compatibility. Ingress-only witnesses cannot be silently relabeled complete-chain compatibility evidence.

    The accounting code is useful supporting analysis: it charges Go HTML/Unicode/control escaping, both documents, sole text custody, per-target metadata, repeated results/basis, record delta, stored copies and base64 audit sidecars. Its displayed Base upper estimates are document 1,026,688; combined 11,433,728; preparation 14,359,553; record 8,454,656; full wire 88,145,920 bytes, within the selected caps. Inspection also shows why its PASS is conditional: it substitutes fixed allowances (e.g. 10240*L target metadata, (L+1)*(12*L+1) basis, 3*C value terms and old-record-cap + 2*F + B), and exercises standard encoder fragments rather than the real complete owners (account.py:71–102; evidence/command.json states actualProductRuns=0). The maximum-family harness chiefly grows ASCII cell payloads and target counts; it does not establish all coupled escaping, distinct maximum rule spellings, large target metadata, sibling/binding/result and record-growth assumptions against complete owner artifacts. The nominal 3 MiB grant/stdout terms in the inequality are not actual producer/Gateway boundary executions.

    Required action: supply a traceable closure of the joint compatible envelope for this selected design: tie every bounding assumption to the retained source and current serialized owner, and cover the uncovered materially extremal combinations with actual old-admitted/new-projected artifacts and relevant one-over refusals. Reuse the five valid families; do not restart their runs merely to create more volume. This need not demonstrate an artificial 9 MiB signed record, attain independently incompatible maxima simultaneously, or find a mathematically tight global maximum. It must establish the asserted universal compatibility comparison instead of inferring it from five examples or conditional totals. Record the maintainer disposition of that explicit pre-adoption clause. If the intended process permits Spec draft acceptance while this requirement remains open, that is a deliberate reviewed change to the pre-adoption requirement; it is not a conclusion supplied by this report and cannot be silently reclassified as a later product gate.

  2. Real producer/history predicate: later generated-production qualification remains open. spec/retained-column.md:484–495 requires the newly pinned producer to load the original revision and compare the entire ordered original field inventory, including unselected metadata, before issuing a wrapper. Lines 432–433 keep that necessary for successful generated lineage; lines 703–705 put actual producer/history evidence before the corresponding production support claim. The fixture producer constructs snapshots/declarations and signs wrappers; no saved test establishes the real Desk v2 adapter's retained-history lookup. Actual grant, adapter-stdout and existing approval/source admission remain externally owned. Missing or ambiguous history must refuse; no current-type fallback or selected-field-only comparison is allowed. Future Desk work remains separately scheduled and owned. Its absence does not by itself prevent accepting the design at draft maturity, provided acceptance does not claim that production predicate is implemented or proven.

  3. Exact installed product identity and qualification: later product gate remains open. The selected companion's installed tuple/certification section (:20–42) and production qualification (:659–662,703–705) require exact published source/schema/corpus pins and complete applicable support evidence. Current Runner witnesses use earlier Draft pins; final Runner source still needs its stable integrated checklist, exact-head CI, independent review and release. Runtime's merged document role does not grant Runner preparation or Extended preparation. Pin migration needs reviewed exact-identity updates and relevant verification; existing witnesses remain accurately attributed and are not automatically final-RC2 evidence. This assessment does not approve Runner's PR or claim Agent RFC 0018: the research kind's result contract, its binding form and the reconciliation of sources #171/Desk behavior acceptance complete.

  4. Draft Spec acceptance process and immutable publication: explicit maintainer/release actions remain. rfcs/0000-rfc-process.md:66–68 requires a reasonable public-comment disposition; stable independent implementation evidence is not an automatic draft-maturity prerequisite. The authorized same-vendor exception must be recorded with the original findings' dispositions, not called different-vendor review. RFC0029 remains Review at this head. The release builder's Accepted gate is intentionally closed. Once prerequisites are dispositioned, any Accepted change needs its exact candidate checks/review; then final immutable source identity, actual archives, inventory/checksums/provenance verification and publication gates must complete. VERSIONING.md:77–93 preserves RC1, final milestone Hosting: multi-site config + keyless CI/CD deploy (WIF) #2, final feedback/conformance gates and no invented fixed RFC comment period. The final v0.3.0 adopter-feedback gate is not a requirement that RC2 already have been public before it can be published.

Conclusion and evidence handling

There is no outstanding R1–R3 code finding. Draft maturity correctly permits incomplete product/independent-authorship evidence, and future Desk cutover is not conflated with Spec acceptance. However, the unchanged explicit pre-adoption envelope clause still needs evidence closure or an expressly reviewed disposition/change before an Accepted edit can be presented as satisfying the current contract. Complete five-kind/eight-type compatibility, retained provenance, immutable old resources and positive lower-limit negotiation remain intact obligations.

Read-only bounded evidence inspection only after the original fixed-input confirmation; no additional product runs, broad suite, CI watch, source edit, Git/public write, cleanup, descendants or safeguard refusal. Before/after tracked-source inventories remain identical. Original review/report evidence remains immutable. This report and its bounded artifact measurements/reference hashes are included in the final reread hash manifest.

Coordinator dispositions

Item Disposition
R1 Fixed at fd5ee1b; original independent reviewer confirms closed.
R2 Fixed at fd5ee1b; original independent reviewer confirms closed.
R3 Fixed at fd5ee1b; original independent reviewer confirms closed.
Pre-adoption envelope evidence Open. A bounded follow-up will trace each bound to the real serialized owners and add uncovered materially extremal product witnesses. Existing witnesses are reused. RFC acceptance and RC2 publication remain held; no clause is waived.
Producer/history qualification Remains a separate production-support gate with the producer owner; no Desk cutover or history implementation is claimed here.
Published product qualification Remains open for exact Spec tuple imports, product validation, review and publication. Development evidence retains its actual identity.
RFC/publication process RFC remains Review. Acceptance/feedback disposition, exact-candidate checks and immutable artifact verification remain required.

The two reports above are preserved verbatim. The final reread evidence manifest SHA-256 is fe98e6740a61ce3efd8b561583710822f2dd9c19609e0849c925011fdef0d94c; its 13 entries and unchanged before/after source inventories were independently verified by the coordinator.

Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Compatibility correction and pre-adoption evidence

Candidate 23cf81f8bf28aef4f83c5c288941312ca0c6e45e corrects the generated raw-value ceiling. A complete old signed Runtime/export witness accepts a 16,049-byte text-list value that the former selected 16,000-byte limit refused. Generated values now use the existing 524,288-byte original-snapshot bound; asserted/CSV values retain 16,000 bytes. Complete snapshot, frame, carrier and combined bounds remain independent. This is a sufficient per-value bound, not a claim that a maximum-size value fits alongside snapshot structure.

Both selected readers admit the complete 98,719-byte original snapshot and 40,402-byte frame, preserving all 32 raw values and 30 declarations. The corresponding Runner correction is signed at 28de69b6411c935500ca1b955aef7966dc7c8ef4; focused HTTP preparation and offline verification preserve the unselected 16,049-byte list. Spec has nine new intended removal/restoration controls; Runner has eight, with 43 focused tests/subtests passing. Existing broad evidence was reused.

Source-linked accounting

The compatibility domain remains the complete pinned Desk path, with all five conversions, eight original types, original values and provenance. Its authored qualification rejects operation sources; generated preparation constructs exactly one research source and requires the same count for published/subscription mappings. These are source-derived domain facts, not a new product restriction: qualification, generated and published construction. The actual caller applies the old 2 MiB request limit after Go JSON encoding.

The ledgers charge disjoint original snapshot partitions, both changed documents, retained source/case quoting, unchanged opaque basis and siblings, repeated preparation results, release/run copies, formatted reply text, exact audit bytes, base64, chain and signature sidecars. Representative conservative upper bounds are:

Complete artifact Derived upper bytes Selected limit bytes
Generated frame 1,054,901 2,097,152
Carrier 2,103,637 3,145,728
Combined source 12,282,434 12,582,912
Signed record 8,389,130 9,437,184
Preparation 13,130,808 16,777,216
Stored run 36,621,877 41,943,040
Full verification wire, including newline 46,162,733 90,177,536
Request body 12,830,842 16,777,216
Input reply, including newline 33,943,404 37,748,736

These are joint source-derived bounds, not independently attainable maxima or evidence that a maximum-size signed record was executed. Existing eight selected Runner/Runtime families and reference-owner boundary/refusal evidence remain part of the comparison. Five families also pass the old complete signed v3 export path; two supply old-ingress-only stress evidence and one supplies ordinary-v2 evidence. Their distinct coverage and original source/binary identities are retained; finite witnesses alone do not prove coverage.

A separate receipt fixture preserves session/index/predecessor and ordinary siblings while its owner signs the new wrapper under the selected adapter tuple. Removing coordinate preservation causes the intended mixed-session refusal; restoration passes. This does not rewrite production history or authenticate a changed wrapper with an old signature.

The observed -0 versus 0 difference is intentional raw-spelling fidelity. A paired actual Runtime probe verifies both signatures, equal decisions and true scalar/range zero-equality conditions. The selected record grows by exactly two bytes in that witness. Whole old signed-result and final-claim canonical admission constrain universal retained numeric growth to at most 512 bytes, plus at most 10 timestamp bytes; the record bound includes both.

Status and limitations

RFC0029 remains Review. Exact-head CI run 40426260179 for 23cf81f8bf28aef4f83c5c288941312ca0c6e45e is green: eight passed, zero failed, zero skipped and zero not run. The original independent reviewer's assessment of the amendment and complete comparison remains required before adoption. Arithmetic and reference qualification do not establish live producer/history authority, actual Desk cutover, Extended product support or generic full Core conformance. Historical RC1 resources and the final v0.3.0 milestone remain unchanged. Reviews use the approved same-vendor Codex exception and do not claim cross-vendor compliance.

Frozen focused proof manifest: 488d9f0a34dbe67a417869f00194bf67e1d34e38034a9868263c0d8a83d44db5.
Source/transport ledger manifest: 9e020f9c31fb12fa9f3b190647974f479d86296cca8fdc596681a5fb0af2c703.
Preparation/storage/export ledger manifest: 0e2d42b8d14edb3b109f6a9e9d4834e8562933e2ae2295a2706f5b341b8f19dd. The coordinator verified all 18 artifacts and 48 source/dependency identities against clean Runner head 28de69b6411c935500ca1b955aef7966dc7c8ef4; this is evidence verification, not the independent review disposition.

@kikashy

kikashy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Review records and draft-adoption disposition

At candidate 23cf81f8bf28aef4f83c5c288941312ca0c6e45e, C1 and the full supported immediate/published/frozen reference-accounting premise are independently closed. The original sufficient totals in the earlier proof comment are superseded by the corrected table below; the original evidence is preserved. Final immutable product pins and integration are still required in their repositories.

These reports are retained as issued, with required machine-path sanitization only. Their different stopping points are intentional. The original amendment reviewer stopped after saving its report; the accounting reviewer later stopped on an ownership-attestation refusal; the whole-release reviewer later stopped on an unavailable historical-source lookup. None was resumed after its stop or credited with an unfinished disposition. A fresh independent reviewer received verified local sources and completed the missing C1/history confirmation. All reviews are OpenAI Codex under the approved same-vendor exception, not cross-vendor compliance.

The coordinator accepts the corrected source-linked proof for this draft adoption. No source limit, conversion, original type, raw spelling or provenance was removed to make it fit. The completed Run reply has the tightest sufficient margin: 78,282 bytes. This is a conservative proof plus attributed actual reference-owner evidence, not a measured global maximum or a live Desk cutover claim.

The public RFC process was checked across PR265 (opened2026-10-25T23:21:24Z), PR268 (opened2026-10-26T12:29:03Z) and this PR (opened2026-10-26T22:33:16Z). The current discussions contain the recorded reviews/dispositions and coordinator evidence, with no outside-adopter feedback observed. Under the maintainer's standing authorization to complete the scoped RC2 route, the coordinator judges this public window and the substantive paired-reader, compatibility and independent-review work sufficient to disposition the proposal at draft maturity. This records the judgment explicitly; it does not invent a fixed RFC waiting period or claim external feedback. The final Core adopter period, feedback disposition, final corpus and maturity gates remain unchanged.

The next source candidate will reconcile Accepted-at-draft status and release metadata. The manifest publication label will classify release-candidate, rather than freeze the temporary candidate-unpublished state into an immutable artifact. This changes no selected schema, algorithm or capability grammar, but its exact corpus/inventory pins will be synchronized and checked. Final source CI and focused independent adoption reread remain required before merge, followed by actual release/artifact gates. RC1 stays immutable and final v0.3.0 retains milestone2. Agent#171 is not completed by this Spec record alone.

Generated-value amendment review

Report SHA256: a110bfd3466d1401b470e00a73dbd23f2310bf3c4cd8b1c23b8cb09119fe317a.

Spec274 generated-value amendment review

Head 23cf81f8bf28aef4f83c5c288941312ca0c6e45e; reviewed amendment base fd5ee1b0b770f8dc420ff3b556e01863515d0b75; PR base 24b1f05e63b81db7b0983908dbef06936fe149c8. Original independent OpenAI Codex reviewer retained, assigned gpt-6.1-sol/high for resource/contract boundaries; same-vendor exception, not cross-vendor compliance or independent authorship.

No finding in the 11-file generated-value amendment. Generated frame values and the complete original snapshot projection now permit at most 524288 UTF-8 bytes per string, while asserted frame values retain 16000. Python and TypeScript apply the same origin distinction and projection bound. Schema mirrors origin-specific character maxima; prose correctly states that readers enforce UTF-8 bytes. Independent frame maxima are accurately distinguished from a realizable value inside the complete snapshot. Aggregate snapshot/frame/carrier/combined/type/count limits remain unchanged. The bound is safe because every decoded original display string is contained in the already bounded 524288-byte admitted original snapshot; this does not allocate another snapshot budget per column.

New handwritten recipes cover ASCII and multibyte exact/one-over cases, unchanged Extended fixed bounds and complete projection/snapshot boundaries. The saved 16049-byte unselected text-list display counterexample is preserved in its complete original snapshot/frame; both promoted readers now admit it. This closes the concrete old-admitted/new-frame-refused incompatibility. It is reference consistency/admission evidence, not a production Desk history/signature-authority claim. The original raw value is not clipped, retyped or normalized.

Reviewed all 11 changed paths, including actual engines/projection validation, schema/prose, corpus driver/tests/manifest and final exact inventory pins. Schema pin is sha256:0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557; corpus pin is sha256:a19cbe16e0a9678e643f2d29348da45242b95417d259ef1de895a1418bcdde49. Historical Policy/schema/RC1 resources and old Draft experiment bytes remain outside this amendment. The phase proof identifies the sole post-control corpus change as the appended fixture-group manifest digest; final-pin focused/CI evidence covers it.

Reused exact-head CI run40426260179/job121932661653: 8 PASS, 0 FAIL, 0 SKIP, 0 NOT RUN. Saved job-log SHA-256 f71fbfb67ba05692e47e58c6fb4ad1cb5a7cc68811c945249dd6b52ed24bc7bf independently matches. Read the nine actual intended-removal assertion logs plus restored statuses; these cover both reader origin guards/projection compatibility and three schema bounds. Reused coordinator-verified 32 evidence files and full saved old-value witness rather than repeating deterministic checks. No new test run, broad suite, CI watch, product build or source mutation was needed.

Original R1–R3 remain closed. This report does not close the separate full-envelope finding; final disposition awaits assessment of both frozen source/transport/record and preparation/reply/store/export ledgers with actual owner evidence. RFC is still Review and no adoption, publication, future Desk cutover or final product pins are claimed. Source-before inventory is saved under this review's value-envelope directory; final unchanged-source/evidence hashes will accompany the envelope report. No Git/public writes, cleanup, descendants or safeguard refusal.

Coordinator disposition

Item Disposition
Generated-value amendment No finding. Retained as the independent amendment assessment at23cf81f; later C1 confirmation covers the separate accounting question.

Original C1 finding, retained as issued

Report SHA256: a3e5bdf670f9206c63f44da3e2059958e0cc3370618d2278fcd7e9bf22cb18a3.

Independent Spec274 complete-object accounting review

Reviewer: OpenAI Codex, explicitly assigned gpt-6.1-sol/high for serialized resource/compatibility contracts. This is an independent same-vendor review, not a cross-vendor review or independent production authorship. Scope is the frozen #171 reference-projection comparison for Spec PR274 at 23cf81f8bf28aef4f83c5c288941312ca0c6e45e, current Runner 28de69b6411c935500ca1b955aef7966dc7c8ef4, and pinned Desk 605630a535a25292a40926ba72e269de03b951e7. No descendant, model call, product invocation, source edit, Git mutation, network call, install, broad test, cleanup, CI watch or publication occurred.

Disposition: one accounting finding requires a frozen correction. The submitted ledger does not yet close the RFC pre-adoption comparison. A source-derived conservative correction can still prove fit without a ceiling increase or acceptance restriction; the equations and independent arithmetic below establish the proposed repair, pending builder amendment and finding-specific confirmation. No actual product overflow is established.

C1 — MEDIUM: raw research-result spellings are charged as reencoded old fact values

Affected frozen evidence: runner171-copy-accounting/handoff.md:29–35, especially the inference at line31 that new inline Transformation.result.json charges at most 2j+L; account.py:26,44,48,53,63 and the resulting complete-object totals. Here j is explicitly the sum of OLD Go-owner-encoded final selected value tokens, not original raw research tokens. The general inequality |Q(J)| <= 2|J|+2 for already Go-serialized JSON is valid. Its application substitutes a different J for research-value.

Source trace:

  • Pinned Desk input_typed_research.go:50 returns the original field.Value as json.RawMessage; input_conversions.go:145–152 places it in row.Prepared[f.Target].
  • Ordinary generated Runner mapping_v2_proof.go:184 applies proofCanon to the entire response result; mapping_v2.go:621 reads that canonical result, and copyClaim/writeTarget/encode at mapping_v2.go:46–75 creates the final target-shaped values. derivation/derive.go:385–386,451–454 decodes and rewrites strings with its canonical escaping. Optional Unicode escape spelling is absent from the ordinary final fact token.
  • The reference frame retains the original raw entity value (reference_projection_test.go:246–270). New retainedcolumns/convert.go:97 returns candidate(field.raw) and lineage.go:141–142 stores that exact text in Result.JSON. column_read_v1.go:223–230 separately decodes that text to construct final facts. Final facts can therefore remain equal while the retained transformation result has a longer spelling.

Concrete handwritten scalar, requiring no product execution: original modern text token "\u0061" is 8 bytes, is a valid scalar string, decodes to a, fits every relevant original type limit, and passes the unchanged whole-source canonical domain. The ordinary final token "a" is 3 bytes. Encoding the retained original token as a JSON string occupies 13 bytes, or 11 bytes beyond the empty "" already included in the transformation skeleton. Thus 11 > 2*3 = 6, with L=0. This uses a valid Unicode scalar; it does not rely on lone surrogates, invalid UTF-8, additional numeric syntax or a widened admission domain.

Consequently p' <= p+2j+Hp+2L is not proved by the submitted premises; neither are its propagated seven totals or the completed Run reply total as written. This is a failure of the stated universal sufficient proof, not evidence that those numerical ceilings are necessarily exceeded. Retaining original spellings is required; normalizing result.json, discarding original values, omitting a type or excluding repeated targets would not resolve the finding.

Source-bounded correction and independent arithmetic

A sufficient correction is available from the same pinned owner. Let q sum the actual raw JSON token lengths for all selected present research-value results, including a separate occurrence for every distinct mapped target, even when targets share one original field. typedResearchValue returns precisely the raw original value, prepareInputRecord assigns each result under its distinct target key, and pinned input_handoff.go:265 embeds the entire row.Prepared map in the original snapshot. Line266 enforces S <= 524288 on that complete owner-encoded snapshot. Those result-token occurrences are disjoint within that map, so q <= S jointly, rather than S per target or per original field. The ordinary Go RawMessage marshaler compacts token-external syntax and preserves optional escapes inside string tokens; the frame reads the corresponding value from that same Go-encoded snapshot. This is the required source link between the raw retained results and the existing budget.

Charging all these raw results again by 2q <= 2S, while retaining the original 2j and L charges as overcounts, yields p' <= p+2j+Hp+2L+2S. The already valid j<=p, j<=f+e and complete old export coupling still apply. Add 2S per Input, or 4S for the two Input occurrences in an export, to the frozen table. This is conservative even for the asserted branch, and preserves all five conversions, eight original types, repeated targets, unknown original provenance and opaque old metadata. No independent maxima need be simultaneously reachable.

Complete artifact Corrected sufficient upper bytes Existing ceiling bytes Margin bytes
Preparation 14,179,384 16,777,216 2,597,832
Release store / reply before LF 27,365,237 37,748,735 10,383,498
Completed Run store 37,670,453 41,943,040 4,272,587
Export base 37,050,903 75,497,472 38,446,569
Complete export wire including LF 48,259,885 90,177,536 41,917,651
Complete request body 13,879,418 16,777,216 2,897,798
Complete Input reply including LF 34,991,980 37,748,736 2,756,756

Completed Run GET/POST replies use storedRun; adding the actual final LF gives 37,670,454 < 37,748,736, margin 78,282. This is the tightest reviewed margin. The extra raw spelling remains only inside preparation: applyColumnCopy decodes it before constructing final facts, so it adds no additional string-escape delta to final facts or the Runtime audit. The separate L<=512 retained-number spelling charge remains needed. This correction does not change the source/frame/carrier/document/transport bounds, or the fixed-metadata numeric Result/Preview relation.

Remaining accounting assessed

No second material accounting finding was identified in this bounded review. I checked the actual owners, not only the handoff:

  • Input owns one source/preparation/facts/evidence; Release has one sample plus its extra mapping/profile set; Run has one Input, parsed audit and separately encoded record/sidecar; VerificationBundle contains exactly one Release and one Run. Release digest is a fixed hash. SQLite stores JSON TEXT once, without another outer JSON-string encoding. storedRun's completed signing/binding additions are closed and bounded; the actual Desk route refuses the separate manual-execution mode. Later failed/interrupted operational metadata is outside the claimed completed signed-export comparison.
  • Old complete export B=8MiB includes the parsed audit, both Input occurrences, all old basis/candidate/dependency/receipt/outcome/provenance data, pack/config/tests/results and mapping/profile copies. Only the actual raw record, chain and sidecar members are subtracted by audit_bytes.go:104–137. This coupling validates the joint inequalities; ingress admission alone is not silently substituted for complete-export admission.
  • Pinned qualification rejects authored source mappings, converts every mapped fact to its prepared value, and the common immediate/published/subscription owner creates or requires one generated source. All eight original types retain their original inventory/type/raw-value constraints. Therefore the scalar/list/range pretty-print topology comes from the actual pinned Desk domain, not a new generic Runner admission restriction. Pointer depth32 and global 256 fact/128 evidence limits support the conservative inserted-formatting charge; arbitrary string/key bytes stay in f/e. Unrelated ordinary source siblings and inherited basis/citation strings remain charged in old c/p/b.
  • Generated U/D/W snapshot partitions are disjoint, declaration count1..30 and ASCII names<=64 derive from pinned original owners, and both changed bound/published documents are counted. Source custody counts exact response/case text plus their real outer quoting. Signature/digest widths, trusted adapter version1-to2 equal width and preserved receipt coordinates are distinguished from receipt authority. The correction above concerns a later per-target result copy; it does not invalidate these source bounds.
  • Ordinary whole-source and final-claim canonical admission excludes fractional/exponent/unsafe executed number tokens. Retained -0 is the remaining numeric lexical difference, bounded by512 bytes from256 facts with at most two numeric endpoints each. Runtime numeric comparison/result shape supports semantic equality and unchanged Result/Preview size under fixed pack/config/evidence/runtime metadata. Audit inputs receive final facts, evidence and citations, not source frames or transformations. Raw record upper8,389,130, base64 padding, 1024-byte chain entry, exact bounded checkpoint, 16KiB sidecar, timestamp-width charges and final HTTP LF are counted. Maximum independently allowed metadata is not assigned a fresh budget outside old b.

Evidence, provenance and review transition

I reused green exact-head Spec CI run40426260179/job121932661653, 8 PASS, 0 FAIL, 0 SKIP, 0 NOT RUN, with saved job-log SHA256 f71fbfb67ba05692e47e58c6fb4ad1cb5a7cc68811c945249dd6b52ed24bc7bf. The prior reviewer completed the clean 11-file generated-value amendment assessment (a110bfd3466d1401b470e00a73dbd23f2310bf3c4cd8b1c23b8cb09119fe317a) and original R1–R3 closure, then was terminally stopped by a platform content filter before an accounting disposition. I did not resume or retry that reviewer and do not represent its missing assessment as passed. This fresh bounded report fills that review gap with C1 and the proposed repair.

Frozen copy evidence manifest SHA256: 0e2d42b8d14edb3b109f6a9e9d4834e8562933e2ae2295a2706f5b341b8f19dd; handoff 8d3ed56e6677fd18b40b6da66e493e40d167410cae319a308c18b0cddcf5f686; source-evidence f341f3ba410432ec9160ce400b216fee0ea09477d4bdfa63a1359f8260e1f8a8; results b52c637c50e072b985944f02b071f40f3f3f09860ef3689bf38321100656e9a9. Frozen coupled ledger manifest 9e020f9c31fb12fa9f3b190647974f479d86296cca8fdc596681a5fb0af2c703; closed bounds cb9467a0113fd84f3c13fe3c674b1ea058496f8523cfdb62f318661b6d534f59. Proof-freeze manifest 488d9f0a34dbe67a417869f00194bf67e1d34e38034a9868263c0d8a83d44db5.

verify.py exited0, recording 94 SHA256/size comparisons (including repeated identities), exact clean Spec/Runner heads, the handwritten scalar arithmetic and the proposed corrected table in verification.json. These are deterministic review calculations, not product tests. Source identities and copied pinned Desk/Go sources match the frozen manifests. Spec and Runner were clean before and after review. The original seven-bound artifacts were not rewritten.

Reused finite actual owner evidence keeps its original scope: the original five families include two old-complete-v3, two old-ingress-only stress cases and one ordinary-v2 case; closure adds three old-complete-v3 families. Their manifests remain 8a114a14e47e656ea956d520e42631374797dd24677880c518e2a8b0ad697fa3 and 0fd8f2796a6a54e957ed4a51f92d0bb9fd4de3a5252b53f0abfd9df5832e8a53. The reference projection/control/boundary evidence and separate coordinate/negative-zero probes are reused under their frozen identities. I did not rerun these families or rehash their entire large inventories. They establish execution of the relevant actual owners for those inputs; they do not supply a universal upper bound by themselves.

Those actual witnesses retain their recorded source/build identities (earlier Runner604c1b7/83ea98d freezes and development Runtime binary SHA256 970b55389de9746802557e9c4b48d8184b1c8f5ec39810487ba37db55654b60c), rather than being relabeled as current Runner28de69b or final Spec23cf81f integration. Final immutable pins, exact-source integration and production qualification remain parent-owned. Current Spec schema pin sha256:0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557 and corpus sha256:a19cbe16e0a9678e643f2d29348da45242b95417d259ef1de895a1418bcdde49 are distinguished from the older witness pins.

Finding disposition and remaining gates

Finding Disposition
C1, raw research-result spelling undercount Open for focused builder amendment. The source-linked q<=S correction above suffices arithmetically without changing limits or domain; preserve frozen evidence, freeze amended equations/results, then obtain finding-specific independent confirmation. No broad unchanged suite or product-family rerun is required merely to correct this mathematical record.

RFC pre-adoption comparison remains pending C1's corrected frozen evidence and parent integration of the reference qualification/evidence at the selected immutable identities. This review does not impose future production Desk history lookup or live grant/stdout execution as a new draft-adoption requirement. Those remain required before corresponding production support claims, along with actual producer authority/history, support negotiation, owner execution, cutover, integrated exact-candidate CI/review and release gates. No compatibility narrowing, clipping, fallback, normalization, normative adoption, merge or release is approved here. The final ownership-attestation refusal below terminally stopped this reviewer after the source/math review; no product or source check failed.

Terminal attestation stop and late qualification note

After completing this report, the final policy-required jpdev clean seal ownership attestation refused regular paths with exact errors jpdev clean: refused: [Errno 20] Not a directory: 'review.md', and the same reason for verification.json, manifest.json, verify.py, and env.sh. The transcript-kind verification.log seal succeeded. These were batched attestations, not deletion; no cleanup ran. No seal is retried, no tool or permission safeguard is changed, and this reviewer is terminal. Subsequent writes are only this stop/handoff record. The refusal does not invalidate the source/hash/math review, but its unsealed regular files must not be represented as disposal-sealed.

After that terminal stop, the correction builder identified an additional premise requiring explicit confirmation: published/frozen handoff mappings can replace source.read (desk-input_handoff.go:403–421). The proposed q<=S correction assumes each projected research target corresponds to its original /prepared/<target> entry in the qualified reference recipe. I have not established from the published/frozen executable helpers that arbitrary aliases to a smaller prepared map cannot occur in the full formerly supported published domain. Therefore the repair/table above is conditional on that exact target-correspondence premise, and does not itself close published-alias coverage. This is a limitation of the proposed repair, not a restriction permitted on the compatibility promise. Parent and correction builder were notified; this terminal reviewer performs no further source exploration. The fixed C1 scalar counterexample and invalidated original equations are unaffected. The full RFC comparison remains open until the corrected ledger proves this premise or budgets all supported alias multiplicities without narrowing scope.

Coordinator disposition

Item Disposition
C1 raw research-spelling accounting Fixed in the frozen correction manifest4eaa724b80680775a609c106086c9d4cdc498ae6e7cf7594031e92adffc0eb9f; independently confirmed closed by the final report below.
Late published/frozen target-correspondence premise Closed by exact pinned publication, recipe-version and subscription owners in the final report below.

Whole-release assessment, retained as issued

Report SHA256: 2ab20bc974dc2a4dca401ad5f61be7afff8b826c052c9c6bed7838b14bf6dd62.

Independent whole-release review: Spec v0.3.0-rc.2 preparation

No additional material code finding was identified in the complete release range. Adoption and publication remain held for the open pre-adoption accounting finding, truthful final adoption documents, exact-candidate qualification and actual immutable artifact verification. This is not acceptance, merge, tag or publication approval.

Reviewer: independent OpenAI Codex, explicitly assigned gpt-6.1-sol/high because public contract adoption, immutable artifact identity and provenance are concrete boundary concerns. This is the authorized same-vendor exception, not different-vendor compliance or independent production authorship. No descendants were launched.

Exact scope

Source: PR274 candidate 23cf81f8bf28aef4f83c5c288941312ca0c6e45e, tree ed5d2d6e6a38febd59d3a13203c388270ab86622; PR base 24b1f05e63b81db7b0983908dbef06936fe149c8. Whole release comparison: v0.3.0-rc.1..HEAD, 72 changed paths. The RC1 annotated tag object is c0ddd58e507ce42891947929acb1ad0330faa038, peeled artifact source 495535f29a517dc6a36075b77238634011e7371e. The proposed RC2 tag has not been created or independently checked remotely by this review.

The current schema pin is sha256:0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557, corpus pin sha256:a19cbe16e0a9678e643f2d29348da45242b95417d259ef1de895a1418bcdde49. No production RC2 bundle was built: RFC0029 is Review and tools/build_release.py:289–290 intentionally requires Accepted.

Release-range coverage

Issue / changed area Whole-release assessment
Agent171 / RFC0029; PR265/268/270/271/274 Reused material PR review, original R1–R3 closure and the clean eleven-file generated-value amendment review. Inspected selected integration interactions with ordinary readers, scoped ceilings, custody/import/export, pinned roles and release packaging. Five conversions/eight original types, ordinary siblings and provenance remain the stated compatibility domain. No generic Core, stable interoperability, independent-authorship or preparation-verifier claim is established.
RC2 mapping, inventory, bundle and site Exact two-tag allowlist; separate distribution/specVersion identities; complete closed selected inventory; generated exact release-identity.json; matching HEAD/tag/commit and clean-tree checks; final milestone number2/title v0.3.0. Static assessment finds all27 inventory files archive-eligible with matching digests and no missing relative TS source import. Both archives cover the generated identity, inventory, reader closure, corpus and new schema; the real archives/checksums/attestations remain unbuilt/unverified here. Existing staged Dialect/witness/evaluation exclusions and separately versioned Policy corpus exclusion remain. Canonical site addition serves the new schema at its exact $id.
RC1 recovery, issue261 / PR262/263 Read current helper/workflow and reused prior independent R1 and pagination-fix confirmations. Recovery is fixed to the original RC1 object/source, compiles both verified original helper blobs only after trusted preflight, retains draft-visible bounded release-list admission and shared tag lock, and distinguishes main-workflow provenance from old artifact source. It adds no RC2 recovery selector. Historical recovery assets retain their actual earlier workflow identity; this review does not reverify or relabel them.
Devkit/check selection, PR266/267/269/272/273; release-evidence issue257 Read current runner, changed-path selection, repository mapping, CI/release workflows and configuration/tests. Selection inputs and unmapped paths force the whole list; main runs all checks. New retained inputs map to their check, shared reader changes still select affected Policy checks. Release reuse is configured and fail-closed for its admitted route, but actual release.yml lines41–50 routes RC2 to fresh, and line180 runs python -m unittest discover -s tests -v. This is the fresh repository suite, not a claim that every separate dev.json step executes again at the tag. The milestone, artifact/tag validation, packaging, notes, draft and attestation stay fresh. No gate is bypassed by PR CI.
Historical resources and ancillary changes All nine checked preserved historical schema files and RC1 mapping/notes/milestone match the actual RC1 source bytes. Inspected historical Policy dependency packaging and tests, review-record wording changes, README/test documentation and new exact-byte attributes; no changed historical resource identity or new conformance claim found.

Findings and required dispositions

No new HIGH or MEDIUM source-code finding is added by this whole-release review. Original reader R1–R3 remain closed under their prior independent confirmation; the generated-value amendment retains its separate clean review.

The separately frozen complete-object accounting review has C1, MEDIUM, still open. Original equations charged exact raw research-result spelling as reencoded old fact bytes. Its handwritten "\\u0061" counterexample invalidates that universal inference. The proposed +2S per Input / +4S per export repair is explicitly conditional on correspondence between projected targets and original prepared-map occurrences. The report's late qualification identifies published/frozen source.read alias replacement as unproven. Neither the conditional table nor finite owner witnesses close this. The builder must freeze a correction proving correspondence or budgeting all supported alias multiplicities without narrowing the domain, followed by finding-specific independent confirmation. This review reuses that finding and does not restart the ledger analysis or product runs.

Final adoption documentation is a pending gate, not a defect in these truthful preparation files. The final candidate must reconcile RFC0029 status/header/summary, companion/Core/Dialect adoption wording, release notes, site labels and conformance/retained-column/1/manifest.json's publication:candidate-unpublished semantics with the actual decision. It must not assert publication before it happens. Any changed inventory/corpus bytes require synchronized final pins, candidate checks and focused reread. Public review/disposition history is not third-party adoption feedback. RFC0000 requires a reasonable public-comment disposition based on complexity, without a fixed clock; the final Core approximately-week availability/feedback gate remains distinct from publishing the approved RC2 route.

Checks and evidence reused

Saved CI run40426260179/job121932661653 is green: 8 PASS, 0 FAIL, 0 SKIP, 0 NOT RUN; repository-tests464, Policy38/13/16, plus retained-column and lightweight checks. Log SHA-256 independently matches f71fbfb67ba05692e47e58c6fb4ad1cb5a7cc68811c945249dd6b52ed24bc7bf. The log checks out synthetic PR merge 11f0f98 described as merging candidate23cf81f into base24b1f05; the coordinator verified its candidate association. That merge object is unavailable locally, so I did not independently compare its tree, fetch it or relabel PR evidence as trusted-main/tag evidence.

Reused original PR review and seven-file fix confirmation/adoption assessment; generated-value amendment report SHA-256 a110bfd3466d1401b470e00a73dbd23f2310bf3c4cd8b1c23b8cb09119fe317a; prior recovery R1 and pagination correction records. Read the current frozen copy-ledger report including its terminal-stop and alias-coverage qualification. The stopped reviewers were not resumed, their missing dispositions are not passed, and their disposal seals are not inferred. No suite, CI watch, install, product probe or safeguard-removal campaign was repeated.

Own evidence: static-release-evidence.json records the exact changed-path set, pathspec-derived archive eligibility, inventory hashes/import closure and nine immutable historical comparisons. This is static source evidence, not a built or attested artifact. source-before.json and source-after.json are identical: clean head/tree and SHA-256 inventory of all2116 tracked files. All reviewer writes are confined to this initialized review root; no source edit, Git mutation, credential/public write, publication, cleanup or seal occurred. Evidence remains needed for release and is deliberately preserved. No tool safeguard stopped this reviewer. A read-only attempt to resolve the unavailable synthetic PR merge object returned unknown revision; no retry/fetch was made.

Remaining release gates

  1. Close C1 and the explicit pre-adoption envelope comparison with correctly attributed frozen source/reference evidence; retain later actual producer/history, production support negotiation and exact published-product qualification gates.
  2. Record truthful draft-maturity RFC acceptance/public-comment/review dispositions at a final candidate; synchronized pins, exact-candidate required CI and this reviewer's focused adoption/correction reread must qualify that head.
  3. Preserve RC1 and final Core milestone2. At the final signed RC2 tag, retain the actual fresh-suite, milestone, builder and draft-release workflow gates. Verify both real archive inventories/member bytes, generated source identity, schema/corpus/inventory hashes, checksums and exact workflow/source provenance before public publication; then verify immutable public downloads.
  4. Record public availability and feedback disposition honestly. Final Core/corpus/maturity gates and production Desk implementation/history/cutover are not completed by this draft release review. Development Runtime/Runner owner witnesses retain their actual source/build identities and are never relabeled as published artifacts.

Current whole-release report frozen and stopped. The same reviewer can perform only the requested narrow C1/final-adoption reread after the coordinator verifies the correction freeze and final candidate.

Coordinator disposition

Item Disposition
Additional material source-code findings None identified across the complete RC1-to-candidate release diff.
C1 and historical target correspondence Independently closed by the final report below.
Final adoption documents, exact-head checks and immutable artifacts Still required. The documentation patch is not applied or qualified by the earlier CI.

Final independent C1 confirmation

Report SHA256: 2225492b3a2e82ce30f14320fadd55143922e086df2701521d07873f7239729d.

Spec PR274 C1 final accounting confirmation

Reviewer: OpenAI Codex, explicitly assigned gpt-6.1-sol/high for the serialized-resource and historical recipe contracts. Independent reviewer session; same vendor as the builder, not a cross-vendor review. No descendants. Review scope is the frozen C1 correction and the final immediate/published/frozen target-correspondence premise; earlier whole-release review and R1–R3/amendment evidence are reused, not restarted.

Disposition: C1 is closed. The corrected source-linked sufficient bounds cover the complete supported pinned Desk/reference immediate, published and frozen subscription scope, including repeated columns mapped to distinct targets. The late frozen recipe/release correspondence gap is closed by the exact owner path below. No new acceptance restriction, normalization, cap increase, truncation or fallback is needed. No additional material finding was identified in this bounded confirmation.

This confirms the previously open accounting/history premise of the RFC pre-adoption reference comparison. It reuses, rather than reruns, the frozen actual Runner/Runtime reference-owner and boundary evidence assessed in the prior independent reports. Final immutable product pins, integration, final adoption-document wording, exact-candidate CI/review and the existing decision/release gates remain coordinator-owned. RFC status is Review; this is not a normative adoption, production Desk support, publication, merge or release approval.

C1 repair and complete envelope arithmetic

The original inference is invalid: raw "\u0061" is 8B, the ordinary owner final token "a" is 3B, and the retained raw token as a JSON string adds 11B above "", exceeding the old 2j=6B. The original frozen ledger remains historical and unchanged; its uncorrected totals are not reused as a valid proof.

Define T as the sum of raw JSON value-token lengths for present selected research-value results, counting one occurrence for every mapped target, even when many targets select the same column. Pinned typedResearchValue returns copied field.Value RawMessage (desk-input_typed_research.go:43–50). prepareInputRecord loops all qualification facts, obtains each value and stores it under row.Prepared[f.Target] (desk-input_conversions.go:141–155). Qualification validation requires distinct nonoverlapping fact targets (desk-input_qualification.go:142–151). The complete old generated snapshot contains that entire prepared map and is bounded by S=524288B (desk-input_handoff.go:265–269). Hence the disjoint repeated target tokens jointly satisfy T<=S. This is not S per target or a distinct-column sum.

The snapshot emits both record.research.entity.fields and prepared through the same Go json.Marshal owner. RawMessage appendCompact compacts external whitespace and escapes HTML/U+2028/U+2029 but preserves optional JSON string escape spelling (go-json-encode.go:487–488,506–507; go-json-indent.go:51–89). The reference reads the raw entity value from that snapshot (reference_projection_test.go:246–266); frame decoding removes only its outer valueJson string layer. The new conversion returns field.raw (retainedcolumns/convert.go:97), and lineage retains it as Result.JSON (lineage.go:140–142). Its newly quoted content costs at most 2T<=2S. Optional spelling therefore remains preserved and charged, including multiplicity.

Keep the original valid final-token charges as conservative overcounts:

p' <= p + 2j + 2T + Hp + 2L <= p + 2j + 2S + Hp + 2L.

Original j<=p, j<=f+e, the joint old complete-export budget and its opaque provenance/basis/sibling charges remain valid. The new raw spelling appears once in each Input preparation, while final facts are decoded and reencoded (column_read_v1.go:223–230,249–253). It does not propagate into Runtime audit/result as another raw-text copy. Retain L<=512 for numeric lexical differences. Thus the correction is +2S per Input, +4S per two-Input export; no additional audit/source/frame/carrier/document delta follows from this spelling correction.

Complete object Corrected sufficient upper B Existing ceiling B Margin B
Preparation 14,179,384 16,777,216 2,597,832
Release store/reply before LF 27,365,237 37,748,735 10,383,498
Completed Run store 37,670,453 41,943,040 4,272,587
Export base 37,050,903 75,497,472 38,446,569
Complete export wire with LF 48,259,885 90,177,536 41,917,651
Complete request body 13,879,418 16,777,216 2,897,798
Complete Input reply with LF 34,991,980 37,748,736 2,756,756
Completed Run reply with LF 37,670,454 37,748,736 78,282

These are conservative sufficient bounds, not measured maxima or a claim that independent maxima are jointly reachable. The handwritten counterexample demonstrates an equation error, not a complete signed product overflow. No product overflow is established.

Immediate, published and frozen owner correspondence

  1. Immediate generated preparation constructs every fact read as /prepared/ plus the escaped same target (desk-input_handoff.go:373–395), after preparing the full qualification target set. Immediate asserted preparation rewrites each fact the same way (desk-input_conversions.go:141–155). Repeated source-column selections therefore retain one prepared occurrence per target. Asserted inputs cannot successfully produce typed research-value results (desk-input_typed_research.go:11–18); the extra allowance remains conservative there.
  2. The executable publication constructor copies qualification facts and rewrites every source to its same prepared target (desk-dialect_publications.go:60–74). The request accepts review/identity fields, no document/read replacement (31–41). Actual publication calls this constructor on the saved revision (258–279), retaining recipe/pack/document content references (382–388). General artifact publication records do not create a Dialect preparation context (desk-artifact_publications.go:128–141). publishedExecutable requires the exact recipe reference, rematerializes with the retained version, canonical-checks and compares the complete document (desk-dialect_publications.go:397–429). Replacement at handoff403–421 therefore preserves this per-target structure for actual immediate publications, rather than admitting an arbitrary aliased read.
  3. Review submits the prepared Input to actual Runner preview, checks returned pack and published release mapping, and stores exactly that release and original recipe/version in the evaluation (desk-input_evaluation.go:466–491). Actual Runner preview copies its normalized Input into Release.Sample and that source mapping into Release.InputMapping (internal/runner/runtime.go:213–240), covering legacy integer releases as well as versioned publications. Initial confirmation requires the same preparation revision (desk-input_evaluation.go:655–657); subscription request fields configure the retained batch, with no caller replacement Recipe or Release (723–740).
  4. The missing historical link is now inspected directly: handleInputPreparations recipe requests have Name/Recipe/ChatOrigin and no caller-controlled RecipeVersion (desk-input_preparations.go:251–256). Existing recipe writes increment the server version before assigning Recipe and appending its historical revision (318–323); new preparations start at1 (313). CAS writes the resulting document (326). The records/imports branches retain recipe/version (206–250). The cached exact file matches the pinned manifest. This is the owner rule linking unchanged version to the retained recipe; it is not inferred from frozenExecutable.
  5. subscriptionDocument fetches the same PreparationID, requires the retained RecipeVersion and exact pack/policy, and at first enable checks the reviewed project snapshot (desk-input_subscription.go:85–128). Later authoring-test changes may continue the frozen release, but recipe changes block rather than silently alter target/conversion correspondence. advanceInputSubscription calls that function (395), prepares selected rows from this saved document (504) and passes the retained b.Release to prepareReviewedInputsForRelease (513). That helper requires the pack, frozen execution path and exact complete mapping equality plus publication pin (desk-input_handoff.go:274–294). Legacy integer releases rebuild the current equal-version mapping and must compare equal; published releases reuse the retained import/mapping and pin. frozenExecutable itself only checks retained artifact identity (desk-dialect_publications.go:466–485); it does not revalidate recipe equality, and this report makes no such claim.

Together these owners preserve the original target/conversion qualification when frozen execution uses its retained release. The original reference recipe is still required and is never inferred from the already prepared wire (reference_projection_test.go:3–5,44–46,75–105). All five conversions, all eight original research types, raw spelling, source/provenance custody and repeated-column target multiplicity stay within the original comparison. No supported target is removed to prove T<=S. Arbitrary externally assembled Runner histories are not automatically evidence of this Desk producer contract; no new generic Runner admission restriction is imposed. Production validation/authentication of actual history remains the later qualification already documented by the RFC interpretation, rather than a new pre-adoption gate.

Frozen identities and verification

Reviewed Spec head: 23cf81f8bf28aef4f83c5c288941312ca0c6e45e; unchanged clean Runner: 28de69b6411c935500ca1b955aef7966dc7c8ef4; pinned Desk: 605630a535a25292a40926ba72e269de03b951e7. Read-only head/status checks found both current checkouts clean. The exact-head green Spec run40426260179 and synthetic-merge/head tree binding are reused from the coordinator/prior review; no CI watch or suite rerun occurred.

Correction manifest: 4eaa724b80680775a609c106086c9d4cdc498ae6e7cf7594031e92adffc0eb9f; handoff: 536db0abea036e338d1e30704a3339526bfad6292ea6e6b8619c9484cc874bc7; corrected results: ccbdb1d9e8d4c046c5ba6d32f984360598b809e230a571e9f8e95eea201924e2; source evidence: b9c2370d356fdc2265800fc2fa4b08d39648dfe5a7f40f617f49d79da804e911; imported closed source ledger: cb9467a0113fd84f3c13fe3c674b1ea058496f8523cfdb62f318661b6d534f59.

Additional exact source SHA256 identities:

  • Desk input_subscription.go: 71e6dbf458bf7be94a9574b49cf68cacdd734137ebf70bb77f6f82548d33a5e1 (Git blob 61c933b3df5faadb6f29622515b043406077dd7b).
  • Desk dialect_publications.go: 5468f377da9ed36bb719b6eb6fe03075e146ee44ca099f0c50060d6b22c93525 (Git blob ef53dd75de8213457015c8100e981bf418390bc8).
  • Desk artifact_publications.go: a0088a0f7de018c6a129a09d5b6410a26f558adca29a50fb1e434d342952ff01 (Git blob 02c6def1a3734c7567a988b8f59e29a5e189e348).
  • Desk input_preparations.go: 0c5a0b26817a85badab1b0b2d567ed49637763c4a00931fd94f986de9668ae98, cached under dialect171-references/accounting/sources and tied to the same pinned Desk by the frozen desk-manifest.
  • Desk input_evaluation.go: 7447e966445205c438bf06535f522eae990df08689762b28bb8e30380ee9dd41.
  • Desk input_handoff.go: d2f2d8eca5ffb49741aa08032fd47d30cbea3171012a0e0bf6c29db1b2c50574.
  • Desk input_conversions.go: 23b1ce17075eba1750d6f1508cdb3a9f000cae6ef0f73c3cf0286d1f5a3b4e1d.
  • Desk input_qualification.go: 810bb4c7e381fdf9748510e920477b5401035c3eed44e86050e8114fecb12893.

verify.py exited0 and records 85 hash/size identity checks, all33 correction entries totaling285374B, all18 original freeze entries unchanged, 22 unchanged Runner source files, and3 independently recomputed historical Git-blob hashes. It independently checks all seven old-to-corrected deltas (+2S/+4S), unchanged ceilings/margins, final Run reply, scalar spelling arithmetic and repeated targets. Both builder Python calculations are reused under their frozen script/output/command identities; they were not rerun against frozen files. Every exact inspected source hash is recorded in verification.json. No broad tests, product/model execution, network or historical Git-object access was needed.

The previous C1 report a3e5bdf670f9206c63f44da3e2059958e0cc3370618d2278fcd7e9bf22cb18a3 and release review 2ab20bc974dc2a4dca401ad5f61be7afff8b826c052c9c6bed7838b14bf6dd62 remain unchanged and are reused with their explicit limits. Development witness binaries and original source/build identities are not relabeled as final published artifacts. No production source edit, Git mutation, cleanup, disposal seal, installation, publication or safeguard retry occurred. All review evidence remains active and unsealed; the parent owns its release retention. No actual permission/environment safeguard stopped this session.

Coordinator disposition

Item Disposition
C1 and complete supported immediate/published/frozen correspondence Closed without narrowing acceptance or changing limits.
Final adoption, exact candidate and publication gates Coordinator-owned and retained.

Bind the selected companion and documentation status to the public adoption
disposition, preserving final Core and production evidence gates. Classify the
immutable corpus as a release candidate and synchronize its exact input pins.

Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy

kikashy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Spec PR274 final adoption reread

No material finding in the final adoption delta. Approve this bounded documentation/status/pin candidate for the coordinator's merge decision, subject to the retained release gates below. Reviewed head 45dfa132373f5cf0b77ab88524b88cbf8598eafd, base 23cf81f8bf28aef4f83c5c288941312ca0c6e45e, exact delta12 paths,107 additions/85 deletions. Reviewer: independent OpenAI Codex gpt-6.1-sol/high, reusing the original launch for the already reviewed resource/history contracts. Same-vendor review under the explicit exception; not cross-vendor compliance or independent implementation authorship. No descendants.

This is the requested final-delta reread. It reuses the earlier whole-release/code/R1–R3/generated-value amendment reports and this session's frozen C1 confirmation; it does not restart their unchanged reviews. The prior C1 report remains byte-identical at SHA256 2225492b3a2e82ce30f14320fadd55143922e086df2701521d07873f7239729d. Its accounting and historical correspondence closure remain valid; this delta changes no schema, algorithm, resource ceiling, custody rule or product implementation. Development witnesses retain their original identities and are not relabeled as final published product evidence.

The Accepted status is expressly at draft maturity, which RFC0000 permits without automatically establishing stability. The RFC, index, Core/Dialect/selected companion, corpus README, release notes and site metadata agree on the selected RC2 scope. They distinguish draft acceptance from exact immutable publication and production support; maintain no general Core/preparation-verifier, stable interoperability or Agent#171 completion claim. Historical RFC proposal/amendment language is explicitly retained as history and subordinate to the accepted companion. The companion's pre-adoption comparison obligation is now supported by the linked corrected proof/disposition; its warning that tables/prototypes alone do not establish parity or production support is still accurate. No material stale-status contradiction remains in the changed text.

The adoption link points to the coordinator's public disposition, not to the superseded original arithmetic alone: #274 (comment). I read its exact locally saved text and verified SHA256 dcfdad0a64ba17eed29e1b501db761c4102261421a4032452c3ee4c68861561d, reusing the coordinator's posted/read-back identity rather than making a redundant remote request. It preserves the stopped reviewers' actual stopping points and the fresh review transition. It records public PR265/268/274 timing, says no outside-adopter feedback was observed, explicitly judges the public window/substantive work sufficient under the standing scoped authorization, and retains final Core adopter/feedback gates. The draft acceptance claims neither an invented fixed RFC waiting period nor an elapsed/completed final Core adopter period. The unchanged RFC0000/GOVERNANCE requirements and explicit authorized same-vendor exception are accurately distinguished.

The manifest's publication:"release-candidate" is documented as a distribution classification, not live remote publication. Release notes require the build to include exact bytes, rather than asserting already verified remote archives. RC1 remains immutable; final Core milestone2, its exact final corpus and maturity/feedback gates remain explicit. Production original inventory/history authentication, signed snapshot/frame relations, product negotiation/boundary checks and Desk cutover remain separate qualifications. None is silently supplied by a reference fixture or analytic bound.

All12 changed files match the builder's exact before/after source pins. The committed diff SHA256 is 868a5a2b05a21946a3032a6d184469d8774dfbec1c014e05a569b8bf0223ff89, identical to the reviewed final patch. All27 release-inventory members and all corpus input links match their actual bytes. Schema remains byte-identical at sha256:0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557. Corpus is sha256:17b16ff7a9b74fe4cc81eb6f6129a6aabdd9834621d9e756aa2d4c1a3f245863; parsed case objects are unchanged except the manifest input digest. Manifest changes only its publication classification. Inventory SHA256 is b4d62b3259b24dee68d926750ab45247d974004eec2bd15814f7d24c89140160. The unchanged release builder still validates the closed complete inventory, exact schema/corpus links and Accepted status, and includes the generated exact source identity in both archive formats. These static/source checks establish synchronized source closure; they do not claim that final tag artifacts already exist or passed verification.

Required full source CI is reused at this candidate: run40430747889, job121947514613, 8 PASS,0 FAIL,0 SKIP,0 NOT RUN. Saved job log SHA256 bfdece71867bb2a3eb3d2b6fe5a5de2bdc70c2630bd11cf6daa90f69b156bd48 contains the whole eight-check summary, including464 repository tests. Its checkout eff74b70767e011386901e13f500ff1f4b4fed10 names parents unchanged base 24b1f05e63b81db7b0983908dbef06936fe149c8 and candidate 45dfa132373f5cf0b77ab88524b88cbf8598eafd. The coordinator's saved binding verifies CI merge tree equals candidate tree 808f0cd78f9284cca318efd4d7c986eb5ee282f6; my verification independently matches that saved tree to local candidate HEAD. Head and working tree are clean. The builder's focused6 release/2 site/static checks are reused under its handoff evidence; no suites were rerun.

final-adoption-verify.py exited0, preserving detailed source/artifact/pin identities in final-adoption-verification.json and its concise output log. It checks exact head/clean status, all12 before/after file hashes, exact patch identity,27 inventory hashes, schema equality, corpus/manifest changes, public review record hash, saved CI log/binding and unchanged process/release-source files. No unavailable historical object, product run or new broad check was needed. No product source edit, Git mutation, network, CI watch, cleanup, seal, safeguard workaround or refusal occurred. The earlier C1 report/manifest remain unchanged; the new report has a separate evidence manifest and all evidence remains active.

The following actual tag/artifact gates are retained, not passed by this reread:

  • The exact signed RC2 tag and tagged source must satisfy the release milestone/tag validation. The RC route requires its fresh release-job suite; source PR CI does not replace that route. Final v0.3.0 keeps milestone2 and its own final gates.
  • The real release workflow must build both .tar.gz and .zip bundles, produce checksums, create the draft prerelease and attest the bundles. Before public publication, verify both actual archive inventories/member bytes, generated release-identity commit, exact schema/corpus/inventory hashes, checksums and source/workflow provenance. A draft prerelease is not publication.
  • The maintainer controls publication. After it, verify the immutable public downloads and record public availability/feedback honestly. Final Core adopter-period, feedback, corpus and maturity gates, and later production product/history/cutover gates remain required.

This report completes only the focused final-adoption independent review at the stated head. Coordinator ownership of merge/publication authorization and final integration remains unchanged. No new finding or gate is introduced.

Coordinator disposition

Finding or gate Disposition
Final adoption delta No material finding. Exact head 45dfa132373f5cf0b77ab88524b88cbf8598eafd is green in run 40430747889; merge authorized.
Prior R1–R3 and C1 Closed in the linked prior review records; unchanged evidence reused.
Tag, artifacts and publication Retained. Actual signed RC2 tag, fresh release-job suite, archive/checksum/provenance verification and public-download verification remain pending.
Final Core and product integration Retained with their owners; this merge does not establish final Core maturity or Agent production support.

@kikashy
kikashy marked this pull request as ready for review October 27, 2026 01:20
@kikashy
kikashy merged commit bcac15b into main Oct 27, 2026
3 checks passed
@kikashy
kikashy deleted the codex/agent011-spec171-adoption branch October 27, 2026 01:20
@github-actions

Copy link
Copy Markdown
Contributor

🎉 Thank you for your contribution to Judgment Pack!

If you’d like another task, choose a path that interests you:

@kikashy

kikashy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

Spec v0.3.0-rc.2 publication verification

Published https://github.com/Judgment-Pack/judgment-pack-spec/releases/tag/v0.3.0-rc.2 at 2026-10-27T01:26:32Z, from signed annotated tag at bcac15b7537ce21879201b5e5dfe795496225121. PR274 merged by the repository-permitted squash method; its tree equals reviewed head45dfa13 and the exact green PR CI tree.

The final independent same-vendor review and earlier verbatim whole-release/finding records remain the review of record. No new code or acceptance change was introduced during publication.

Release workflow40432099070 passed its fresh RC route, including464 repository tests, exact milestone/tag validation, archive creation and attestations. Both public archives contain exactly251 expected committed regular files plus generated release-identity.json, with every file byte equal to the reviewed tree and generated identity naming the actual signed source commit. Checksums and cryptographic provenance verified against this exact repository, release.yml workflow, tag/source/signer commit, GitHub OIDC issuer and hosted runner. Anonymous public downloads match the verified draft bytes; the release is published and remains a prerelease.

Artifact SHA256
judgment-pack-spec_0.3.0-rc.2_artifacts.tar.gz 0762a27d68492bcc2313872b7ae566e8b3cd65f3a45e02d596cb686259f3cb61
judgment-pack-spec_0.3.0-rc.2_artifacts.zip 3f28225956871fb85a9a5be32ae7396b49859381679fd750a4c2b858a59fb731
Gate Disposition
Signed tag, required RC checks, source/archive identity, checksums/provenance, public downloads Passed for the exact release above.
Schema and corpus Exact schema0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557 and corpus17b16ff7a9b74fe4cc81eb6f6129a6aabdd9834621d9e756aa2d4c1a3f245863 preserved.
Production site deployment Separate publication-triggered workflow; pending verification.
Final Core0.3.0 Milestone2, public availability/feedback, final corpus and maturity gates retained. RC1 remains immutable.
Runtime/Runner/Agent integration Pending exact published dependency integration and their own checks/reviews/artifacts. This publication does not complete Agent171 or production Desk cutover.

Operational corrections: GitHub rejected the unsupported merge-commit method without merging; the configured squash method was used. The first attestation invocation supplied two mutually exclusive identity selectors and performed no verification; the corrected invocation retained the exact certificate workflow/tag identity and all other source/issuer constraints. Failed attempts and successful evidence are preserved.

@kikashy

kikashy commented Oct 27, 2026

Copy link
Copy Markdown
Contributor Author

RC2 production site verification

The maintainer explicitly approved deploying verified RC2 at bcac15b7537ce21879201b5e5dfe795496225121 and cancelling superseded unapproved RC1 deployment40202164597. The configured production environment gate was approved without changing its protections. Deployment40432584890 completed successfully, including its exact-tag/milestone, production artifact and site checks.

Live HTTP verification confirms:

  • Canonical schema exactly equals tagged SHA256 0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557.
  • Published corpus exactly equals tagged SHA256 17b16ff7a9b74fe4cc81eb6f6129a6aabdd9834621d9e756aa2d4c1a3f245863.
  • Selected contract page serves its canonical URL and source build bcac15b7537c.

This closes the site-deployment item in the publication record. Final Core public-feedback/maturity gates and Runtime/Runner/Agent integration and release gates remain unchanged. No production Desk cutover is claimed.

kikashy added a commit that referenced this pull request Oct 28, 2026
…ceholders (#231)

The "Checks run for this release" section now states the mechanism: the
release reuses main's repository-conformance evidence for the exact commit
through the release evidence gate, the reused run's id and attempt are in
the release's decision artifact and are appended to the published release
body at publication, and the candidates were reviewed on their pull
requests (#246, #248 and #258 for rc.1; #274 for rc.2, with its same-vendor
statement). The notes test checks that form and that no placeholder remains.

Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
kikashy added a commit that referenced this pull request Oct 28, 2026
…n the final bundle, a release draft that is not a pre-release (#231) (#278)

Prepares the `v0.3.0` final for milestone v0.3.0 (#231). This PR creates
no tag; the tag is cut later. The published candidates' files under
`releases/` (rc.1, rc.2) are untouched. Nothing under `conformance/`,
`schema/` or `rfcs/` changes. `conformance/` and `schema/` are
unchanged, and under `spec/` and `rfcs/` only the leaf's adoption
sentences change, per the maintainer's decisions below.

## Maintainer decision: the final is the leaf's normative support
distribution

The maintainer chose to make `v0.3.0` the normative home of the selected
`retained-column/1` leaf, so a final installation supports the leaf.
Without this, the readers named only the rc.2 distribution, and the
final bundle answered a leaf selection with `capability-unsupported`.
The change:

- **`spec/retained-column.md`, lines 6, 23, 28 and 266 only:**
- Line 6 (the A2 decision): accepted at draft maturity in the `v0.3.0`
release, first distributed as the `v0.3.0-rc.2` candidate.
  - The support tuple's distribution version is `0.3.0`.
  - The inventory is `releases/v0.3.0.retained-column.json`.
- The normative support version is exactly `0.3.0`, the `v0.3.0`
distribution.
- `v0.3.0-rc.2` was its candidate distribution and remains published.
The schema, corpus and digests are the candidate's, while the companion
page and the two readers name the release.
  - A leaf support claim is made against a `v0.3.0` installation.
- **The readers** (`tools/retained_column.py`,
`tools/dialect-verify-ts/src/retained.ts`):
- They check the generated `release-identity.json` (tag `v0.3.0`,
releaseVersion `0.3.0`, specVersion, maturity, a 40-hex sourceCommit).
- They check `releases/v0.3.0.retained-column.json` (distribution
`v0.3.0`, every pinned byte).
- They report support version `0.3.0`. They name `0.3.0` only, because
rc.2 installations run rc.2's published readers.
- They still refuse unknown exact pins and roles before artifact
admission.
- **The builder:**
- The `v0.3.0` bundles carry a generated `release-identity.json`. It is
generated, never a tracked mapping; no `releases/v0.3.0.json` exists or
is admitted.
- The final's inventory must equal RC2's in the schema, the corpus and
every other digest. Only these may differ: the companion page,
`spec/judgment-pack-core.md`, `spec/dialect.md`,
`tools/retained_column.py` and `retained.ts`.
- RC2's inventory is used for that comparison only when it has the
SHA-256 that tag `v0.3.0-rc.2` published
(`RC2_RETAINED_INVENTORY_SHA256`).
  - Both readers must name the tag, its version and its inventory.
- **The frozen corpus keeps its `v0.3.0-rc.2` labels:** the `cases.json`
status, the `manifest`/`capabilities` distribution and the synthetic
test pins. The notes say in one sentence that these labels name the
candidate distribution whose bytes the final publishes unchanged.
- **Probe:** a final bundle built from this branch with the real builder
CLI answers as follows. A `0.3.0` selection naming its own commit is
`supported` by both the Python and the TypeScript reader. A `0.3.0-rc.2`
selection is `capability-unsupported` from both. The CLI test in
`tests/test_retained_release.py` repeats this probe on every run.

## What changed

1. **Final notes at `releases/v0.3.0.md`** (the immutable path the
builder prefers). They keep the prepared notes' Included work,
Versioning and maturity, Migration note and preserved-schema sections.
They add:
- both candidates with their publication dates and what each carried
(rc.1, 2026-10-25: the maturity ladder and the 0.3.0 re-pin; rc.2,
2026-10-27: the leaf, RFC 0029);
   - the leaf section for the decision above;
- RFC 0024 as not in the release (still Draft) and the Policy companion
as unchanged;
- **What this release pins**, including the leaf's support version and
inventory;
- **Checks run for this release**, with no placeholders. It says the
release reuses main's `repository-conformance` evidence for the exact
commit through the release evidence gate. It says the reused run's id
and attempt are in the gate's decision record, kept as the release run's
`release-evidence-<attempt>` artifact (`web/DEPLOYMENT.md`, "Release
evidence"). It names where the candidates were reviewed: rc.1 on #246,
#248 and #258, with its review records on issues #259 and #261; rc.2 on
#274, with its same-vendor statement.
- A **Candidate period** paragraph: the two publication dates, the
adopter feedback and its disposition recorded on #231 before the tag,
and the tag cut no earlier than one week after rc.2's publication.

`docs/releases/v0.3.0.md` becomes a pointer; it is kept because the
published rc.1 notes link to it. The site's `project/releases/0.3.0/`
page renders the immutable notes.
2. **The leaf in the final bundle** (`tools/build_release.py`). For
`v0.3.0`, `bundle_paths()` adds the reader paths,
`releases/v0.3.0.retained-column.json`, `releases/v0.3.0.milestone.json`
and the notes, and no mapping. `validate_artifacts()` holds the final to
RC2's leaf rules (a valid inventory with draft maturity, RFC 0029
Accepted, milestone #2) plus the rules above. It refuses when:
   - either inventory is missing;
   - a mapping sits beside a tag the RC allowlist does not name.
3. **The draft is not a pre-release for a plain tag** (`release.yml`).
The evidence job hands the release job its `route` output, which is the
tag grammar alone. `--prerelease` is passed unless the route is exactly
`evidence`, so `v0.3.0` is drafted as a release the maintainer
publishes, while RCs, `policy-v` tags and any other route value stay
pre-releases. `web/DEPLOYMENT.md` and `.github/ci-evidence.json`'s
`fresh_at_release` text are updated to match.
4. **`VERSIONING.md`** names `vX.Y.Z-rc.N` and `vX.Y.Z-alpha.N`. A
candidate graduates with no change to its normative artifacts (schemas,
corpus, Core and companion rules). Text and tooling that named the
candidate distribution are updated to name the release, and the
release's notes list those changes.
5. **`CHANGELOG.md`**:
- The 0.3.0 entries move under `## \`0.3.0\``; RFC 0027 (targets 0.4.0)
stays under Unreleased; a leaf entry is added.
- `0.2.0-draft`'s entries, which were still under Unreleased, move
verbatim under `## \`0.2.0-draft\` — 2026-07-28`, so the move is exact.
   - The `0.3.0` heading has no date: the maintainer adds it at the tag.

## What the final bundle carries beyond rc.2's

- **Adds:** `releases/v0.3.0.md`, `releases/v0.3.0.retained-column.json`
and `releases/v0.3.0.milestone.json`. The generated
`release-identity.json` now names `v0.3.0`.
- **Drops:** rc.2's mapping, inventory and milestone link, and
`docs/releases/v0.3.0.md`.
- **Leaf bytes:** the schema and corpus are byte-identical to rc.2's,
and so is every other leaf file except the companion page and the two
readers.

## Safeguards and their mutants

I broke each safeguard in a scratch copy and confirmed that the named
test failed: 26 mutants, all caught, including the review round's
published-digest rule and the narrowed revised-set mutant. When a mutant
targeted a reader, the scratch copy re-pinned that reader's digest, so
only the mutated logic could fail the test.

| Safeguard | Mutants | Caught by |
| --- | --- | --- |
| final inventory equals RC2's except `distribution` and the three
revised files | any file allowed to differ; top-level comparison
removed; file-set comparison removed; revised set widened to
`_retained_column.py` |
`test_retained_release.test_final_route_refuses_each_leaf_rule` (and the
pin tests for the widened set) |
| RC2's inventory has the bytes tag `v0.3.0-rc.2` published (a leaf
change re-pinned in both inventories is refused) | check removed |
`test_retained_release.test_final_route_refuses_each_leaf_rule` |
| both readers name the tag, its version and its inventory | check
skipped; Python-only; Python tag-only | same |
| published RC2 inventory / the exact tag's inventory must exist | each
check removed | same |
| inventory `distribution` equals the exact tag | any allowlisted
distribution accepted | same |
| final keeps milestone #2; requires RFC 0029 Accepted | each skipped
for `v0.3.0` | same |
| no mapping outside the RC allowlist | check removed | same |
| final bundle carries the leaf | leaf paths limited to rc.2 |
`test_final_bundle_paths_carry_the_leaf_without_a_mapping`,
`test_final_cli_archives_the_leaf_and_its_readers_support_it` |
| final bundle carries the generated identity | identity generated for
RC tags only |
`test_final_cli_archives_the_leaf_and_its_readers_support_it` |
| Python reader: inventory `distribution`, `releaseVersion`, reported
version | each check dropped or rc.2 reported |
`test_retained_column.test_installed_identity_is_the_v0_3_0_distribution`
|
| TypeScript reader: the same three | each check dropped or rc.2
reported | `retained.test.ts` "installed identity is the v0.3.0
distribution" |
| `--prerelease` only outside `vMAJOR.MINOR.PATCH` | always; never;
prefix match on `evidence` |
`test_release_evidence.test_only_a_plain_release_tag_is_drafted_without_the_prerelease_flag`
|

The RC2 route tests no longer validate RC2 against this tree, because
the tree's support identity is now the final's. The rc.2 assertions on
its own immutable files (mapping, milestone, inventory pins outside the
revised three) stay. The RC2 route now refuses this tree, which is
pinned by a test, so rc.2 is built only from its tag.

## Tests

- `python -m unittest tests.test_release tests.test_retained_release
tests.test_release_milestone`: 41 tests, OK.
- `python -m unittest tests.test_retained_column tests.test_site`: 70
tests, OK.
- `PYTHONPATH=tests python -m unittest test_release_evidence
test_release_recovery test_historical_release test_dialect_ts`: 62
tests, OK.
- The TypeScript tool (`node --disable-wasm-trap-handler --test
test/*.test.ts`): 385 tests, all pass.
- All of these ran under `ulimit -v 4000000`.
`--disable-wasm-trap-handler`, the flag the suite's own Node calls use,
lets Node's TypeScript stripping run under the cap.

## Checks

I ran `jpdev check --changed origin/main` on the head under `ulimit -v
4000000`, with `NODE_OPTIONS=--disable-wasm-trap-handler`. That flag is
the one the suite's own Node calls use, and it lets `test_profiles` run
under the cap. The workflow change is an unmapped path, so the whole
list ran:

```
== jpdev check --changed: 23 changed paths since origin/main (merge base bcac15b) ==
unmapped path .github/workflows/release.yml: whole list
== check summary (dev.json) ==
handover: boundary 2 paths, shared 3 paths; see AGENTS.md "Before you hand over"
PASS     local-paths              0s
PASS     agent-docs               0s
    sync-agent-docs: CLAUDE.md matches AGENTS.md
PASS     diff-check               0s
PASS     repository-tests         119s, python .venv/bin/python3 (Python 3.12.11)
    Ran 472 tests in 118.377s
    OK
PASS     policy-prototype         1s, python .venv/bin/python3 (Python 3.12.11)
    Ran 38 tests in 1.123s
    OK
PASS     policy-contract          3s, python .venv/bin/python3 (Python 3.12.11)
    Ran 13 tests in 2.632s
    OK
PASS     policy-official-draft    2s, python .venv/bin/python3 (Python 3.12.11)
    Ran 16 tests in 2.402s
    OK
PASS     retained-column          45s, python .venv/bin/python3 (Python 3.12.11)
    21 lines matched; last: Draft reference/source schema: 16 changed member/alternative controls PASS
== 8 passed, 0 failed, 0 skipped, 0 not run ==
```

Self-checks (AGENTS.md):
- (a) Under `spec/`, only the three support-identity lines named above
changed; `schema/` has no diff.
- (b) No schema member or enum value is added.
- (c) Both readers pass the new installation tests and the shared
corpus.
- (d) Every refusal added has a caught mutant (table above).
- (g) The spec, the notes and the code describe the same final.

## Review fixes (clean-room record of cdb9f6d)

- **M1:** `validate_final_retained_inventory` uses RC2's inventory only
when that file has the SHA-256 tag `v0.3.0-rc.2` published. That digest
is a constant, so the tests read no tag. I checked it against `git show
refs/tags/v0.3.0-rc.2:releases/v0.3.0-rc.2.retained-column.json`. The
tests cover three cases: a leaf change re-pinned in both inventories
(refused), the honest tree (accepted), and the comparison behind the
digest.
- **M2:** the notes no longer claim a release-body edit. The run id and
attempt are in the decision record kept as `release-evidence-<attempt>`,
which is what `web/DEPLOYMENT.md` "Release evidence" already documents.
- **M3:** the `VERSIONING.md` sentence now says what holds (item 4).
- **L1 and L2:** issues #259 and #261 are added to the rc.1 review list,
and the notes gain the Candidate period paragraph.
- **H1, the maintainer's decision (A2):** the normative text names
`v0.3.0` as the leaf's adoption release, and `v0.3.0-rc.2` as its
candidate.
  - `spec/retained-column.md` lines 6 and 266.
  - `spec/judgment-pack-core.md` lines 54–55 and 371.
- `spec/dialect.md` lines 142 and 144: the closing "Immutable RC2
publication remains separate." is dropped.
  - Each sentence keeps its existing non-claims.
- `rfcs/0029-retained-column-conversions.md` gains one dated note after
the first adoption paragraph (new line 19). It names `v0.3.0` as the
accepted route's final distribution; its Status and history are
unchanged. RFC 0000 does not forbid this. It is a non-material note in
the repository's dated-note convention, not an amendment of the design.
- The builder's allowed-to-differ set adds the Core and Dialect pages.
The RFC is not inventory-pinned, so the set does not name it.
- The notes list these text changes in one sentence. The inventory-rule
mutants were re-run, plus a narrowed-set mutant: 8 of 8 caught.
- **Not in these rounds:** L3–L6.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: kikashy <35789537+kikashy@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant