Skip to content
Back to skills

Unrender Repo

BSecurity

Retire a repo from the standards system: remove the rule files a render put there, drop the local exclusion block, and forget the repo so doctor stops reporting it. Preview first, act only on --yes. Use when the user says unrender, un-onboard, retire this repo, remove the rendered rules, stop tracking this repo, take the standards out of here, or is abandoning a repo that doctor keeps naming. Not for deleting a repo — this leaves the repo intact and removes only what the engine put in it.

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 20, 2026
ai-agentsgobashgit

Works with

  • cursor
  • cli

Security analysis

B85/100
  • highPerforms destructive filesystem operations

Pro shows the line behind each finding and how to fix it

Scanned September 20, 2026

npx -y skills add dimeloper/second-brain-workflow --skill unrender-repo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Unrender Repo?

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

Security grade badge for Unrender Repo
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/dimeloper-unrender-repo/badge)](https://www.skillsdirectory.com/skills/dimeloper-unrender-repo)

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: unrender-repo
description: >-
  Retire a repo from the standards system: remove the rule files a render put
  there, drop the local exclusion block, and forget the repo so doctor stops
  reporting it. Preview first, act only on --yes. Use when the user says
  unrender, un-onboard, retire this repo, remove the rendered rules, stop
  tracking this repo, take the standards out of here, or is abandoning a repo
  that doctor keeps naming. Not for deleting a repo — this leaves the repo
  intact and removes only what the engine put in it.
---

# Unrender a repo

The inverse of `onboard-repo`. Removes what `render.py` wrote into a target
repo and takes that repo out of the registry, in one act.

**Preview by default.** This deletes files in a repo the engine does not own,
so the first run always reports and changes nothing.

## The command

```bash
~/second-brain-workflow/scripts/render.py --unrender "<TARGET>"        # preview
~/second-brain-workflow/scripts/render.py --unrender --yes "<TARGET>"  # act
```

Or `make unrender REPO=<TARGET>` / `make unrender REPO=<TARGET> YES=1`.

Show the user the preview output before running with `--yes`, unless they
already asked for it in the same breath ("unrender it", "just do it").

## What it removes

| Removed | Condition |
|---|---|
| `.cursor/rules/*.mdc`, `.claude/rules/*.md` | only files carrying the provenance marker |
| `AGENTS.md`, `CLAUDE.md` | only if they carry the marker |
| `.sbw-version` | always — the engine owns it outright |
| the `.git/info/exclude` block | only if the repo was rendered `--local` |
| the registry entry | if the registry names the repo |
| `.cursor` / `.claude` themselves | only if taking the rules directory out left them empty |

Anything without the marker is hand-written and is left alone — the same rule
`render.py` follows when writing. A hand-written `CLAUDE.md` survives; so does
a `.cursor/rules/local-only.mdc` a human put there.

**It never searches the repo for the marker.** Only the paths render.py itself
writes are candidates. A repo can legitimately contain the marker string as
content — this engine's own landing page quotes the provenance header as copy —
and a grep-based implementation would offer to delete the product.

## Both halves, or neither

Doing half of this by hand is what leaves a repo doctor complains about forever:

- `rm -rf` the repo, or delete the rendered files by hand → the registry still
  names it, and every check reports a **stale entry** or a repo that **drifted**.
- Remove the registry line by hand → the files are still there, and the scan
  reports the repo as **rendered but not registered**.

Running the command is what closes both. If the user is deleting the repo
directory, unrender it *first* — once the directory is gone there is nothing to
run the command against, and only a hand-edit of the registry is left.

## After

Re-onboarding is just a render: `render.py "<TARGET>"`. Nothing about
unrendering is destructive to the repo's own history — every file it removes is
one the engine generated and can generate again.

**A retired repo reads as never-onboarded, so a wrap-up there will offer to
onboard it.** That is correct for a repo you unrendered to re-render cleanly,
and wrong for one you are walking away from. If the user is retiring it for
good, record the decision in the same breath:

```bash
~/second-brain-workflow/scripts/onboarding-state.py --repo "<TARGET>" \
  --decline --reason 'retired, not coming back'
```

Ask which of the two it is when it is not obvious from what they said; it is
one short question, and the alternative is `update-second-brain` re-offering
something they just deliberately undid.

Report to the user what was removed and that the repo is no longer tracked.
Do not offer to delete the repo directory; that is theirs to do.

## Boundary

- Onboarding a repo, or re-rendering one that drifted: **`onboard-repo`**.
- Removing skills installed on this *machine*: `make uninstall` — a different
  question, and it never touches a target repo.
- A repo the registry names that no longer exists on disk: unrender cannot help
  (there is no directory to act on). Say so, and that the entry is inert.

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.