Agent skill

Claude Compaction Restore

by mvschwarz in mvschwarz/openrig

Keeps a long-running Claude Code session's working picture alive across compactions by writing a restore map before compacting and rebuilding context from it afterward.

Apache-2.0Auto-check passedAgent Workflows

Install Claude Compaction Restore

skills CLI
$ npx skills add mvschwarz/openrig --skill claude-compaction-restore -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mvschwarz/openrig claude-compaction-restore --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mvschwarz/openrig.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore .claude/skills/claude-compaction-restore && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
claude-compaction-restore
GitHub stars
6.6k
Token cost
~4.2k tokens
SKILL.md length
2,603 words
Files
6 (incl. scripts)
Skills in repo
49
Repo updated
First seen
Licence
Apache-2.0

At a glance

Keeps a long-running Claude Code session's working picture alive across compactions by writing a restore map before compacting and rebuilding context from it afterward.

  • Works in 3 steps: the post-compaction world profile; → the mission or slice SPEC.md and NOTES.md; → rows you hold.
  • Preparing a long session for an upcoming compaction
  • SKILL.md covers What survives, and what you…, Two restore classes, If You Are About To Compact and If You Just Compacted, plus 3 more sections
  • Runs JavaScript scripts from its folder

What it does

Compaction keeps facts but loses the connections between them: why a file matters, what depends on what, which decision produced which artifact and what comes next. Planners, orchestrators and reviewers holding a standard lose the most. Before compacting, the agent writes a restore map, a short summary plus the links between things that already exist on disk. After compacting it reads its own map and rebuilds the picture before acting, and over several compactions the maps chain into one continuous record.

The skill separates what is already on disk, which the map should point to and not copy, from what exists only in the agent's head and must be written down. On disk are the session JSONL transcript, the restore packet from the PreCompact hook, queue rows, mission files such as `SPEC.md`, `NOTES.md` and `PROGRESS.md`, `LEARNED.md`, branches and PRs. The map records why things matter, how they relate, decisions with rejected options, position in time and where to look deeper. Scripts include `precompact-hook.mjs` and `restore-from-jsonl.mjs`, plus compact and post-compact instruction templates.

When your agent uses it

  • Preparing a long session for an upcoming compaction
  • Rebuilding context after a session has just compacted
  • Resuming a long-running planner or reviewer seat after /compact

Example prompts

  • “The context is nearly full, so write a restore map before we compact.”
  • “We just compacted, so rebuild your picture from the map and the transcript before continuing.”
  • “Read your own restore map and list what each earlier window decided.”

Requirements

  • Node.js to run the hook and restore scripts
  • Claude Code session transcripts stored under ~/.claude/projects

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. the post-compaction world profile;
  2. the mission or slice SPEC.md and NOTES.md;
  3. rows you hold.

What it can do on your machine

Read from SKILL.md and the folder at commit 4b48ca2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (JavaScript), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Claude Compaction Restore loads about 4.2k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 2,603 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from mvschwarz/openrig at commit 4b48ca2, republished under its Apache-2.0 licence (© mvschwarz). 2,603 words, ~4,216 tokens.

Download SKILL.mdSave it as .claude/skills/claude-compaction-restore/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
claude-compaction-restore
description
Use when a Claude Code session is about to compact, has just compacted, reached its context limit, resumed after /compact, or must rebuild its working picture of a long-running seat from its own restore map, its JSONL transcript and the files it touched.

Claude Compaction Restore

Compaction keeps facts and loses connections. After a compaction you still know file names, row ids and decisions as items. What you lose is the web between them: why a file matters, what depends on what, which decision produced which artifact, what you were about to do next, and how this window relates to the ones before it. Seats whose value is a wide, long-running picture (planners, orchestrators, reviewers holding a standard) lose the most.

This skill keeps that picture alive across compactions. Before compacting, you write a restore map: a short summary plus the connections between things that already exist on disk. After compacting, you re-enter the world, read your own map, and rebuild the picture before acting. Over several compactions the maps chain into one continuous record: a global context window that outlives any single session.

The previous version of this skill is kept at reference/SKILL-v1.md for comparison.

What survives, and what you write

Already on disk; point to it, don't copy it:

  • your session JSONL at ~/.claude/projects/<cwd-slug>/<session-uuid>.jsonl (the post-compaction restore request names the exact path). It holds every message and tool call you made, in order. It does not hold your reasoning;
  • the restore packet the PreCompact hook writes (transcript extract, touched-file triage);
  • queue rows and their transitions, mission files (SPEC.md, NOTES.md, PROGRESS.md), your seat's LEARNED.md, evidence folders, branches and PRs.

