Repository navigation
Specify retained-column contract and prepare scoped Core RC2 - #274
Conversation
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>
Independent review of Spec PR #274Candidate head: 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. FindingsR1 — MEDIUM: retained case text bypasses preserved TypeScript parser ceilingsLocation:
Trigger: start with the handwritten Evidence: 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 reportsLocation: Trigger: malformed retained case text Evidence: 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 validatedLocation: Trigger: retain the valid asserted SourceInput fixture and add Evidence: exact input is Impact: malformed persisted input escapes the closed refusal contract instead of remaining an inspectable, deterministic refusal. Reviewed scope and reused checksReviewed 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 Focused commands, identity and limitationsCommands: An exact-head 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 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 Maintainer-authorized disposition
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>
Spec PR #274 finding confirmationFix head: 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.
Reviewed only the seven-file fix diff and related exposed boundaries. Schema/corpus inventory pins were updated together. Reused exact-head CI run Independent focused commands: original immutable Review assignment remains the original OpenAI Codex Spec PR #274 bounded adoption-readiness assessmentCandidate 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 establishRead the artifact-producing Go harness and recorded command lines/log assertions, not a builder reasoning handoff. Reused parent-verified manifest
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 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 Exact remaining clauses and disposition
Conclusion and evidence handlingThere 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
The two reports above are preserved verbatim. The final reread evidence manifest SHA-256 is |
Signed-off-by: kikashy <kikashy@hotmail.com>
Compatibility correction and pre-adoption evidenceCandidate 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 Source-linked accountingThe 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:
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 Status and limitationsRFC0029 remains Review. Exact-head CI run 40426260179 for Frozen focused proof manifest: |
Review records and draft-adoption dispositionAt candidate 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 Generated-value amendment reviewReport SHA256: Spec274 generated-value amendment reviewHead No finding in the 11-file generated-value amendment. Generated frame 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 Reused exact-head CI run40426260179/job121932661653: 8 PASS, 0 FAIL, 0 SKIP, 0 NOT RUN. Saved job-log SHA-256 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
Original C1 finding, retained as issuedReport SHA256: Independent Spec274 complete-object accounting reviewReviewer: 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 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 valuesAffected frozen evidence: Source trace:
Concrete handwritten scalar, requiring no product execution: original modern text token Consequently Source-bounded correction and independent arithmeticA sufficient correction is available from the same pinned owner. Let Charging all these raw results again by
Completed Run GET/POST replies use Remaining accounting assessedNo second material accounting finding was identified in this bounded review. I checked the actual owners, not only the handoff:
Evidence, provenance and review transitionI reused green exact-head Spec CI run40426260179/job121932661653, 8 PASS, 0 FAIL, 0 SKIP, 0 NOT RUN, with saved job-log SHA256 Frozen copy evidence manifest SHA256:
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 Those actual witnesses retain their recorded source/build identities (earlier Runner604c1b7/83ea98d freezes and development Runtime binary SHA256 Finding disposition and remaining gates
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 noteAfter completing this report, the final policy-required After that terminal stop, the correction builder identified an additional premise requiring explicit confirmation: published/frozen handoff mappings can replace Coordinator disposition
Whole-release assessment, retained as issuedReport SHA256: Independent whole-release review: Spec v0.3.0-rc.2 preparationNo 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 Exact scopeSource: PR274 candidate The current schema pin is Release-range coverage
Findings and required dispositionsNo 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 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 Checks and evidence reusedSaved 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 Reused original PR review and seven-file fix confirmation/adoption assessment; generated-value amendment report SHA-256 Own evidence: Remaining release gates
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
Final independent C1 confirmationReport SHA256: Spec PR274 C1 final accounting confirmationReviewer: OpenAI Codex, explicitly assigned 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 arithmeticThe original inference is invalid: raw Define T as the sum of raw JSON value-token lengths for present selected The snapshot emits both Keep the original valid final-token charges as conservative overcounts: 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 (
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
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 ( Frozen identities and verificationReviewed Spec head: Correction manifest: Additional exact source SHA256 identities:
The previous C1 report Coordinator disposition
|
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>
Spec PR274 final adoption rereadNo 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 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 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 The manifest's All12 changed files match the builder's exact before/after source pins. The committed diff SHA256 is Required full source CI is reused at this candidate: run40430747889, job121947514613, 8 PASS,0 FAIL,0 SKIP,0 NOT RUN. Saved job log SHA256
The following actual tag/artifact gates are retained, not passed by this reread:
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
|
|
🎉 Thank you for your contribution to Judgment Pack! If you’d like another task, choose a path that interests you: |
Spec v0.3.0-rc.2 publication verificationPublished 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 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.
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. |
RC2 production site verificationThe maintainer explicitly approved deploying verified RC2 at Live HTTP verification confirms:
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. |
…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>
…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>
Adds the exact selected
retained-column/1contract 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.2route, 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. Manifestpublication:release-candidateclassifies the immutable distribution; it does not assert remote publication. Corpus expectations, schema, algorithms, resource limits and historical resources are unchanged.Selected schema SHA256:
0cb49f238c78391cb163a65474cc9af962df2bb1024a55c5310c2b784b2f0557.Selected corpus SHA256:
17b16ff7a9b74fe4cc81eb6f6129a6aabdd9834621d9e756aa2d4c1a3f245863.Prior code head
23cf81f8bf28aef4f83c5c288941312ca0c6e45epassed 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 candidatedcb57f382dccc9d0edf2f09d4a4cd0f2996f8ec0passed 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:
Grouped affected rerun (remaining site/anchor failures preserved and fixed next):
Final affected rerun:
Final static checks:
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.