Skip to content
Back to skills

Kb Remove

ASecurity

Remove a KB file and its CLAUDE.md reference. Accepts an optional file path or prompts the user to select which entry to remove.

  • 34 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 6, 2026
ai-agentspythonshellbashnodegit

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add charlesjones-dev/claude-code-plugins-dev --skill kb-remove --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kb Remove?

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

Security grade badge for Kb Remove
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/charlesjones-dev-kb-remove/badge)](https://www.skillsdirectory.com/skills/charlesjones-dev-kb-remove)

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: kb-remove
description: "Remove a KB file and its CLAUDE.md reference. Accepts an optional file path or prompts the user to select which entry to remove."
disable-model-invocation: true
---

# Knowledge Base Remove

You are a knowledge base assistant. Your job is to cleanly remove a KB file and its corresponding CLAUDE.md reference table entry.

## Date Resolution

**Resolving today's date (cross-platform, CRITICAL)**: Never guess, infer, or increment prior dates. When this skill writes `last-updated`, resolve today's date **once** at the start of the write phase, then reuse that single value for every write. Try these commands in order and use the first that returns a `YYYY-MM-DD` string:

- **macOS / Linux / WSL / Git Bash** (bash, zsh, sh): `date +%Y-%m-%d`
- **Windows PowerShell / pwsh**: `Get-Date -Format 'yyyy-MM-dd'`
- **Windows cmd.exe**: `powershell -NoProfile -Command "Get-Date -Format 'yyyy-MM-dd'"`
- **Portable fallback** (Node or Python available): `node -e "console.log(new Date().toISOString().slice(0,10))"` or `python -c "import datetime; print(datetime.date.today().isoformat())"`

Only bump `last-updated` on KB files whose frontmatter / body was actually modified by this run. Do not touch untouched files.

## Instructions

### Step 1: Determine Target

Check if the user provided a file path argument after the command (e.g., `/kb-remove docs/kb/old-topic.md`).

- **If a path was provided**: Use that path. Verify the file exists or at minimum has a CLAUDE.md table entry. If neither exists, inform the user and stop.
- **If no path was provided**: Proceed to selection mode.

#### Selection Mode

1. **Read CLAUDE.md**: Parse the Knowledge Base table to get all entries.
2. **If no Knowledge Base section exists**: Inform the user "No Knowledge Base section found. Nothing to remove." and stop.
3. **If no entries exist** (only placeholder row): Inform the user "No KB entries to remove." and stop.
4. Present the list of registered KB files and ask the user which to remove.

Use AskUserQuestion:
- Question: "Which KB entry would you like to remove?"
- Show the list of entries with their Topic, File, and When to Load
- Options: Each entry as a selectable option, plus "Cancel"
- Header: "KB Remove"

### Step 2: Confirm Removal

Show the user exactly what will happen. Use AskUserQuestion:
- Question: "This will remove the following. Confirm?"
- Show:
  - CLAUDE.md table row to be removed (Topic, File, When to Load)
  - Whether the KB file itself will be deleted (if it exists on disk)
  - Any other KB files that reference this file in their `related` frontmatter (these references will be cleaned up)
- Options: "Remove entry and delete file" | "Remove entry only (keep file)" | "Cancel"
- Header: "Confirm Removal"

If the file doesn't exist on disk, only show "Remove entry" and "Cancel".

### Step 3: Execute Removal

Based on user choice:

1. **Remove the CLAUDE.md table row** for this entry.
2. **Delete the KB file** from disk (only if user chose "Remove entry and delete file").
3. **Clean up cross-references**: For any other KB file that has this file in its `related` frontmatter, remove the reference from both the frontmatter AND the `## Related` body section (keep them in sync). Update `last-updated` to the date resolved at the start of the write phase (only on files that actually changed). If the `related` frontmatter becomes empty, also remove the `## Related` body section entirely.
4. If the table is now empty, restore the placeholder row: `| _No entries yet_ | - | _Run /kb-learn to capture learnings or /kb-add to register KB files_ |`
5. Re-sort the table alphabetically by Topic.

### Step 4: Update Index and Log

1. **Update `docs/kb/_index.md`**: If this file exists, remove the entry for the deleted file. Update `last-updated` in its frontmatter.
2. **Append to `docs/kb/_log.md`**: If this file exists, append:
   ```
   ## [YYYY-MM-DD] remove | Removed {filename}
   - Deleted file: {yes/no}
   - Removed CLAUDE.md table entry
   - Cleaned cross-references in: {list of files}
   ```

### Step 5: Confirm

Display:
- What was removed (table entry and/or file)
- Cross-references cleaned up (if any)

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.