Help us improve
Share bugs, ideas, or general feedback.
From cli-anything-web
Compares implemented Python CLI commands using Click against API map in <APP>.md to find missing endpoints, incomplete CRUD, undocumented commands, and dead client methods.
npx claudepluginhub itamarzand88/cli-anything-web --plugin cli-anything-webHow this skill is triggered — by the user, by Claude, or both
Slash command
/cli-anything-web:gap-analyzerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Produce a structured gap report comparing a CLI's documented API surface
Analyzes captured HTTP traffic from raw-traffic.json, identifies protocols and endpoints, designs Click CLI architecture, and implements Python CLI package for API wrappers.
Detects documentation-code drift via grep/AST fact extraction from CLI commands, APIs, env vars, public functions and LLM-graded semantic analysis of mismatches.
Validates OpenAPI, Swagger, GraphQL schemas against backends like Express, FastAPI, Django. Detects breaking changes, generates TypeScript clients from .yaml, .json, .graphql specs.
Share bugs, ideas, or general feedback.
Produce a structured gap report comparing a CLI's documented API surface
against its implemented commands. Used during /refine workflows and
standalone coverage analysis.
You need the path to an existing CLI's agent-harness directory:
{APP_PATH}/agent-harness/ — the CLI root{app} — the app name (e.g., reddit, hackernews)Read all source files to build the set of implemented functionality:
Read all files in {APP_PATH}/agent-harness/cli_web/{app}/commands/:
@click.command() and @<group>.command() decorators[(group, subcommand, [args], [options])]Read {APP_PATH}/agent-harness/cli_web/{app}/core/client.py:
_)[(method_name, http_verb, url_pattern)]For each Click command, trace which client method it calls:
client.method_name() calls{command: client_method}Read {APP_PATH}/agent-harness/{APP_UPPER}.md (the API map):
[(resource, http_verb, url, params, description)]Compare implemented vs documented:
Endpoints in <APP>.md that have no corresponding Click command:
For each documented endpoint:
Find matching client method (by URL pattern or method name)
Find matching Click command (that calls this client method)
If no command found → MISSING
Click commands that call client methods not documented in <APP>.md:
For each Click command:
Find the client method it calls
Find the endpoint in <APP>.md for this method
If no endpoint found → UNDOCUMENTED (possible hallucination)
Client methods that no Click command calls:
For each public client method:
Search all commands/*.py for calls to this method
If no command calls it → DEAD
For each resource group, check CRUD coverage:
For each resource in <APP>.md:
Check which CRUD ops the API supports (list, get, create, update, delete)
Check which are implemented as commands
If any supported op is missing → INCOMPLETE
If {APP_PATH}/traffic-capture/raw-traffic.json exists:
If raw-traffic.json doesn't exist, skip priority scoring and list all gaps alphabetically.
Present the gap report in this format:
Gap Report: cli-web-{app}
━━━━━━━━━━━━━━━━━━━━━━━━━
Coverage: X/Y endpoints (Z%)
Missing (HIGH priority):
{HTTP_METHOD} {url} — {description} ({N} hits in traffic)
...
Missing (MED priority):
{HTTP_METHOD} {url} — {description} ({N} hits)
...
Missing (LOW priority):
{HTTP_METHOD} {url} — {description} ({N} hits)
...
Incomplete CRUD:
{resource}: has {ops} ✓, missing {ops} ✗
...
Dead client methods:
client.{method_name}() — not called by any command
...
Undocumented commands:
{group} {subcommand} — calls client.{method}() but endpoint not in <APP>.md
...
If all endpoints are covered:
Gap Report: cli-web-{app}
━━━━━━━━━━━━━━━━━━━━━━━━━
Coverage: Y/Y endpoints (100%)
No gaps found. All documented endpoints are implemented.