Skip to content
Back to skills

Retire Artifact

ASecurity

Retire a tracked plan, report, archive, or document without losing durable information. Use before deleting any tracked document.

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 19, 2026
developmentrustgobashnodegit

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add adrienm7/ergopti --skill retire-artifact --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Retire Artifact?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Retire Artifact
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adrienm7-retire-artifact/badge)](https://www.skillsdirectory.com/skills/adrienm7-retire-artifact)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: retire-artifact
description: Retire a tracked plan, report, archive, or document without losing durable information. Use before deleting any tracked document.
---

# Retiring a document

Stale documents are worse than absent ones: they are read as current. But a
document that has outlived its process usually still carries a few live items,
and deleting it blind loses them. The whole job is separating the two.

## Never trust the document about itself

Status labels rot faster than anything else in a repo. Check every claim against
the code, and prefer the code's answer.

Two verified examples from the same file:

- A July plan asserted a timings accessor had "no production consumer". The
  keylogger walker reads it.
- The same plan asserted a set of updater menu keys did not exist, and used that
  to defer an entire i18n batch. All the keys were present in the shared locales.

An archived audit's "Open" labels are the same class of lie — the fix usually
landed, often with a test whose header cites the finding id. Grep for the id
before believing the label.

## The verdict is per item, not per document

Walk the document item by item and sort each one:

- **Delivered** — cite the `file:line` that proves it. This is the bulk of an old
  plan, and it is what makes the deletion safe.
- **Still open** — extract it, with enough context to act _without_ the original:
  what, where (real paths), why it matters today, and how to verify it. If you
  cannot write that, you have not understood it well enough to move it.
- **Decided against** — keep the _reason_, not the item, and put it under a
  "do not re-raise" heading. This is the part everyone drops, and it is why the
  same rejected idea comes back every few months.
- **Superseded** — a test now guards the invariant. Name the test. The test is
  the living memory; the prose was the placeholder.

## Where extracted work goes

`TODO.md` at the repo root, curated — a list, not an inventory. Rank by value and
say plainly what each item costs if it stays undone. If everything looks equally
important, nobody will start.

Durable _lessons_ go to the narrow topic under `docs/memory/` instead; see the
`project-memory` skill. The distinction: a lesson stops someone breaking
something, a TODO is work someone will do.

## Then delete, and fix what pointed at it

`git rm` the document, then find its references:

```bash
grep -rn "<DocName>" --include=*.md --include=*.js . | grep -v node_modules
```

A deleted plan usually leaves dangling links in driver READMEs, prompts and code
comments — a stale link is a small trap of the same family. Point them at what
replaced it.

Run `node ./tools/test/verify-change.cjs` and every selected gate. Independently
verify references to the retired document: `doc-paths` only rejects obsolete
driver-root names and is not a general Markdown link checker.

## When not to delete

Keep the document if it is a **reference** (it describes what _is_) rather than a
**plan** (it described what _was going to be_). A reference that has gone stale
gets corrected, not deleted — and correcting it is urgent, because a wrong
reference actively misleads. One in this repo instructed the reader to add
`Critical` to a block where the live test asserts its absence; following it would
have broken the suite.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.