agentsclimarketplace

Create docs

Skill pavelsimo/skills/skills/create-docs

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.From its SKILL.md

Install
npx -y skills add pavelsimo/skills --skill create-docs

Assembled 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.

SKILL.md

8.9 KB, ~2.2k tokens by cl100k_base, 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-overwrite preserves 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-run prints 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 valueOutput fileContents
overviewPROJECT-OVERVIEW.mdπŸ“‹ purpose, entry points, tech stack, platform support
architectureARCHITECTURE.mdπŸ—οΈ system organization, component map, data flow
buildBUILD-SYSTEM.mdπŸ”§ build system, common workflows, platform setup
testingTESTING.mdβœ… test types, how to run, test file locations
developmentDEVELOPMENT.mdπŸ’» code style, patterns, workflows, conventions
deploymentDEPLOYMENT.mdπŸš€ packaging, distribution, platform deployment
filesFILES.mdπŸ—‚οΈ comprehensive file catalog with purpose descriptions

workflow

  1. parse args:

    • --output <path>: use <path> as the output directory; default is docs/
    • --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
  2. resolve the output directory:

    • if --output is not given, use docs/ relative to CWD
    • create the directory if it does not exist: mkdir -p <output>
  3. 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)
  4. analyze the codebase β€” run the following in parallel (or sequentially if --only is set); for each section, check --no-overwrite before 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.json scripts, 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 existing PATTERNS.md content; 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

  5. 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.

  6. 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 --output was used)
  7. synthesize README.md (skip if --only is set):

    • read all generated <output>/*.md files
    • write a new README.md in 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
  8. duplication check:

    • scan all generated files for repeated content
    • remove duplicates and add cross-references where needed
    • if PATTERNS.md exists in the output directory, merge it into DEVELOPMENT.md and delete it
  9. if --dry-run: print all generated content to stdout; write nothing to disk

  10. 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.md and PATTERNS.md both exist, merge into one; delete the old file
  • skip gracefully β€” if no deployment config exists, skip DEPLOYMENT.md and 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-run is safe β€” no filesystem changes; safe to run in any environment
  • --no-overwrite is conservative β€” skip existing files with a πŸ”’ marker; never prompt per-file

What ships with it: 2 files

3.0 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.