Skip to content

I3375 — A registered suite pins its treatment to one released version, so landings on master during the runs leave them current

Let a registration name a released Majordomus version. The runner installs that release into the treatment workspace through the published installer with the version pinned, records the release and its archive digest in each run, and takes freshness for a registered suite from the methodology, the suite file, the tasks, the fixture and that archive digest instead of bin/majordomus, lib and share. A run under another release is stale for that registration.

BLOCKED wave 3 · p1 · implementation profile · parallel safe

Part of the-corpus-is-registered-before-it-runs — A corpus of 20 tasks, stratified by a difficulty proxy measured and registered before the new tasks are written, is registered with its analysis, run order, stopping rule and a pinned release.

Blocked. This issue cannot start until I3374 is done. The status is derived from that, not declared.

Objective

Let a registration name a released Majordomus version. The runner installs that release into the treatment workspace through the published installer with the version pinned, records the release and its archive digest in each run, and takes freshness for a registered suite from the methodology, the suite file, the tasks, the fixture and that archive digest instead of bin/majordomus, lib and share. A run under another release is stale for that registration.

Why

T2 of the owner's report of 2026-10-19 needs every declared pair to complete with current runs. The critique found the pilot's freshness inputs include bin, lib and share, which the mesh changes many times a day, so a corpus spanning days would never complete; pinning the treatment to a tagged release keeps the treatment fixed and lets later changes, such as I3378's permission hook, enter only through a new registration.

Current state

suites/pilot.yaml freshness_inputs list bin/majordomus, lib and share; methodology.yaml:43 lists majordomus revision among the comparability keys; case 3223 proves the release smoke installs a pinned version.

Desired state

A registered suite runs a pinned release; a commit to lib on master leaves its runs current.

Scope

  • apps/majordomus-cli/src/economics/runner.rs
  • apps/majordomus-cli/src/economics/model.rs
  • apps/majordomus-cli/tests/economics.rs
  • docs/ECONOMICS.md
  • site/content/docs/economics.md

Out of scope

  • Changing the pilot suite
  • Building a release

Dependencies

What waits on this

Acceptance criteria

  • A replaying-harness test installs a named release archive into the treatment workspace and records its version and digest
  • Editing a file under lib leaves a registered suite's runs current, and changing the registered release makes them stale
  • An unregistered suite's freshness is unchanged

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
  • bash test/run.sh 430_economics
  • majordomus generate --check

Evidence required

  • test_treatment_release_is_pinned

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3375.yaml. Read it back with majordomus plan show I3375.

Searches the titles and descriptions of every page this site publishes.