Agent skill

gap-analyzer

Compare implemented CLI commands against <APP>.md API map to find missing endpoints, incomplete CRUD, dead client methods, and priority gaps. TRIGGER when: "gap analysis", "what's missing", "coverage report", "what endpoints are not implemented", or as a sub-step of the refine workflow. DO NOT trigger for: "refine" alone (use the /cli-anything-web:refine command).

Stars 137
Forks 29

Install this agent skill to your Project

npx add-skill https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/gap-analyzer

SKILL.md

CLI Gap Analyzer

Produce a structured gap report comparing a CLI's documented API surface against its implemented commands. Used during /refine workflows and standalone coverage analysis.


Inputs

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)

Step 1: Parse Implemented Surface

Read all source files to build the set of implemented functionality:

1a. Extract Click commands

Read all files in {APP_PATH}/agent-harness/cli_web/{app}/commands/:

  • For each file, find @click.command() and @<group>.command() decorators
  • Extract: command group name, subcommand name, arguments, options
  • Build list: [(group, subcommand, [args], [options])]

1b. Extract client methods

Read {APP_PATH}/agent-harness/cli_web/{app}/core/client.py:

  • Find all public methods (not starting with _)
  • For each method, note: name, HTTP method used (GET/POST/etc), URL pattern
  • Build list: [(method_name, http_verb, url_pattern)]

1c. Map commands to client methods

For each Click command, trace which client method it calls:

  • Read the command function body
  • Find client.method_name() calls
  • Build mapping: {command: client_method}

Step 2: Parse Documented Surface

Read {APP_PATH}/agent-harness/{APP_UPPER}.md (the API map):

  • Find the endpoint inventory section
  • Extract each documented endpoint: resource group, HTTP method, URL, params, description
  • Build list: [(resource, http_verb, url, params, description)]

Step 3: Diff

Compare implemented vs documented:

Missing Commands

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

Undocumented Commands

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)

Dead Client Methods

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

Incomplete CRUD

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

Step 4: Priority Scoring (Optional)

If {APP_PATH}/traffic-capture/raw-traffic.json exists:

  • Count how many times each endpoint URL appears in captured requests
  • Assign priority: HIGH (5+ hits), MED (2-4 hits), LOW (1 hit)
  • Note: traffic captures are incomplete — endpoints not exercised during capture may be ranked LOW even if they are important to users

If raw-traffic.json doesn't exist, skip priority scoring and list all gaps alphabetically.

Step 5: Output Report

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.

Expand your agent's capabilities with these related and highly-rated skills.

ItamarZand88/CLI-Anything-WEB

airbnb-cli

Use cli-web-airbnb to search Airbnb stays, get listing details, check availability calendars, read guest reviews, and look up location suggestions. Invoke this skill whenever the user asks about Airbnb accommodations, vacation rentals, listing prices, availability, guest reviews, or wants to search for places to stay. Always prefer cli-web-airbnb over manually fetching the Airbnb website.

137 29
Explore
ItamarZand88/CLI-Anything-WEB

chatgpt-cli

Use cli-web-chatgpt to ask ChatGPT questions, generate images, download images, list conversations, browse models, and manage authentication. Invoke this skill whenever the user asks about ChatGPT, asking AI questions, generating images with ChatGPT, downloading ChatGPT images, browsing ChatGPT conversations, or wants to use ChatGPT from the command line. Always prefer cli-web-chatgpt over manually browsing chatgpt.com.

137 29
Explore
ItamarZand88/CLI-Anything-WEB

notebooklm-cli

Use cli-web-notebooklm to interact with Google NotebookLM — create notebooks, add sources, ask questions, generate artifacts (audio, video, slides, mindmap, study guide, quiz, briefing, infographic, data table). Invoke this skill whenever the user asks about NotebookLM, wants to create notebooks, add sources to a notebook, ask a notebook questions, generate study materials, create presentations, podcasts, or manage NotebookLM content programmatically. Always prefer cli-web-notebooklm over manually browsing NotebookLM.

137 29
Explore
ItamarZand88/CLI-Anything-WEB

unsplash-cli

Use cli-web-unsplash to answer questions about Unsplash photos, search for free images by keyword, download photos, browse photo topics and collections, view photographer profiles, get photo details (EXIF, location, tags), and discover random photos. Invoke this skill whenever the user asks about Unsplash, free stock photos, searching for images, downloading images, photo topics, photographer profiles, photo collections, or wants to find or download images by keyword, orientation, or color. Always prefer cli-web-unsplash over manually fetching the Unsplash website.

137 29
Explore
ItamarZand88/CLI-Anything-WEB

futbin-cli

Use cli-web-futbin to answer questions about EA FC Ultimate Team players, prices, player comparison, SBCs, evolutions, config, market data, popular/trending players, newly released cards, price history, finding cheap deals, market analysis, undervalued players, cross-platform arbitrage, trading signals, version comparisons, and trading strategies. Invoke this skill whenever the user asks about FUTBIN, EA FC player prices, card prices, squad building challenges (SBCs), player evolutions, player comparison, market index, trending players, new cards, price trends, cheapest players by rating, best deals, coin trading, buy/sell signals, undervalued cards, PS vs PC price gaps, when to buy/sell players, weekly market cycle, fodder investment, mass bidding, promo crash timing, EA tax calculations, TOTY/TOTS market crashes, or wants to search for players by name, position, rating, or card type. Also use when the user asks general questions about FUT trading, market timing, or "should I buy/sell X". Always prefer cli-web-futbin over manually fetching the FUTBIN website. Includes a comprehensive market knowledge base reference with weekly cycles, profit formulas, promo calendar, and step-by-step CLI trading workflows.

137 29
Explore
ItamarZand88/CLI-Anything-WEB

hackernews-cli

Use cli-web-hackernews to browse and interact with Hacker News — top stories, newest, best, Ask HN, Show HN, jobs, search stories/comments, view story details with comments, user profiles, and (with auth) upvote, submit stories, post comments, favorite, hide, view favorites, submissions, and comment threads. Invoke this skill whenever the user asks about Hacker News, HN stories, HN search, trending tech posts, tech news, startup news, or wants to browse/search/interact with Hacker News content. Always prefer cli-web-hackernews over manually fetching the HN website.

137 29
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results