consolidate-workspace
Lift durable truth from frozen retrospectives into maintained Workspace knowledge and Mimir work state. This is the primary agent-authoring path for the Workspace Brief; ordinary Session completion does not rewrite it.
Primary agent only. Work only in the workspace bound by
.atlas.tomland the Mimir project bound by.mimir.toml.
Preflight
Require mimir, norn, ATLAS_PATH, .atlas.toml, and .mimir.toml. Pin every norn call with -C "$ATLAS_PATH"; never hand-edit vault frontmatter.
Read the Mimir skill's querying and tagging references before using its exact command surface.
1. Find pending Mimir Session Summaries
Page the complete newest-first feed until the accumulated row count equals the
reported total; do not rely on the default page size:
mimir artifacts -t workspace_unconsolidated --limit 100 --offset 0 -f json
# repeat with offsets 100, 200, ... until every reported row is collected
Reverse the complete collected set and process it oldest-first. Read each body
with mimir get <KEY-aN> --col content. workspace_unconsolidated is this
skill's cursor; do not inspect or remove memory_unconsolidated.
2. Route candidates after verification
For each retrospective, inspect the complete body and its Consolidation Candidates. Before routing a candidate:
- deduplicate it against the Brief, glossary, decisions, notes, and Mimir;
- verify it still applies against live code and work state;
- force a decision on a candidate carried across two or more summaries rather than carrying it again.
Route durable project knowledge to the smallest maintained home that owns it: glossary for a sharpened term, ADR for a hard-to-reverse trade-off, notes/ for a durable principle or reference, and the Workspace Brief only for compact orientation that genuinely belongs in Active Context. Route follow-up work to Mimir.
The final durable-only Brief structure is intentionally not defined here; ATSK-52 owns that shaping decision. Until then, maintain the existing durable manifest conservatively and do not recreate rolling Current State, What's Next, Learnings, or Recent Sessions sections.
3. Mark only after successful routing
For a Mimir summary, remove this consumer's cursor:
mimir untag <KEY-aN> workspace_unconsolidated
Never mark an input until every workspace candidate was routed or verified as already captured.
4. Maintain and measure the Brief
Prune obsolete rolling work-state sections; Mimir owns those views. Preserve the human-authored manifest and update it only for factual durable orientation. Put richer knowledge in linked notes rather than expanding Active Context.
After maintenance, measure the Brief with Python's Unicode code-point count and stamp brief_baseline through norn:
brief="$ATLAS_PATH/Workspaces/<workspace>/<workspace>.md"
chars=$(python3 -c 'import pathlib,sys; print(len(pathlib.Path(sys.argv[1]).read_text(encoding="utf-8")))' "$brief")
norn -C "$ATLAS_PATH" set "Workspaces/<workspace>/<workspace>.md" \
--field-json brief_baseline="$chars" --yes
5. Report
Report summaries processed, knowledge promoted, Mimir work created, stale or duplicate candidates dropped, cursors cleared, and any inputs left pending with reasons.