Skip to content
Cockpit0.29.0
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

I0819

The project model is loaded with one flatten per file and no per-file lookups

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
1
Waiting on
none
Holds back
Behind it in all
12
Evidence
1 of 1
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I0819

majordomus plan verify I0819

majordomus plan done I0819

What it is

Objective
Make mj_project_load and mj_project_unknown_keys read each milestone and issue once, checking ids and unknown keys inside awk rather than with a subprocess per file and per key.
Why
The project validator costs 3.5 s of doctor and plan validate costs 4.4 s on 73 records; the count grows with the plan.
Now
Every record is flattened, then read back with mj_yget per check, then re-read to build raw.tsv.
Wanted
One flatten and one awk per record, unknown keys computed by one awk over the flat directory against the allow-lists.
Done when
unknown: the record declares no `completion`
Risk
Unknown-key detection moved into awk must keep the same allow-list semantics; case 44 mutates a record and expects the refusal.

Acceptance

  • validate:project under 400 ms and plan validate under 1 s on this repository
  • Cases 40 to 48 pass unchanged
Validation
MJ_TIMING=1 bin/majordomus plan validatebash test/run.sh 40_project_model
Evidence required
batch_reads
Evidence present
batch_reads

Scope

Touches
lib/project.shlib/doctor.shlib/plan.shtest/cases/40_project_model.shtest/cases/41_project_status.shtest/cases/43_plan_command.sh
Not
Any change to the model semantics in project.awk
Depends on
Priority
p0
Profile
implementation
Parallel safe
false
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-05
Updated
2026-09-05
Started
2026-09-05T02:06:00Z
Verified
2026-09-05T02:16:00Z
Completed
2026-09-05T02:16:00Z

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.