doc-generator
Doc Generator Skill
Purpose
This skill analyzes codebases, files, and symbols, then generates practical usage documentation.
The goal is not only to explain code, but to produce documentation that helps users understand:
- what this code/module does
- when it should be used
- how to use it correctly
- what constraints or risks exist
- what common misuse patterns should be avoided
This skill is intended for:
- component libraries
- SDKs
- utility libraries
- infrastructure libraries
- business shared modules
- core project modules
Supported Targets
This skill supports the following target scopes:
-
project-level
- entire repository
- package
- component library
- SDK project
-
file-level
- single file
- module file
- entry file
- service / manager / composable / hook file
-
symbol-level
- function
- method
- class
- component
- hook / composable
- exported constant / config factory
Core Principles
- Documentation must be usage-oriented, not just implementation-oriented.
- Prefer explaining how to use, when to use, and what to watch out for.
- Prefer minimal runnable examples over abstract explanation.
- Do not invent behavior that cannot be supported by code evidence.
- Clearly mark uncertainty when behavior cannot be fully confirmed from source.
- Distinguish between:
- confirmed by code
- high-confidence inference
- requires verification
- Generated docs must be readable by engineers who did not write the code.
- When existing docs already exist, prefer update / improve / align, not blindly overwrite.
Default Workflow
When invoked, follow this workflow:
-
Determine target scope:
- project
- file
- symbol
-
Determine documentation intent:
- readme
- usage-guide
- api-reference
- module-guide
- best-practices
- faq
- migration-guide
- update-existing-doc
-
Inspect available evidence:
- folder structure
- exports
- type definitions
- comments
- function signatures
- call relationships
- example code
- tests
- existing documentation
- package metadata
- config files
-
Build understanding:
- responsibility
- public surface
- dependencies
- usage flow
- constraints
- edge cases
- risks
- example patterns
-
Generate documentation in the requested format.
-
Run quality checks before finalizing.
Required Behavior
Always do
- explain the target’s responsibility in plain language
- identify public-facing APIs or exposed usage surfaces
- describe suitable scenarios and, if possible, unsuitable scenarios
- include at least one usage example when enough evidence exists
- include caveats / limitations / risk notes when relevant
- explicitly state uncertainty when evidence is insufficient
Never do
- fabricate business context
- fabricate runtime behavior
- claim compatibility not supported by evidence
- describe internal assumptions as facts
- output vague filler without concrete value
- rewrite code as documentation without interpretation
Documentation Style
Documentation should be:
- clear
- structured
- practical
- concise but sufficiently informative
- focused on real usage
Prefer:
- direct statements
- scenario-based explanation
- minimal examples
- explicit constraints
- actionable warnings
Avoid:
- empty praise
- generic summaries
- repeating code names without interpretation
- over-explaining obvious syntax
Uncertainty Policy
When the code does not provide enough evidence:
- mark the statement as Inference
- or mark as Needs Verification
Examples:
- Confirmed: visible directly from exports, types, or implementation
- Inference: strongly suggested by naming, call chain, or surrounding structure
- Needs Verification: depends on runtime, external system, hidden contract, or business rules
Output Preference
Unless the user specifies otherwise:
- project-level → produce
READMEorusage guide - file-level → produce
module guide - symbol-level → produce
API reference
Reference Files
Read and follow:
references/overview.mdreferences/input-schema.mdreferences/output-rules.mdreferences/analysis-rules.mdreferences/doc-templates.mdreferences/quality-checklist.md
Success Criteria
This skill succeeds when the produced documentation helps a new engineer answer:
- What is this for?
- When should I use it?
- How do I use it?
- What do I need before using it?
- What can go wrong?
- What is the safest recommended usage pattern?
More from hubvue/skills
prompt-interviewer
Senior Prompt Engineer and Prompt Interviewer that interviews users to refine and complete their prompts through structured analysis and iterative questioning. Use when a user has an initial prompt but needs help refining it for better LLM performance: (1) When a prompt lacks clarity or context, (2) When constraints or boundaries are missing, (3) When output formats or quality criteria are undefined, (4) When there are ambiguities or conflicting requirements
15deep-learning
Systematically learn and explain the principles of a library, framework, module, function, or code path. Use when a user wants to understand overall architecture, module responsibilities, execution flow, call chains, core data structures, design tradeoffs, implementation details, or interview-ready explanations from source code.
5context-probe
Minimal Context Sentinel Installer (All-Layers Broadcast). Installs a hard Context Sentinel rule into EVERY detected rule file to force assistant to append a sentinel token to every response. Use when (1) Installing context monitoring via /context-probe, (2) Checking installation status via /context-probe status, (3) Uninstalling via /context-probe off.
4dev-spec
Spec-driven development workflow skill for product requirement intake, engineering research, technical planning, task breakdown, implementation, testing, bugfix loop, and engineering review. Use when a user wants to run or continue a structured software delivery workflow with explicit specs, durable artifacts, and iterative implementation/testing loops.
3prompt-minifier
Minify verbose prompts into semantically equivalent minimal prompts while preserving behavior. Supports configurable output modes (prompt-only or prompt + compression report).
3skills-workflow
Interactive skills workflow for chaining multiple skills where the output of step i becomes the input of step i-1. Use when you need to: (1) Chain multiple skills together in a specific order, (2) Pass outputs between skills as inputs, (3) Execute complex multi-step workflows with traceability, (4) Run skills in dry-run mode before execution, (5) Debug or audit multi-skill workflows
3