Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Kb Register Library

ASecurity

Register an external knowledge base library in the user-scope global registry at ~/.sdlc/global-libraries.json. Validates that the target path exists, contains a _shelf-index.md, and parses its format_version. Optional helper — hand-editing the JSON is also supported.

41 stars
0 votes
0 copies
0 views
Added 9/19/2026
toolspythonbashgit

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add SteveGJones/ai-first-sdlc-practices --skill kb-register-library --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kb Register Library?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Kb Register Library
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/stevegjones-kb-register-library/badge)](https://www.skillsdirectory.com/skills/stevegjones-kb-register-library)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: kb-register-library
description: Register an external knowledge base library in the user-scope global registry at ~/.sdlc/global-libraries.json. Validates that the target path exists, contains a _shelf-index.md, and parses its format_version. Optional helper — hand-editing the JSON is also supported.
disable-model-invocation: false
argument-hint: "<name> <absolute-path-to-library-dir> [description]"
---

# Register External Library

Add an external knowledge base to the user-scope global registry so it can be activated in any project's `.sdlc/libraries.json`.

## Arguments

- `<name>` — a short handle used in attribution output. Lowercase-kebab-case recommended (e.g., `corporate-semiconductor`, `corp-healthcare`). Must be unique within `~/.sdlc/global-libraries.json`.
- `<absolute-path-to-library-dir>` — the absolute path to the *library directory* (the one containing `_shelf-index.md`), not the repo root. Must exist at registration time.
- `[description]` — optional human note for the user's own reference. Not used by any system behaviour.

## Preflight

- Verify the registry file's parent directory exists. Create `~/.sdlc/` if missing.
- If `~/.sdlc/global-libraries.json` exists, load and validate it.
- Validate `<name>` matches `^[a-z][a-z0-9-]*$` (lowercase letters, digits, hyphens; must start with a letter). If not, error with: "Library handle must match ^[a-z][a-z0-9-]*$ — found '<name>'. Choose a different name."
- If the chosen `<name>` is already registered, error out with the existing entry's path shown; recommend a different name or manual JSON edit.

## Steps

### 1. Validate the target library path

Run the path validator:

```bash
python3 -c "
import sys, os, importlib.util
PLUGIN_ROOT = os.environ.get('CLAUDE_PLUGIN_ROOT', '')
SCRIPTS = os.path.join(PLUGIN_ROOT, 'scripts')
INIT = os.path.join(SCRIPTS, '__init__.py')
if os.path.isfile(INIT) and 'sdlc_knowledge_base_scripts' not in sys.modules:
    spec = importlib.util.spec_from_file_location(
        'sdlc_knowledge_base_scripts',
        INIT,
        submodule_search_locations=[SCRIPTS],
    )
    if spec and spec.loader:
        module = importlib.util.module_from_spec(spec)
        sys.modules['sdlc_knowledge_base_scripts'] = module
        spec.loader.exec_module(module)
from pathlib import Path
from sdlc_knowledge_base_scripts.registry import validate_library_path
ok, reason = validate_library_path(Path('<path>'))
if not ok:
    print(f'ERROR: {reason}')
    exit(1)
print('OK')
"
```

If the validator returns an error, surface the exact `reason` string to the user and stop. Common reasons:

- "path 'X' must be absolute" — relative path; correct it
- "path 'X' does not exist" — directory doesn't exist; create it or correct path
- "path 'X' has no _shelf-index.md" — run `/sdlc-knowledge-base:kb-rebuild-indexes` in that library first
- "path 'X' resolves to '...' which contains denylisted fragment '...'" — refuse to register; user should pick a different path

### 2. Load or initialise the registry

If `~/.sdlc/global-libraries.json` does not exist, initialise with:

```json
{"version": 1, "libraries": []}
```

Otherwise load the existing file. If parsing fails, do not overwrite — error and recommend manual repair.

### 3. Add the new entry

Append to `libraries`:

```json
{
  "name": "<name>",
  "type": "filesystem",
  "path": "<absolute-path>",
  "description": "<description or omitted>"
}
```

### 4. Write the registry atomically

Write to a temp file and rename to avoid partial writes.

### 5. Report success

Print a confirmation:

```
Registered '<name>' → <path>
format_version: <N>
Description: <description or "none">

To activate in a project, add to .sdlc/libraries.json:
  {"version": 1, "activated_sources": ["<name>"]}
```

## What this skill does NOT do

- It does not install, copy, or symlink the library — it only records a pointer.
- It does not activate the library in any project — that's a separate manual step.
- It does not validate shelf-index content quality — only that the file exists.
- It does not support `type: remote-agent` — that's phase D (future EPIC).

## Examples

Register a corporate library:

```
/sdlc-knowledge-base:kb-register-library corporate-semiconductor /Users/steve/corp/semi/library "Semiconductor engagement findings 2024-2026"
```

Register with no description:

```
/sdlc-knowledge-base:kb-register-library corp-health /Users/steve/corp/health/library
```

## Errors

- **Path does not exist** — correct the path argument or create the directory first
- **No shelf-index at path** — run `/sdlc-knowledge-base:kb-rebuild-indexes` in that library
- **Name already registered** — choose a different name, or manually edit `~/.sdlc/global-libraries.json`
- **Registry file malformed** — manual repair required; the skill will not overwrite a file it cannot parse

Attribution

SteveGJonesSteveGJones
View sourceMore from SteveGJones →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...

107 votes

Paperclip

Interact with the Paperclip control plane API to manage tasks, coordinate with other agents, and follow company governance. Use when you need to check assignments, update task status, delegate work, post comments, set up or manage routines (recurring scheduled tasks), or call any Paperclip API endpoint. Do NOT use for the actual domain work itself (writing code, research, etc.) — only for Paperclip coordination.

798221 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes

Caveman Compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

1023330 votes
View all in tools →