A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
I2464
A path that holds a space is one path to the scope doctrine
Where it stands
devtask.issue- Readiness
- complete completion is recorded and every required evidence token is present
- Status
- DONE
- Can start
- not now
- Milestone
- Milestone status
- ACTIVE
- Wave
0- Waiting on
- none
- Holds back
- none
- Behind it in all
0- Evidence
1of1
Moves
plan.transitionWhat it is
- Objective
- Read the files a task touched as one path per line, with git's -z output, everywhere the shell layer lists them, so that a file name holding a space is judged as the one path it is.
- Why
- On 2026-10-11 session 25's pre-push refused #931 for four concept images inside its scope, each named like \"Futuristic PR Drain Developer Dashboard.png\": lib/check.sh iterated `for f in $(mj_git_touched ...)`, which splits on whitespace, and mj_git_touched read `git status --porcelain` without -z, which wraps such a path in quotes. One image became five out-of-scope \"paths\" (\"assets/concept/Futuristic, PR, Drain, Developer, Dashboard.png\"). The session renamed the files to get past its own gate. lib/context.sh, lib/changed.sh, lib/evidence.sh and lib/derive.sh read the same quoted output.
- Now
- mj_git_touched and four other readers take `git status --porcelain` without -z, and two callers split its output into words; a path with a space is refused as several paths outside the scope.
- Wanted
- mj_git_touched reads status and log with -z through one helper, mj_git_dirty_paths, and every caller reads lines; case 1073 holds a committed, a staged, a modified, an untracked and a renamed path with spaces inside the scope, and an out-of-scope one reported whole.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- majordomus check passes a task whose in-scope files hold spaces, committed, staged, modified, untracked and renamed
- an out-of-scope path with a space is reported once, whole, never in pieces or in quotes
- case 1073 fails against master without the change
- Validation
bash test/run.sh 1073_a_path_with_a_space_is_one_path 04_start_check 108_scope_after_trunk_merge 108b_scope_after_trunk_fast_forwardbin/majordomus plan validate- Evidence required
path_with_space_case- Evidence present
path_with_space_case
Scope
- Touches
lib/common.shlib/check.shlib/context.shlib/changed.shlib/evidence.shlib/derive.shtest/cases/1073_a_path_with_a_space_is_one_path.sh.ai/repo/project/issues/I2464.yaml- Not
- unknown: the record declares no `non_scope`
- Depends on
- none
- Priority
- p1
- Profile
- implementation
- Parallel safe
- true
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-10-11
- Updated
- 2026-10-14T07:39:18Z
- Started
- 2026-10-14T07:39:09Z
- Verified
- unknown: the record declares no `verified_at`
- Completed
- 2026-10-14T07:39:18Z
Synchronisation
- Adapter
scripts/github-sync- Repository
- unknown: the derived plan's header carries no repository
- External issue
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
- State there
- unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
Findings
Nothing is wrong with these records.