Skip to content

MIG-5: nothing left behind — the mechanical check and the reduced contract - #231

Merged
snkmcb merged 2 commits into
mainfrom
mig-5/nothing-left-behind
Sep 24, 2026
Merged

snkmcb merged 2 commits into
mainfrom
mig-5/nothing-left-behind

Conversation

@snkmcb

@snkmcb snkmcb commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

MIG-5, "nothing left behind": the first two of its four items. Two commits: the check (code), then the contract (docs), which describes the check, so they go together.

1. The mechanical check (scripts/check_cmake_boundaries.py)

"No generic motion source file remains here, checked mechanically."

The audit already refused a usd-motion-plugins identity built here, but only under that repository's current package names. None of the six identities that went to motion-connectors could fail it, and neither could motionRuntime, vrmRetarget or a departed suite such as execMotion_blend_tests.

It now holds every identity WORKSPACE.md §9.1 sends elsewhere, under every name it has had (here and there), and fails on:

  • a member directory under one of those names (tools/motionRetarget is the one exception: it holds motion_retarget);
  • a target named for one, or prefixed by one (<id>_...);
  • any file under adapters/ or profiles/motion/;
  • a source that opens one of their namespaces (openstrata, motion, vrmAdapter*, …). Using them (openstrata::motion::MotionPose, namespace om = ...) passes.

2. The reduced contract (docs)

"WORKSPACE.md §1 and §2 describe the reduced tree, §9 becomes a record, and PACKAGE_CONTRACT.md drops the packages that left."

  • WORKSPACE.md (−711 / +169):
    • The intro says the moves are done. It points at git show v0.9.0:docs/architecture/WORKSPACE.md, the last release that built the departed identities, for the reasoning this document held about them.
    • §1 lists only what this workspace builds (execMotion row gone) and names what it consumes. adapters/ blockquotes gone.
    • §2's allowed edges are the declared ones. Forbidden list rewritten without the adapter / liveTransport / osc / motionTracking / BVH-chain rules. New: nothing here depends on motion-connectors, because a live session arrives as a file. The graph count is re-measured on ost 0.23.6: 5 bundle(s), 3 bundle edge(s), 2 libraries, 13 library edge(s), 1 tool(s), valid.
    • §5 drops execMotion from the artifact list (embedded in execVrm's package) and keeps the product-membership rule (no product name, nothing that opens a transport) without the adapter and BVH history.
    • §8's rows 6a/6b/8 note when each identity left.
    • §9 opens as a record. It gains the missing motionCore / motionRuntime rows, and every row is dated.
  • PACKAGE_CONTRACT.md: §4 had already dropped every departed package. §3 rules 4 and 5 were still stated in the present tense over liveTransport, osc and the adapters, and are now in the past tense with the rule kept.
  • roadmap/current.md: the migration section said execMotion could not yet be consumed. It now says MIG-0..MIG-4 are done here and lists MIG-5's four items. The P0 identity list is the current one.
  • roadmap/README.md: the priority bullet and the NPZ bullet are updated.
  • motion-foundation-split.md: status line, MIG-1/MIG-2 ✅, MIG-5 🚧 with two of four items ✅. MIG-1's "the .vrma stage does not change" is marked held: no usdVrmaFileFormat golden changed from 2026-09-18 to 2026-09-24.

Verification

  • --selftest: 28/28, including 10 new cases. Two of them are negatives: using the namespaces, and motion_retarget / oscillator, which are not departed names.
  • The real tree passes (9 members).
  • Mutation on the real tree: a file under adapters/, and a source opening namespace openstrata, each fail with exit 1.
  • ost plugin test --workspace --graph-only is valid, with the counts above.
  • check_docs.py is OK.

Left in MIG-5

  • The aggregate product installs and opens a .vrm and a .vrma from release artifacts, with the shared core as a dependency. This is the next release's dry run.
  • The cross-repository VRMA → MotionClip → VRM test runs by default.

🤖 Generated with Claude Code

snkmcb and others added 2 commits September 24, 2026 12:16
The audit knew usd-motion-plugins' current package names only, so a
connector library, `motionRuntime`, `vrmRetarget` or a departed test
suite could return without failing it. It now holds every identity
WORKSPACE.md §9.1 sent elsewhere, under its old and new names: member
directories, targets and target prefixes, files under adapters/ and
profiles/motion/, and sources that open the shared namespaces.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WORKSPACE.md §1 and §2 still described execMotion, the adapters, the
transport and OSC leaves, the tracker layer and the BVH layer as members,
with the edges and product-split arguments that went with them. §1 now
lists what this workspace builds and names what it consumes; §2's edges
are the declared ones (graph gate on ost 0.23.6: 5 bundles, 3 bundle
edges, 2 libraries, 13 library edges, 1 tool); §5 keeps the product
membership rule without the identities it was argued over; §9 opens as
a record with every row dated. The removed reasoning is the v0.9.0 copy
of the document, which the text now points at.

PACKAGE_CONTRACT.md §3's two rules stated over departed packages move to
the past tense. current.md, the roadmap README and the migration track
say MIG-0..MIG-4 are done here and what MIG-5 has left.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@snkmcb snkmcb changed the title MIG-5: fail the boundary audit on any departed identity coming back MIG-5: nothing left behind — the mechanical check and the reduced contract Sep 24, 2026
@snkmcb
snkmcb merged commit 7453fc5 into main Sep 24, 2026
14 checks passed
@snkmcb
snkmcb deleted the mig-5/nothing-left-behind branch September 24, 2026 03:25
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