notepad-system — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited notepad-system (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
When context compresses, the following is lost:
Without this, the recovered context either restarts from scratch or makes assumptions that contradict earlier decisions.
| 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 |
~/.claude/projects/<project-hash>/notepad.mdThe project hash is derived from the working directory path. If the directory does not exist, create it before writing.
# 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.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 NoteStep 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.
When a new or compressed context begins:
Step 1 — Read notepad.md
Path: ~/.claude/projects/<project-hash>/notepad.mdStep 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.
notepad delete priority <title>file.ts:line insteadRead the notepad:
cat ~/.claude/projects/<hash>/notepad.mdClear working notes (session end):
# Remove the Working Notes section content, keep the headersClear scratch notes (after use):
# Remove individual scratch entries after they have been appliedpre-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.
Working on a large refactor across 12 files. Context at 80%.
Pre-compact dump:
### [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 onlyAfter compression, any agent reads this and knows exactly which 5 files remain.
User asked about caching strategy but has not confirmed yet.
Scratch note:
### [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.
User mentioned early in a long session that they cannot use PostgreSQL — MySQL only.
Priority note created immediately:
### [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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.