Only in your head; write it down:

  • why each important thing matters, and to whom;
  • how things relate: depends on, supersedes, answers, contradicts, was produced by, is owned by;
  • decisions and the reasons for them, options you rejected, judgment and taste you applied;
  • where you were in time: what earlier windows established, what this window did, what comes next and who authorizes it;
  • where to look deeper: which JSONL range or file answers which question.

The map is the second list, pinned to the first.

Two restore classes

Every restored seat must come back competent. It should understand the OpenRig world and its command surface, the project, its own role, and where it stands in time. Some seats also need the global picture.

Both classes read the same thing: the ranked reading list in your own map, in order. They differ only in how far down the list they go.

ClassWhoReads
Defaultdrivers, builders, reviewers, QA, and any seat not listed belowTier 1: the top of the list, to about 100k of real context
High-contextorchestrators, planners, advisors, leads: any seat that makes product, scope or routing decisionsTier 1 and Tier 2, to about 200k of real context

The tiers are real context added by the restore, on top of what the compaction summary leaves (about 60k). These budgets assume a context window of about 1M tokens; on a smaller window, scale them to about 10% and 20% of it. File size is a poor guide to that cost: in OpenRig's own runs, real context grew 1.7 to 2 times the bytes ÷ 4 estimate, because of line numbers on reads, tool output and your own reasoning. So rank to about 50k of bytes ÷ 4 for Tier 1 and about 100k for Tier 2, and check real usage at each checkpoint with rig compact-plan --json (your seat's estimatedUsedTokens).

Tier 2 buys width, not depth: more sources, more connections, more of the mission's history and the wider worlds, not the same files read more fully. Choose your class from your role (rig whoami --json). A per-seat instruction file or your own map can name the class explicitly, and that overrides the role default. In both classes, transcripts and the session JSONL appear only as targeted line ranges, never as whole files.

If there is no ranked list (no preparation turn happened), use this default order. Default seats stop at about 100k of real context:

  1. the post-compaction world profile;
  2. the mission or slice SPEC.md and NOTES.md;
  3. rows you hold.

High-context seats then add, to about 200k:

  1. the full System World install;
  2. the full Project World, public and private;
  3. the mission's PROGRESS.md and recent returns;
  4. previous maps and RESTORED notes;
  5. LEARNED.md.

If You Are About To Compact

You are about to lose every connection you have built. Spend this turn making them durable.

  1. Think back before writing. Walk the session and, through your previous map, the windows before it. What were the threads? What did you work out about how the pieces fit? What is unfinished? What did you decide, and why? What were you about to be wrong about?
  2. Write the restore map at the exact path named in OpenRig's preparation request. Follow that request's completion instructions: use your ordinary file-edit tool to write the named .tmp file, with the exact completion marker as its last line, then finish and close it. The daemon publishes the completed map atomically; do not run a shell rename or write the final file incrementally. Do not substitute the seat folder or another map. Managed preparation normally publishes <launch cwd>/.openrig/compaction/preparation/<session>/<attempt>/RESTORE-MAP.md; its parent compaction folder ignores itself in Git because maps hold private working context. Unknown or unwritable launch directories retain the instance-home fallback named in the request; it may need permission if outside your working directories. When there is no named path, use your durable seat folder instead: <topology root>/rigs/<rig>/seats/<seat>/RESTORE-MAP-<UTC yyyymmdd-hhmm>.md, derived from rig whoami --json and rig config get topology.root. Run date -u for the timestamp and every time you write in the map. Do not estimate times: an estimated time can land before events it describes.
  3. Open the map with a summary of 10 to 20 lines: who you are, what you hold, what mattered in this window, what is next and who authorizes it, and any hold in force. Publish that summary as your seat recap too: save it, plus a line naming the map's path, to a file and run rig context recap-write --rig <rig> --seat <seat> --file <that file>. If your world profile has a seat recap atom, it loads this recap, and an old recap would be served as if it were current.
  4. Then write the connections. Choose what this seat needs; these are examples, not a template:
    • State: rows you hold (id, state), branches and PR heads, the hold or release in force and who gave it, the mission and slice you work in.
    • Nodes with purpose: each file, row, PR or evidence folder that matters, one line each on what it is and why it matters.
    • Edges: "A depends on B", "C supersedes D", "this decision produced that file", "E answers question F", "G is owned by seat H", "I and J disagree; unresolved".
    • Judgment: decisions with reasons, rejected options, what the human cares about here, the tells you caught or nearly missed.
    • Time: what the previous map said happened before, what happened this window, what is next.
    • Lookups: JSONL line ranges or uuids for threads worth re-reading (grep -n the JSONL for a row id or timestamp), and which file holds the evidence for which claim.
    • A small file tree of the paths above, each with a one-line note, when that helps navigation.
  5. Rank what your restored self should read. End the map with a reading list ordered by importance.
    • What each entry gives:
      • the path;
      • the exact part to read (a heading, a line range, or a JSONL range found with grep -n), not the whole file unless the whole file is the point;
      • its approximate size (bytes ÷ 4 ≈ tokens; wc -c);
      • one line on why it matters.
    • The first entry is the post-compaction world profile, with its size from rig context profile … --json (totalEstimatedTokens).
    • Tier lines: keep a running bytes ÷ 4 total, draw the Tier 1 line at about 50k (about 100k of real context), and continue to about 100k for Tier 2 (about 200k real).
    • Rank for connections. Prefer the entry that connects the most other things you need, and choose a section that explains how things fit over a long file of detail you can look up later.
  6. Link the chain. Name the previous restore map (and its RESTORED note, if one exists) so a later reader can walk back through earlier windows.
  7. Keep it readable in one pass. Aim for something you could read in a few minutes: point instead of copying, and leave out what a command can re-derive.
  8. Update the durable homes you own as usual: a lesson that changes future decisions goes in LEARNED.md; mission state goes in the mission's own files; work another seat must act on goes in a queue row. The map points to these rather than repeating them.
  9. End the preparation turn by stating the map path. OpenRig sends /compact next; the summary should name the map path and the next authorized step.

