Skip to content

[Codegen#6] Ship codegen CLI and cross-backend golden and differential conformance #6

Description

@kreneskyp

Required implementation language and containment

Owner directive (2026-09-07): first-party production and possible qualification paths must be Rust, including libraries, CLI/tools, generators, validators, canonicalization, result adapters, test assertions and fixture/CI audits. "Glue", prototypes, scripts and tests are not exemptions; a Rust wrapper around non-Rust semantic logic is not remediation.

  • Every new TypeScript choice needs explicit owner approval for its exact scope. Any other executable language must be brought to the owner's attention; do not silently introduce or expand it.
  • Quoin's existing implementation is explicitly retained for now: contain its spread, do not schedule a wholesale Quoin rewrite. Keep new reusable semantics in Rust behind versioned, structured interfaces. Existing Node/TypeScript is not blanket permission for new components or expanded language scope.
  • Inventory existing JavaScript/Python/shell and executable generated/inline CI logic; record a Rust remediation owner or an explicit owner disposition. Data schemas and foreign-language fixture samples must be distinguished from executable checks. External tools/hosts/bindings need a scoped disposition, not an invented exemption.
  • Reuse shared assurance contracts and Quoin evidence ownership; do not recreate local evidence frameworks. Classify each helper as an existing shared capability, a missing reusable capability, or domain-specific logic before porting.
  • Complete /specify and /spec-review for the changed requirements/interfaces, resolve findings, then implement and verify. Preserve ongoing work and actual evidence provenance. Do not claim a language port or qualification complete from a policy update.
  • Filament repositories/tickets are excluded from this remediation. Interface consumption does not authorize producer changes.

Before closure: record executable-path inventory, approved dispositions, Rust implementation/test/CI parity and failure-path evidence for the reviewed scope. Existing Quoin retention is the only accommodation recorded here; this block grants no new TypeScript approval.


Required spec cycle — owner directive

Every change requires the spec cycle before implementation: /specify → /spec-review → resolve findings and repeat as needed → implement and verify against the reviewed specification. Architecture notes, ticket acceptance checklists, an ADR draft, passing code tests, or quire validate alone do not satisfy this gate.

  • Run /specify for the affected change in the owning repository. Use the repository's installed workflow/catalog templates; create or update the actual scoped requirement artifacts and traceability, including applicable behavior, interface, compatibility and adverse-case requirements. Do not substitute rows in an issue or index for required artifact files.
  • Run /spec-review on that specification. Record the owner-selected review set (base/all/subset and selected analyses); if it has not been chosen, obtain that choice through the workflow rather than silently skipping review or selecting a weaker set. Produce the required review artifacts and validation evidence.
  • Resolve blocking findings, update the specification, and rerun the affected review/validation cycle until the required review is accepted. Record the reviewed specification revision, review artifact(s), finding dispositions and any required owner approval on this ticket before implementation proceeds.
  • Implement only the reviewed scope; maintain the required test/traceability matrix and implementation plan. If implementation exposes a changed requirement, interface, semantics, compatibility promise or acceptance criterion, return to /specify and /spec-review before proceeding with that changed scope.
  • Before review/merge/closure, link the spec and review evidence plus implementation/test results for the same scope and revisions. Do not mark the task complete merely because code, repository setup or tests exist.

Already started without this cycle? Preserve existing work, but pause further unreviewed implementation and merge/release. Specify and review the actual change now, correct discrepancies, and record the true sequence; do not imply a retrospective review occurred before the code was written. Read-only inspection, specification authoring and review remediation may continue.

Workflow unavailable or review blocked? Report the exact missing tool/skill, review choice or approval. Use an explicitly approved equivalent procedure only; an ad hoc summary or checkbox is not a substitute. Never claim /specify or /spec-review ran when it did not.

This applies to child work under epics, existing-code changes, new crates/adapters, test/CI behavior and executable research spikes. For a spec-only or research/decision task, author and review its scoped specification/experiment contract; do not manufacture unrelated application artifacts or claim the experiment implemented. Follow the owning repository's current workflow and disclosure rules. Board status is not evidence that the gate passed.


Outcome

Ship codegen CLI and cross-backend golden and differential conformance.

Deliverables

  • Expose a library-first API and deterministic CLI over serialized contract packages.
  • Run golden tests over the shared contract corpus.
  • Use permitted Sireum/INSPECTA outputs as attributed differential fixtures.
  • Check executable oracle, proptest, Kani, and coverage mappings for semantic parity.

Acceptance criteria

  • The CLI writes artifacts atomically and never edits developer-owned regions.
  • Generated files and manifests are reproducible on supported platforms.
  • Every differential discrepancy becomes a retained regression fixture or a documented semantic difference.
  • The repository Assurance Argument cites the completed conformance results.

Dependencies

  • CL-11
  • CL-12
  • CL-13

Workflow gate

This ticket is spec-first. Update or author the owning requirements and test matrix, complete review, and produce the plan delta before implementation. Completion requires code review, requirement-tagged tests, gap analysis, and retained evidence.

Activity

  1. moved this to Backlog in Quoin workon Aug 30, 2026
  2. kreneskyp commented on Sep 3, 2026

    @kreneskyp
    ContributorAuthor

    Agent A local atomic-publication checkpoint (no hosted CI dispatched)

    Exact local candidate: 5dbf6cce0d31993f3a3de6fb7be62247e3440b7d on contract-agent-a/codegen-v01-completion, based on 0f4df413b21dba39ef62aca89ededc707aab7056.

    The library-owned publication slice is implemented locally:

    • validates bounded, canonical, unique artifact paths and exact content digests before mutation;
    • computes order-independent deterministic bundle identity with fixed-width length framing;
    • stages every artifact and an ownership marker beside the destination;
    • replaces only a recursively censused, marker- and digest-verified generator-owned directory;
    • refuses unmarked, modified, extra-entry, empty-directory, non-file, and symlink boundaries;
    • injects failures before every artifact, before the marker, before swap, and during swap, preserving the prior bundle and adjacent developer-owned bytes;
    • reports cleanup failures instead of discarding them and removes a raced sibling symlink without following it.

    The final cleanup behavior closes local finding FND-909: the initial implementation could report success while an old backup remained or hide staging residue behind an earlier failure.

    Local exact-head verification includes 4/4 focused publication tests within the 42/42 all-target suite, warning-denied Clippy/rustdoc, Rust 1.75, formatting, 60/60 Quire document validation, and 9/9 generation-conformance rows. Strict Quire coverage still exits 1 with nine Inspection/Analysis rows and is not claimed green.

    This does not complete #6. Remaining gates are:

    The publisher is rollback-atomic for reported failures, not process-crash atomic between directory renames, and callers must serialize destination/sibling writers. The candidate is local only and has not been pushed.

  3. kreneskyp commented on Sep 3, 2026

    @kreneskyp
    ContributorAuthor

    Ownership correction and isolated exact-head checkpoint: Agent A atomic-publication work is now split from the mixed local stack onto contract-agent-a/codegen-publication at 786552705cbf0aaefdd80de5907e351ed806607b, based directly on current origin/main 0f4df413b21dba39ef62aca89ededc707aab7056. It contains no Agent B harness or vacuity commit. Full local make ci passes at this SHA: 31 Rust tests plus doc tests, stable and exact Rust 1.75, Clippy, formatting, rustdoc, upstream identity, 9/9 generation conformance rows, supply chain, shared pins, 14 assurance scenarios, 6 controls, and 8 probes. Quire validates 56/56 docs. Strict coverage remains truthfully red on planned/unrelated rows. The serialized-package CLI remains blocked on agent-ix/quire-contract-ir#50, and third-party differential fixtures remain blocked on #24. No hosted CI was dispatched. The branch remains local-only pending explicit push authorization and independent exact-head review.

  4. kreneskyp commented on Sep 3, 2026

    @kreneskyp
    ContributorAuthor

    Adversarial follow-up on the isolated publication branch: exact local head is now bfa70861eb748321dea57b1a1f7b1e86ecda0818. Review found that backup cleanup occurs after the new destination is committed, while the prior diagnostic overclaimed rollback for every reported error. FND-910 is fixed by an explicit destination-state enum (unchanged, published, unknown) and a post-commit cleanup-failure control that requires published, a complete new bundle, unchanged developer bytes, and visible backup residue. Rollback failure reports unknown; pre-commit failures report unchanged. The full local make ci passes at this exact SHA with 32 Rust tests, including 5/5 publication controls, plus both toolchains, rustdoc, Quire validation, generation conformance, supply-chain checks, shared pins, 14 assurance scenarios, 6 controls, and 8 probes. Strict Quire coverage remains truthfully red on planned/unrelated rows. No hosted CI was dispatched; the branch remains local-only pending push authorization and independent exact-head review.

  5. kreneskyp commented on Sep 3, 2026

    @kreneskyp
    ContributorAuthor

    Owner scope decision for the third-party differential dependency:

    Sireum/INSPECTA comparison is deferred until codegen is further into implementation and does not block review/landing of the isolated Kani or guarded-publication slices. Dedicated tracker #24 remains open. When that lane starts, either tool is acceptable; use the latest suitable release, record the exact identity and reproducible parameters, and retain only license-compatible files with explicit provenance.

    This narrows no completed-evidence claim: the current independent evaluator remains a local semantic control and is not described as third-party evidence. Complete #6 still requires resolving or explicitly version-scoping the deferred differential criterion before the final CLI/conformance release decision.

  6. changed the title [-]Ship codegen CLI and cross-backend golden and differential conformance[/-] [+][Codegen#6] Ship codegen CLI and cross-backend golden and differential conformance[/+] on Sep 19, 2026
  7. added and removed
    assuranceEngineering-assurance artifact or evidence work
    on Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions