agentsclimarketplace

Inspect

Skill blackwell-systems/agentskills-code-inspector/inspect

Structured code quality audits for AI coding agents. LSP-backed findings, 14 check types, severity-tiered reports.

Install
npx -y skills add blackwell-systems/agentskills-code-inspector --skill inspect

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 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

Launch a code quality inspector agent to audit defined areas of a codebase. Language-agnostic. Applies a fixed check taxonomy — dead symbols, layer violations, scope overload, coverage gaps, silent failures, duplicate semantics, cross-field consistency, missing tests on exported symbols, unwrapped errors, doc drift, interface saturation, unrecovered panics, context propagation breaks, and init side effects — using LSP-first tool strategies with Tier 1A batch analysis via mcp__lsp__get_change_impact. Returns a severity-tiered findings report with per-finding confidence levels and active LSP tier annotation. Supports --json for structured output, --output for persistence, --checks to target specific check types, and --consumer-repos for cross-repo dead symbol verification. Use when auditing files, packages, or cross-cutting concerns for any of these patterns.

SKILL.md

9.1 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

/inspect — Code Quality Inspection

Launch an inspector agent to audit one or more areas of the codebase.

Usage

/inspect <area> [<area> ...] [--json] [--output <path>] [--checks <type1>,<type2>]

Areas can be:

  • A file path: /inspect pkg/result/codes.go
  • A package: /inspect pkg/engine
  • A description: /inspect "error handling across the validation layer"
  • Multiple areas: /inspect pkg/result/codes.go pkg/protocol/validation.go

Flags:

  • --json — emit structured JSON instead of markdown (machine-readable, enables downstream tooling)
  • --output <path> — persist report to disk; path must be under docs/inspections/ or end in -inspection.md / -inspection.json. Example: --output docs/inspections/2026-04-04.md. If omitted, defaults to docs/inspections/<datetime>.md (e.g. docs/inspections/2026-04-11T14-32-00.md).
  • --checks <type1>,<type2> — apply only the listed check types, skipping others. Example: --checks dead_symbol,layer_violation
  • --consumer-repos <root1>,<root2> — optional comma-separated list of consumer repo absolute paths. Enables cross-repo dead symbol verification: symbols classified as dead locally are checked against consumer repos via mcp__lsp__get_cross_repo_references before being reported. Activates the cross_repo_dead_symbol check type.

What it checks

The inspector applies these checks where relevant — you do not need to specify them:

CheckWhat it finds
dead_symbolDefined but never referenced (Tier 1A: mcp__lsp__get_change_impact batch → high confidence; Tier 1B: mcp__lsp__get_references → high confidence; Grep fallback → low confidence)
layer_violationImport crosses an architectural boundary
scope_analysisFunction or module doing too many things
coverage_gapUnhandled input, error, or code path
silent_failureError suppressed rather than returned
duplicate_semanticsTwo symbols that mean the same thing
cross_field_consistencyRelated fields with no consistency enforcement
test_coverageExported symbol with no test references (Tier 1A: mcp__lsp__get_change_impact test_callers field → more precise than Grep; Tier 1B: mcp__lsp__get_references; Grep fallback)
error_wrappingError returned without context (opaque call stack)
doc_driftFunction documentation no longer matches its signature
interface_saturationInterface with too many methods; callers use a narrow subset
panic_not_recoveredUnhandled crash in a goroutine, thread, or async context
context_propagationFunction receives a context/token but creates a fresh root for callees
init_side_effectsModule initializer performs I/O, network calls, or global mutation

Execution

Launch the inspector agent with the user's areas as input. Pass the current working directory as the repo root. Always set run_in_background: true so the audit runs asynchronously and the user can continue working while it runs.

Pre-flight: warm up LSP and ensure permissions. Background agents cannot receive interactive permission prompts for MCP tools. Two requirements:

  1. The user's global settings must include mcp__lsp__* tools in permissions.allow (in ~/.claude/settings.json). Without this, every LSP call from the background agent will be denied silently and the inspector will hang.
  2. Call mcp__lsp__start_lsp in the parent session first, then set the gate flag:
