refocusing — Claude Code skill: re-ground a long session
A skill for long agent sessions: it re-grounds the agent in current intent and context without throwing away what it learned.
npx skills add mvschwarz/openrig --skill refocusing -a claude-codeWhat refocusing does
Refocusing fires when a long-running agent may have drifted from the product outcome, when context was compacted, when work crossed a major boundary, or when a fresh path-based trace is needed before the next consequential action. It is not a restart, a wake, or a phase checkpoint.
The skill ships a script, scripts/trace-to-root.py, that walks the topology and work trees. Pick context domains with --trees topology|work|both and set how much each node contributes with --depth light|full. A light work trace composes intent: and name notes; a full one pulls in whole node and note bodies. The script resolves topology.root and workspace.root through rig config get.
Run the trace as one plain command, using the absolute path to the script from the loaded skill's directory. Keep it free of shell variables, substitutions and file-reading loops — those can trigger a native approval prompt even for read-only work. Stay in your current working directory, since cd into the skill folder changes the inferred work node. To supply a known current node, pass --work-start or --topology-start with its literal absolute path in the same command.
What it helps with
- re-ground an agent in the product outcome after context compaction
- pull a fresh path-based trace before a risky next step
- tell a delivered trace apart from a pointer or a truncated extract
- confirm a session restore actually finished
- report a missing chain file instead of inventing a parent
Example prompts for the agent
- Context got compacted and we lost the goal — run refocusing
- Trace before the next step:
--trees both --depth light - Check the restore is complete and name any delivery gaps
How to install refocusing
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill refocusing -a claude-code2Manually: put the files in place
~/.claude/skills/refocusing/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/refocusing/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill refocusing -a codex2Manually: put the files in place
.agents/skills/refocusing/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill refocusing -a cursor2Manually: put the files in place
.cursor/skills/refocusing/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mvschwarz/openrig refocusing2Manually: put the files in place
.github/skills/refocusing/SKILL.md1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill refocusing -a gemini-cli2Platform CLI
gemini skills install https://github.com/mvschwarz/openrig --path packages/daemon/assets/plugins/openrig-core/skills/refocusingManually: put the files in place
.devin/skills/refocusing/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill refocusing -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about refocusing
How do I install refocusing in Claude Code?
Run npx skills add mvschwarz/openrig --skill refocusing -a claude-code. The skill lands at ~/.claude/skills/refocusing/SKILL.md.
What does refocusing do?
It re-grounds a long session in current intent and lived context while keeping the expertise the session earned. It does that by walking the topology and work trees and building a trace.
Is refocusing the same as restarting a session?
No. It is not a restart, a wake or a phase checkpoint — the session's accumulated context stays, and the agent is pointed back at the current goal.
Source text
SKILL.md · Apache-2.0
---
name: refocusing
description: >-
Use when a long-running agent may have lost the product outcome, when context was compacted,
when work has crossed a major boundary, or when a fresh path-based trace is needed before the
next consequential action. Not for fresh-session orientation, waking an idle seat, or checkpoints.
metadata:
openrig:
stage: product
---
# Refocusing
Invoke the skill as `refocusing`, its frontmatter name. OpenRig seeds it in the
Claude and Codex global skill roots and includes selected plugin skills in managed
loadouts. Existing externally managed copies remain authoritative. If the harness
has not discovered it yet, read this installed skill file and run its script directly;
hook registration alone does not prove native skill discovery.
Refocus preserves a long session's earned expertise while re-grounding it in current intent and
lived context. It is not a restart, wake, or phase checkpoint.
During an actionable managed restore, consume the current topology and work trace
that actually arrived with the 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. Use the native file-read
tool for required notes and full sources, and complete the existing restore audit;
partial file reads do not establish completed refocus or restoration.
For a new trace outside that delivered context, follow the command guidance below.
Resolve the bundled script's absolute path from the directory of this loaded skill.
Stay in your current working directory; do not `cd` into the skill directory, which
can change the inferred work node. Run the trace as **one plain command**, replacing
the example path with the actual absolute path written out in the tool call:
```bash
python3 "/absolute/path/to/refocusing/scripts/trace-to-root.py" --trees both --depth light
```
Do not combine this command with shell variables, environment assignments, command
substitution, exit-status printing or file-reading loops. Read the named source
files separately with the native read tool. Combined shell loops or variables can
require native approval even when the intended operations are read-only; a plain
command is not a guarantee that approval will never be needed.
For managed compaction, refocus during the restore request or its read-depth
audit. The earlier acknowledgement-only boundary is not permission to restore.
Use `--trees topology|work|both` to select context domains and `--depth light|full` to control how
much each node contributes. Light work traces compose `intent:` and name notes; full traces include
the complete node and notes bodies. The script resolves `topology.root` and `workspace.root` with
`rig config get`. When a known current node must be supplied, pass `--work-start` or
`--topology-start` with its literal absolute path in the same plain command. Do not
substitute the project root for a mission or slice node and claim that mission was traced.
The trace walks the topology and work trees. For the project's own declared context (intent, context files,
skills), `rig context work-install` lists it; read what the next action needs.
Read [references/refocus.md](references/refocus.md) when changing the automatic hook or its content
ladder. A missing chain file is evidence: report the gap and continue; never follow pointers to invent
a second parent.
© mvschwarz · Apache-2.0 · mvschwarz/openrig