Add resource
Skill RadOrigin-LLC/RAD-Claude-Skills/archive/plugins/rad-session/skills/add-resource
Marketplace of plugins and skills for Claude Code
npx -y skills add RadOrigin-LLC/RAD-Claude-Skills --skill add-resourceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Register a project resource (MCP server, CLI tool, script, or note) into CLAUDE.md's Resources section so `/startup` surfaces it every session. Creates the Resources section if missing. Trigger when the user says "/add-resource", "add to project resources", "remember this MCP for the project", "save this tool to CLAUDE.md", "register this resource", "remember we have X available here", "add X to the resources section".
SKILL.md
6.3 KB, as published. Nobody here has run it
Add Resource
Append a user-supplied resource to CLAUDE.md's canonical ## Resources section so it becomes part of the project's permanent state and is surfaced by /startup on every new session.
This skill only writes to CLAUDE.md at the project root. It never touches other files.
Cross-model note. Model-agnostic. Always use targeted Edit operations to insert single lines rather than Write to rewrite the whole file — whole-file rewrites churn trailing whitespace and line endings on Windows, inflate diffs, and risk clobbering manual edits the user made between sessions.
Phase 1: Parse the Request
Extract from the user's message:
-
Category — which sub-bucket the resource belongs to:
MCPs— MCP servers (e.g., "supabase", "coolify", "stripe")Stack CLIs— command-line tools available for this project (e.g., "supabase CLI", "gh", "wrangler")Scripts— npm/pnpm/make targets worth rememberingNotes— freeform resource notes that don't fit above (e.g., "API docs at https://...", "staging DB creds in 1Password item 'X'")
-
Name/value — the specific thing to register. Accept a short label plus an optional description.
-
Optional context — version, URL, or a one-line "when to use" hint.
If the user's message is ambiguous (e.g., just "remember this"), ask one clarifying question:
Which category? MCP server, CLI tool, script, or a freeform note?
Do not proceed until the category is clear.
Phase 2: Locate or Create the Resources Section
2.1 Read CLAUDE.md
Read CLAUDE.md at the project root.
-
If CLAUDE.md does not exist: create a minimal scaffold first:
# [Project Name — from directory name] ## Tech Stack [TBD] ## Conventions [To be established] ## ResourcesThen proceed to Phase 3.
-
If CLAUDE.md exists but has no Resources section: append a new
## Resourcessection at the end of the file (after the last existing section). Use this structure:## Resources **MCPs:** **Stack CLIs:** **Scripts:** **Notes:**Only include the sub-buckets that will have content. Empty sub-buckets can be omitted — re-add them when needed.
-
If CLAUDE.md has a Resources section under a different alias (
## MCP,## Tools,## CLI Tools): use the existing section as-is — do not rename it. Respect the user's chosen heading. Add the new entry under the most appropriate sub-bullet or create one.
2.2 Canonical Structure
Within the Resources section, organize entries using bold sub-labels, not sub-headings, so the section stays scannable:
## Resources
**MCPs:**
- `supabase` — Supabase MCP server; use for DB queries, migrations, edge function deploys
- `coolify` — Coolify MCP; deploy, logs, env vars for this project's staging/prod
**Stack CLIs:**
- `supabase` — local DB, migrations, types generation
- `gh` — PR management, issue triage
- `docker` — local compose stack
**Scripts (pnpm):**
- `dev` — start local dev server
- `test` — run vitest
- `typecheck` — tsc --noEmit
**Notes:**
- Staging DB credentials: 1Password vault "Project X" → item "Staging DB"
- API docs: https://docs.example.com/api/v2
Format rules:
- One entry per line, bullet form
- Name in backticks, em-dash, short description
- Keep descriptions under ~80 chars
- Order within a sub-bucket is insertion order (newest at bottom)
Phase 3: Append the Entry
3.1 De-duplication
Before writing, scan the target sub-bucket for an existing entry with the same name:
- Exact match — do nothing, tell the user:
"<name>" is already registered under <category>. - Name match with different description — ask:
"<name>" already exists with description "<old>". Replace with "<new>"? (yes/no) - No match — proceed to append.
3.2 Write
Use Edit to insert the new line at the bottom of the correct sub-bucket. Do not use Write to rewrite the entire CLAUDE.md — targeted Edit preserves everything else byte-for-byte. If the sub-bucket does not yet exist within the Resources section, add it (still via Edit, anchored on the section heading) in the order: MCPs → Stack CLIs → Scripts → Notes.
3.3 Show the Change
After writing, present the diff compactly:
Added to CLAUDE.md Resources:
**MCPs:**
+ `stripe` — Stripe MCP; billing, subscriptions, webhook inspection
Saved. /startup will include this in future session briefings.
Phase 4: Multi-Entry Batching
If the user asks to add several resources in one request (e.g., "remember we have supabase MCP, stripe MCP, and the gh CLI"), process them as a batch:
-
Parse each entry and classify its category
-
De-duplicate each against existing entries
-
Write all new entries in a single
Editif possible -
Show a consolidated diff:
Added to CLAUDE.md Resources: **MCPs:** + `supabase` — ... + `stripe` — ... **Stack CLIs:** + `gh` — ... Saved 3 resources. /startup will include these in future session briefings.
Rules
- Never modify sections outside of
## Resources(or its aliases). This skill has one job. - Never remove or rename existing entries unless the user explicitly says "remove" or "replace".
- Never prune or reformat the Resources section — only append or replace targeted entries.
- Never read
.envor any file with real secret values — if the user asks to save a secret, refuse and suggest they note the location of the secret instead (e.g., "1Password item X"). - Confirm before overwriting an existing entry with the same name.
- Work at project root only — do not walk into subdirectories looking for CLAUDE.md files.
Completion
End with one line:
Saved. Run /startup next session to see it in the briefing.