Best for
- Use when specialized agents feel under-used, before pruning the catalog, or after wiring new agent spawn paths.
yonatangross/orchestkit/src/skills/audit-activation/SKILL.md
Audits OrchestKit sub-agent activation from real spawn telemetry — computes the generic-vs-specialist spawn split, flags dormant agents (never fired), and classifies each as fires/mis-triggered/niche. The agent-side analogue of audit-skills. Use when specialized agents feel under-used, before pruning the catalog, or after wiring new agent spawn paths.
Decision brief
Reports whether OrchestKit's specialized sub-agents are actually being activated, from real spawn telemetry — not vibes. Scope is agent activation, not skill quality.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Declared | Source record | Install path and trigger |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/yonatangross/orchestkit --skill "src/skills/audit-activation"Inspect the Agent Skill "audit-activation" from https://github.com/yonatangross/orchestkit/blob/4e5c1327b7d7902022ee69328e12db1f6a88f390/src/skills/audit-activation/SKILL.md at commit 4e5c1327b7d7902022ee69328e12db1f6a88f390. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Run the script FIRST — every audit starts by running (or, when execution is impossible, explicitly referencing) the deterministic collector:
Review the “Quick Reference” section in the pinned source before continuing.
Review the “CRITICAL: Task Management is MANDATORY (CC 2.1.16)” section in the pinned source before continuing.
1. Data-source line (first line of the report) — verbatim form: Data: scripts/run-activation-audit.sh over .claude/logs/subagent-spawns.jsonl (window: → ). The literal path .claude/logs/subagent-spawns.jsonl MUST appear in this line — "telemetry from the spawn log" or any paraph…
Bucket by reference counts, never by description quality. For each dormant agent, count its real spawn references: grep -rc "subagenttype=ork:" src/skills/ (plus agent:/team-map mentions in src/agents/). Show the evidence: cite that grep command in the report and put each agent'…
Permission review
The documentation asks the agent to run terminal commands or scripts.
**Run the script FIRST** — every audit starts by running (or, when execution is impossible, explicitly referencing) the deterministic collector:The documentation asks the agent to run terminal commands or scripts.
bash "${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/scripts/run-activation-audit.sh" # add --json for machine outputEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 223 | Source | Repository attention, not individual Skill quality |
| Compatibility | 1 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Reports whether OrchestKit's specialized sub-agents are actually being activated, from real spawn telemetry — not vibes. Scope is agent activation, not skill quality.
It answers: "Do my specialized agents get spawned, or does the model default to generic Explore/general-purpose?" Read-only — it never edits agents.
Why this exists: a 2026-06 audit found only ~14% of agent spawns hit the 36-agent catalog vs ~74% generic, with 17/36 agents dormant — and that agents fire ~1:1 with how often a high-traffic skill names them via
subagent_type=. Description rewrites ("use proactively") were A/B-tested and gave Δ0, so this skill measures wiring + usage, not description prose. Seedocs/feat--activation-audit/.
| Category | File | Impact | When to Use |
|---|---|---|---|
| Activation Checks | ${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/rules/activation-checks.md | HIGH | What to compute per agent |
| Classification | ${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/rules/activation-status.md | HIGH | fires / mis-triggered / niche / dead buckets |
| Output Format | ${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/references/output-format.md | MEDIUM | Report layout + the spawn-split summary |
TaskCreate(subject="Audit activation: agent spawn analysis",
description="Computing generic-vs-specialist split + dormancy from spawn telemetry",
activeForm="Auditing agent activation")
TaskCreate(subject="Read spawn telemetry", activeForm="Reading subagent-spawns.jsonl")
TaskCreate(subject="Compute split + dormancy", activeForm="Computing split and dormant agents")
TaskCreate(subject="Classify & render", activeForm="Classifying agents and rendering report")
TaskUpdate(taskId="3", addBlockedBy=["2"])
TaskUpdate(taskId="4", addBlockedBy=["3"])
Run the script FIRST — every audit starts by running (or, when execution is impossible, explicitly referencing) the deterministic collector:
bash "${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/scripts/run-activation-audit.sh" # add --json for machine output
It reads the spawn telemetry, joins it against src/agents/, and prints the split, per-agent fire counts, never-fired list, and top-5 concentration. Never eyeball the JSONL by hand when the script exists.
Inventory — Glob src/agents/*.md (exclude README/INDEX/CONTRIBUTING) for the catalog.
Read telemetry — the FRESH stream is .claude/logs/subagent-spawns.jsonl (writers: pretool/task/spawn-intent-logger + subagent-start/subagent-validator). The legacy ~/.claude/analytics/agent-usage.jsonl is DEAD (orphaned in a refactor) — never read it.
Compute — all checks from Read("${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/rules/activation-checks.md"); the Report Contract below lists the mandatory ones.
Classify — bucket every agent using the Four Buckets below (full procedure: Read("${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/rules/activation-status.md")).
Render — output per Read("${CLAUDE_PLUGIN_ROOT}/skills/audit-activation/references/output-format.md"), satisfying the Report Contract.
Data: scripts/run-activation-audit.sh over .claude/logs/subagent-spawns.jsonl (window: <start> → <end>). The literal path .claude/logs/subagent-spawns.jsonl MUST appear in this line — "telemetry from the spawn log" or any paraphrase is a contract violation. Also state, once, that the legacy ~/.claude/analytics/agent-usage.jsonl was NOT read (dead stream). A report that presents numbers without citing the script and the literal file path is invalid.rules/activation-status.md)Bucket by reference counts, never by description quality. For each dormant agent, count its real spawn references: grep -rc "subagent_type=ork:<name>" src/skills/ (plus agent:/team-map mentions in src/agents/). Show the evidence: cite that grep command in the report and put each agent's ref-count (with an example source file, e.g. src/skills/cover/SKILL.md) in the classification table — telemetry proves firing, only the grep proves wiring. Always render all four buckets — including ACTIVE, and including empty buckets as "(0)" — even when the question asks only about dormant agents, citing rules/activation-status.md as the procedure.
| Bucket | Condition | Action |
|---|---|---|
| ACTIVE | fired ≥1× in the telemetry window | none — it works |
| MIS-TRIGGERED | dormant, has references but no real subagent_type= spawn from a busy skill | wire a spawn from a high-traffic skill |
| NICHE | dormant, rare-by-nature domain (design, multimodal, perf, IaC, security-LLM) AND wired somewhere | keep — low use expected |
| DEAD | dormant AND zero references in ANY skill or agent | prune candidate |
DEAD requires zero references anywhere — an agent with even one reference is never DEAD; it is mis-triggered or niche. Only DEAD agents are prune candidates.
subagent_type=ork:<name> spawn from a high-traffic skill (e.g. implement, cover, review-pr), never prose changes..claude/logs/subagent-spawns.jsonl must appear verbatim in your data-source line (it is the fresh stream you read); never substitute a paraphrase like "the spawn telemetry", and never cite the dead agent-usage.jsonl as a source.Data: scripts/run-activation-audit.sh over .claude/logs/subagent-spawns.jsonl (window: 2026-05-23 → 2026-07-14)
Not read: ~/.claude/analytics/agent-usage.jsonl (dead stream — orphaned writer)
## Spawn split
Total 560 spawns: 412 generic (74%) / 78 ork-catalog (14%) / 70 other-plugin (12%)
## Concentration
Top-5 = 63/78 catalog spawns (81%): web-research-analyst 26, code-quality-reviewer 21,
test-generator 8, debug-investigator 5, backend-system-architect 3
## Never-fired agents (6 of 20 — ALL listed, refs via grep -rc "subagent_type=ork:<name>" src/skills/)
- emulate-engineer (3 refs) -> MIS-TRIGGERED
- expect-agent (3 refs) -> MIS-TRIGGERED
- design-system-architect (2 refs) -> NICHE (rare domain, wired)
- multimodal-specialist (1 ref) -> NICHE (rare domain, wired)
- infrastructure-architect (2 refs) -> NICHE (rare domain, wired)
- event-driven-architect (1 ref) -> MIS-TRIGGERED
Caveat: "Never fired" means absent from the available telemetry window — a strong
signal, but NOT proof of zero lifetime use; the window may have gaps.
## Buckets (rules/activation-status.md)
ACTIVE (14) | MIS-TRIGGERED (3) | NICHE (3) | DEAD (0 — none: every agent has >=1 reference)
## Fixes (wiring only — never description rewrites)
- emulate-engineer: add subagent_type=ork:emulate-engineer spawn from cover (src/skills/cover/SKILL.md)
- expect-agent: add subagent_type=ork:expect-agent spawn from review-pr
After this audit, run the deeper experiment if you suspect descriptions: docs/feat--activation-audit/agent-routing-experiment.mjs (isolated A/B selection harness).
telemetry-inspect — validates the telemetry data-plane this skill reads fromanalytics — raw usage queries across projectsdoctor — broader plugin health (manifests, hooks, memory budget)Eval note: this skill is direct-only (
disable-model-invocation: true), so quality evals run in TIER-1 unit mode (--force-skill) — routed evals are impossible by construction.
Frequently asked questions
Reports whether OrchestKit's specialized sub-agents are actually being activated, from real spawn telemetry — not vibes. Scope is agent activation, not skill quality.
The source record exposes this install command: npx skills add https://github.com/yonatangross/orchestkit --skill "src/skills/audit-activation". Inspect the command and pinned source before running it.
The pinned source record declares support for: claude code.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
brucesongs/kali-claw
Insecure Design (OWASP A06:2025) focuses on security flaws in system architecture and design phases, rather than code implementation-level bugs.
vasilyu1983/AI-Agents-public
Scans public GitHub repos for agent skills, dev practices, and code patterns. Use when enriching skills, setting team policy, or researching a build domain.
brucesongs/kali-claw
Binary reverse engineering covers the complete chain from static analysis, dynamic debugging, to vulnerability discovery, exploit development, and malware analysis.
Jamie-BitFlight/claude_skills
Create high-quality Claude Code agents from scratch or by adapting existing agents as templates. Use when the user wants to create a new agent, modify agent configurations, build specialized subagents, or design agent architectures. Guides through requirements gathering, template selection, and agent file generation following Anthropic best practices (v2.1.63+).