Harness Engineering
10xChengTu/harness-engineering
Set up and improve harness engineering (AGENTS.md, docs/, lint rules, eval systems, project-level prompt engineering) for AI-agent-friendly codebases.
Writes this session's durable learnings into the project's CLAUDE.md and keeps the file short by archiving stale sections.
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserve --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/preserve .claude/skills/preserve && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .claude/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserve --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/preserve .agents/skills/preserve && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .agents/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserve --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/preserve .cursor/skills/preserve && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .cursor/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/EliaAlberti/cpr-compress-preserve-resume.git --path skills/preserve--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserve --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/preserve .gemini/skills/preserve && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .gemini/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/preserve .github/skills/preserve && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .github/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install EliaAlberti/cpr-compress-preserve-resume preserve --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/EliaAlberti/cpr-compress-preserve-resume.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/preserve .opencode/skills/preserve && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "preserve" agent skill from https://github.com/EliaAlberti/cpr-compress-preserve-resume/tree/main/skills/preserve into .opencode/skills/preserve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "preserve", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
preserveWrites this session's durable learnings into the project's CLAUDE.md and keeps the file short by archiving stale sections.
The agent looks for CLAUDE.md in the project root or under .claude, and if none exists it asks whether to create one or print the notes in the conversation. It then asks once, with a multi-select, what to preserve: phase or status changes, key decisions, new files and structure, patterns and insights, blockers and warnings, or next steps. Passing quick skips the question and keeps every category that has real content. It reads the current file, matches its structure and voice, and updates sections in place rather than appending duplicates.
Entries stay brief: status changes as single lines, decisions with their reason, new directories as a short list and next steps as a checklist. Implementation detail, full file contents, timestamps and anything git or the code already records are left out. The skill aims for fewer than 200 lines. If the file grows past that, it finds archivable sections such as session notes older than 7 days, completed projects and anything marked archivable, shows what removing them would save and asks before archiving.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit cfd1e77. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadEditWriteGlobAskUserQuestionBash(python3 *)Bash(wc *)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CLAUDE.md Preserve loads about 889 tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 451 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from EliaAlberti/cpr-compress-preserve-resume at commit cfd1e77, republished under its MIT licence (© EliaAlberti). 451 words, ~889 tokens.
.claude/skills/preserve/SKILL.md (or your agent's skills folder).Update the project's CLAUDE.md with what this session taught that every future session should know from the first message. CLAUDE.md is loaded at the start of every session and re-injected after compaction, so it is the right home for status, decisions, conventions and next steps, and the wrong home for narrative or anything the code already says.
!python3 "${CLAUDE_PLUGIN_ROOT}/scripts/cpr_paths.py"
$ARGUMENTS containing quick means: skip the question, preserve every category that has real content.
Look in project_root for CLAUDE.md, Claude.md, or .claude/CLAUDE.md. If none exists, ask with AskUserQuestion whether to create one at {project_root}/CLAUDE.md or to print the notes into the conversation instead. If the user chooses the conversation, write the same content as a short markdown block and stop.
Ask once with AskUserQuestion, multi-select, header "Preserve". Options: Phase/Status Changes, Key Decisions, New Files/Structure, Patterns/Insights, Blockers/Warnings, Next Steps. Recommend the ones this session produced.
Read the current CLAUDE.md and match its structure and voice. Update existing sections in place rather than appending duplicates. Every addition should be something a future session would otherwise have to rediscover or be told again:
Leave out implementation detail, full file contents, timestamps, and anything the code or git history already records. Point to files instead of copying them. Keep exact values for paths, flags and identifiers.
Edit the file directly, then report:
CLAUDE.md updated
Preserved:
- {what changed}
CLAUDE.md is now {X} lines (target: under 200)Claude Code recommends CLAUDE.md files under 200 lines for adherence. After editing, check wc -l. If the file is over 200 lines:
## Session Notes (DATE) sections older than 7 days, ## Completed Projects, and any section whose heading contains (ARCHIVABLE).(PROTECTED), or the core sections: Approach, Philosophy, Paths, Structure, Key References, Links, Skills, Commands, Key Patterns, Conventions. Adapt the list to the names the file actually uses.Archived sections go to {project_root}/CLAUDE-Archive.md, appended under a ## Archived: {date} heading, and are removed from CLAUDE.md. Create the archive file with a one-line intro if it does not exist.
Print a compact preservation block to the conversation with the selected categories and a two-sentence resume context, then suggest creating a CLAUDE.md so it persists.
© EliaAlberti, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/preserve of EliaAlberti/cpr-compress-preserve-resume.
Open the folder on GitHubat commit cfd1e77
CLAUDE.md Preserve next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CLAUDE.md Preserve this skillEliaAlberti/cpr-compress-preserve-resume | 514 | — | ~889 | Automated safety check: Pass | MIT | |
| Harness Engineering10xChengTu/harness-engineering | 102 | 1 repos | ~1k | Automated safety check: Pass | None | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Beads Task Memorygastownhall/beads | 28k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Session History Searchslopus/happy | 24k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Memori Long-Term MemoryMemoriLabs/Memori | 17k | — | ~2k | Automated safety check: Notes | Custom licence |
10xChengTu/harness-engineering
Set up and improve harness engineering (AGENTS.md, docs/, lint rules, eval systems, project-level prompt engineering) for AI-agent-friendly codebases.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
gastownhall/beads
Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.
slopus/happy
Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.
MemoriLabs/Memori
Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.
microsoft/SkillOpt
Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.
EliaAlberti/cpr-compress-preserve-resume
Saves the current session as a searchable log with a curated summary and the raw transcript, so a later session can resume from it.
EliaAlberti/cpr-compress-preserve-resume
Loads context from recent CPR session logs at the start of a session and can search past sessions by topic, then writes a short resume report.
Categories
Writes this session's durable learnings into the project's CLAUDE.md and keeps the file short by archiving stale sections. claude, and if none exists it asks whether to create one or print the notes in the conversation. It then asks once, with a multi-select, what to preserve: phase or status changes, key decisions, new files and structure, patterns and insights, blockers and warnings, or next steps.
CLAUDE.md Preserve fits situations like: finishing a work session that changed the project's status or key decisions; recording blockers and next steps so future sessions start informed; trimming a CLAUDE.md file that has grown too long.
Run `npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a claude-code`. Or copy the skill folder (skills/preserve in EliaAlberti/cpr-compress-preserve-resume) into .claude/skills/preserve in your project. Claude Code loads it when a task matches its description.
Run `npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a codex`. Or copy the skill folder (skills/preserve in EliaAlberti/cpr-compress-preserve-resume) into .agents/skills/preserve in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add EliaAlberti/cpr-compress-preserve-resume --skill preserve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/preserve, .gemini/skills/preserve, .github/skills/preserve and .opencode/skills/preserve in your project.
Going by SKILL.md and its folder, CLAUDE.md Preserve needs the command-line tools its instructions call (python3). Our summary lists: Python 3, used by the plugin's path helper. Its frontmatter pre-approves these tools: Read, Edit, Write, Glob, AskUserQuestion, Bash(python3 *), Bash(wc *).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CLAUDE.md Preserve is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 889 tokens (SKILL.md is roughly 3.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CLAUDE.md Preserve: Harness Engineering (10xChengTu/harness-engineering, 102 stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars), Beads Task Memory (gastownhall/beads, 28k stars) and Session History Search (slopus/happy, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
EliaAlberti (a GitHub user) maintains it in EliaAlberti/cpr-compress-preserve-resume, which has 514 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 9, 2026.
Source: EliaAlberti/cpr-compress-preserve-resume on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.