retire
Remove a unit from a repo without leaving references behind - a plugin, package, module, directory, dependency, or feature.
Skill by fblissjr
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fblissjr-retire
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/retire
What's inside
- Skill name
retire- Description
- Remove a unit from a repo without leaving references behind - a plugin, package, module, directory, dependency, or feature. Sweeps tracked content for every mention BEFORE the delete, sorts the hits into what must change, what must stay as history, and what reaches users, then names the cascade the removal actually triggers. Use when the user says "retire this plugin", "delete this package", "remove this module", "drop this dependency", "deprecate X", "clean up after removing Y", "is anything still referencing Z", or is about to delete a tracked directory. Deletion-induced breakage is non-local - the files that break are ones nobody touched - so no edit-time check or language server catches it.
- License
- Apache-2.0
- Instructions
- 120 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Deleting a unit is the easy half. The references outlive it, and they break in
files nobody opened: removing `apps/foo/` leaves files broken that were never
edited, so nothing fires — not a language server, not a PostToolUse hook, not a
pre-commit diff check. They only see files that changed.
<sweep>
Sweep before the delete. The output is the work list, and it is much harder to
assemble once the thing is gone and you are grepping from memory.
```bash
git grep -lF -- 'the-name' :/
```
Search the name, not only the path. Paths appear in links and manifests; the
name appears in prose, commands, and examples, which is where most references
hide. For a unit with a distinct directory, sweep both.
`:/` roots the search at the repo top. Without it the search is scoped to the
working directory, and the most likely place to run this is inside the unit
being deleted, where it reports a tidy handful of self-references while every
external reference stays invisible.
`-F` matches the name literally. A unit called `foo.js` or `c++-utils` is a
regex that quietly matches things it should not, and a name beginning with `-`
is parsed as an option. `git grep` beats `git ls-files | xargs grep`, which
splits on whitespace (a tracked path containing a space is silently skipped)
and on GNU systems runs `grep` with no file operands when nothing matches,
blocking on stdin instead of reporting clean.
A link check is no substitute. "No broken markdown links" is a strictly weaker
property than "nothing names a thing that no longer exists": a repo can pass
the first while a dozen sentences still describe the deleted unit as though it
were alive.
</sweep>
<buckets>
Sort every hit into one of four buckets. The sorting is the skill: the cost of
getting this wrong is editing what should have been left alone, or leaving what
should have been edited.
- **Structural — must change.** Manifests, registries, workspace or build
config, dependency lists, indexes and tables of contents, any file whose job
is to enumerate what exists. These are wrong the moment the unit is gone.
- **Historical — must not change.** Changelogs, design records, postmortems,
"removed in 0.5.0" notes. They describe what was true when written, and
rewriting them destroys the record of what was tried. Add a status header if
the staleness would mislead; leave the body as written.
- **Illustrative — usually change.** Examples that use the unit's name to teach
something unrelated ("name external dependencies generically, like *the foo
DB*"). The lesson does not depend on the name, and a reader who goes looking
for `foo` and finds nothing loses trust in the docs. Swap in a neutral example.
- **Third-party — leave.** Instructions about what may exist in someone else's
repo: "if your installed config still contains X, delete it." Still correct
after the removal; deleting them strands the people they were written for.
Shipped content is a higher bar. Anything inside a published unit's
distribution boundary (in a plugin repo, whatever the marketplace `source`
points at; elsewhere, whatever the package manifest includes) reaches other
people. Sweep it separately, even when the root sweep looks clean, because
distribution boundaries rarely match directory intuition: a stale reference in
an internal note is untidy, the same reference in a shipped skill or README is
a defect someone else has to work around.
</buckets>
<cascade>
A removal is never one delete. Name the cascade before starting, and confirm
each item:
- the unit's own files
- workspace, build and dependency configuration that names it
- the registry or marketplace entry, plus a deprecation or rename mapping so
installed copies get cleaned up rather than silently orphaned
- every index, table, or list that enumerated it
- documentation that cites it, sorted by the buckets above
- code that imports it, checked with a language-aware search, not grep alone
- the changelog
- lockfiles, if the unit was a dependency
If anyone could have installed or depended on the unit, the removal is a
breaking change and the version bump is major. The deprecation mapping exists
because that breakage has to be handled rather than absorbed.
</cascade>
<verify>
```bash
# every remaining hit should be one you deliberately kept
git grep -nF -- 'the-name' :/
# no link, inline or reference-style, points at the removed path
git grep -nE -- '\]\(<path>|\]:[[:space:]]*<path>|href="[^"]*<path>' :/
# nothing still imports it -- extensions, not a hand-listed glob
git grep -nE -- '(import|require|from)[^\n]*the-name' :/
```
Replace `<path>` with the removed path regex-escaped, since a literal `.` in a
filename otherwise matches any character. The link check covers
reference-style definitions and `href=` as well as inline links, and searches
every tracked file rather than only `*.md`, because a manifest or registry
entry naming a path is exactly what a removal breaks.
Leave source extensions out of the import check. A glob of `'*.py' '*.ts'
'*.js'` looks complete and silently skips `.tsx`, `.mjs`, `.jsx`, `.pyi` and
`.cjs`.
Then run the repo's own test or lint suite. The removal is done when the suite
is green and every remaining sweep hit falls in the historical or third-party
bucket. The sweep will not go silent, and should not: the cascade requires a
changelog entry naming the retired unit, so an empty result means that entry
is missing.
</verify>
<report>
Close by listing the references deliberately left unchanged and why: the
historical ones, the third-party ones. That list is the difference between "I
missed these" and "I decided these", and without it the next sweep
re-litigates every one of them.
</report>From fblissjr/fb-claude-skills, Apache-2.0.
More from fblissjr/fb-claude-skills
- 0.603score
heylook-provider
fblissjr
Wire an application to heylook (heylookitsanllm), a local multimodal LLM server on Apple Silicon serving MLX and gguf models over one Anthropic…
SkillAFreshness: A★ 2Claude Code +9 - 0.593score
skill-dashboard
fblissjr
Show an interactive dashboard of all tracked skills, plugins, and repo hygiene in this project.
SkillAFreshness: A★ 2Claude Code +9 - 0.563score
design-scoreboard
fblissjr
Designs what an improvement or optimizer loop should climb for a given project and goal, and what must not get worse while it does: goal metrics measured on…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
mece-decomposer
fblissjr
MECE decomposition methodology, scoring rubrics, and Agent SDK mapping for process analysis.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
python-tooling
fblissjr
House Python conventions plus the type-checking failures that get misdiagnosed: the dependency pinning policy (applications exact, libraries floors), the rule…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
dimensional-modeling
fblissjr
Design and implement Kimball-style star schemas in DuckDB for LLM agent state persistence.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
improve
fblissjr
Runs one improvement pass over a project in the direction its north star points, without breaking what it does today: faster in real use, less code, a truer…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
optimize
fblissjr
Speeds up a codebase as far as it will go in one session, against a hard target (every primary benchmark at least 1.2x faster than the base commit by default)…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
trim-agents-md
fblissjr
Tightens a repository's always-loaded agent instructions (AGENTS.md, CLAUDE.md, unconditional rules): every line must prevent a mistake, and each one that…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
json-query
fblissjr
Guide JSON query tool selection and syntax.
SkillBFreshness: B★ 2Claude Code +9 - 0.558score
gemini-multimodal
fblissjr
Send a task to a Gemini model and get a structured answer back - perceptual work Claude cannot do directly, or any ad-hoc question worth a second model's take.
SkillBFreshness: B★ 2Claude Code +9 - 0.557score
doc-conventions
fblissjr
House documentation conventions that are not derivable from the repo: last-updated dates, where unshared notes and session logs live, how dependency changes…
SkillBFreshness: B★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Sep 24, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/fblissjr/fb-claude-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fblissjr
- 0.603score
heylook-provider
fblissjr
Wire an application to heylook (heylookitsanllm), a local multimodal LLM server on Apple Silicon serving MLX and gguf models over one Anthropic…
SkillAFreshness: A★ 2Claude Code +9 - 0.593score
skill-dashboard
fblissjr
Show an interactive dashboard of all tracked skills, plugins, and repo hygiene in this project.
SkillAFreshness: A★ 2Claude Code +9 - 0.563score
dimensional-modeling
fblissjr
Design and implement Kimball-style star schemas in DuckDB for LLM agent state persistence.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
mece-decomposer
fblissjr
MECE decomposition methodology, scoring rubrics, and Agent SDK mapping for process analysis.
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
python-tooling
fblissjr
House Python conventions plus the type-checking failures that get misdiagnosed: the dependency pinning policy (applications exact, libraries floors), the rule…
SkillBFreshness: B★ 2Claude Code +9 - 0.563score
improve
fblissjr
Runs one improvement pass over a project in the direction its north star points, without breaking what it does today: faster in real use, less code, a truer…
SkillBFreshness: B★ 2Claude Code +9
Cite this page
retire skill. Agent Mart. https://agentmart.dev/skills/fblissjr-retire (last updated 2026-10-24)