Roadmap
From intent to impact, in the order the plan's dependencies allow.
Every milestone of the plan with the issues it holds, and the intents the work serves.
- NowM002plan.roadmap /now
- NextM003plan.roadmap /next
- Milestones41plan.roadmap /milestones
- Intents5intents.list /intents
What it is for
The milestone's own record: why it exists, what it promises, and what would prove it.
The problem
Repository automation lives in shell, and every recurring defect class this repository has recorded about itself has a shell instance: a BSD/GNU flag that behaves differently on the runner, a pipeline whose count is lost in a subshell, a gate that cannot read its own pattern and reports clean, a sort whose order depends on the locale. An audit of 2026-09-15 classified 223 units: scripts/ci is 44 files and 6,017 lines, the other scripts and bin 82 files and 14,860 lines, lib 45 files and 19,513 lines, and 216 shell test cases 30,872 lines. By disposition 97 are domain logic that belongs in core Rust, 32 orchestration, 34 glue, 3 dead, 14 generated and 43 platform adaptors. A user of the tool needs Bash to run any of it, and Perl reaches the tree through shasum on macOS.
The outcome
A capability may be scripted (ADR 0069): a Rhai script inside the Rust executable orchestrates typed capabilities through the one registry, reaches every surface by the projections that already exist, runs in a sandbox with a declared and enforced effect ceiling, and shell shrinks by migration under a gate that refuses new shell without a declared exemption.
Where it stands
No interpreter is embedded. Every orchestration is a shell script, the baseline-ratchet logic is copied into ten scripts/ci gates, nothing refuses a new shell file, and Perl is reachable through shasum.
Where it should stand
The sandboxed engine is part of the executable; a scripted capability is a kind discovered by the index and registered in the one registry, runnable through majordomus run and projected like any capability; nothing runs Perl; new shell under governed paths is refused without an exemption and the migration inventory is tracked; the first shell gates are scripted capabilities over typed Rust.
In scope
- apps/majordomus-cli
- share
- scripts
- lib
- bin
- .ai/repo
- docs
- test
- SECURITY.md
Out of scope
- Transliterating shell scripts into Rhai. Domain logic moves to typed Rust capabilities; a script only orchestrates capabilities
- A generic shell or exec capability, or any function that takes a command string
- Perl, Python or Node as a portable layer
Proven when
- A Rhai script runs only inside the sandbox engine, with eval disabled, no clock, bounded work and cancellation
- A scripted capability declared in the layer appears in the registry, capabilities list, OpenAPI and MCP with no edit anywhere else
- A script calling a capability whose effect exceeds its own declared effect is refused at run time
- No tracked file invokes Perl, held by a gate
- A new shell file under a governed path without an exemption entry is refused, and the migration inventory is machine-readable
objects.get0 msAPI/api/v1/objectMCPmajordomus_gettechnical view
Milestone
One milestone of the plan: what it holds, what can start, and what it waits for.
automation · order 130 · p1
Repository automation is scripted capabilities over typed Rust, not shell
activeClose
- Done
- 2 of 5
- Ready now
I1800- Blocked
- 2
- Waits for
- none
- Blocked by
- none
- Unblocks
- none
- Serves
- none
Critical path
Issues
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view
plan.issues0 msAPI/api/v1/plan/issuesMCPmajordomus_plan_issuestechnical view
Milestones
Every milestone, in the plan's order; the plan declares no dates, so none are drawn.
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view
Intents
What the work is for, and whether the evidence says it is met.
intents.list263 msAPI/api/v1/intentsCLImajordomus intent listMCPmajordomus_intentstechnical view
Issues by status
Every issue of the plan, counted by the plan.
- active1
- blocked159
- cancelled10
- done161
- ready86
- verify7
plan.status0 msAPI/api/v1/plan/statusMCPmajordomus_plan_statustechnical view
Dependencies
Which milestone waits for which, as the plan records it.
| Milestone | Depends on | Blocked by |
|---|---|---|
| runtime-adapters | foundation | |
| intent-planning | intent-lifecycle | intent-lifecycle |
| execution-telemetry | runtime-adapters | runtime-adapters |
| intent-bound-work | intent-planning | intent-planning |
| cost-per-accepted-outcome | execution-telemetry | execution-telemetry |
| routing-recommendations | cost-per-accepted-outcome | cost-per-accepted-outcome |
| shared-policy | routing-recommendations | routing-recommendations |
plan.roadmap0 msAPI/api/v1/plan/roadmapMCPmajordomus_plan_roadmaptechnical view