# Experiment 06 — connect work without losing its resource behavior

19 September 2026. Higher-autonomy Gimmer, agent-led construction and independent challenge.

The [Boundary Contract Lab](../apps/boundary-contract-lab/) advances the selected-work composition question left by the earlier ancestry, forward-generation and feedback essays. A closed standalone history is insufficient: a receiver with no input supply can have no local execution, yet become executable when a supplier is connected. The repair retains internally feasible partial states, joint steps and outstanding boundary demands before applying the surrounding supply.

The resulting finite contract composition agrees with direct source-net gluing on reachable completed-event states, full count markings and jointly enabled steps. This statement is for the declared ordinary-count, unique once-only occurrence class, at most eight selected events and 24 places, with explicit typed wiring and supply discharge. The [method](boundary-contract-method.html) gives the correspondence argument and source uses; the [API](../apps/boundary-contract-lab/API.md) gives the exact admitted syntax and bounds. No general open-net, optimal-scheduling or engineering-validity claim follows.

## Useful differences

- One owned lifting resource permits two serial task orders but forbids their joint start. Two independent resources permit that joint start; the representative toy schedules finish at 5 and 3 time units respectively.
- A connected receiver's former external supply is discharged. Keeping it fabricates another resource.
- The selective N connection retains five complete orders and permits C before unrelated B finishes. A whole-fragment barrier loses that freedom.
- Either producer may supply C: all four lawful selected-work orders survive. Taking all producer edges as requirements wrongly changes either-support to both-support.
- Matching type labels do not grant access across unconnected ownership. A currently blocked method remains represented by its open demand.

These are changed assumptions or lawful planning choices in a fictional refuge model. They do not establish that modular descriptions will save practitioners effort. ASM2.0's documented difficulty with reusable process libraries remains a practical challenge.

## Independent checks

The integrated Node suite has **184 passing tests**: the 138 retained tests, 11 focused new tests and 35 independently authored tests. The independent oracle implements its own source-place identification, resource accounting, permutation enumeration and labelled-token joint allocation. The product and direct runtime routes share a traversal helper; independence comes from this separate oracle, not from calling a shared routine twice.

The exhaustive small grids contain **2,106 cases**:

| Grid | Exact finite domain | Cases |
|---|---|---:|
| Closed tiny nets | Two places with initial counts 0–2; two events, each consuming none/p/q and producing none/p/q | 729 |
| Connected scalar fragments | One event and one boundary place per fragment; six source/receiver supply and arc counts independently 0–2; receiver external supply 2 must be discharged | 729 |
| Mixed internal/boundary | Two fragments, each with one private and one boundary place; eight binary supply/initial combinations and nine signatures per event | 648 |

An additional 24 sequential rebracketing and nine tensor/interchange cases compare equivalent wiring presentations. Identity supply transfer, explicit symmetry/renaming, returning borrowers, sink completion, occurrence identity, consume-before-produce, transitive boundary identification and truthful cutoffs are covered. All seven built-in scenarios also agree with the independent oracle and have their available schedules independently replayed.

The eight-independent-event stress case completes 256 states, 6,305 nonempty joint-step edges and 40,320 serial words. Serial-word truncation remains separate from full state/step completeness. The eight-event example displayed in the app has four producer–consumer pairs: 81 states, 544 steps and 2,520 words.

## Findings that changed the implementation

Independent challenge caught a comparison that initially checked steps but ignored remaining token counts. A zero-event supply of one and a supply of two exposed the error; full marking comparison is now required. Counts that become too large after legal gluing now report an incomplete calculation consistently, rather than incorrectly turning one route into an invalid model. Ordinary identifiers such as `constructor` no longer collide with JavaScript object properties.

The compiled contract can be composed with its source-arc audit copy removed. Internal state tables and symbolic boundary demands/effects supply the composition route; the original arcs belong to the independently checked source-net route.

Interface review corrected pending resource edits that the main Check button could otherwise discard, mismatched example names after reopening saved work, malformed descriptive metadata, and the empty-scope completion display. Delayed-file and cancelled-worker challenges preserve newer state. Imported observations are informational only: opening a model recomputes the result.

## Ordinary-interface and publication checks

The release browser script exercises **22 checks** across desktop and phone: collection entry/return, each scenario, cutoffs, supply editing, save receipt, reopen after reload, correction, portable model and witness download, import/recomputation, invalid-file recovery, descriptive-metadata rejection, empty work, explicit removal, keyboard tabs and the method round trip. The existing ancestry/typed-composition entry suite retains **18 passing checks**, including legacy links and phone Back/Forward behavior.

Run `node --test tests/*.test.mjs` for the model suite. With Playwright and Chrome available, use `scripts/boundary-contract-browser.mjs` and `scripts/process-contract-entry-browser.mjs`; `LAB_BASE_URL` chooses a local preview or the deployed Pages root and `LAB_EVIDENCE_DIR` chooses temporary output storage. The same new-app journey is used against the deployed release, followed by served-file comparison. CI and deployment status are visible in the repository's GitHub Actions history. Local source, publication, live-interface evidence and human use are distinct checks.

## What remains open

The enriched contract retains substantial internal information. Whether a smaller behavior summary can remain composable is a further question, as is whether explicit interfaces earn their maintenance cost in a realistic method revision. Full goal-branch discovery remains with the earlier forward generator; feedback policies remain with the earlier feedback lab. This essay neither replaces those capabilities nor starts another research run automatically.


## Explanatory revision — 19 September 2026

The research construction is unchanged. The essay now puts the End/Ways/Means bridge and each source’s contribution on its normal entrance. A Petri-net diagram follows the checked marking, named boundary connections show which exposed places become one place, and a monoidal view displays each offered step’s event arrows, untouched token context and resulting marking. One shared lift and two independent lifts provide a direct comparison. The method page follows the same route while retaining the full technical argument and limitations.

The renderer consumes the checked net and returned steps; it does not introduce a second enabling algorithm. Ordinary-interface checks include marking advancement, shared versus disjoint ownership, joint arrows, edited arc multiplicities, untouched token context and phone use. Independent review also identified and repaired a no-state cutoff that could leave the previous diagram visible, a shortcut into a hidden tab, and long occurrence identifiers overflowing task boxes. The no-state case now clears all former state-dependent controls and explains why no executable arrow can be shown.

Local verification: all 184 model tests and all 28 desktop/phone browser checks passed. The six additional checks extend the existing 22-check journey. Publication is followed by rerunning the same browser journey against Pages and comparing served files with the reviewed revision; live status is recorded in GitHub and the private foray receipt. These checks do not establish engineering validity or independent human-use validation.
