Skip to content

Round-trip harness: describe → exec on a Studio Pro fixture must write nothing (commit PedApp) #703

Description

@ako

Plan items 0.1 and 0.2 in PROPOSAL_mdl_beta_syntax_freeze.md (§9). Enforces the round-trip laws of ADR-0012.

Problem

Running a document's own describe output unchanged as create or modify silently lost data in 7 of the 12 Studio Pro-authored documents it wrote (proposal §8.1). Nothing in CI checks this. Every existing test uses mxcli-authored content. In mxcli-authored content GUID == $ID, so identity loss cannot show up.

Scope

  • Commit PedApp as a fixture (cleared for use). It is Studio Pro-authored and has microflows, nanoflows, pages, snippets, translations and table-stored associations. Add a workflow and REST documents to it in Studio Pro.

  • Integration test (-tags integration). For every document:

    1. describe;
    2. exec the output unchanged on a copy;
    3. compare canonical BSON per unit (modelsdk/canon).

    The test checks both laws. GetPut: nothing is written. PutGet: a second describe is identical to the first.

  • Allowlist of known failures. It starts as the §8.1 list and may only shrink. The test fails if an allowlisted case starts passing and nobody removes it from the list.

  • Include a control. Run one deliberately edited statement and assert that it does write. This follows CLAUDE.md: "nothing changed" tests need a control.

Done when

The test runs in CI, and its allowlist is exactly the losses from the round-trip audit.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions