Skip to main content

Tutorial: Govern at scale

The Govern stage is where Skillsmith stops being a personal tool and becomes infrastructure. It covers audit logs, SIEM export, security review, and compliance reporting — all backed by the owner/admin/member roles your team already has. Most flows here are Team or Enterprise tier.

This tutorial covers how you personally use Skillsmith at team scale, day to day — not the org-level registry lifecycle (publish, version, deprecate) described on the homepage and in the README. Those are two different things: this page is about auditing and monitoring skill usage across a team; the homepage is about publishing and versioning skills into the team registry.

These tutorials show Skillsmith in Claude Code. For installation in your preferred runtime (Cursor, Continue, Copilot, Windsurf), see Getting Started.

What you will do

  • Query audit logs for a time range and event type
  • Export audit events for compliance reporting
  • Export events for a SIEM (CloudWatch, Splunk, Datadog)
  • Run skill-level and pack-level security audits
  • Read the session-start governance summary at the start of every Claude Code session
  • Export a CycloneDX AI-BOM for compliance evidence

Tools that map to Govern

Surface Tool / command Purpose Tier
MCP skill_audit Audit a single skill for security advisories Team+
MCP skill_pack_audit Audit a pack of skills (bulk advisory check) Individual+
MCP audit_query Query the audit log with filters (event type, actor, time range) Enterprise
MCP audit_export Export audit events for a time range (CSV / JSON) Enterprise
MCP siem_export Export audit events for SIEM ingestion (JSON / syslog / CEF) Enterprise
MCP compliance_report Generate SOC 2, CycloneDX AI-BOM, or JSON compliance reports Team+
CLI skillsmith audit advisories Run security advisory scan against installed skills Team+
CLI skillsmith audit collisions Same as MCP skill_inventory_audit, formatted for the terminal All (deeper modes Team+)

Tier gating varies by tool

skill_audit, compliance_report, and skillsmith audit advisories require a Team or Enterprise license — Free and Individual tiers see typed errors when they invoke these, not stub data. skill_pack_audit only needs Individual+. audit_export, audit_query, and siem_export are Enterprise-only. Configure SKILLSMITH_LICENSE_KEY in your MCP env config; missing keys produce a "license required" error rather than a silent fallback for whichever tools your tier doesn't cover.

Step 1 — Audit a skill for security advisories

Before adding a skill to your team's approved set, run the security audit. It checks for known CVEs in declared dependencies, flagged authors, and structural patterns associated with malicious skills.

Try these prompts:

  • "Audit community/jest-helper for security advisories"
  • "Run a security audit on community/git-commit"
  • "Check this skill for known vulnerabilities"

Or from the terminal:

skillsmith audit advisories community/jest-helper
skillsmith audit advisories --all   # Audit every installed skill

The audit returns a per-skill verdict (clean, advisory, blocked) with links to the underlying advisory feed. Treat blocked verdicts as hard stops; revisit advisory verdicts case-by-case.

Step 2 — Audit a pack of skills in bulk

For team rollouts you typically pack a curated set of skills together — a "frontend pack", "backend pack", "compliance pack" — and need to audit the whole pack at once.

Try this prompt:

  • "Audit my team's approved skill pack for advisories"

The MCP tool skill_pack_audit takes a pack manifest, runs advisory checks on every skill in it, and returns a roll-up report. Use it before publishing internal pack updates so you do not roll out a skill with a new CVE attached.

Step 3 — Query the audit log

Every Skillsmith operation that mutates state (install, uninstall, update, pin, publish) writes an event to the audit log. The audit_query tool lets you read that log back filtered by actor, event type, and time range.

Try these prompts:

  • "Show me Skillsmith audit events from the last 24 hours"
  • "Query the audit log for installs by user @alice in March"
  • "List uninstall events for community/jest-helper"

The MCP returns structured events (timestamp, actor, action, target, metadata). For ad-hoc analysis, ask Claude Code to summarize patterns: "Are there any unusual patterns in last week's audit events?"

Step 4 — Export audit events for compliance

Annual audit cycles, SOC 2 reviews, and customer security questionnaires all need exportable evidence. audit_export emits a sealed JSON or CSV bundle for a time range.

Try this prompt:

  • "Export the Skillsmith audit log for Q1 2026 as JSON"

The export includes a SHA-256 manifest hash so the auditor can verify the bundle has not been tampered with. Store the bundle alongside your other compliance evidence; do not commit it to source control.

Step 5 — Export events for a SIEM

siem_export returns audit events for a time range in one of three formats: json, syslog, or cef. It targets SIEM tooling that ingests those formats (CloudWatch, Splunk, Datadog).

Try this prompt:

  • "Export the last hour of Skillsmith audit events in CEF format"

The SIEM destination is configured via environment variables on the MCP server, not passed as a tool argument — siem_export itself just returns the formatted events for that time range; wiring the actual delivery to your collector is a deployment-time configuration step, not something the tool call does for you. A separate CloudWatch exporter can stream directly to AWS CloudWatch Logs. See the API reference for the wire format details.

Step 6 — Read the session-start governance summary

Team and Enterprise installs include a SessionStart hook in Claude Code that runs the namespace audit on every session and emits a summary on stderr. Free and Individual tiers see no output (intentional — the audit is a paid feature).

A typical Team summary looks like:

[skillsmith] audit: 0 collisions, 2 advisories pending review

The hook is debounced 24 hours (it does not fire on every session), and is bounded to a 5-second wall clock. Disable it with SKILLSMITH_SESSION_AUDIT_DISABLE=1 if it interferes with automation; logs land in ~/.skillsmith/logs/.

Step 7 — Apply rename and edit suggestions from your audit

The Maintain tutorial's namespace audit reports collisions and suggested fixes for your own ~/.claude/ inventory. There's no cross-team rollup yet — each developer runs the audit against their own machine.

Combine the audit output with apply_recommended_edit and apply_namespace_rename to act on those suggestions. Renames apply via the namespace-overrides ledger so subsequent audits respect them. This is per-suggestion remediation, not a configurable rules engine — each rename or edit is applied individually, the same way it is in Maintain.

Both apply tools return a non-mutating preview by default; pass confirmed: true to actually write the change. Neither tool is currently tier-restricted, and team-wide audit rollup across multiple developers doesn't exist yet.

Step 8 — Export a CycloneDX AI-BOM for compliance evidence

Regulatory and procurement obligations — EU AI Act technical-documentation requirements (Article 11 / Annex IV, for systems in the Annex III high-risk categories) and SBOM expectations flowing from US EO 14028 and its implementing OMB guidance — increasingly call for a machine-readable bill of materials, not just an audit log. compliance_report covers this: call it with format: "cyclonedx" to get a CycloneDX 1.5 AI/ML-BOM document of your installed skills, inferred dependencies, MCP server dependencies, and model requirements. The same tool also supports format: "soc2" and format: "json" for other compliance workflows.

Try this prompt:

  • "Generate a CycloneDX AI-BOM for my installed skills"

If your machine hasn't run skill_rescan recently, the export legitimately comes back with dependencyDataSource: "pending-rescan" for some or all skills — the dependency graph hasn't been extracted yet, not a bug. Pass backfillDependencies: true on the same call to trigger that extraction inline during export instead of running skill_rescan separately first; this only takes effect on the native better-sqlite3 driver, not the WASM sql.js fallback some installs use. A mix of rescanned and not-yet-rescanned skills produces dependencyDataSource: "partial" — also expected, not an error.

Validate the output against the CycloneDX 1.5 JSON schema with @cyclonedx/cyclonedx-library's Validation.JsonStrictValidator (the same library Skillsmith validates with internally) or the official web validator at cyclonedx.org.

Newly launched, not yet validated at scale

The CycloneDX AI-BOM export is a new capability. Every generated BOM carries a skillsmith:notice metadata property saying so until design-partner UAT concludes. Review output before relying on it for a regulatory submission, and note that v1 does not include license, vulnerability (VEX), or provenance fields, and does not redact locally-authored or proprietary skills from the export.

Common pitfalls

"License required" on every Govern call

Set SKILLSMITH_LICENSE_KEY in your MCP server's env config (not in your shell — MCP subprocesses do not inherit shell env). The license key resolves your team via the resolve_team_from_license RPC. If you have just upgraded and the error persists, restart the MCP server so it picks up the new env.

Audit log returns empty

Audit logs are scoped to your team. If you query without a license key or with a key that resolves to a different team, you see an empty result. Verify with "Who am I authenticated as?" before assuming the log is empty.

SIEM ingestion drops events

siem_export only formats and returns events — it does not deliver them. Most ingestion drops trace back to how your collector consumes that output: check the format (json, syslog, or cef) matches what your collector expects, and confirm whatever process forwards the export result to your SIEM is running and pointed at the right destination.

Where to next

The full personal-usage sequence ends at Uninstall — deliberately removing skills you no longer need from your own machine. For ongoing day-to-day hygiene, Govern's signals feed back into Maintain's actions.

Reference: MCP audit tools · CLI reference · API reference · Tier pricing.

Previous: Author — Next: Uninstall