A map that lists files without saying how they connect is an inventory, and an inventory is what compaction already leaves you. The edges are the point.

Show full SKILL.md (1,111 more words)Show less

If You Just Compacted

You have facts without connections. Rebuild the connections before you act on anything.

Use the native read tool for file reads throughout restoration. Load refocusing and consume the current topology and work trace that actually arrived with the restore request; do not rerun Python merely to duplicate it. If no current trace arrived, name that delivery gap. A packet pointer, compact summary or truncated extract is not a full source read. Read required notes and full sources separately and complete the restore steps and read-depth audit below; partial reading does not establish completed restoration. The earlier acknowledgement-only boundary is not a restore request.

  1. Check for a hold first. Read the restore request, the per-seat instruction file (<OPENRIG_HOME>/compaction/post-compact-extra/<session>.md, named by your full session such as dev-impl@my-rig.md) when it exists, the newest row or message from whoever routes your work, and any hold from the authority above them. A hold, a release order or an operator's own restore map overrides the default order below. Before any write, also run rig whoami --json and rig queue whoami.
  2. Name your class and state its read budget before reading (see "Two restore classes"), with a checkpoint at each step below. The budget exists so that the restore leaves room for the work it was restored to do. Step 5 takes a high-context seat to its Tier 2 line; the extra sources under "Two restore classes" apply only when there is no ranked list.
  3. Re-enter the world. Load the post-compaction world profile your instance provides. Find it with rig context list; for a private world install, run rig context profile <world-ref> --situation post-compaction --rig <rig> --seat <seat> (the seat flags are needed for its seat-scoped recap atom; take both values from rig whoami --json). Without a private world, run rig context profile world-public --situation post-compaction and rig context get onboarding-width. This restores how the system works before you restore what you were doing in it. If your work belongs to a project, re-enter its declared context too: rig context work-install lists what the project declares (intent, context files, skills), so read the pieces your task needs. --deliver prints them all; when several projects are declared (--json lists the ids), name one with --project <id>.
  4. Read your own restore map in full at the exact path named by the preparation request, restore request or compaction summary. Only when none names a path, look for the newest RESTORE-MAP-*.md in your seat folder. If the selected map points to an earlier map for context you need, read that too.
  5. Read down the map's ranked list to your class's tier line, reading exactly the parts each entry names. Then check every row you hold (rig queue show <id> --full --json) and anything that may have changed since the map was written: merged PRs, new rows, a new hold. The map records what was true when it was written; current state still has to be derived.
  6. Use the packet and the JSONL as lookups, not as reading lists: go to a specific line range when a specific question needs it. The packet's restore-instructions.md and touched-files.md help find things the map does not cover.
  7. If there is no map (the preparation turn did not happen), fall back to the packet: read restore-instructions.md, then the most recent unique narrative, tail first, within the budget; and say in your report that you restored without a map.
  8. Reply with the sentence the restore request asks for, normally restored from packet at <path>; resumed at step <X>, naming the map you used. When no packet exists, give the map's path as <path> and say that you restored from the map.

