Park a deep work session before an interruption — capture what is only in your head, write a park file, drop a breadcrumb at the cursor. Use when the user says "I have to stop", "meeting in 10", "park this", "save my place", or invokes /hyperfocus-exit.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add risadams/ink-and-agency --skill hyperfocus-exit --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Hyperfocus Exit?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/risadams-hyperfocus-exit)More formats (shields.io, HTML) on the badges page.
---
name: hyperfocus-exit
category: exec-function
codex-short-description: "Park a deep session before an interrupt, so re-entry is cheap instead of impossible"
description: >
Park a deep work session before an interruption — capture what is only in your head, write
a park file, drop a breadcrumb at the cursor. Use when the user says "I have to stop",
"meeting in 10", "park this", "save my place", or invokes /hyperfocus-exit.
version: 1.0.0
license: MIT
compatibility: claude-code codex opencode
allowed-tools:
- Bash
- Read
- Write
- Grep
- Glob
- AskUserQuestion
related-skills:
- hyperfocus-recovery
- task-initiation
- interest-capture
- i-have-adhd
loop-eligible: false
---
# Hyperfocus Exit
The user is deep in something and has to stop **now** — a meeting, a school pickup, the end of the day. Dropping cold means the working-memory half of the context evaporates and re-entry costs an hour tomorrow.
Your job is to capture the half that lives only in their head, in less time than they have.
## The clock rules everything
Ask exactly one thing first: **how many minutes do you have?** Then run the matching tier. Never run a longer tier than the clock allows.
| Time | Tier | What you do |
| :--- | :--- | :--- |
| <1 min | **Slam** | Ask nothing. Snapshot artifacts, write the park file with a `[not captured]` head-state section, done. |
| 1–3 min | **Standard** | One question (below), snapshot, park file, breadcrumb. |
| 3+ min | **Full** | Standard, plus loose-end sweep and a stated re-entry action. |
## The one question
> **What were you about to try next, and what have you already ruled out?**
That single answer carries most of the value — it is the part that exists nowhere on disk. If they answer with only half, take the half.
## Snapshot pass
Run in parallel; take what works:
1. `git status` and `git diff --stat` — what is dirty
2. `git branch --show-current` — where they are
3. `git stash list` — anything already parked
4. Files modified in the last 60 minutes
5. The open editor file and cursor line, from IDE context if available
## Write the park file
Write to `.ink-and-agency/park/<YYYY-MM-DD-HHmm>.md` in the workspace (create the directory if needed). [`hyperfocus-recovery`](../hyperfocus-recovery/) reads the newest file in that directory first.
```markdown
---
parked: <YYYY-MM-DD HH:mm>
branch: <branch>
tier: slam | standard | full
---
## The thread
[One paragraph: what they were doing and what for. Reconstructed from artifacts.]
## In my head, not in the repo
[The one-question answer: what they were about to try, what they already ruled out.
Highest-value section. Write "[not captured — slam exit]" if the clock forbade asking.]
## Re-entry action
[One literal action, ≤2 minutes, that restarts the loop. Same shape as task-initiation output.]
## State of the tree
[Dirty files, staged vs unstaged, current branch, failing test if known.]
## Do not lose
[Anything that will silently disappear: uncommitted experiments, a running process,
a modified env var, an unsaved buffer, a browser tab that matters, a temporary hack
that must be reverted.]
```
## Drop the breadcrumb
Where the IDE reports a cursor line, or in the most recently modified file, insert a comment at that exact line using the file's comment syntax:
```
// PARKED <YYYY-MM-DD HH:mm>: <the one-question answer, one line>
```
`hyperfocus-recovery` scans for `PARKED` alongside TODO/FIXME/XXX, so this is what points the reader back at the precise spot. Skip it in the slam tier if writing would risk an unsaved conflict.
## Report back
Under 5 lines. The user is already walking away.
> **Parked.** `.ink-and-agency/park/2026-07-28-1450.md` — breadcrumb at `src/auth.ts:47`.
> **Do not lose:** dev server still running on :3000; `DEBUG_AUTH=1` still set in your shell.
> **Re-entry:** run `/hyperfocus-recovery`.
## What NOT to do
- Do not stash, commit, or revert anything unless the user asks — the hot, dirty state *is* the context. Offer a WIP commit only if they have time and ask.
- Do not produce a plan for tomorrow. Park the present; do not schedule the future.
- Do not ask a second question when the clock says one.
- Do not tidy, format, or fix anything on the way out.
- Do not let the park file grow past one screen. It gets read by a brain that has lost the thread.
> **Host portability:** tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see [PORTABILITY.md](../PORTABILITY.md).
<!-- self-evolve:start -->
## Self-Evolve Loop
Journal: `~/.ink-and-agency/learnings/hyperfocus-exit.md` (workspace-local
`.ink-and-agency/learnings/hyperfocus-exit.md` where the sandbox confines writes). Read it
first, append what the run taught last — [SELF-EVOLVE.md](../SELF-EVOLVE.md).
<!-- self-evolve:end -->
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!