Save context
Skill pantheon-org/tekhne/skills/agentic-harness/save-context
Agents Skills
npx -y skills add pantheon-org/tekhne --skill save-contextAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 9 stars9 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Save session to CONTEXT-llm.md with conversation summary. Use when saving work, checkpointing progress, preserving session state. Triggers include "save context", "save session", "checkpoint", "save my progress".
SKILL.md
6.7 KB, as published. Nobody here has run it
Save Context
Save current session state to .context/session/CONTEXT-{stream}-llm.md with LLM-optimized format.
Target: 1200-1500 tokens MAX | Speed: 3-5 seconds
AskUserQuestion Guard
CRITICAL: After EVERY AskUserQuestion call, check if answers are empty/blank. Known Claude Code bug: outside Plan Mode, AskUserQuestion silently returns empty answers without showing UI.
If answers are empty: DO NOT proceed with assumptions. Instead:
- Output: "Questions didn't display (known Claude Code bug outside Plan Mode)."
- Present the options as a numbered text list and ask user to reply with their choice number.
- WAIT for user reply before continuing.
Performance Rules
- Use
rtkfor ALL shell commands - Parallel tool calls — ALL independent calls in one message
- Minimize round-trips — gather all data phase 1, reason phase 2, write phase 3
Workflow
Phase 1: Gather Data (parallel)
Bash: rtk ls .context/session/ + rtk ls -t .context/session/CONTEXT-*llm.md
Stream resolution: First word of $ARGUMENTS = stream name (^[a-zA-Z0-9_-]{1,50}$), rest = description. Empty → reuse prior /load-context stream or AskUserQuestion.
Phase 2: Analyze & Synthesize (single pass)
From conversation (last 15-20 messages):
- Next — infer 3 tasks from conversation (IMPORTANT: use heading "Next" — Claude Code compaction grep-matches
next/todo/pending/remainingkeywords for survival priority) - Session — progression, decisions, thinking, unexpected (780 tokens max)
- Hot Files — max 10 discussed/edited
- Focus & Goal — 1-2 sentence focus + goal
Phase 3: Write & Report
Write CONTEXT file using template, then upsert .context/session/INDEX.md via scripts/upsert-index.sh.
Stream naming: "default" → .context/session/CONTEXT-llm.md, "{name}" → .context/session/CONTEXT-{name}-llm.md
Phase 3b: Auto-archive to .context/session/done/
If status is done or parked → move file to .context/session/done/ subfolder:
Bash: mkdir -p .context/session/done && mv .context/session/CONTEXT-{stream}-llm.md .context/session/done/
Report: "Archived to .context/session/done/ (status: {status})"
See reference.md for CONTEXT file template, quality self-check, status mapping, done/ archival rules, and INDEX.md upsert logic.
Philosophy
- Context saves are checkpoints, not archives — they capture the current state of intent and decisions, not a full transcript.
- Meaningful milestones over time intervals — save when something worth remembering happens, not on a schedule.
- Traceability over brevity — a save that omits the "why" behind a decision is incomplete.
- Reversible by design — saves accumulate; nothing is overwritten without explicit archival.
When to Use
- Before ending a multi-hour session — preserve decisions and next steps before the conversation closes.
- Before a context window reset or compaction — Claude Code compacts long conversations; save first to survive the reset.
- After completing a discrete milestone — a working feature, a passing test suite, a completed PR review.
- When switching streams or workspaces — checkpoint the current stream before pivoting to a different task.
- When you've made non-obvious architectural decisions — lock in the reasoning so future sessions don't relitigate it.
When Not to Use
- For trivial changes with obvious git history — a single-line fix with a clear commit message needs no context file.
- At the very start of a session — there is nothing meaningful to summarise yet; save at checkpoints, not at startup.
- As a substitute for proper documentation — context files are ephemeral session aids, not design docs or ADRs.
- When no meaningful work has occurred — an empty or near-empty context file creates noise and misleads future sessions.
- More than once per hour on short tasks — over-saving dilutes the signal; one file per meaningful checkpoint is enough.
Anti-Patterns
- NEVER overwrite an existing context file without reading it first — Silent overwrites lose prior session decisions. Why: The INDEX.md may reference decisions that inform current architecture; discarding them breaks traceability.
- NEVER save with a generic or missing stream name when multiple streams are active — Ambiguous names cause the wrong file to be loaded next session. Why:
CONTEXT-llm.mdcollides across unrelated workstreams and forces manual disambiguation. - NEVER skip the INDEX.md upsert step — Omitting it leaves the index out of sync. Why:
load-contextrelies onINDEX.mdto discover the latest file; a stale index means the wrong snapshot is loaded. - NEVER archive to
done/prematurely — Moving an active context todone/hides it from future loads. Why: Auto-archive is only correct when status is explicitlydoneorparked; applying it to in-progress work severs continuity. - NEVER exceed the 1500-token budget — Bloated context files slow down load and waste model capacity. Why: The target is 1200-1500 tokens; beyond that the signal-to-noise ratio degrades and compaction may truncate critical sections.
Usage Examples
Saving context before ending a long session:
# Invocation (default stream)
/save-context
# Files written to .context/session/
# .context/session/CONTEXT-llm.md ← session snapshot
# .context/session/INDEX.md ← updated index entry
Saving context under a named stream:
# Invocation with explicit stream name
/save-context auth-refactor "completed JWT middleware extraction"
# Files written to .context/session/
# .context/session/CONTEXT-auth-refactor-llm.md ← named snapshot
# .context/session/INDEX.md ← updated index entry
Archiving a completed stream:
# When status resolves to "done" the skill auto-archives
/save-context auth-refactor "all tests green, PR merged" --status done
# Result
# .context/session/done/CONTEXT-auth-refactor-llm.md ← archived
# .context/session/INDEX.md ← updated with archived status
References
- Reference — CONTEXT file template, status mapping, INDEX.md upsert logic, auto-archive rules, and token budget constraints