Create docs
A collection of agent skills for AI-assisted development.
npx -y skills add pavelsimo/skills --skill create-docsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Analyzes a codebase and generates LLM-optimized documentation covering project overview, architecture, build system, testing, development patterns, deployment, and a file catalog. Use when the user wants to document a codebase or refresh existing project documentation.
SKILL.md
8.9 KB, as published. Nobody here has run it
create-docs skill
A Claude Code skill that systematically analyzes a project and writes or refreshes a suite of LLM-optimized documentation files β covering architecture, build, testing, development patterns, deployment, and a file catalog β plus a synthesized README. Every generated file includes a UTC timestamp and concrete file references so both humans and LLMs can navigate the codebase quickly.
Inspired by steipete/agent-rules update-docs.
features
- analyzes the codebase across 7 key areas in parallel
- writes to
docs/by default;--output <path>redirects all output - existing files are refreshed by default;
--no-overwritepreserves them - generates a UTC timestamp header in every file so staleness is visible
- each file contains concrete file references (paths, line numbers, code excerpts)
- enforces no-duplication: each fact lives in exactly one file; cross-references use relative links
- synthesizes a minimal
README.md(β€ 50 lines) after all section files are done --only <section>refreshes a single file without touching others--dry-runprints what would be written without touching the filesystem
usage
/create-docs # analyze project and write to docs/
/create-docs --output <path> # write to a custom directory
/create-docs --no-overwrite # skip files that already exist
/create-docs --only <section> # refresh one section (see sections below)
/create-docs --dry-run # preview output without writing files
sections
| Flag value | Output file | Contents |
|---|---|---|
overview | PROJECT-OVERVIEW.md | π purpose, entry points, tech stack, platform support |
architecture | ARCHITECTURE.md | ποΈ system organization, component map, data flow |
build | BUILD-SYSTEM.md | π§ build system, common workflows, platform setup |
testing | TESTING.md | β test types, how to run, test file locations |
development | DEVELOPMENT.md | π» code style, patterns, workflows, conventions |
deployment | DEPLOYMENT.md | π packaging, distribution, platform deployment |
files | FILES.md | ποΈ comprehensive file catalog with purpose descriptions |
workflow
-
parse args:
--output <path>: use<path>as the output directory; default isdocs/--no-overwrite: skip any section file that already exists at the target path; still generate missing files; note skipped files in the final report--only <section>: run only the named section (see table above); skip all others and skip the README synthesis step--dry-run: generate content but print it to stdout; do not write any files- unrecognized flags: print a usage error and stop
-
resolve the output directory:
- if
--outputis not given, usedocs/relative to CWD - create the directory if it does not exist:
mkdir -p <output>
- if
-
announce progress with emojis as each section starts and completes:
- starting:
π analyzing project overviewβ¦/ποΈ analyzing architectureβ¦/ etc. - done:
β wrote docs/PROJECT-OVERVIEW.md - skipped (no config found):
βοΈ docs/DEPLOYMENT.md β skipped (no deployment config found) - skipped (--no-overwrite):
π docs/TESTING.md β skipped (already exists, --no-overwrite set)
- starting:
-
analyze the codebase β run the following in parallel (or sequentially if
--onlyis set); for each section, check--no-overwritebefore writing:π PROJECT-OVERVIEW.md β read:
README.md,package.json/pyproject.toml/Cargo.toml/go.mod(whichever exists), main entry-point files; extract: project purpose, core value proposition, tech stack, platform support; write to<output>/PROJECT-OVERVIEW.mdποΈ ARCHITECTURE.md β read: top-level source directory structure, main module/package files, any existing architecture docs; extract: high-level system organization, major components and their source locations, key data flows; write to
<output>/ARCHITECTURE.mdπ§ BUILD-SYSTEM.md β read:
Makefile,CMakeLists.txt,build.gradle,pyproject.toml,Cargo.toml,package.jsonscripts, CI workflow files; extract: build commands, platform-specific setup, configuration options; write to<output>/BUILD-SYSTEM.mdβ TESTING.md β read: test directories, test runner configuration, CI test steps; extract: test types, how to run each, where test files live, how to add a new test; write to
<output>/TESTING.mdπ» DEVELOPMENT.md β read:
.editorconfig, linter configs (.eslintrc,ruff.toml,.golangci.yml, etc.), any existing patterns or development docs, recent commits for style signals; extract: code style rules with file examples, common implementation patterns with actual code excerpts; merge any existingPATTERNS.mdcontent; write to<output>/DEVELOPMENT.mdπ DEPLOYMENT.md β read: packaging scripts, release workflows, Docker files, CI/CD deployment jobs; extract: package types, deployment targets, output locations, step-by-step commands; write to
<output>/DEPLOYMENT.mdποΈ FILES.md β run
find . -type f(excluding.git,node_modules,vendor,__pycache__); group files by category (core source, platform impl, build, tests, config); write a one-line description per significant file; write to<output>/FILES.md -
for each file written, prepend the timestamp header:
<!-- Generated: YYYY-MM-DD HH:MM:SS UTC -->derive the current UTC time via:
date -u '+%Y-%m-%d %H:%M:%S'use the section emoji in the first heading of each generated file:
# π Project Overview,# ποΈ Architecture,# π§ Build System, etc. -
enforce no-duplication:
- build information only in
BUILD-SYSTEM.md - code style and patterns only in
DEVELOPMENT.md - deployment information only in
DEPLOYMENT.md - cross-reference with:
See [docs/FILENAME.md](docs/FILENAME.md)(adjust path if--outputwas used)
- build information only in
-
synthesize
README.md(skip if--onlyis set):- read all generated
<output>/*.mdfiles - write a new
README.mdin the project root with:- project description (2-3 sentences max)
- key entry points and core configuration files
- quick build commands
- documentation links with one-line descriptions
- keep it under 50 lines total
- prepend the timestamp header
- read all generated
-
duplication check:
- scan all generated files for repeated content
- remove duplicates and add cross-references where needed
- if
PATTERNS.mdexists in the output directory, merge it intoDEVELOPMENT.mdand delete it
-
if
--dry-run: print all generated content to stdout; write nothing to disk -
report results with emojis:
π docs updated β docs/ β docs/PROJECT-OVERVIEW.md β docs/ARCHITECTURE.md β docs/BUILD-SYSTEM.md β docs/TESTING.md β docs/DEVELOPMENT.md βοΈ docs/DEPLOYMENT.md β skipped (no deployment config found) β docs/FILES.md β README.md
document format requirements
Every generated file must follow this structure:
- timestamp header comment at the very top
- title heading with section emoji (e.g.,
# ποΈ Architecture) - brief overview (2-3 paragraphs max)
- key files & examples section with concrete file references
- common workflows section with file locations
- reference section with quick-lookup tables
File reference format (use throughout):
**Core System** β implementation in `src/core.h` (lines 15-45), platform backends in `src/platform/`
Code examples must be actual excerpts from the codebase, not generic placeholders:
# From src/example.py:23-27
class ExampleState:
active: bool
data: Any
count: int
best practices
- always include file paths and line numbers β vague references ("see the main file") are not acceptable
- token-efficient prose β avoid redundant explanations; LLMs are the primary audience
- create the output directory β never fail because
docs/doesn't exist yet; create it - merge, don't duplicate β if
DEVELOPMENT.mdandPATTERNS.mdboth exist, merge into one; delete the old file - skip gracefully β if no deployment config exists, skip
DEPLOYMENT.mdand note it in the report rather than writing an empty file - timestamp every file β staleness is a first-class concern; always regenerate the timestamp even on partial updates (
--only) --dry-runis safe β no filesystem changes; safe to run in any environment--no-overwriteis conservative β skip existing files with a π marker; never prompt per-file