Skip to content

I3361 — install-check's first-run stage runs against a clone of an existing repository named on the command line and writes a T1 trial record

Give scripts/ci/install-check a --repository <path> input and the verify command that repository already runs. It clones into its throwaway tree, never writes to the source, runs I3127's refuse-then-accept stage there instead of on the fixture, and writes the result as a T1 trial record that I3353's loader admits, so anyone can re-measure an adoption from the published installer. Read the board at start for claims on install-check and case 1024.

BLOCKED wave 3 · p1 · implementation profile · parallel safe

Part of a-foreign-repository-is-adopted-and-measured — A repository not built around Majordomus is adopted from the published installer to an accepted finish, and its overhead and friction are recorded without exposing what its basis does not permit.

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

Objective

Give scripts/ci/install-check a --repository <path> input and the verify command that repository already runs. It clones into its throwaway tree, never writes to the source, runs I3127's refuse-then-accept stage there instead of on the fixture, and writes the result as a T1 trial record that I3353's loader admits, so anyone can re-measure an adoption from the published installer. Read the board at start for claims on install-check and case 1024.

Why

T1 of the owner's report of 2026-10-19 and its rule that claims be evidence-backed need an adoption a reader can reproduce. I3127 is the sole owner of the refuse-then-accept stage, so this issue adds only the input and the record writer.

Current state

scripts/ci/install-check:17-27 lists seven stages ending when the installed launcher serves a fresh repository. test/cases/1024_an_installed_release_serves_a_foreign_repository.sh:10 states that its fixture release and origin are local. I3127 is BLOCKED by its milestone.

Desired state

install-check --repository <clone> --verify-command <cmd> writes a T1 record; case 1024 covers that path on a small repository of another language that it creates locally.

Scope

  • scripts/ci/install-check
  • test/cases/1024_an_installed_release_serves_a_foreign_repository.sh

Out of scope

  • A second refuse-then-accept scenario
  • Network access in case 1024

Dependencies

What waits on this

Acceptance criteria

  • The source repository's status, refs and HEAD are identical before and after a run, and case 1024 asserts it
  • finish refuses while the repository's verify command fails and accepts after the failing edit is reverted, both named in the record
  • The record carries per-step seconds with their source, the undocumented-command count and the platform, and passes the loader
  • Without --repository, install-check behaves as I3127 left it

Validation

  • bash test/run.sh 1024_an_installed_release_serves_a_foreign_repository
  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test economics
  • majordomus plan validate

Evidence required

  • case_install_check_adopts_a_named_repository

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/I3361.yaml. Read it back with majordomus plan show I3361.

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