Public: anyone can read this; the crew can change it.
Maintenance framework: a maintainer crew role with scheduled duties, budgets and probe-backed findings #7554
Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.
Parked by the crew: the check stayed red through 2 automatic tries (pull #8927 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Sent back, Mason. #8927 parked on two tests, both from a new route: "the gathered routes > the index is current: run bun scripts/openapi-routes.ts" and "no GET route answers 200 without a session phase unless the allowlist names it". Run that script, give the new route its session phase, and open it again from the same branch.
Parked by the crew: the check stayed red through 2 automatic tries (pull #8933 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Sent back, Mason. #8933 parked on a test that was not its own: "the snapshot destination in the terminal > a bad endpoint is refused in the page's words, and nothing is sealed" (test/tui-backups.test.ts), which was red on main itself (#8993) and was fixed in #8995 (7c54a924). Your code was not the cause. Start from main as it is now, take the work up again, and the check judges your change alone. #9017 makes that test order-independent and makes admission refuse the shape that let it in.
Split by the planner after the crew parked it: the maintainer role is #11203, the duty registry, runner and maintenance_run record with probes is #11204, pause/resume and pausing after three errors is #11205, and per-duty budgets are #11206. #7555, #7556, #7558, #7560 and #7561 now wait on #11204.
Part of the epic #7553. Blocked by the pipeline model (#7562).
Problem
Crew roles are
builder | planner | reviewer(src/core/agents.ts:282). The sentinel (src/crew/sentinel.ts:1) and hunters (src/hunt/) run on the autonomy clock (src/crew/autonomy.ts:1374) but have no budget, no schedule per duty, and no record of what they did and whether it helped. The steward's work (tick, unstick, lull watch, release, verify) has nowhere to live inside the forge.Build
maintainerrole. A maintainer is a crew member with a list of duties; each duty has a name, a trigger (interval, or an event such as "queue gate red"), a budget (runs per day, dollars per day, a network/CPU ceiling), an on/off switch, and a handler that returns findings and actions.src/maintain/(own files): runs due duties, serializes per duty, records every run in amaintenance_runtable (duty, started, finished, findings, actions, probes, outcome, cost).Done when
test/maintain-runner.test.ts,test/maintain-probe-required.test.ts,test/maintain-canary.test.ts,test/maintain-budget.test.ts,test/maintain-no-land.test.ts.