mm_run
Session runtime for a /mm: command run. phase selects the operation. log appends one typed event to the run’s append-only journal at .mm/specs/{spec}/runs/{run_id}.jsonl — omit run_id on the first call and one is minted and returned, which is how a run opens its journal. There is deliberately no edit or delete phase: an edit, as opposed to an append, turns two writers into a conflict instead of a union. The timestamp in each line’s provenance is stamped by the server and is NEVER taken from the caller, because wall-clock is derived from it — a recalled number is exactly the problem this replaces. begin, end and read are not implemented yet and return a stated error; do not hand-roll a substitute for them.
At a Glance
Section titled “At a Glance”- Category: Core
- Source: Built-in
- Availability: Listed by default
- Required parameters: 3
- Total parameters: 8
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
phase | string (enum: begin, log, end, read) | Yes | begin | log | end | read. Only log is implemented today. |
project_path | string | Yes | Absolute path to the project root (the directory containing .mm/). On a split run this is the checkout whose .mm/ holds the spec, not where the code lives. |
spec_folder | string | Yes | Spec folder name, e.g. ‘2026-08-14-my-spec’. |
run_id | string | No | log: the run to append to. Omit on the first call of a run — the server mints one and returns it; pass it on every later call. |
event | object | No | log: the event. One of — {kind:‘gate’, gate, verdict, override}, {kind:‘task_start’, task, agent, model}, {kind:‘task_result’, task, ok, files, evidence, attempts}, {kind:‘commit’, task, sha}, {kind:‘deviation’, text, verbatim}, {kind:‘verify’, verdict, misses, iterations}. An unknown kind is rejected rather than written. |
session_id | string | No | log: optional MM session id, recorded as provenance. |
agent | string | No | log: optional agent name, recorded as provenance. |
model | string | No | log: optional model id, recorded as provenance. |
Example
Section titled “Example”{ "tool": "mm_run", "arguments": { "phase": "begin", "project_path": "/Users/you/projects/my-app", "spec_folder": "example-spec_folder", "run_id": "my-example", "event": {} }}Related Tools
Section titled “Related Tools”mm_search- Full-text search across all entity types (specs, features, issues, notes, ide…mm_configure_integration- Configure an external service integration (github, trello, grain, gmail, noti…mm_sync_notion- Bidirectional sync between a Notion database and .mm/specs/ or .mm/notes/. Pu…mm_daily_brief- Generate a structured morning summary with active tasks, blockers, recently c…mm_revert_spec_completion- Revert a spec’s completion status in its parent feature. Tasks stay [x] but t…