notepad-system

Use this skill when context compression is imminent, when resuming a session, or when preserving critical decisions across long tasks. Provides a durable notepad that survives compaction and lets any agent pick up exactly where the previous context left off.

422 stars

Best use case

notepad-system is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use this skill when context compression is imminent, when resuming a session, or when preserving critical decisions across long tasks. Provides a durable notepad that survives compaction and lets any agent pick up exactly where the previous context left off.

Teams using notepad-system should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/notepad-system/SKILL.md --create-dirs "https://raw.githubusercontent.com/vibeeval/vibecosystem/main/skills/notepad-system/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/notepad-system/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How notepad-system Compares

Feature / Agentnotepad-systemStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use this skill when context compression is imminent, when resuming a session, or when preserving critical decisions across long tasks. Provides a durable notepad that survives compaction and lets any agent pick up exactly where the previous context left off.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Notepad System — Compaction-Resistant State Preservation

Structured storage for decisions, task state, and critical context that must survive
context window compression. Extends pre-compact-state.md from manual discipline to
a concrete file-based protocol.

## The Problem

When context compresses, the following is lost:
- Why a specific approach was chosen over alternatives
- Which files were edited and what changed
- Where in a multi-step task execution was paused
- Constraints and requirements the user stated earlier in the session

Without this, the recovered context either restarts from scratch or makes assumptions
that contradict earlier decisions.

---

## Note Types

| Type | Persistence | When to Use |
|------|-------------|-------------|
| **Priority** | Permanent until explicitly deleted | Architectural decisions, user confirmed preferences, hard constraints |
| **Working** | Session-scoped, cleared at session end | Current task state, WIP progress, in-flight findings |
| **Scratch** | Cleared after use (one-time calc) | Quick calculations, temp values used once |

---

## Storage Location

```
~/.claude/projects/<project-hash>/notepad.md
```

The project hash is derived from the working directory path.
If the directory does not exist, create it before writing.

### File Format

```markdown
# Notepad

## Priority Notes

### [2026-03-29 14:22] Decision: Auth approach
JWT with refresh tokens. User confirmed.
Reason: Stateless, scalable, mobile-friendly.
Rejected: Session-based (server state, scaling issues).

### [2026-03-29 15:10] Constraint: Node version
Must stay on Node 18. Server has LTS pinned, no upgrade path in scope.

## Working Notes

### [2026-03-29 14:45] Task: API refactor — Phase 2
Completed: /users, /products, /categories endpoints
Remaining: /orders, /payments endpoints
Blocked on: Stripe webhook secret (user to provide)
Next action: Start /orders, skip payment until secret arrives

## Scratch

### [2026-03-29 15:30] Token estimate
Average response: 256 tokens. 4x safety margin = ~1024 tokens per request budget.
USED — safe to delete.
```

---

## Pre-Compact Protocol

When context compression is imminent (context window at ~80% or system warning appears):

**Step 1 — Dump active task state to Working Notes**
```
What task is in progress?
What has been completed so far?
What remains?
Are there any blockers?
What is the immediate next action when context resumes?
```

**Step 2 — Promote any pending decisions to Priority Notes**
```
Any architectural choice made this session → Priority Note
Any user-confirmed preference → Priority Note
Any external constraint discovered → Priority Note
```

**Step 3 — Record modified files**
```
List every file touched this session.
Note what changed in each (one line per file is enough).
Note whether changes are committed or uncommitted.
```

**Step 4 — Save pending decisions with their options**
```
If a decision was not yet made, record the question and the options.
This prevents re-deriving the same options after compression.
```

Do this BEFORE continuing work. State preservation takes priority.

---

## Post-Compact Recovery

When a new or compressed context begins:

**Step 1 — Read notepad.md**
```
Path: ~/.claude/projects/<project-hash>/notepad.md
```

**Step 2 — Inject Priority Notes into active context**
These are always relevant. Treat them as if the user stated them at session start.

**Step 3 — Summarize Working Notes for the user**
```
"Resuming: API refactor, Phase 2.
Completed: /users, /products, /categories.
Remaining: /orders, /payments.
Blocked: Stripe webhook secret needed.
Next: starting /orders."
```

**Step 4 — Clear Scratch notes**
They were single-use. Remove them now.

**Step 5 — Resume from last known state**
Do not ask the user to re-explain context that is in Working Notes.

---

## Note Writing Rules

