skills/feature-list/SKILL.md
This skill should be used when the user asks for an inventory of features a codebase provides, grouped logically into capability areas. Produces an implementation-language-agnostic catalog of user-facing and operator-facing features, their entry points, and their supporting modules. Uses sub-agents to shard discovery across the repository so the top-level context stays small.
npx skillsauth add ryan-mahoney/ryan-llm-skills feature-listInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce a comprehensive, logically grouped inventory of the features a codebase provides. Output is implementation-language-agnostic and intended to support product reviews, roadmap audits, migration planning, and onboarding.
If $ARGUMENTS is provided, treat it as TARGET_SCOPE (a path, module, service name, or prose description).
If $ARGUMENTS is not provided, infer TARGET_SCOPE from the user request and repository context. When the repo is large and no scope is given, default to the whole repository.
You are an orchestrator. Do not read every file yourself. Use sub-agents to partition the work so your own context stays small. Only read enough to plan the partitioning and to aggregate results.
A feature is a capability the system offers to an external actor (end user, operator, admin, integrator, scheduled job consumer). Features are expressed in user/operator terms, not code terms.
Examples of what is and is not a feature:
Include internal operator/admin features (CLI tools, cron jobs, feature flags that gate visible behavior). Exclude pure implementation details, libraries, and code architecture concerns unless they manifest as a user- or operator-visible capability.
Execute the following phases in order. Each phase has an explicit context-management rule.
Without reading file bodies, build a map of the repository:
README.md, AGENTS.md, docs/**) and scan its table of contents only, to identify claimed features.Announce the shard plan before delegating.
Dispatch one sub-agent per shard, in parallel, using the Explore subagent type. Each sub-agent is responsible for enumerating features within its shard and returning a compact structured list to the orchestrator.
Agent(
subagent_type: "Explore",
description: "Feature extraction — <shard-name>",
prompt: "<EXTRACTION_PROMPT>"
)
You are extracting the feature inventory for one shard of a larger codebase.
Shard name: <shard-name>
Shard scope: <paths / modules / surfaces>
Exclusions: <anything in the scope that should be ignored>
Task:
1. Enumerate every user-facing, operator-facing, or integrator-facing feature provided by this shard.
2. Express each feature in the language an end user, operator, or integrator would use — not code terms.
3. Skip pure implementation details (helpers, internal services, libraries) unless they manifest as a visible capability.
4. Do not read more than needed; prefer routes/handlers/commands/jobs/exports as entry points, and follow the shortest path to understand what each does.
For each feature return:
- name: short verb-phrase name (e.g. "Reset password via email")
- description: one sentence describing what the feature does for the actor
- actor: end user | admin | operator | integrator | scheduled | system
- entry_points: list of concrete triggers (route, CLI command, job name, UI page, event)
- evidence: 1–3 file references with line numbers when useful
- confidence: high | medium | low (low = inferred from indirect signals)
- notes: anything ambiguous, legacy, flagged, or that looks dead
Also return:
- shard_summary: 2–3 sentence description of what this shard does as a whole
- likely_duplicates: any feature you suspect may also appear in another shard
- gaps: areas inside the shard scope you could not confidently enumerate, and why
Return the full list in your response. Do not write a file. Keep prose minimal — the orchestrator will consolidate."
Run sub-agents in a single message with multiple tool calls so they execute concurrently.
Collect sub-agent returns. Do not re-read source files unless resolving a conflict.
likely_duplicates flags from sub-agents.If a conflict cannot be resolved from sub-agent output alone, dispatch one targeted fix-up sub-agent scoped to the conflicting files.
Cluster the merged features into capability groups. Derive groups from the codebase, do not force a prescribed taxonomy.
Heuristics for grouping, in order of preference:
Each feature belongs to exactly one primary group. A feature may be cross-referenced into at most one secondary group when the cross-cut is load-bearing for a reader.
Aim for 4–12 groups for a typical repository. Very small repos may have 2–3; large monorepos may have more but should prefer nesting over flattening.
Write the final markdown document to docs/feature-list.md unless the user specified a different path. Overwrite if it exists. Follow the output format below exactly.
After writing, report:
The written document must contain these sections in order.
A table with one row per group:
| Group | Description | Feature count | |---|---|---|
For each group, a subsection containing a table of its features:
| Feature | Actor | Entry points | Confidence | Notes | |---|---|---|---|---|
Feature is the verb-phrase name.Entry points is a comma-separated list of concrete triggers (route path, CLI command, job name, page route, event name).Notes is short — use for legacy/flagged/dead/cross-reference hints only.Below each table, include a short prose paragraph describing how the group fits into the product.
Features that legitimately span multiple groups (e.g. audit logging used by many domains). List them once here with the groups they touch.
A flat list of feature name → file:line references, so a reader can jump from any feature back to source. Limit to the one or two most authoritative references per feature.
specops-analysis.architect-inspect or agents-update.identify-where.testing
This skill should be used when the user asks to "run the spec", "implement the spec", or "execute the spec". Implements every step in a SpecOps implementation spec by delegating each step (or logical group of adjacent steps) to a sequential subagent, conventional-committing each one independently, and — when `roborev` is on the path — running `roborev check` on every commit and `roborev fix` (with spec context, so the fix cannot silently drift the implementation away from the spec) on any commit that fails.
development
Exhaustively audit a top-level UI implementation component against an HTML prototype and produce a grouped markdown checklist of corrections. Use when a user asks for UI parity review, visual QA, design implementation audit, pixel-level drift detection, or behavior/style mismatch analysis between prototype HTML and shipped component code.
development
Audit a SpecOps implementation spec against its source analysis spec to find requirements, policies, contracts, edge cases, error modes, invariants, defaults, side effects, or implementation steps that the implementation has dropped, weakened, contradicted, or silently changed — then patch the implementation spec to restore them. Use this skill whenever the user mentions auditing, comparing, conforming, reconciling, or checking an implementation spec against an analysis spec, finding gaps between two specs, ensuring an implementation spec preserves analysis behavior, or verifying spec derivation or traceability. Also trigger when the user describes "did the implementation spec lose anything from the analysis," "does the implementation match the analysis," "verify the implementation spec covers everything," or asks to confirm one spec is faithful to another. Run this before generating code from an implementation spec and after either spec is edited.
development
Audit a set of SpecOps analysis specs for cross-spec coherence — establish a dependency-ordered implementation sequence, then verify pairwise integration contracts at module boundaries plus three cross-cutting consistency dimensions (shared data models, side-effect ownership, terminology) — and patch the affected specs to resolve gaps. Use this skill whenever the user mentions cross-spec consistency, integration gaps between specs, conflicts between specs, duplicate work across specs, implementation order, dependency order for migration, building an implementation-order checklist, ensuring specs interoperate, terminology drift across specs, or shared data model conflicts. Also trigger when the user describes "do my specs agree with each other," "what order should I implement these in," "find inconsistencies across all my specs," or asks to audit a folder of analysis specs as a set rather than individually. Run this once after generating a full set of analysis specs, before deriving implementation specs.