reflect — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited reflect (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
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.
Extract durable behavioral patterns from the current conversation and promote them — with explicit confirmation — into the harness memory tiers (memory/MEMORY.md, context/IDENTITY.md). Always appends a log entry regardless of outcome.
This is the deliberate "Improve" pass of the Memory Improvement Protocol defined in context/rules/memory.md. Running it as a named skill turns an optional afterthought into a first-class, propose-then-confirm operation.
/reflect invoked explicitly to close a session./reflect is the only skill whose domain is current-session behavioral patterns → memory/identity.
Current conversation only. /reflect does not read prior daily logs, prior sessions, or the ~/.claude/projects/... auto-memory store. It works from what is already in context.
Scan the current conversation for:
Do not invent signals not present in the conversation.
From the signals, draft a list of candidate lessons — one per observation. Write each in one sentence, descriptive tone ("this session showed X"), not prescriptive. Include the session date (UTC).
Discard any candidate that matches any row in the "What Does NOT Go in Memory" table (context/rules/memory.md):
| Discard if | Reason |
|---|---|
| Contains a secret, token, or credential | Memory may be committed |
| Is raw stdout or command output | Use interpretation, not transcript |
| Belongs in a commit message or PR body | Duplication causes drift |
| Is a step-by-step task plan | Plans belong in tasks/<name>/prd.json |
| Re-derivable in under a minute | Reading one file answers it — don't memorize |
Also discard any candidate that is already captured, verbatim or in substance, in memory/MEMORY.md or context/IDENTITY.md. Link or skip; never double-write.
For each surviving candidate, classify:
| Tier | Write to | Criterion |
|---|---|---|
| Log | memory/<UTC-date>/log.md | Transient observation: true of this run, not necessarily future ones. Free to write. |
| MEMORY.md | memory/MEMORY.md under ## Lessons Learned | Experiential, session-specific: "this session showed X is true of this codebase." Descriptive tone. Propose-then-confirm. |
| IDENTITY.md | context/IDENTITY.md under ## Lessons learned (append-only) | Graduated principle: applies across contexts, not just this run. Prescriptive tone ("always X"). Never auto-write. Propose a diff for approval. A lesson earns this only when it generalizes. |
When in doubt between MEMORY.md and IDENTITY.md: if you would scope it to "this session" or "this codebase right now," it belongs in MEMORY.md. If you would remove the scoping and say "always," it belongs in IDENTITY.md.
Before writing to memory/MEMORY.md or context/IDENTITY.md, present the proposed additions as a clearly formatted block:
Proposed MEMORY.md addition(s):
- YYYY-MM-DD: <one-sentence lesson>
Proposed IDENTITY.md addition(s):
- <prescriptive principle, "always X" or "never Y">
Type APPROVE to write, SKIP to discard any item, or EDIT <n> <new text> to revise.Do not write to either file until the user responds. Log-tier entries do not require approval.
If --dry-run was passed, skip writing entirely and report what would have been written.
For each APPROVED item:
`memory/MEMORY.md` — append under ## Lessons Learned:
- **YYYY-MM-DD**: <lesson>`context/IDENTITY.md` — append under ## Lessons learned (append-only):
- **YYYY-MM-DD**: <principle>Both files are append-only. Never edit existing entries.
Always run this step, regardless of whether anything was promoted. Get the current UTC time first:
date -u +%H:%M
TODAY=$(date -u +%Y-%m-%d)
mkdir -p "memory/$TODAY"Then append to memory/<UTC-date>/log.md:
## Reflect -- HH:MM UTC
- **Result**: OP | DRY-RUN | SKIPPED-TRIVIAL
- **Candidates**: <count extracted before qualify filter>
- **Promoted**: <count written to MEMORY.md> to MEMORY.md, <count> to IDENTITY.md
- **Observation**: <one sentence on what the session's most significant pattern was, or "no durable patterns found">memory/MEMORY.md | context/IDENTITY.md | |
|---|---|---|
| Tone | Descriptive — "this session showed…" | Prescriptive — "always X", "never Y" |
| Scope | Session or codebase-specific observation | Generalizes across contexts |
| Written by | This skill, immediately after the session | Only after deliberate review confirms generalization |
| Changed how | Append-only; entries are never edited | Deliberate revision; graduation is rare |
A lesson graduates from MEMORY.md to IDENTITY.md when it has recurred across multiple sessions or contexts, not from a single run. Do not graduate prematurely.
Claude Code skills cannot self-trigger. True automatic firing at session end would require a Stop hook configured in settings.json via /update-config. That is explicitly deferred from v1 of this skill.
log.md files or external transcripts. Scope is the open conversation only.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.