- Priority notes require explicit deletion: `notepad delete priority <title>`
- Working notes are cleared at the end of each session (or when the task completes)
- Never store code in notes — reference `file.ts:line` instead
- Keep each note to 3 lines maximum (reference files for detail)
- Always include a timestamp in the note header
- Never duplicate information already in CLAUDE.md or memory — cross-reference instead

---

## CLI Operations (manual use)

Read the notepad:
```bash
cat ~/.claude/projects/<hash>/notepad.md
```

Clear working notes (session end):
```bash
# Remove the Working Notes section content, keep the headers
```

Clear scratch notes (after use):
```bash
# Remove individual scratch entries after they have been applied
```

---

## Integration

**pre-compact-state.md** — This skill is the concrete implementation of that rule.
The rule defines what to save; this skill defines where, how, and in what format.

**compass agent** — The compass agent performs context recovery. It should read
notepad.md as its first action and use the contents to construct the "Nerede kalmistik?" summary.

**Any agent** — Any agent starting work on a project should check notepad.md for
Priority Notes that constrain their approach. An architect should not propose a
solution that contradicts a Priority Note.

---

## Example Scenarios

### Scenario 1: Mid-refactor compression

Working on a large refactor across 12 files. Context at 80%.

Pre-compact dump:
```markdown
### [2026-03-29 16:00] Task: Auth system refactor — 7/12 files done
Completed: user.service.ts, auth.controller.ts, token.service.ts,
  session.middleware.ts, logout.handler.ts, login.handler.ts, refresh.handler.ts
Remaining: password.service.ts, oauth.handler.ts, 2fa.handler.ts,
  admin.auth.ts, tests/auth.test.ts
Next: start password.service.ts — method signature unchanged, internals only
```

After compression, any agent reads this and knows exactly which 5 files remain.

### Scenario 2: Decision under uncertainty

User asked about caching strategy but has not confirmed yet.

Scratch note:
```markdown
### [2026-03-29 16:15] Pending: Caching strategy
Options: (a) Redis — fast, requires infra; (b) in-memory — simple, no persistence
Awaiting user confirmation on whether Redis is available in prod.
```

This prevents re-deriving the same question after compression.

### Scenario 3: Hard constraint from early conversation

User mentioned early in a long session that they cannot use PostgreSQL — MySQL only.

Priority note created immediately:
```markdown
### [2026-03-29 10:05] Constraint: Database — MySQL only
No PostgreSQL. Server is MySQL 8.0. All queries and schema must be MySQL-compatible.
Reason: Hosting provider limitation.
```

Every subsequent agent reads this and never proposes PostgreSQL.

Related Skills

system_overview

422
from vibeeval/vibecosystem

Show how Continuous Claude works - the opinionated setup with hooks, memory, and coordination.

workflow-router

422
from vibeeval/vibecosystem

Goal-based workflow orchestration - routes tasks to specialist agents based on user goals

wiring

422
from vibeeval/vibecosystem

Wiring Verification

websocket-patterns

422
from vibeeval/vibecosystem

Connection management, room patterns, reconnection strategies, message buffering, and binary protocol design.

visual-verdict

422
from vibeeval/vibecosystem

Screenshot comparison QA for frontend development. Takes a screenshot of the current implementation, scores it across multiple visual dimensions, and returns a structured PASS/REVISE/FAIL verdict with concrete fixes. Use when implementing UI from a design reference or verifying visual correctness.

verification-loop

422
from vibeeval/vibecosystem

Comprehensive verification system covering build, types, lint, tests, security, and diff review before a PR.

vector-db-patterns

422
from vibeeval/vibecosystem

Embedding strategies, ANN algorithms, hybrid search, RAG chunking strategies, and reranking for semantic search and retrieval.

variant-analysis

422
from vibeeval/vibecosystem

Find similar vulnerabilities across a codebase after discovering one instance. Uses pattern matching, AST search, Semgrep/CodeQL queries, and manual tracing to propagate findings. Adapted from Trail of Bits. Use after finding a bug to check if the same pattern exists elsewhere.

validate-agent

422
from vibeeval/vibecosystem

Validation agent that validates plan tech choices against current best practices

tracing-patterns

422
from vibeeval/vibecosystem

OpenTelemetry setup, span context propagation, sampling strategies, Jaeger queries

tour

422
from vibeeval/vibecosystem

Friendly onboarding tour of Claude Code capabilities for users asking what it can do.

tldr-stats

422
from vibeeval/vibecosystem

Show full session token usage, costs, TLDR savings, and hook activity