Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/stevegjones-kb-lint
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/kb-lint
What's inside
- Skill name
kb-lint- Description
- Health-check the project knowledge base. Looks for contradictions between files, stale claims that newer sources have superseded, orphan files with no inbound cross-references, important concepts mentioned but lacking their own page, missing cross-references, and data gaps. Returns a structured report; does not auto-fix.
- License
- MIT
- Instructions
- 349 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Knowledge Base Lint
Periodic health-check for the project's knowledge base. This is the **lint** operation in the three-operations model (ingest / query / lint), adopted from Karpathy's LLM Wiki gist.
The staleness check that runs in environment validation catches one kind of drift (file changed since last index). Lint catches the other kinds: logical drift, orphan accumulation, missing concepts, contradictions, gaps. Both are needed.
## Arguments
Optional `--scope <pattern>` to limit lint to a subset of library files. Default is the entire library.
Optional `--strict-layer` to fail with a non-zero exit when any library file has a missing or invalid `layer:` frontmatter field. Without this flag, layer violations are reported as warnings only in the Layer Compliance section.
Optional `--strict-confidence` to fail with a non-zero exit when any library file has a missing or invalid `confidence:` field. Without this flag, confidence violations are reported as warnings in the Layer Compliance section.
Optional `--auto-fix` to run the mechanical frontmatter fixer (`kb_lint_fix.py`) before lint. Auto-fix adds missing `layer:`, `confidence:`, and `cross_references:` fields with safe defaults, and creates stub frontmatter (with `confidence: low`, `status: draft`) for files that have no frontmatter at all. After fixing, the shelf-index is rebuilt before lint proceeds.
Examples:
- `--scope dora-*.md` — lint only DORA-related files
- `--scope library/architecture/*.md` — lint a sub-directory
- `--strict-layer` — enforce layer compliance (used by this repo's CI)
- `--strict-layer --scope *.md` — combine both
- `--strict-confidence` — enforce confidence compliance
- `--auto-fix --strict-layer --strict-confidence` — fix mechanics, then enforce both
- (no argument) — lint everything, warnings only
## Preflight
- Verify the knowledge base is configured.
- Verify the shelf-index is fresh: invoke `kb-rebuild-indexes` first if any library files are newer than the index. (The lint output is only meaningful against an up-to-date index.)
- Verify there are at least 3 library files. Linting an empty or near-empty library is not useful.
## Steps
### -1. Auto-fix mechanical issues (only when --auto-fix is passed)
If `--auto-fix` was passed, run the mechanical fixer before any other step:
```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:
mod = importlib.util.module_from_spec(spec)
sys.modules['sdlc_knowledge_base_scripts'] = mod
spec.loader.exec_module(mod)
from sdlc_knowledge_base_scripts.kb_lint_fix import fix_missing_fields
from pathlib import Path
result = fix_missing_fields(Path('<library_path>'))
print(f'Auto-fix: {result.files_fixed} file(s) fixed, {result.fields_added} field(s) added')
if result.errors:
print(f'Errors: {result.errors}')
"
```
Replace `<library_path>` with the resolved library path from the KB config.
After fixing, run `kb-rebuild-indexes` to update the shelf-index before proceeding to Step 0.
If `--auto-fix` was NOT passed, skip this step entirely.
### 0. Layer compliance check (always runs)
Run the pure-Python layer compliance check:
```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:
mod = importlib.util.module_from_spec(spec)
sys.modules['sdlc_knowledge_base_scripts'] = mod
spec.loader.exec_module(mod)
from sdlc_knowledge_base_scripts.kb_config import allowed_layers, check_layer_compliance
from pathlib import Path
layers = allowed_layers(Path('.'))
violations = check_layer_compliance(Path('<library_path>'), layers)
if violations:
for path, msg in violations:
print(f' {path}: {msg}')
sys.exit(1)
else:
sys.exit(0)
"
```
Replace `<library_path>` with the resolved library path from the KB config.
If this exits non-zero **AND** `--strict-layer` was passed: stop and report the Layer Compliance violations. Do not proceed to Step 1. Exit non-zero.
If this exits non-zero but `--strict-layer` was NOT passed: record the violations as warnings and continue to Step 1 — include them in the "Layer Compliance" section of the lint report.
If this exits zero: no layer issues. Continue to Step 1.
Also run confidence compliance in the same Step 0 pass:
```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:
mod = importlib.util.module_from_spec(spec)From SteveGJones/ai-first-sdlc-practices, MIT.
More from SteveGJones/ai-first-sdlc-practices
- 0.643score
kb-ingest-bulk
SteveGJones
Parallel map-reduce bulk ingest for large source sets.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-query
SteveGJones
Query the project knowledge base.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-ingest-batch
SteveGJones
Drive agent-knowledge-updater over a batch of staged files in library/raw/.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-rebuild-indexes
SteveGJones
Rebuild the knowledge base shelf-index with hash-based change detection.
SkillAFreshness: A★ 41Claude Code +9 - 0.555score
android-signing-setup
SteveGJones
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…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
ios-ci
SteveGJones
Generate a GitHub Actions workflow for iOS — macOS runner, SPM/DerivedData caching, build, test on a simulator matrix, run the iOS pre-flight checks, and…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
ios-scaffold
SteveGJones
Scaffold a new iOS app with SDLC and submission-safe defaults — diffable project files, app + test targets, deployment-target policy, a git-stamped build…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-play-release
SteveGJones
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…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-scaffold
SteveGJones
Scaffold a new Android app with SDLC and Play-safe defaults — Kotlin/Compose Gradle project with version catalog, convention plugins, module layout, a…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-ci
SteveGJones
Generate a GitHub Actions workflow for Android — JDK + Gradle caching, build, unit + instrumented tests, Android Lint, run the Android pre-flight checks, and…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
council-policy
SteveGJones
Policy for the cross-model council: when to hand off to an installed sibling plugin's own slash command (`/codex:*`) versus dispatching our…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
ios-signing-doctor
SteveGJones
Diagnose and fix iOS code-signing, provisioning, and entitlement failures — the "no signing certificate / no profiles / doesn't match / get-task-allow"…
SkillCFreshness: C★ 41Claude Code +9
Signals
- Stars
- 41
- Forks
- 6
- Open issues
- 37
- Last commit (this folder)
- May 6, 2026 (5 months ago)
- Last release
- Aug 10, 2025 (1 year ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from SteveGJones
- 0.643score
kb-ingest-bulk
SteveGJones
Parallel map-reduce bulk ingest for large source sets.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-rebuild-indexes
SteveGJones
Rebuild the knowledge base shelf-index with hash-based change detection.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-ingest-batch
SteveGJones
Drive agent-knowledge-updater over a batch of staged files in library/raw/.
SkillAFreshness: A★ 41Claude Code +9 - 0.640score
kb-query
SteveGJones
Query the project knowledge base.
SkillAFreshness: A★ 41Claude Code +9 - 0.555score
council-policy
SteveGJones
Policy for the cross-model council: when to hand off to an installed sibling plugin's own slash command (`/codex:*`) versus dispatching our…
SkillCFreshness: C★ 41Claude Code +9 - 0.555score
android-ci
SteveGJones
Generate a GitHub Actions workflow for Android — JDK + Gradle caching, build, unit + instrumented tests, Android Lint, run the Android pre-flight checks, and…
SkillCFreshness: C★ 41Claude Code +9
Cite this page
kb-lint skill. Agent Mart. https://agentmart.dev/skills/stevegjones-kb-lint (last updated 2026-10-24)