Back to Marketplace
FREE
Scanned
Grow Business

Documentation Organization System

Organizes project documentation by size, audience, and freshness to prevent drift and reduce AI context waste

Install in one line

mfkvault install documentation-organization

Requires the MFKVault CLI. Prefer MCP?

New skill
No reviews yet
New skill
🤖 Claude Code🦞 OpenClaw
FREE

Free to install — no account needed

Copy the command below and paste into your agent.

Instant access • No coding needed • No account needed

What you get in 5 minutes

  • Full skill code ready to install
  • Works with 2 AI agents
  • Lifetime updates included
SecureBe the first

Description

--- name: docs-organization description: >- Organize project documentation by size, audience, and freshness. Trigger when setting up docs for a new project, restructuring existing documentation, slimming a bloated CLAUDE.md/AGENTS.md, deciding where a doc should live, or on doc best practices questions. Also trigger when CLAUDE.md exceeds ~250 lines or docs are duplicated across files. Triggers on: organize docs, reorganize documentation, slim CLAUDE.md, AGENTS.md too long, where to put docs, docs structure, doc best practices, set up documentation, docs are messy, flatten docs, doc migration. version: 1.1.0 metadata: author: zning1994 openclaw: homepage: https://github.com/zning1994/docs-organization os: - macos - linux - windows --- # Documentation Organization A practical guide for organizing project documentation so that every fact has one home, AI agents load only what they need, and humans can find things without grep. ## Why This Matters Poor doc organization creates three problems that compound over time: 1. **Drift** — the same fact copied into 3 files eventually becomes 3 different "truths" 2. **Context waste** — a 2000-line CLAUDE.md burns AI tokens on every conversation, most of it irrelevant 3. **Lost docs** — flat directories with 20+ files make everything hard to find The fix is simple: organize by who reads it and whether it stays current. ## Step 0: Root-Level Noise Audit Before touching docs, clean non-documentation clutter from the project root. Root-level noise (screenshots, recordings, debug logs, AI chat exports) is often the biggest source of visual chaos — and it has nothing to do with documentation structure. Run `ls | wc -l` and capture the count. Then identify and relocate: | What to look for | Where it goes | |-----------------|---------------| | Screenshots, recordings (`.png`, `.mov`, `.mp4`) | `archive/media/` or `screenshots/` if curated | | Debug/build logs (`*.log`, `firebase-debug.log`) | `archive/` or delete | | AI chat exports, temp markdown dumps | `archive/` or delete | | One-off config experiments | `archive/` or delete | Do this first — it dramatically reduces root-level item count and makes the real structure visible before you start reorganizing docs. ## Step 1: Assess Project Size Ask yourself (or the user) these questions: | Question | Small | Medium | Large | |----------|-------|--------|-------| | Source files | < 5 | 5-50 | 50+ | | Has deployment target? | No | Yes | Yes, multiple | | Has API or database? | No | Yes | Yes | | Ongoing operations (cron, monitoring)? | No | Maybe | Yes | | Multiple services/containers? | No | No | Yes | Pick the column that best matches. When in doubt, start smaller — you can always add structure later. ## Step 2: Apply the Right Template ### Small Project Single-service tools, scripts, simple packages. ``` project/ ├── CLAUDE.md # 50-100 lines: what it does, how to run, gotchas └── README.md # For humans / GitHub ``` No `docs/` directory needed. Everything fits in two files. ### Medium Project Multi-component apps with deployment targets and external integrations. ``` project/ ├── CLAUDE.md # 100-200 lines: constraints + doc index └── docs/ ├── plans/ # Implementation plans ├── design/ # Design specs └── reference/ # API tables, config reference, schema ``` Add directories only when you have 2+ files that belong there. One API doc doesn't need a `reference/` folder — just put it in `docs/api.md`. ### Large Project Systems with operational burden: multiple services, cron jobs, monitoring, multi-environment deployment. ``` project/ ├── CLAUDE.md # 200-250 lines: constraints + doc index + key gotchas └── docs/ ├── README.md # Documentation map ├── reference/ # API endpoints, DB schema, CLI commands, config reference ├── runbooks/ # Deploy, operations, troubleshooting, known issues ├── guides/ # How-to guides for users and operators ├── product/ # Roadmap, product direction ├── design/ # Design specs (frozen after implementation) ├── plans/ # Implementation plans (frozen after execution) ├── research/ # Investigation notes, audits, system reviews ├── decisions/ # Architecture Decision Records (ADRs) └── archive/ # Superseded docs, old logs, historical patches ``` ### Multi-Repo / Monorepo Workspace An umbrella directory containing multiple independent repos (often not a git repo itself). The key rule: **umbrella-level docs are for cross-repo concerns only**. ``` workspace/ # NOT a git repo ├── CLAUDE.md # Repo map + cross-repo conventions + doc index ├── docker-compose.yml # Cross-repo orchestration (lives at root) ├── .env / .env.example # Shared secrets (lives at root) │ ├── repo-a/ # Independent git repo ├── repo-b/ # Independent git repo │ ├── deploy/ # Cross-repo: nginx, infra configs, deploy scripts ├── scripts/ # Cross-repo: shared tooling ├── tools/ # Cross-repo: shared CLI utilities │ ├── docs/ # Cross-repo documentation ONLY │ ├── design/ # System-wide architecture specs │ ├── research/ # Cross-cutting investigations │ ├── runbooks/ # Deploy, ops, incident response │ └── plans/ # Cross-repo implementation plans │ ├── screenshots/ # Curated product screenshots (if needed) └── archive/ # Superseded docs + one-off media ├── media/ # Old screenshots, recordings └── docs/ # Outdated documents ``` Key differences from single-repo Large template: - Repo-specific docs stay **inside each repo** (e.g., `repo-a/docs/`) - Umbrella `docs/` only holds docs that span multiple repos - Orchestration files (`docker-compose.yml`, `.env`) live at workspace root - `deploy/` holds all infra/nginx configs — don't scatter them in root ## Step 3: Apply the Core Principles ### Principle 1: Single Source of Truth Every fact lives in exactly one place. Other docs can *link* to it, never *copy* it. **Bad**: API endpoint table in CLAUDE.md AND roadmap.md AND usage-guide.md **Good**: API endpoint table in `docs/reference/api-endpoints.md`, others link to it When you change something, update the one canonical location. Not two files, not three — one. ### Principle 2: CLAUDE.md Is an Instruction Manual, Not an Encyclopedia CLAUDE.md (or AGENTS.md) is loaded into every AI conversation. Keep it under 250 lines. The reason is simple: every token in CLAUDE.md is consumed on every single conversation, whether relevant or not. A bloated CLAUDE.md wastes context and money. **What belongs in CLAUDE.md:** - Behavioral constraints (naming conventions, rules, gotchas) - Architecture summary (what connects to what) - Documentation index (where to find details) - Key file paths **What does NOT belong:** - Full API tables → move to `reference/` - Historical changelogs → move to `product/roadmap.md` - Deployment procedures → move to `runbooks/` - CLI command references → move to `reference/` - Design specs → move to `design/` If CLAUDE.md is over 250 lines, extract the largest non-essential sections first. ### Principle 3: Organize by Audience + Freshness Two questions determine where any doc belongs: | Question | Options | |----------|---------| | **Who reads it?** | agent (AI), operator (maintainer), user (end-user), contributor | | **Does it stay current?** | canonical (kept updated), snapshot (frozen in time), archived (superseded) | This maps directly to directories: | Directory | Status | Audience | Contains | |-----------|--------|----------|----------| | `reference/` | canonical | agent, operator | Look-up tables: API, DB, CLI, config | | `runbooks/` | canonical | operator | Deployment, ops, incident response | | `guides/` | canonical | user, contributor | How-to instructions | | `product/` | canonical | operator | Roadmap, direction, milestones | | `design/` | snapshot | agent, contributor | Feature design specs | | `plans/` | snapshot | agent, contributor | Implementation plans | | `research/` | snapshot | operator | One-off investigations, audits | | `decisions/` | snapshot | contributor | Architecture Decision Records | | `archive/` | archived | — | Old/superseded docs | ### Principle 4: No Cross-Doc Mirroring This rule prevents drift: > After code or config changes, update the affected canonical doc only. > Do not mirror the same fact across multiple docs. If you find yourself maintaining a rule like "always update roadmap, deploy, known-issues, AND CLAUDE.md" — that's a sign of mirroring. Pick one canonical location for each fact. ## Document Metadata Add this frontmatter to any non-trivial doc: ```yaml --- status: canonical | snapshot | archived audience: agent | operator | user | contributor last_reviewed: YYYY-MM-DD --- ``` - **canonical**: Must stay current. If code changes, this doc must be updated. - **snapshot**: True at time of writing. Never updated. Dated filename is its version. - **archived**: Superseded or obsolete. Kept for reference only. ## Anti-Patterns to Watch For | Anti-Pattern | Why It's Bad | Fix | |-------------|-------------|-----| | Same fact in 3+ files | Guaranteed drift | Pick one canonical location, link from others | | 2000-line CLAUDE.md | Wastes AI context every conversation | Keep < 250 lines, extract reference docs | | Flat `docs/` with 20+ files | Can't find anything | Group by audience/purpose | | Research notes in `docs/` root | Pollutes navigation | Move to `research/` or `archive/` | | Chat logs in `docs/` | Not documentation | Move to `archive/` or delete | | "Always update these 4 files" rule | Creates busywork and drift | "Update the one canonical source" | | Empty directories "for later" | Confusing, no content to navigate | Create directories when you have content | | Flat `archive/` dumping ground | Archive itself becomes a junk drawer | Use `archive/media/` for images/video, `archive/docs/` for old text | ## Migration Checklist When reorganizing existing docs: 1. **Snapshot before state**: Run `ls | wc -l` at root and `docs/`. Save the counts for a before/after comparison. 2. **Root-level noise audit**: Move stray media, logs, and temp files out of root first (see Step 0). 3. **Measure docs**: Count lines in CLAUDE.md, count files in `docs/`, identify duplicated facts. 4. **Classify**: For each doc, determine audience + freshness status. 5. **Create structure**: Make only the directories you need right now. 6. **Check implicit references before moving**: `rg <filename>` (or `grep -r <filename>`) across the project to find references in `docker-compose.yml`, CI/CD configs, `Makefile`, shell scripts, `.gitignore`, etc. Moving a file that is referenced by a config will cause silent runtime failures. 7. **Move files**: Relocate docs to their new homes. 8. **Update implicit references**: Fix all paths found in step 6 (docker volume mounts, script paths, etc.). 9. **Extract from CLAUDE.md**: Pull reference tables, procedures, and specs into dedicated files. 10. **Add doc index**: Update CLAUDE.md with a table pointing to where things moved. 11. **Add metadata**: Put frontmatter on each non-trivial doc. 12. **Remove duplicates**: Delete mirrored content, keep only the canonical copy. 13. **Verify links**: Make sure markdown cross-references still work. 14. **Show before/after**: Compare root item count before vs. after. This validates the effort and gives the user a tangible result. ## Example: CLAUDE.md Doc Index After extracting content, add a table like this to CLAUDE.md: ```markdown ## Documentation Index | What you need | Where to find it | |---------------|-----------------| | API endpoints | `docs/reference/api-endpoints.md` | | Database schema | `docs/reference/database-schema.md` | | Deployment guide | `docs/runbooks/deploy.md` | | Known issues | `docs/runbooks/known-issues.md` | | Roadmap | `docs/product/roadmap.md` | ``` This keeps CLAUDE.md as a routing table rather than trying to contain everything.

