본문으로 건너뛰기
cccskills
무료GitHub에 공개

agent-capability-analyzer

Runs the description-drift experiment — spawns all Claude Code agents simultaneously to collect self-reported capabilities, then compares them against static frontmatter descriptions to reveal how reliable orchestrator routing based on descriptions actually is. Use when measuring description drift across the agent fleet, re-running the capability collection experiment, analyzing a specific agent's self-reported capabilities, or auditing whether frontmatter descriptions accurately reflect agent behavior.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구AWS
설치 방법 보기

포함된 파일(4)

  • SKILL.md8.6 KB
  • resources/describe-your-capabilities.template.md2.0 KB
  • scripts/populate-agent-descriptions.mjs24.4 KB
  • scripts/update-agent-map.mjs7.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

If the user's intent does not match this skill, route through /plugin-creator:plugin-lifecycle.

Agent Capability Analyzer

Overview

Description drift occurs when an agent's frontmatter description no longer matches what the agent actually does. Orchestrators use descriptions for routing decisions — stale descriptions cause misrouting. This skill collects self-reported capabilities from agents and compares them against their static frontmatter descriptions to quantify the gap.

The dataset lives in a SQLite store (agent-map.sqlite relative to $CLAUDE_PROJECT_DIR) with two fields per agent: description (from frontmatter) and capabilities (self-reported). The dump command exports both fields to JSON for analysis.

The canonical dataset location is .plugin-creator/audits/agent-map.json.

Invocation Mode

Choose invocation mode before spawning any Tasks. The routing decision is based on how many agents are being checked.

flowchart TD
    Start([Capability check requested]) --> Q1{How many agents?}
    Q1 -->|1 agent| Single[Single-agent mode]
    Q1 -->|2 or more agents| Multi[Multi-agent mode]

    Single --> S1[Read ./resources/describe-your-capabilities.template.md]
    S1 --> S2["Append to prompt:<br>'Return only the tagged content.<br>Do not run any commands.'"]
    S2 --> S3["Dispatch agent-id<br>Template prompt — AGENT_ID_HERE substituted"]
    S3 --> S4[Orchestrator receives XML-tagged text directly]
    S4 --> S5{agent-map.json exists?}
    S5 -->|Yes| S6["Read .plugin-creator/audits/agent-map.json<br>Extract description field for this agent"]
    S5 -->|No| S7[Read description from agent frontmatter]
    S6 --> S8[Run gap analysis inline — see Gap Analysis section]
    S7 --> S8

    Multi --> M1[Read ./resources/describe-your-capabilities.template.md]
    M1 --> M2["Spawn all agent Tasks simultaneously<br>Template as-is — AGENT_ID_HERE substituted per agent"]
    M2 --> M3{Agent has Bash access?}
    M3 -->|Yes — agent runs update script| M4[Agent writes to SQLite directly<br>Confirms 'Updated agent-map.sqlite']
    M3 -->|No — agent returns XML text| M5["Orchestrator writes via script:<br>node scripts/update-agent-map.mjs --name 'agent-id' --capabilities 'TEXT'"]
    M4 --> M6[Wait for ALL Tasks to complete]
    M5 --> M6
    M6 --> M7["Dump to .plugin-creator/audits/agent-map.json<br>node scripts/update-agent-map.mjs dump --file .plugin-creator/audits/agent-map.json"]
    M7 --> M8[Run gap analysis — see Gap Analysis section]

Single-agent mode — the orchestrator receives the XML-tagged response directly in the Task reply. Gap analysis runs inline: compare the capabilities text against the agent's description field, reading from .plugin-creator/audits/agent-map.json if it exists, otherwise from the agent's frontmatter. No script execution is required in this mode.

Multi-agent mode — uses SQLite via the scripts. The orchestrator waits for all Tasks to complete before dumping. Agents that lack Bash access return their XML text and the orchestrator writes it via update-agent-map.mjs directly. The final dump produces .plugin-creator/audits/agent-map.json as the analysis input.

Template usage — ./resources/describe-your-capabilities.template.md is used in both modes. In single-agent mode, append the instruction Return only the tagged content. Do not run any commands. to the end of the prompt. In multi-agent mode, use the template as-is with AGENT_ID_HERE substituted for each agent's id.

Setup (First Time Only)

The scripts require the level npm package. Verify package.json contains:

"level": "^10.0.0"

Then install from repo root:

pnpm install

Full Experiment Workflow

Run this to collect self-reported capabilities from all agents simultaneously.

  1. Seed description fields from agent frontmatter:
node $CLAUDE_PLUGIN_ROOT/scripts/populate-agent-descriptions.mjs

Output: Populated N agents, skipped M

  1. Read the capabilities prompt template:

