Open Items
mur open answers one question ā what is still outstanding? ā and is careful about where each answer came from.
mur open # everything outstanding
mur open add "wire up the importer" # record something an agent left undone
mur open done <id> # clear a reported item
mur open --json # machine-readable
ā observed ā from MUR's own state
fleet 'rust-solo' is stopped by its kill-switch [fleet:rust-solo]
ā mur fleet start rust-solo
fleet 'develop-rust': 1 queued job [fleet:develop-rust]
ā mur fleet jobs develop-rust
246 harvested workflow proposals awaiting review [inbox]
ā mur session out
ā reported ā an agent said so, unverified
wire up the importer [agent:mur]
Two sources, never mixed
Observed items are derived from state MUR already holds: proposals waiting in the inbox, queued or running fleet jobs, a fleet held down by its kill-switch. These cannot be wrong about their own existence ā the file is there or it is not.
Reported items are what an agent wrote down because it decided something was left undone. They catch commitments made in conversation that no file records, and nothing but the agent's word says they are real.
The list keeps them apart and puts observed first, so a reader who stops after two lines has read the two that cannot be wrong. A panel that presents an agent's recollection with the same confidence as a file on disk teaches you to distrust all of it ā and the failure mode of a status surface is not being wrong once, it is being ignored forever after.
In the agent CLI
Inside mur agent cli / murmur:
/openrenders the full list on demand.- At the end of a turn, a one-line summary appears ā but only when the set has changed since you were last told. The same three items after every turn is how a status line becomes wallpaper.
- Nothing outstanding prints nothing at all.
3 open items (2 observed, 1 reported) ā /open
Agents can report their own
Agents have a built-in open_item tool for work they know they left unfinished,
and can resolve an item by id later. It needs no filesystem permission, and
everything it writes lands under the reported heading ā marked as the
agent's own unverified claim, because that is what it is.
Ranking reported items by evidence
A reported item is an agent's unverified claim. --check runs the item's own
next command when that command only looks at things, and uses the result
to rank the list:
mur open --check
Only three shapes run: ls <paths>, test -f <path>, and git log <args>. A
next that would act, or that needs a shell to interpret it, is skipped rather
than guessed at ā a string containing any of & ; | < > $ ( )` or a newline is
refused whole, not sanitised.
Nothing is ever closed by a check. A passing check moves an item down the list; it does not resolve it, because the command was chosen by the agent that filed the item and cannot be trusted to settle it.
The output says how much of the list it could actually judge:
checked 1 of 4 reported items ā 3 have no runnable check
That line matters more than the ranking. Without it a mostly-unchecked list reads exactly like a mostly-verified one.
What is deliberately not a source
Unmerged local git branches. In a squash-merge repository git branch --no-merged reports branches whose content is already on the main line, so it
produces false positives at a steady rate ā and a source that cries wolf is
worse than no source, for the same reason the observed/reported split exists.