iusztinpaul/squid/squid-clean-harness

Claude Code and agent skill by iusztinpaul/squid

Trust tier 2
  • community
LLM review pending
Source check pending

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-harness

SKILL.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

ExcludedWhy
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 shapesThe 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:

sh
grep -rn "helper.py" <harness-root> <project-root> # prove it, don't assume
  • 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.

FileCut (Step 2–4)Why~Words
skills/search/SKILL.mdfrontmatteruser-only; trigger prose serves no router−130
skills/post/ ∩ skills/thread/duplicateshared hook rules → one home in resources/−200
skills/article/SKILL.mdverboseStep 2 restated three ways−90
skills/publish/SKILL.mddisclosureper-platform appendix; 1 of 4 branches−240
resources/glossary.mdverboseeach 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.md frontmatter still parses as YAML with name + 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/iusztinpaul/squid/squid-clean-harness/badge)](https://verified-skill.com/skills/iusztinpaul/squid/squid-clean-harness)

Something wrong with this skill or its page? Tell us.