Skip to content

I1988 — A use case's setup scripts live where the adopter declares, and its scenarios may run the adopter's own commands

Declare the use-case setup directory in the manifest instead of hard-coding this repository's test/fixtures/commands/setup, and allow a scenario step to run commands the adopter declares, judged by the same effect classes as I1981.

READY wave 1 · p2 · implementation profile · parallel safe

Part of adopter-upgrades — An adopting repository survives a Majordomus upgrade, and what the tool vendors into it is adopter-neutral.

Ready. Every dependency is done, so majordomus plan start I1988 will be accepted.

Objective

Declare the use-case setup directory in the manifest instead of hard-coding this repository's test/fixtures/commands/setup, and allow a scenario step to run commands the adopter declares, judged by the same effect classes as I1981.

Why

OSCILLA's test/fixtures/commands/setup/oscilla-tree.sh exists only because 'that path is fixed by the tool' (cb79d27), and its scenarios can run only bin/majordomus, so an adopter cannot prove its own product behaviour with use cases.

Current state

lib/usecase.sh resolves setup scripts under a fixed path and runs only the tool.

Desired state

A manifest key names the setup directory; declared external commands are allowed in scenarios under the effect rules.

Scope

  • lib/usecase.sh
  • share/schemas
  • share/skeleton
  • docs
  • test/cases

Dependencies

Acceptance criteria

  • A fixture adopter with setup scripts under its declared path runs its scenarios
  • A scenario step running an undeclared external command is refused

Validation

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>

Evidence required

  • declared_setup_path_case

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

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