Nightly context trim for ACTIVE_PRIORITIES and the dated SESSION_LOG schema. Archives before removal, uses content-hash compare-and-swap, and refuses unknown shapes.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add wrg32786/aigent-os --skill context-hygiene --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Context Hygiene?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wrg32786-context-hygiene)More formats (shields.io, HTML) on the badges page.
---
name: context-hygiene
agent: none
description: Nightly context trim for ACTIVE_PRIORITIES and the dated SESSION_LOG schema. Archives before removal, uses content-hash compare-and-swap, and refuses unknown shapes.
allowed-tools: Read, Write, Bash
user-invocable: true
status: PRODUCTION - bounded archive writer
triggers:
- context hygiene
- trim session log
- archive old session entries
- clean active priorities
---
# /context-hygiene
This is the sole bounded compaction exception to the Session Log chronicle. It
runs only when invoked, never while the framework is being installed or tested
against a real vault.
## Precondition
1. Read `vault/memory/SESSION_LOG.md` and
`vault/memory/ACTIVE_PRIORITIES.md`.
2. Hash both exact byte streams with SHA-256.
3. Run:
```text
node daemons/nightly-context-hygiene.mjs --root <aigent-root>
```
Green means no edit is needed. Red permits only the bounded archive below.
Unreadable or unfamiliar content is a failure, not permission to rewrite.
## Session Log archive
The executable target schema uses newest-first dated H2 blocks. A canonical
block starts with `## YYYY-MM-DD - title` and contains one nonempty occurrence
of each field:
- `Objective`
- `Completed`
- `Decisions`
- `Open threads`
- `Next action`
Archival rules:
- Keep the newest five live dated blocks.
- Move older whole blocks to
`vault/memory/SESSION_LOG_ARCHIVE_<YYYY-MM-DD>.md`.
- Preserve source text and order.
- Preserve frontmatter, title, schema guidance, and archive links.
- Dedupe by exact dated heading plus block hash.
- Refuse a block whose boundary cannot be determined without judgment.
## Active Priorities archive
The mechanically checkable live shape contains:
- exactly one `## Operating Mode: <mode>` heading;
- one to five live bullet priorities under `## Tier 1`, `## Tier 2`, or
`## Tier 3` headings;
- no placeholder priority;
- one valid `Last reviewed: YYYY-MM-DD` line; and
- no embedded `## Archived` section.
Move only content explicitly marked stale, superseded, or archived to
`vault/memory/ACTIVE_PRIORITIES_ARCHIVE_<YYYY-MM-DD>.md`. If removal requires a
human decision, preserve it and report the gate.
## Compare-and-swap
Immediately before each write, hash the live source again. If either hash
differs from the precondition hash, abort with `CONTEXT_HYGIENE_RACE`. Archive
must be durable before the source is trimmed.
After writing, re-run the checker. Only its literal
`CONTEXT_HYGIENE PASS` receipt may record the checkpoint green. Return archive
paths and before/after hashes in bounded detail. Never touch another memory
file.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!