Skip to content
cccskills
FreePublished on GitHub

kb-register-library

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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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:

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:

{"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:

{
  "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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Generate a GitHub Actions workflow for Android — JDK + Gradle caching, build, unit + instrumented tests, Android Lint, run the Android pre-flight checks, and (optionally) sign + upload a signed app bundle to a Play track. Use when setting up CI for an Android app.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

Validated Google Play release — runs the pre-flight checks and clears the Play policy gates, builds a signed app bundle with a git-stamped versionCode, uploads to a track, and walks staged rollout (with halt/roll-forward). Use when releasing an Android app to Play.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

Scaffold a new Android app with SDLC and Play-safe defaults — Kotlin/Compose Gradle project with version catalog, convention plugins, module layout, a targetSdk that meets the Play mandate, R8 on release, and git-ignored signing so it passes the pre-flight checker from day one. Use when starting a new Android project.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

Set up Android app signing safely — generate an upload keystore, enroll in Play App Signing, and wire a Gradle release signingConfig that reads secrets from a git-ignored keystore.properties / CI (never committed). Use when configuring signing for a Play release.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

Pick an existing workflow for a task or author a new one — recommends workflow + team formation, or generates a fresh workflow YAML with command prompts and team validation.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

Guide the team through writing a change-impact record for IEC 62304 / FDA / ISO 26262 ASIL C+ projects. Surfaces the affected REQ/DES/TEST/CODE artefacts and captures human-attested verification approach.

The English summary is being prepared. Showing the original description.

SteveGJones/ai-first-sdlc-practices41Updated Oct 5, 2026

See all skills by SteveGJones

Report a problem with this skill