Preview in:

Security Status

Scanned

Passed automated security checks

Time saved
How much time did this skill save you?

Related AI Tools

More Grow Business tools you might like

codex-collab

Free

Use when the user asks to invoke, delegate to, or collaborate with Codex on any task. Also use PROACTIVELY when an independent, non-Claude perspective from Codex would add value — second opinions on code, plans, architecture, or design decisions.

Rails Upgrade Analyzer

Free

Analyze Rails application upgrade path. Checks current version, finds latest release, fetches upgrade notes and diffs, then performs selective upgrade preserving local customizations.

Asta MCP — Academic Paper Search

Free

Domain expertise for Ai2 Asta MCP tools (Semantic Scholar corpus). Intent-to-tool routing, safe defaults, workflow patterns, and pitfall warnings for academic paper search, citation traversal, and author discovery.

Hand Drawn Diagrams

Free

Create hand-drawn Excalidraw diagrams, flows, explainers, wireframes, and page mockups. Default to monochrome sketch output; allow restrained color only for page mockups when the user explicitly wants webpage-like fidelity.

Move Code Quality Checker

Free

Analyzes Move language packages against the official Move Book Code Quality Checklist. Use this skill when reviewing Move code, checking Move 2024 Edition compliance, or analyzing Move packages for best practices. Activates automatically when working

Claude Memory Kit

Free

"Persistent memory system for Claude Code. Your agent remembers everything across sessions and projects. Two-layer architecture: hot cache (MEMORY.md) + knowledge wiki. Safety hooks prevent context loss. /close-day captures your day in one command. Z