Read $CLAUDE_PLUGIN_ROOT/resources/describe-your-capabilities.template.md — this is the exact prompt each agent receives.

  1. Spawn all known agents simultaneously via the Agent tool. For each agent, use the template as the prompt (replacing AGENT_ID_HERE with the agent's id). Each agent runs the update script itself.

    Agents that lack Bash access return their capabilities as text. Collect those responses and write them directly from the orchestrator:

    node $CLAUDE_PLUGIN_ROOT/scripts/update-agent-map.mjs --name "agent-id" --capabilities 'CAPABILITIES_TEXT'
    
  2. After all Tasks complete, export the dataset:

node $CLAUDE_PLUGIN_ROOT/scripts/update-agent-map.mjs dump --file .plugin-creator/audits/agent-map.json
  1. Perform gap analysis — see Gap Analysis section below.

Single-Agent Analysis

When you only want to check one agent:

  1. Read $CLAUDE_PLUGIN_ROOT/resources/describe-your-capabilities.template.md
  2. Dispatch <agent-id> with the template as the prompt after replacing AGENT_ID_HERE.
  3. The agent writes its own result to the DB
  4. Dump and inspect:
node $CLAUDE_PLUGIN_ROOT/scripts/update-agent-map.mjs dump --file .plugin-creator/audits/agent-map.json
  1. Perform gap analysis on the agent — see Gap Analysis section below.

Looking Up Agent Data by Name

To retrieve a specific agent's data from the dataset, read the JSON file and extract the entry:

node -e "const d=JSON.parse(require('fs').readFileSync('.plugin-creator/audits/agent-map.json','utf8')); const k='AGENT_NAME'; console.log(JSON.stringify(d[k],null,2));"

Replace AGENT_NAME with the agent id (e.g. plugin-creator:subagent-refactorer).

Alternatively, use the Read tool on .plugin-creator/audits/agent-map.json and locate the entry by key.

Gap Analysis

For each agent (or a target agent), compare description against capabilities and identify entries in three categories:

Category 1 — In description but absent from capabilities

These are things the frontmatter says the agent does, but the agent did not self-identify. Possible causes: description is aspirational, the agent's training doesn't surface that behavior unless prompted, or the agent's scope has narrowed since the description was written. Flag these as underclaimed capabilities.

Category 2 — In capabilities but absent from description

These are things the agent self-reports doing that are not in the frontmatter description. These cause misrouting: the orchestrator does not know the agent can do them. Flag these as undocumented capabilities.

Category 3 — Out-of-lane claims

These are capabilities the agent self-reports that fall outside the domain implied by its name and plugin context. For example, a documentation-engineer agent claiming to perform security audits, or a performance-monitor claiming to write production code. These indicate either description drift in the other direction (the agent has been trained too broadly) or self-report inflation. Flag these as scope violations.

Gap Analysis Output Format

For each agent analyzed, produce a structured report:

Agent: <agent-id>
Description: <description field>
Capabilities: <capabilities field>

Underclaimed (in description, not in capabilities):
- <item>

Undocumented (in capabilities, not in description):
- <item>

Scope violations (outside expected domain):
- <item>

Verdict: ALIGNED | MINOR_DRIFT | SIGNIFICANT_DRIFT | SCOPE_VIOLATION

Use ALIGNED when all three lists are empty or contain only minor phrasing differences. Use SIGNIFICANT_DRIFT when Category 1 or 2 lists contain substantive functional differences. Use SCOPE_VIOLATION when Category 3 is non-empty.

Resources

  • ./resources/describe-your-capabilities.template.md — standardized prompt template for capability collection. Read this file before spawning agents.
  • ./scripts/update-agent-map.mjs — SQLite-backed metadata store (write, dump, and load modes)
  • ./scripts/populate-agent-descriptions.mjs — batch-seeds description fields from frontmatter

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Add automated documentation updater to any Claude skill. Creates a Python sync script that downloads upstream docs, processes markdown for AI consumption, and maintains local cache with configurable refresh. Collects template variables, then delegates implementation through 5-phase workflow. Use when adding auto-updating reference documentation to plugins or skills.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

SAM-style feature initiation workflow — discovery through codebase analysis, architecture spec, task decomposition, validation, and context manifest. Use when a user asks to add a feature, plan a feature, or convert an idea into an executable SAM plan.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

Browser automation for AI agents using the agent-browser CLI and Playwright. Use when navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, logging into sites, or automating any browser task. Triggers on "open a website", "fill out a form", "click a button", "scrape data", "test this web app", "automate browser actions", or any programmatic web interaction request.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

Create or adapt Claude Code agent definitions. Use when creating an agent, changing subagent configuration, selecting agent scope, or designing a specialized delegation role.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

Relay agent results without corrupting exact counts, failure reasons, source scope or status. Use when receiving agent output or handing results to another actor; distinguish observations from attributed conclusions and reference complete artifacts.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Jamie-BitFlight/claude_skills672026년 10월 18일 업데이트

Jamie-BitFlight의 스킬 모두 보기

이 스킬의 문제 신고