module-discover

Analyzes dependency libraries and generates module-level API documentation with codebase usage mappings.

1.1k|121|Updated Jun 19, 2024
One-click install
npx skills add https://github.com/sirius-db/sirius --skill module-discover
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: module-discover
Source: https://github.com/sirius-db/sirius/tree/main/.claude/skills/module-discover
Command: npx skills add https://github.com/sirius-db/sirius --skill module-discover

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Understanding how a large C++ dependency (like cuDF, RMM, or DuckDB) is actually used across a codebase requires tedious manual searching through includes, API calls, and CMake files, and the resulting knowledge is rarely documented in a form usable by developers or AI agents.

Core Features & Use Cases

  • Usage Discovery: Scans source files, tests, and CMake configuration to find every include, API call, type reference, and macro usage of a target library.
  • Module Mapping: Divides the library into logical modules and classifies each as USED or UNUSED based on actual codebase references.
  • API Documentation Generation: Produces structured Markdown docs with signatures, descriptions, and file:line usage examples for used modules, plus brief summaries for unused ones.
  • Use Case: Ask it to document the cuDF dependency and it produces a README with a module map (19 of 25 modules used) plus per-module API references showing exactly which functions Sirius calls and where.

Quick Start

Ask the assistant to document the cucascade submodule and generate API reference docs for the modules this project uses.

Frequently Asked Questions about module-discover

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I document which parts of a C++ dependency my project uses?

Provide the library name and its source location (submodule path, conda prefix include directory, or system include path). The skill greps your codebase for includes, namespace-qualified calls, and CMake references, then generates per-module API documentation.

How to generate API reference docs for a library submodule?

Point the skill at the submodule directory and an output location. It maps the library into logical modules, extracts public headers and signatures for modules you use, and writes a README module map plus per-module Markdown files.

Does it work with header-only libraries installed via conda?

Yes. For installed dependencies it searches $CONDA_PREFIX/include/<name>/ and $LIBCUDF_ENV_PREFIX/include/<name>/, falling back to /usr/include and /usr/local/include. It reads headers directly to extract actual signatures.

Can it update existing dependency documentation after code changes?

Yes. If documentation already exists in the output directory, it re-runs the usage discovery phase to detect new or removed references, updates only the changed modules, and refreshes the README module map and usage summary.

What are the limitations for very large libraries?

For libraries with 100+ headers per module, deep documentation focuses only on headers the codebase actually includes, with remaining APIs listed in a summary table. Unused modules receive only brief 2-3 sentence descriptions.