Required Read-Depth Audit

The audit message asks for a read-depth table and tells you not to conserve tokens. Do both in this form:

  1. List every item you were asked to read (request, instruction files, packet, map, and the sources the map marks required) with FULL, PARTIAL or NOT_READ, the ranges you actually read, and a reason. Mark FULL only for content you read after this compaction; content carried in through the summary is inherited, not read, and a file the harness re-attached after compaction is PARTIAL (injected), not FULL, until you read it.
  2. Read in full now every required item that is not yet FULL. "Required" means the ranked entries above your class's tier line, in the exact parts they name. Everything else is lookup-only: every file in the restore packet (touched-files.md, restore-instructions.md, transcript.md, transcript-latest.md, restore-summary.json), the session JSONL and archives. Those stay NOT_READ with the reason "lookup only", unless a human or the owning seat releases them. The audit message's "do not optimize for token conservation" applies to required items: read those fully rather than skimming them. It does not turn lookups into reading lists. In an early run of this skill, reading the packet transcripts during the audit cost a default seat about 75k, more than the restore itself.
  3. Reconnect, in writing. In the same reply, and in a short RESTORED-<UTC yyyymmdd-hhmm>.md beside the map:
    • where you are in time: what earlier windows established, what the last window did, what is true now;
    • the connections you have rebuilt, in a few lines;
    • the connections you could not rebuild, and where you would look;
    • the next authorized step and who authorizes it. If a hold stands, the next step is waiting.

The next restore map links this note, which keeps the chain unbroken.

Guardrails

  • Compaction is survival, not housekeeping. Compact only when a seat is genuinely near its limit, never to "lean" a seat or prepare a starter image; a compacted seat can sound confident while missing the context it needs.
  • Continue from the map and the files, not from the summary's "next step" alone: a hold placed after the summary was written still binds.
  • Do not launch a fresh session in place of restoring.
  • An honest PARTIAL with its reason is a correct outcome. Claiming coverage you did not reach is the failure.
  • Do not resume task work until the read-depth table and the reconnect note exist.

Failure modes

  1. Inventory instead of map: a list of paths with no edges. The restored seat knows where things are and not why they matter.
  2. Confident restoration: acting on the summary after reading only the touched-file list.
  3. Reading to exhaustion: reading the whole transcript or every linked file and leaving no room for the work.
  4. Map in scratch: writing the map somewhere that is cleaned before you restore.
  5. Broken chain: a map that does not name the previous one, so earlier windows are lost on the second compaction.

© mvschwarz, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (scripts) in packages/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore of mvschwarz/openrig.

  • SKILL.md
  • reference/SKILL-v1.md
  • scripts/precompact-hook.mjs
  • scripts/restore-from-jsonl.mjs
  • templates/compact-instruction.md
  • templates/post-compact-restore-instruction.md

Open the folder on GitHubat commit 4b48ca2

Compare with similar skills

Claude Compaction Restore next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Claude Compaction Restore compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Claude Compaction Restore this skillmvschwarz/openrig6.6k—~4.2kAutomated safety check: PassApache-2.0
Memori Long-Term MemoryMemoriLabs/Memori17k—~2kAutomated safety check: NotesCustom licence
Planning with FilesOthmanAdi/planning-with-files27k—~2.9kAutomated safety check: PassMIT
User Thoughts Memorysickn33/agentic-awesome-skills47k1 repos~2.5kAutomated safety check: PassMIT
Planning With FilesOthmanAdi/planning-with-files27k—~3kAutomated safety check: PassMIT
Harness Engineering10xChengTu/harness-engineering1021 repos~1kAutomated safety check: PassNone

