Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/nishikantaray-attic
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/attic
What's inside
- Skill name
attic- Description
- Offloads context. Stashes findings, decisions, plans and long tool outputs into a project-local .attic/ folder and keeps only a one-line index in the conversation, so the live context stays lean and important knowledge survives /compact, /clear and new sessions. Supports intensity levels: lite, full (default), ultra, off. Use on ANY multi-step task that involves investigating a codebase, reading many files, running noisy commands, or making design decisions. Also use whenever the user says "attic", "stash this", "remember this", "save this for later", "put it in the attic", "context is getting long", "before compact", or complains that Claude forgot something after compaction. Do NOT use for one-line answers, typo fixes, or non-coding chat.
- License
- MIT
- Instructions
- 132 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (8)
- SKILL.md
- item-format.md · references/
- what-to-stash.md · references/
- workflow.md · references/
- attic.js · scripts/
- freshness.js · scripts/
- item.md · templates/
- session.md · templates/
SKILL.md (first lines)
# Attic
First, in the same shell command as anything below, locate the script:
```bash
ATTIC_JS=$(ls -d "${CODEX_HOME:-$HOME/.codex}"/plugins/cache/attic/attic/*/skills/attic/scripts/attic.js "${CODEX_HOME:-$HOME/.codex}"/skills/attic/scripts/attic.js "$HOME"/.agents/skills/attic/scripts/attic.js .agents/skills/attic/scripts/attic.js 2>/dev/null | sort -V | tail -1)
```
You keep the conversation lean. Anything worth remembering goes into the
attic, not into the chat. The chat holds the handle, the attic holds the
detail.
Level requested: `$ARGUMENTS` (empty means **full**). If it is `off`, stop
applying these rules until `/attic` is run again. Otherwise confirm the level
in one line and continue with the user's task.
## Scope
Attic governs **what you keep in context**. It does not govern how terse your
prose is, or how much code you write. Do not use it for one-line answers,
typo fixes, or anything the user will never need again.
## Persistence
ACTIVE EVERY RESPONSE. No drift back to dumping everything into the chat.
Still active if unsure. Off only: `/attic off`, "stop attic", "normal mode".
Default: **full**. Switch: `/attic lite|full|ultra`. Level persists until
changed or session end.
## Use the script, not your own bookkeeping
`$(dirname "$ATTIC_JS")/../scripts/attic.js` owns every mechanical part: slug
hygiene, frontmatter, INDEX and DECISIONS bookkeeping, atomic writes, and
secret detection. Call it. Do not hand-write these files when the script is
available.
```bash
node "$ATTIC_JS" stash \
--slug login-test-timeout --kind finding \
--title "Login test times out" \
--hook "5s fixture timeout in tests/conftest.py:41, SMTP call is real" \
--tags tests,flaky \
--body-file /tmp/body.md
node "$ATTIC_JS" recall "login timeout"
node "$ATTIC_JS" index
node "$ATTIC_JS" validate
```
`--kind` is one of `finding`, `decision`, `plan`, `output`, `note`. Add
`--decision-why "<reason>"` to also log a line in `DECISIONS.md`. Long bodies
go through `--body-file`. Exit code 2 means the script refused because it
detected a credential: redact and retry, never pass `--force` to smuggle a
secret past it.
Record the evidence too: `--files` (the repo-relative files you actually read)
and `--commands` (what produced the result). These are what let a later session
tell whether the finding still matches the code. Add `--confidence verified`
**only** when you checked the claim against the code in this session; the
default `unverified` is usually right, and over-claiming disables the warning a
future session would have received. Use `--type failed-approach` for something
that was tried and did not work, and `--type workaround` for a temporary fix.
Your judgement decides *what* is worth stashing and writes the prose. The
script decides *how* it lands on disk.
## Rules
1. **Stash after investigating.** After any investigation (reading more than
~3 files, a grep sweep, a test run, tracing a flow), stash the conclusion
and reply with the handle plus at most three lines of what matters now.
2. **Never re-explain what is in the attic.** Point at the handle. If the
user wants detail, they run `/attic-recall <slug>`.
3. **Long output never lands in prose.** Logs, diffs, dumps, stack traces:
summarise in at most five lines, stash as `kind: output` with the exact
command, reference the handle. Read big results with `head`, `grep`,
`tail`; do not paste them.
4. **Check the attic before re-reading.** `.attic/INDEX.md` is normally
already in your context from session start. Scan it before opening a file
or re-running a search. If an item answers the question, say so
(`per attic:<slug>`).
If no index appears in your context and a `.attic/` exists in the
project, the session-start injection did not run. Read the index once
yourself and carry on. Do not conclude the attic is empty because
nothing was injected.
5. **Decisions get logged** with their why, at the moment they are made.
6. **Sweep before the context gets long**, before `/compact` or `/clear`, and
at the end of a work session. See `/attic-sweep`.
7. **Exactness inside items.** Code, commands, paths, line numbers and error
text are copied verbatim. Never paraphrase them.
8. **Never stash secrets.** The script enforces this; do not work around it.
9. **Carry the freshness warning.** When recall reports an item as
`possibly-stale` or `needs-review`, say so when you use it. It means a file
the finding cites has changed — something to check, never proof the finding
is wrong. Never present a stale item's claim as current fact, and never run
`verify` on an item you have not actually re-read.
## Intensity
| Level | What changes |
|-------|-------------|
| **lite** | Stash only on explicit `/attic-stash`, at the end of a task, or when asked to sweep. Normal replies otherwise. |
| **full** | All rules above, always on. Default. |
| **ultra** | Every non-trivial finding is stashed. Replies are handle + at most three lines. INDEX.md must be consulted before any read or search of something already seen this session. |
| **off** | Dormant. Nothing is stashed. |
Example: after tracing why a login test fails.
- lite: normal explanation, then "Want this in the attic? `/attic-stash`."
- full: "`attic:login-test-timeout` · 5s fixture timeout at `tests/conftest.py:41`, the SMTP call is real. Raising it to 15s."
- ultra: "`attic:login-test-timeout` · fixture timeout, `tests/conftest.py:41`. Fixing."
## Output
Handle first, then what matters now, then the next action. No feature tours,
no recap of what the attic already holds. Explanation the user explicitly
asked for is given in full; the rule is only against unrequested repetition.
Pattern: `` `attic:<slug>` · <one line> · <next action> ``From NishikantaRay/Attic, MIT.
More from NishikantaRay/Attic
- 0.579score
attic-fail
NishikantaRay
Record an approach that was tried and did not work, so nobody repeats it.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-git
NishikantaRay
Everything about .attic/ and git: fixes merge conflicts in INDEX.md and DECISIONS.md by installing a union merge driver, and sets up a shared attic for a team.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-stash
NishikantaRay
Stash the current finding, result, plan or decision into .attic/ and reply with its handle.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-stats
NishikantaRay
Report what the attic costs and what it holds, measured from local session transcripts.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-pin
NishikantaRay
Pin an attic item so it is always injected into new sessions and never trimmed when the index outgrows its budget.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-prune
NishikantaRay
Find stale attic items and archive them.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-recall
NishikantaRay
Pull ONE item back out of .attic/ by slug or search words and summarise it.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-review
NishikantaRay
Check which stashed items may no longer match the code, and resolve them.
SkillBFreshness: B★ 5Claude Code +9 - 0.575score
attic-doctor
NishikantaRay
Check the CONTENTS of .attic/ for drift: orphaned items, stale index lines, malformed frontmatter, oversized hooks, and leaked credentials.
SkillBFreshness: B★ 5Claude Code +9 - 0.575score
attic-sweep
NishikantaRay
Save the state of the current session into the attic before context is lost: the current plan, open questions, in-progress work, and any finding not yet…
SkillBFreshness: B★ 5Claude Code +9 - 0.574score
attic-index
NishikantaRay
List everything in the attic.
SkillBFreshness: B★ 5Claude Code +9 - 0.570score
attic-help
NishikantaRay
One-screen reference for the attic commands and levels.
SkillBFreshness: B★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 23, 2026 (1 month ago)
- Last release
- Sep 23, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/NishikantaRay/Attic
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from NishikantaRay
- 0.579score
attic-fail
NishikantaRay
Record an approach that was tried and did not work, so nobody repeats it.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-git
NishikantaRay
Everything about .attic/ and git: fixes merge conflicts in INDEX.md and DECISIONS.md by installing a union merge driver, and sets up a shared attic for a team.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-stash
NishikantaRay
Stash the current finding, result, plan or decision into .attic/ and reply with its handle.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-stats
NishikantaRay
Report what the attic costs and what it holds, measured from local session transcripts.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-pin
NishikantaRay
Pin an attic item so it is always injected into new sessions and never trimmed when the index outgrows its budget.
SkillBFreshness: B★ 5Claude Code +9 - 0.579score
attic-prune
NishikantaRay
Find stale attic items and archive them.
SkillBFreshness: B★ 5Claude Code +9
Cite this page
attic skill. Agent Mart. https://agentmart.dev/skills/nishikantaray-attic (last updated 2026-10-24)