iusztinpaul/squid/squid-clean-harness
Claude Code and agent skill by iusztinpaul/squid
- community
Checking that the SKILL.md file is still in the repository.
Shrink an agent harness (.agents/ skills + resources) to the minimum tokens that keep the exact same logic. Never touches resources/datasets/.
Install
npx vskill@latest install iusztinpaul/squid/squid-clean-harnessSKILL.md
Clean harness — same logic, minimum tokens
You are the cleaner. You shrink the skills and resources a harness loads; you do not change what they make the agent do. Zero logic diff is the contract — every capability, step, and rule that holds before must hold after; only tokens die.
$ARGUMENTS is an optional .agents/ path (e.g. ~/Vaults/Second-Brain/.agents). Empty means the repo's ./.agents.
When NOT to use — out of scope, no exceptions
| Excluded | Why | |
|---|---|---|
resources/datasets/ | Data the skills operate on, not logic. Never in scope. | |
Memory files (AGENTS.md, CLAUDE.md) | → /squid-clean-memory. | |
| Docs, READMEs, comments, docstrings | → /squid-clean-docs. | |
| Skill names and argument shapes | The name is the API — a rename is an edit, not a cleanup. |
Step 1 — Resolve the target set
Inventory skills/*/SKILL.md and resources/** minus resources/datasets/ under the target .agents/. Everything must be revertible: clean in git, or snapshot first (cp -R .agents .agents.bak) when the tree isn't tracked.
Step 2 — Audit the contract (frontmatter)
Two questions per skill:
- Invocation type — auto-fired by the model, or only typed by the user? User-only →
disable-model-invocation: true, keeping its description out of the always-loaded skill list. Flipping also cuts reach from other skills — grep the set for the skill's name first (Step 4's proof); one referrer means it stays model-invoked.
- Description — must match what the body does. Model-invoked → triggers only, one per branch:
synonyms naming the same branch are duplication ("build with TDD" / "asks for test-first development" is one branch written twice). User-only → one sentence of what it does; trigger prose serves no router — delete it.
Done only when every skill in the set has both answers recorded — no sampling.
Step 3 — Apply the keep/delete test
An instruction survives only if deleting it would change what the agent does. The cuts apply to every file in the set — skill bodies and resources/ docs alike. Five cuts:
Duplicates — the same rule twice in one skill, repeated across skills, or restating a resources/ doc the skill already points at (a skill body repeating glossary.md definitions) — the resource is the home, the skill keeps the pointer. Two resources repeating each other collapse to one home the same way.
Baked-in claims — would the agent already behave this way with the line deleted (harness default, system-prompt rule)? Dead weight. "Read the file before editing it" dies; "write posts in the voice defined in resources/branding/" stays. The test is harness-relative — .agents/ serves non-Claude agents too: delete only defaults universal to whatever loads the skill; flag the Claude Code-specific ones. Test sentence by sentence; a failing sentence dies whole — never trim words from it.
Verbose logic — the exact same logic in the minimum words: collapse restatements, prefer a table row to a paragraph, terse wording. Collapse a restated quality into one pretrained leading word ("fast, deterministic, low-overhead" → a _tight_ loop).
Merges — steps or sections nobody reads apart become one; reorder so each idea appears once, at the point the agent needs it.
Disclosure — a skill body is paid for on every invocation, including the branches that never read it. Inline what every branch needs; push what only some branches reach — a lookup table, a per-platform appendix, a rare edge-case procedure — into a resources/ doc loaded on demand. Same home for a block ≥2 skills share. Size decides: ~20+ lines earns its own file, below that indirection costs a Read for less than it saves. The pointer must say when to load it, not just where it lives ("for the Slack variants, read platforms.md", not "see platforms.md"). Theory: /squid-write-skill.
Done only when every file in the set is read whole and judged against all five cuts.
Step 4 — Dangling artifacts
A reference, script, agent, or resources/ doc is dead only with zero references outside its own definition:
- A rule dangles by staleness, not references — nobody cites a rule, they read it. It dies when
what it governs no longer exists: a step for a removed tool, a caveat for a branch that's gone.
- Referenced but missing → a broken contract, not a deletion: flag it and ask.
- Present but unreferenced → delete only on clean proof; a helper called from outside
.agents/
(cron, vault automation) is invisible to grep — when unsure, flag, never auto-delete.
Done only when every artifact is proven dead, alive, or flagged.
Step 5 — Plan of attack (the output artifact)
Print one table in chat. Do not write it to disk unless the user asks.
| File | Cut (Step 2–4) | Why | ~Words | |
|---|---|---|---|---|
skills/search/SKILL.md | frontmatter | user-only; trigger prose serves no router | −130 | |
skills/post/ ∩ skills/thread/ | duplicate | shared hook rules → one home in resources/ | −200 | |
skills/article/SKILL.md | verbose | Step 2 restated three ways | −90 | |
skills/publish/SKILL.md | disclosure | per-platform appendix; 1 of 4 branches | −240 | |
resources/glossary.md | verbose | each term defined twice, prose + table | −150 |
Stop and wait for explicit approval. Do not edit before it.
Step 6 — Execute
Apply the approved plan, one commit per category (frontmatter, cuts, dangling) so any revert is surgical.
Step 7 — Verify
Logic must be provably unchanged before hand-off:
- Every
SKILL.mdfrontmatter still parses as YAML withname+description— unparseable YAML
loads the skill with every field silently dropped.
- Every remaining reference (file, skill, script, agent) resolves, and every disclosed file has a
pointer that states when to load it.
- Per-file logic diff: every step and rule in the old version is still stated or merged — name its
new home.
- No skill or argument was renamed.
Anything off: revert that commit (or restore the snapshot), do not "fix forward".
Step 8 — Hand-off
Report wc -w before → after per file, what moved into resources/, and every flagged dangling item. Point the user at /squid-write-skill for flagged items that need rewriting rather than cutting — an edit is theirs to make, and only they can invoke it.
When run unattended (a scheduled routine), also send that report with PushNotification — nobody reads the session.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/squid-clean-harness/SKILL.md
Popularity
- Repository stars
- 210
- Repository forks
- 34
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/iusztinpaul/squid/squid-clean-harness)