skills/practices/project-docs/SKILL.md
Generates minimal project documentation — README.md, ARCHITECTURE.md with Mermaid diagrams, and AGENTS.md. Run after first feature ships or when docs are missing. Reads the actual codebase to generate accurate docs, not boilerplate.
npx skillsauth add devjarus/coding-agent project-docsInstall 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.
Creates minimal, accurate project docs by reading the actual codebase. Not boilerplate — every line comes from what's really there.
Claude Code reads CLAUDE.md at session startup. Most OSS projects use AGENTS.md as the canonical agent workflow document (stack, build/test commands, conventions, known issues). Do not duplicate content between them — duplication guarantees drift.
The rule: one file is the source of truth, the other is a pointer. In practice, AGENTS.md holds the content and CLAUDE.md is a 5-line redirect:
# Project Notes
This project uses [AGENTS.md](./AGENTS.md) as the canonical agent workflow document.
See AGENTS.md for: stack, build/test commands, conventions, architecture decisions, and known issues.
If this project was created before AGENTS.md became standard and already has a detailed CLAUDE.md, invert the relationship: keep CLAUDE.md as the source of truth and make AGENTS.md the redirect. Never maintain both.
AGENTS.md follows the agents.md community spec (https://agents.md). It must be useful to ANY coding agent: Cursor, Aider, Codex, Claude Code with or without this plugin.
❌ No references to .coding-agent/, protocols, checks, or skills by name
❌ No coding-agent:-prefixed instructions or dispatch sequences
❌ No deploy commands, env-var lists, or runtime state — those live in .coding-agent/environments.md
✓ Stack, build/test commands, conventions, architecture, known gotchas
Plugin-specific configuration lives in .coding-agent/. The plugin reads its own files; it doesn't need AGENTS.md to point at them. A user must be able to remove this plugin and have AGENTS.md keep working for whatever agent they switch to.
A create-vite / create-react-app / create-next-app scaffold ships a placeholder README describing the template, not your app. Shipping it is a real failure mode: the repo's front page reads "This template provides a minimal setup…" instead of what the project does. A scaffold README must be fully replaced, not preserved. The docs-current close-out check (checks/docs-current.sh) blocks close-out while any of these fingerprints remain — keep this list in sync with it:
| Scaffold | Fingerprint phrase |
|----------|--------------------|
| Vite | This template provides a minimal setup / Currently, two official plugins are available |
| Create React App | Getting Started with Create React App |
| Next.js | bootstrapped with [\create-next-app`]| | SvelteKit |npm create svelte@latest| | Astro |npm create astro@latest/Welcome to your new Astro project/Everything you need to know is in the README` |
The check also fails a README that is byte-identical to its first commit while ≥3 source commits have landed — i.e. one that was committed at scaffold time and never touched. Either way, the fix is the same: write a real README from the actual codebase (below).
# Project Name
[1-sentence description from spec.md or package.json]
## Quick Start
[exact install + run commands — read from package.json scripts, Makefile, etc.]
## Tech Stack
[language, framework, database, key deps — from package.json/go.mod/Package.swift/requirements.txt]
## Project Structure
[tree of key directories with 1-line descriptions — from actual file scan]
## Testing
[exact test commands + what they cover]
## API Reference (if applicable)
[endpoints with methods, paths, request/response shapes — from route files]
## License
[from LICENSE file if exists]
Use ASCII diagrams — they render everywhere with no dependencies. Read the actual code to generate these.
# Architecture
## Overview
[2-3 sentences: what the system does, key design decisions]
## System Diagram
[ASCII box diagram showing major components and connections]
## Data Flow
[ASCII flow showing a primary user flow end-to-end]
## Data Model
[ASCII table showing schema — fields, types, relationships]
## Key Components
[for each major module: what it does, what it depends on, key files]
## Technical Decisions
[from spec.md Technical Risks / Architecture Decisions if available, otherwise infer from code]
# Development Workflow
## Stack
[language, framework, database, key libraries with versions]
## Build & Run
[exact commands]
## Test
[exact commands — unit, integration, e2e]
## Project Structure
[key directories]
## Conventions
[patterns, naming, file organization]
## Architecture Decisions
[key decisions and why]
## Known Issues
[from review.md findings if available]
## Development Notes
[gotchas, ordering requirements, env setup]
Read these files to understand what exists:
package.json / go.mod / Package.swift / requirements.txt → stack + depsspec.md, plan.md (if in .coding-agent/) → requirements + architecture decisionssrc/index.*, src/app.*, main.*) → how the app startsUse plain ASCII art. Examples:
System diagram:
┌──────────────┐ HTTP ┌──────────────┐ SQL ┌──────────┐
│ React Client │───────────→│ Express API │──────────→│ SQLite │
│ :5173 │←───────────│ :3001 │←──────────│ │
└──────────────┘ └──────────────┘ └──────────┘
Data flow:
User → Frontend → POST /api/posts → Validate → INSERT INTO posts → Return 201 → Redirect to /posts/:slug
Data model:
posts
├── id INTEGER PK autoincrement
├── title TEXT NOT NULL
├── slug TEXT UNIQUE
├── content TEXT NOT NULL
├── excerpt TEXT
├── tags TEXT
├── createdAt TEXT
└── updatedAt TEXT
Write each file at the project root. Keep them minimal:
[email protected], write that — not just "Express".testing
Multi-source research method — decompose a question, fan out parallel investigators, interleaved-think each result, verify claims adversarially, synthesize a cited answer. Use for breadth-heavy research, stack comparisons, "which approach wins" questions.
testing
Decide when to use unit vs integration vs e2e tests, and when to mock vs use the real thing per dependency. Dependency injection is the enabler — without it you end up monkey-patching imports. Apply when writing tests of any kind.
development
Test-driven development process — write failing test, implement to pass, refactor. Use when implementing any feature or fixing bugs.
development
Patterns for sharing types, API contracts, and validation schemas between frontend and backend. Use when multiple domains consume the same data shapes to prevent contract drift.