# 1. Start LSP in the parent session (prompts once for permission — approve it)
mcp__lsp__start_lsp(root_dir="<repo_root>")

# 2. Set the global ready flag so the inspector gate hook passes for background agents
touch /tmp/.inspector-lsp-global-ready
Launch inspector agent with:
- Areas to inspect: [user's areas]
- Repo root: [resolve the actual repo root from the area path — e.g. if area is /Users/x/code/my-repo/pkg/foo, repo root is /Users/x/code/my-repo]
- Flags: pass through --json, --checks as provided. For --output: if the user provided a path, use it; if omitted, default to `docs/inspections/<YYYY-MM-DDTHH-MM-SS>.md` using the current datetime relative to the repo root
- run_in_background: true
- Instructions: apply the check taxonomy, report findings with severity and file:line citations
- First instruction to agent: DO NOT call mcp__lsp__start_lsp (already running, gate flag is set). Go directly to Step 0 open_document calls, then warm-up check.

Critical: LSP tool usage. Include this instruction verbatim in the inspector agent's launch prompt — the agent definition alone is not sufficient:

LSP enforcement: You have two LSP tool surfaces. Use them in this priority order:

Step 0 — startup sequence (required, do this first, in order):

  1. Initialize pointing at the correct repo root (start_lsp is idempotent — safe to call even if already running): mcp__lsp__start_lsp(root_dir="<repo_root>")

  2. Open one file per package you plan to audit. gopls does not index a package until at least one file in it is opened. Without this, get_references returns "no package metadata" for all symbols in that package:

    mcp__lsp__open_document(file_path="<repo_root>/internal/lsp/client.go", language_id="go")
    mcp__lsp__open_document(file_path="<repo_root>/internal/tools/workspace.go", language_id="go")
    # … one representative file per package being audited
    
  3. Warm-up check (mandatory before trusting zero-reference results): Pick one symbol you know is actively used (e.g. a widely-called function in the first package). Call get_references on it. If it returns [], the workspace is not yet indexed — wait 3–5 seconds and retry. Do not proceed to dead-symbol checks until a known-active symbol returns ≥ 1 reference.

1A. mcp__lsp__get_change_impact (Tier 1A — batch, preferred for dead_symbol and test_coverage): Call once per file; returns all exported symbols with non_test_callers and test_callers counts. Example: mcp__lsp__get_change_impact(changed_files=["/abs/path/file.go"], include_transitive=false) non_test_callers == 0 AND test_callers == 0 → dead. non_test_callers == 0 AND test_callers > 0 → test-only. If unavailable or errors: proceed to Tier 1B.

1B. mcp__lsp__get_references (Tier 1B — per-symbol fallback for dead_symbol): Call this for per-symbol reference lookups. Returns 1-based locations. Example: mcp__lsp__get_references(file_path="/abs/path/file.go", language_id="go", line=22, column=6) Zero results = dead symbol (high confidence). If the call errors, fall back to option 2.

2. LSP built-in tool (fallback or for hover/other operations): Use for hover, go-to-definition, and as fallback when mcp__lsp-mcp is unavailable. LSP(operation="hover", filePath="/abs/path/file.ts", line=14, character=10)

Do NOT shell out to gopls/rust-analyzer/tsserver via Bash. If both LSP surfaces fail, fall back to Grep and annotate as reduced confidence.

The agent works autonomously. When it completes you will be notified — surface the report directly to the user at that point.

JSON output and validation

When --json is passed, the agent emits a structured report conforming to assets/schema.json. To validate a report:

scripts/validate-report report.json
# or: cat report.json | scripts/validate-report

Exit 0 = valid, 1 = schema errors, 2 = usage error.

What ships with it: 4 files

24.5 KB alongside SKILL.md, 1 of them executable

assets/

references/

scripts/

Keep looking

Skills are one crate of 327,132. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.