Similar skills

  • Memori Long-Term Memory

    MemoriLabs/Memori

    Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.

    17k GitHub stars~2k tokensUpdated 7 days ago
    Agent WorkflowsAuto-check: notes
  • Planning with Files

    OthmanAdi/planning-with-files

    Keeps a task plan, findings and progress log in markdown files on disk so long agent tasks survive context resets, with Gemini hooks and helper scripts.

    27k GitHub stars~2.9k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Agent WorkflowsAuto-check passed
  • Planning With Files

    OthmanAdi/planning-with-files

    Keeps a task plan, findings and progress log as Markdown files in the project so long multi-step agent work survives context resets.

    27k GitHub stars~3k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Harness Engineering

    10xChengTu/harness-engineering

    Set up and improve harness engineering (AGENTS.md, docs/, lint rules, eval systems, project-level prompt engineering) for AI-agent-friendly codebases.

    102 GitHub starsUsed in 1 repo~1k tokens
    Agent WorkflowsAuto-check passed
  • Planning with Files for Kiro

    OthmanAdi/planning-with-files

    Keeps task_plan.md, findings.md and progress.md on disk as the agent's working memory for multi-step work, wired into Kiro steering, with no hooks.

    27k GitHub stars~2.1k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed

More from mvschwarz/openrig

All 49 skills in this repo
  • OpenRig Upgrade Procedure

    mvschwarz/openrig

    Walks an agent through upgrading the OpenRig CLI and daemon one observed step at a time, keeping live seats alive and reconciling managed plugin files.

    6.6k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Agent Refocusing

    mvschwarz/openrig

    Re-grounds a long-running agent in the current product outcome by running a path-based trace to the root of its topology and work trees.

    6.6k GitHub stars~864 tokensUpdated today
    Auto-check passed
  • OpenRig Software Factory

    mvschwarz/openrig

    Helps set up a continuing agent software team for a real repository with OpenRig, choosing between manual work, queue handoffs and an explicit Workflow.

    6.6k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Separates a stable agent seat's identity from its changing occupant, and records honest, two-part provenance whenever one occupant replaces another.

    6.6k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Loads one section of a Markdown file by its path#h2-slug address with a bundled resolver script, for use outside OpenRig's context library.

    6.6k GitHub stars~341 tokensUpdated today
    Auto-check passed
  • Agent Starters

    mvschwarz/openrig

    Covers authoring, inspecting, refreshing, promoting and deprecating named Agent Starters, the reusable starting points for agent seats in a rig.

    6.6k GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Categories

Questions about Claude Compaction Restore

What does Claude Compaction Restore do?

Keeps a long-running Claude Code session's working picture alive across compactions by writing a restore map before compacting and rebuilding context from it afterward. Compaction keeps facts but loses the connections between them: why a file matters, what depends on what, which decision produced which artifact and what comes next. Planners, orchestrators and reviewers holding a standard lose the most.

When should I use Claude Compaction Restore?

Claude Compaction Restore fits situations like: preparing a long session for an upcoming compaction; rebuilding context after a session has just compacted; resuming a long-running planner or reviewer seat after /compact.

How do I install Claude Compaction Restore in Claude Code?

Run `npx skills add mvschwarz/openrig --skill claude-compaction-restore -a claude-code`. Or copy the skill folder (packages/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore in mvschwarz/openrig) into .claude/skills/claude-compaction-restore in your project. Claude Code loads it when a task matches its description.

How do I install Claude Compaction Restore in Codex?

Run `npx skills add mvschwarz/openrig --skill claude-compaction-restore -a codex`. Or copy the skill folder (packages/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore in mvschwarz/openrig) into .agents/skills/claude-compaction-restore in your project. Codex loads it when a task matches its description.

Can I use Claude Compaction Restore in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvschwarz/openrig --skill claude-compaction-restore -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/claude-compaction-restore, .gemini/skills/claude-compaction-restore, .github/skills/claude-compaction-restore and .opencode/skills/claude-compaction-restore in your project.

What does Claude Compaction Restore need to run?

Going by SKILL.md and its folder, Claude Compaction Restore needs JavaScript for the scripts in its folder. Our summary lists: Node.js to run the hook and restore scripts; Claude Code session transcripts stored under ~/.claude/projects.

Does Claude Compaction Restore access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Claude Compaction Restore safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Claude Compaction Restore use?

Claude Compaction Restore is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Claude Compaction Restore use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Claude Compaction Restore?

Skills that share tags, products or a category with Claude Compaction Restore: Memori Long-Term Memory (MemoriLabs/Memori, 17k stars), Planning with Files (OthmanAdi/planning-with-files, 27k stars), User Thoughts Memory (sickn33/agentic-awesome-skills, 47k stars) and Planning With Files (OthmanAdi/planning-with-files, 27k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Claude Compaction Restore?

mvschwarz (a GitHub user) maintains it in mvschwarz/openrig, which has 6,551 GitHub stars. The repository holds 49 skills in this directory. The repository was last updated on October 10, 2026.

Source: mvschwarz/openrig on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.