本文へ移動
cccskills
無料GitHub で公開

session-memory

Maintains a structured running-notes document during long work sessions. Use when the user says "session notes", "update notes", "start session notes", "show session notes", or when you recognize the current session has accumulated enough state (decisions, corrections, files touched, errors) that it risks being lost under context pressure. Stores notes as a procedure memory tagged [session-memory, active] so they survive container death within the same session thread.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md6.1 KB
  • CHANGELOG.md268 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Session Memory - Running Notes

Maintain a single structured markdown document that tracks what is happening right now in the current work session. This is within-session continuity, distinct from remember() (cross-session semantic memory) and stash (coarse checkpoint).

When to Use

Invoke on any of these triggers:

  • User says "session notes", "update notes", "start session notes", "show session notes", "note the session", "write it down"
  • User indicates they want continuity across context compression: "before you forget", "write that down", "for when context gets compressed"
  • You have independently completed a meaningful block of work (file edits, a bugfix, a design choice, a reversal after correction) and no note has been updated for a while

Do NOT invoke for:

  • One-off answers with no follow-up
  • Cross-session persistence — that's remember()
  • Coarse checkpoints intended for another session to resume — that's stash

Template (Fixed Sections)

Every session note uses exactly these sections, in this order, with these headers. Preserve the structure on every update. Never rename or reorder sections. Update the content within sections; leave empty sections present with a single _(nothing yet)_ placeholder.

# Session: {short title, 3-8 words, derived from the initial task}

## Current State
_What is actively being worked on right now. Explicit next step._

## Task Specification
_What the user originally asked for. Constraints, acceptance criteria,
design decisions that framed the work._

## Files and Functions
_Important paths touched or referenced, one per line, with a one-line
note on what they contain and why they matter._

## Errors & Corrections
_Errors encountered and how they were fixed. User corrections to my
approach — these have priority over routine progress entries._

## Key Decisions
_Choices made during the session with their rationale. One bullet per
decision. Lead with the choice, then the why._

## Worklog
_Terse, append-only, chronological. One line per attempt or step.
Prefix with ✓ (done), ✗ (failed), → (in progress), or ↺ (reverted)._

Storage

Persist as a procedure memory via the remembering skill, so notes survive container death within the session thread.

from remembering.scripts import remember, recall, supersede

# First write in a session: create the memory
note_id = remember(
    note_markdown,
    "procedure",
    tags=["session-memory", "active"],
    priority=1,
)

# Subsequent updates: find the active note and supersede it
existing = recall(tags_all=["session-memory", "active"], n=1)
if existing:
    note_id = supersede(existing[0].id, updated_markdown, "procedure",
                        tags=["session-memory", "active"], priority=1)

Session boundary: when the user says "session done", "wrap up", "end session", or the conversation is clearly winding down, retag the active note from active to archived by superseding it with the same body and tags=["session-memory", "archived"].

One note is active at a time. If recall(tags_all=["session-memory", "active"]) returns more than one, the oldest is stale — archive it before updating the current one.

Update Discipline

On each invocation:

  1. Read the existing note (if any) via recall(tags_all=["session-memory", "active"], n=1). Work from its current body — do not regenerate from scratch.
  2. Update in place. Edit the relevant sections; append to ## Worklog. Do not drop prior content unless it is now wrong (then move the correction to ## Errors & Corrections).
  3. Prioritize user corrections. When the user pushes back or corrects an approach, that goes into ## Errors & Corrections before other updates.
  4. Deduplicate against stash and explicit memories. If an item is already captured in a stash or a remember() call, reference it by ID rather than restating. Notes are supplementary, not duplicative.
  5. Supersede, don't append. Write the full updated document back via supersede(). This keeps exactly one active note per session.

Budget

Target ~12K tokens for the note document. Prefer concise phrasing, but do not truncate substantive content to hit the target — trigger ## Key Decisions consolidation (collapse related bullets) before cutting. If the document exceeds ~20K tokens, compress ## Worklog first (merge consecutive ✓ entries into a single summary line, keep corrections and decisions intact).

Rationale: we run on 200K–1M context models, so the original 2K budget from the issue spec was over-constrained. 12K matches Claude Code's upstream design and leaves ample room for the surrounding conversation.

Surface to User

When the user asks to "show session notes", print the current note body verbatim in a fenced code block. Do not paraphrase.

When updating silently (you triggered it yourself), confirm with a single line: Updated session notes (note id: <short-id>). Do not dump the full body unsolicited.

Invariants

  • Section headers and order are fixed. Updates change content, not structure.
  • User corrections take priority over routine progress in ordering and detail.
  • Notes do not duplicate what is already in stash or explicit memories.
  • Manual invocation always works. Automatic triggers are a convenience, not a requirement.
  • Exactly one session-memory + active memory exists per session. Stale actives are archived, not left dangling.

Related

  • remembering — cross-session memory store (where these notes persist)
  • stash-resume-protocol (ops) — coarse session checkpoints
  • context-hygiene (ops) — when and what to offload from context

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

GitHub repository access in containerized environments using REST API and credential detection. Use when git clone fails, or when accessing private repos/writing files via API.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

Decide which model, effort level, and cascade shape each subagent gets, and how to keep improvement loops safe (evaluator-as-selector, stop on regression). Routes on measured cost-per-completed-task rather than per-token price, because a tier's token count varies more by task shape than price varies across tiers. Covers per-model effort semantics, the concision lever, cascade preconditions, context handoff, and watching a subagent fan-out live. Use when spawning subagents via the Agent or Workflow tools, when choosing how to escalate a failed attempt, when fanning out more than a handful of agents, or when asked which model or effort a task should get. Grounded in a 2026-07 calibration, a 2026-08 coding-cost study, a 2026-09 seeded-bug repair battery, a 2026-10 Haiku 5.5 ladder priced per spawn, and a 2026-10 retry-versus-escalation ladder on 295 SWE-bench Verified tasks; Managed Agents API specifics are operational, not calibrated.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

Securely manages API credentials for multiple providers (Anthropic Claude, Google Gemini, GitHub). Use when skills need to access stored API keys for external service invocations.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

Guidance for asking clarifying questions when user requests are ambiguous, have multiple valid approaches, or require critical decisions. Use when implementation choices exist that could significantly affect outcomes.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

Pre-change blast-radius report for a symbol or file. Walks tree-sitting references, augments with a plain-text scan over non-parsed files (configs, plain docs), and clusters affected sites by feature (`_FEATURES.md`) or top-level package. Use when about to refactor, rename, or delete something in a repo you don't own — "what breaks if I change `validateUser`", "who calls this", "is this safe to remove", "where is this used", "blast radius", "impact analysis". This is the CONVERGENT pre-change risk skill — for "what is this repo?" use exploring-codebases; for "where is X?" use searching-codebases.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

Read Bluesky/ATProto without depending on Bluesky's AppView — interactions on a user's posts, thread replies, any repo's records, network-wide backlinks across every lexicon, an account's handle and PDS history, which collections are active network-wide, and layer-by-layer outage diagnosis. Use when bsky.app or the AppView is down or slow, when a Bluesky read returns timeouts or 5xx, when asked who liked/replied/quoted/reposted something, when pulling live Bluesky context cheaply, when reading records straight from a PDS, when asked who references a record or account anywhere on the network, whether an account has changed handle or migrated servers, or which lexicons and non-Bluesky apps are active on atproto. Complements browsing-bluesky, which routes everything through the AppView and fails when it does.

日本語の概要は準備中です。原文の説明を表示しています。

oaustegard/claude-skills1502026年10月10日 更新

oaustegard のスキルをすべて見る

このスキルの問題を報告する