# Consolidate Workspace

> Consolidate a bound workspace's pending Mimir Session Summaries into durable workspace knowledge and follow-up work. Primary agent only.

- Skill: `dbtlr/consolidate-workspace` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dbtlr/consolidate-workspace`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dbtlr/consolidate-workspace/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: dbtlr (https://skillmd.com/u/dbtlr)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/dbtlr/consolidate-workspace

---


# 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.toml` and 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:

```bash
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:

```bash
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:

```bash
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.

