Borrowing it
Nothing to install: this file belongs to BreadchainCoop/labor.fun. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/BreadchainCoop/labor.fun/main/.claude/skills/add-compact/SKILL.mdgit clone --depth 1 https://github.com/BreadchainCoop/labor.funWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/breadchaincoop/labor.fun/add-compact)<a href="https://agentmods.dev/skills/breadchaincoop/labor.fun/add-compact"><img src="https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/add-compact/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/breadchaincoop/labor.fun/add-compact"><img src="https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/add-compact.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.01591 |
| Opus 5.5 | $0.00016 | $0.00636 |
| Sonnet 5.5 | $0.00008 | $0.00318 |
| Haiku 4.5 | $0.00004 | $0.00159 |
Grade A, and why
add-compact scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
94% identical to add-compact — 22 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 136 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add /compact Command
Adds a /compact session command that compacts conversation history to fight context rot in long-running sessions. Uses the Claude Agent SDK's built-in /compact slash command — no synthetic system prompts.
Session contract: /compact keeps the same logical session alive. The SDK returns a new session ID after compaction (via the init system message), which the agent-runner forwards to the orchestrator as newSessionId. No destructive reset occurs — the agent retains summarized context.
Phase 1: Pre-flight
Check if src/session-commands.ts exists:
test -f src/session-commands.ts && echo "Already applied" || echo "Not applied"
If already applied, skip to Phase 3 (Verify).
Phase 2: Apply Code Changes
Merge the skill branch:
git fetch upstream skill/compact
git merge upstream/skill/compact
Note:
upstreamis the remote pointing toqwibitai/salem. If using a different remote name, substitute accordingly.
This adds:
src/session-commands.ts(extract and authorize session commands)src/session-commands.test.ts(unit tests for command parsing and auth)- Session command interception in
src/index.ts(bothprocessGroupMessagesandstartMessageLoop) - Slash command handling in
container/agent-runner/src/index.ts
Validate
npm test
npm run build
Rebuild container
./container/build.sh
Restart service
launchctl kickstart -k gui/$(id -u)/com.breadbrich # macOS
# Linux: systemctl --user restart breadbrich
Phase 3: Verify
Integration Test
- Start Breadbrich Engels in dev mode:
npm run dev - From the main group (self-chat), send exactly:
/compact - Verify:
- The agent acknowledges compaction (e.g., "Conversation compacted.")
- The session continues — send a follow-up message and verify the agent responds coherently
- A conversation archive is written to
groups/{folder}/conversations/(by the PreCompact hook) - Container logs show
Compact boundary observed(confirms SDK actually compacted) - If
compact_boundarywas NOT observed, the response says "compact_boundary was not observed"
- From a non-main group as a non-admin user, send:
@<assistant> /compact - Verify:
- The bot responds with "Session commands require admin access."
- No compaction occurs, no container is spawned for the command
- From a non-main group as the admin (device owner /
is_from_me), send:@<assistant> /compact - Verify:
- Compaction proceeds normally (same behavior as main group)
- While an active container is running for the main group, send
/compact - Verify:
- The active container is signaled to close (authorized senders only — untrusted senders cannot kill in-flight work)
- Compaction proceeds via a new container once the active one exits
- The command is not dropped (no cursor race)
- Send a normal message, then
/compact, then another normal message in quick succession (same polling batch): - Verify:
- Pre-compact messages are sent to the agent first (check container logs for two
runAgentcalls) - Compaction proceeds after pre-compact messages are processed
- Messages after
/compactin the batch are preserved (cursor advances to/compact's timestamp only) and processed on the next poll cycle
- Pre-compact messages are sent to the agent first (check container logs for two
- From a non-main group as a non-admin user, send
@<assistant> /compact: - Verify:
- Denial message is sent ("Session commands require admin access.")
- The
/compactis consumed (cursor advanced) — it does NOT replay on future polls - Other messages in the same batch are also consumed (cursor is a high-water mark — this is an accepted tradeoff for the narrow edge case of denied
/compact+ other messages in the same polling interval) - No container is killed or interrupted
- From a non-main group (with
requiresTriggerenabled) as a non-admin user, send bare/compact(no trigger prefix): - Verify:
- No denial message is sent (trigger policy prevents untrusted bot responses)
- The
/compactis consumed silently - Note: in groups where
requiresTriggerisfalse, a denial message IS sent because the sender is considered reachable
- After compaction, verify no auto-compaction behavior — only manual
/compacttriggers it
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 136 lines · 40 tokens per session scan A 0af7c6d93de2
add-compact is a skill published in the GitHub repository BreadchainCoop/labor.fun (2 stars, last pushed yesterday), licensed MIT. It adds 40 tokens to every session and 1,591 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 94% identical to add-compact, differing in 22 lines, and is treated as a copy.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…