Skip to content

State

one active task per checkout in current.yaml, with branch, head, and working_tree computed from git, never authored

one active task per checkout in current.yaml, with branch, head, and working_tree computed from git, never authored

Where it lives

The command that acts on it

majordomus start

Begin one scoped task under a profile, and refuse while another is active.

  • state-mutating
majordomus start "<task>" --scope <path>[,<path>...] [--profile <name>] [--owner <who>]

See it refuse, and accept

start records what you are about to do and which paths it may touch. The scope is a claim you will be held to by check and by finish.

Given this repository

# A repository with Majordomus installed and projections generated, and one commit of work.
"$MJ" init >/dev/null
"$MJ" update >/dev/null
mkdir -p lib docs
echo a > lib/a
echo d > docs/d
git add . && git commit -qm base

Run

$ majordomus start narrow the parser --scope lib

Output contains

  • ^started t-
  • profile=implementation
  • scope=lib

exit 0

The identity fields — repository, branch, head, worktree — are computed from git and never authored. What you supply is the description, the scope and the profile.

Given this repository

# ... and an active task scoped to lib, with work done inside that scope.
. "$FIXTURE_SETUP/installed.sh"
"$MJ" start "narrow the parser" --scope lib >/dev/null
echo work >> lib/a

Run

$ majordomus start something else --scope lib

Output contains

  • is active

exit 15

One active task per checkout. Two open claims on the same working copy cannot both be enforced, so the second is refused and told what to do first.

What enforces it

What is guaranteed

The moments this answers