agentsclimarketplace

Do tech docs

Skill thermiteau/maverick/skills/do-tech-docs

Technical documentation standards — document structure, writing style, file organisation, mermaid diagrams, and validation. Referenced by do-docs and tech-docs-writer.From its SKILL.md

Install
npx -y skills add thermiteau/maverick --skill do-tech-docs

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 11 stars11 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

9.1 KB, as published. Nobody here has run it

Technical Documentation

Produce technical documentation that explains what systems do, how they interact, and why specific choices were made.

Primary audience: LLMs. These docs will be loaded into LLM context windows during development tasks. Every token must earn its place. Write for machine comprehension first — dense, precise, and structurally consistent. Avoid prose padding, narrative flow, and filler sentences that a human might appreciate but an LLM gains nothing from.

Avoid documenting business processes or product capabilities.

Repository Type Detection

A project is a mono-repo if any of the following are present:

  • package.json with a workspaces field
  • pnpm-workspace.yaml
  • lerna.json
  • Cargo.toml with a [workspace] section
  • go.work file
  • Multiple pyproject.toml files in subdirectories
  • nx.json
  • rush.json

If none of these indicators are found, treat the project as a single-repo.

This determination controls where documentation is stored — see File Organisation.

Documentation Principles

Include

  • Purpose and function: What each component does and why it exists
  • Technology choices: What is used and why it was selected
  • Integration points: How components communicate and depend on each other
  • Data flow: How data moves through the system
  • Architectural patterns: Design patterns employed and their rationale
  • Accessibility patterns: ARIA attribute usage, focus management, keyboard navigation, screen reader support, and WCAG compliance level. Especially important for government or public-sector projects.
  • Validation and business rules: Form validation logic, required field rules, conditional visibility, and domain constraints that the application enforces
  • Mermaid diagrams: Every document describing interactions or flows must include at least one diagram

Exclude

  • Implementation code: No function bodies, algorithms, or internal logic as code blocks
  • Infrastructure configuration: No CDK, Terraform, Docker Compose, or config file content
  • CLI commands: No terminal commands or deployment scripts (see exception below)
  • API endpoint definitions: No route paths, request/response schemas, or curl examples

Include as Structured Tables (Not Code Blocks)

  • Component/module public API: Props, parameters, exported types, and return values — documented as tables, not code snippets
  • Context/hook API surface: What a context provider or hook exposes to consumers

Optional: Developer Onboarding Section

When documenting a full project (not a single component), include a brief onboarding section in architecture-overview.md or a dedicated getting-started.md:

  • Prerequisites (runtime versions, package manager)
  • Install and run commands
  • Key scripts (build, test, lint)

Keep to under 20 lines. This is the one context where CLI commands are acceptable.

Document Structure

Every document must start with a YAML frontmatter block. This gives an LLM immediate context about what the document covers without reading the full body.

---
title: <descriptive title>
scope: <component | service | architecture | decision>
relates-to: [list of other doc filenames this connects to]
last-verified: <YYYY-MM-DD when last checked against source code>
---

## Overview

<1-2 sentences: what this covers, stated as facts not narrative.>

## <Core Content>

<Main documentation. Use H2/H3 headings as section labels. Prefer bullet points and tables over paragraphs. Each section should be independently useful — an LLM may retrieve a single section, not the whole document.>

## Integration Points

<How this component connects to others. Include a Mermaid diagram.>

## Design Decisions

<Decision: rationale format. No preamble.>

Token Budget

Docs are loaded into LLM context alongside code, conversation history, and tool results. Context is finite and expensive.

  • Target: 200-500 lines per document. If a document exceeds this, split it.
  • Use bullet points and tables instead of paragraphs — same information, fewer tokens
  • State facts directly: "Auth uses JWT with RS256" not "The authentication system has been designed to utilise JSON Web Tokens using the RS256 algorithm"
  • Define terms inline on first use with parenthetical notation: "The gateway (API entry point handling routing and auth) forwards requests to..."
  • Omit transition sentences, introductory phrasing, and summaries of what was just said
  • Prefer structured lists over prose for enumerating components, dependencies, or flows

File Organisation

Root-level directory structure (all projects)

docs/
  technical/     — root-level / cross-cutting technical docs
  product/       — product documentation (features, user guides, business context)
  maverick/      — maverick-generated project skills (if applicable)

Single-repo projects

All technical docs go in docs/technical/ — no additional nesting required.

Mono-repo projects

  • Cross-cutting and architectural docs go in docs/technical/ at the repo root
  • Package-specific technical docs go in <package>/docs/ (no technical/ subdirectory needed since package docs are inherently technical)
  • Each <package>/docs/ maintains its own index.md listing that package's documents
  • Product docs are never stored at the package level — always in root docs/product/

General rules

  • Create separate files for distinct topics rather than monolithic documents
  • Use kebab-case.md naming (e.g. authentication-architecture.md)
  • Each file should be self-contained but may cross-reference others via relates-to in frontmatter
  • Maintain an index.md in docs/technical/ listing all documents with one-line descriptions — this serves as the entry point for LLM context loading
  • In mono-repos, root docs/technical/index.md should link to each <package>/docs/index.md

Sizing

Task sizeDocumentation depth
Trivial (config, minor change)2-3 sentences in an existing doc or commit message
Small (single component)Overview + core content (under 200 lines)
Medium (feature, service)Full document structure (200-500 lines)
Large (cross-cutting, architecture)Split into multiple focused documents

Within a Document

Scale section depth to component complexity. Indicators that a component needs deeper coverage:

  • File exceeds 300 lines
  • Contains business/domain logic (rule engines, calculations, transformations)
  • Has multiple distinct output modes (e.g., screen rendering, PDF export, print view)
  • Serves as an aggregation point for data from multiple sources

For these components, document each distinct responsibility separately rather than summarising the whole.

Mermaid Diagram Standards

Use diagrams to visualise:

  • Service interactions: sequenceDiagram or flowchart
  • Data flows: flowchart or sequenceDiagram
  • Architecture overviews: flowchart or C4Context
  • State transitions: stateDiagram-v2

Guidelines:

  • Every diagram must have a descriptive title
  • Use clear, descriptive node labels — not abbreviations or internal variable names
  • Keep diagrams focused on one concept; prefer multiple simple diagrams over one complex one
  • Aim for no more than 15-20 nodes per diagram

Writing Style

  • Dense, not verbose: State facts. Skip introductions, transitions, and conclusions. An LLM does not need to be "eased into" a topic.
  • Precise: Use exact technology names and versions. "PostgreSQL 16 with row-level security" not "a relational database with access controls".
  • Consistent terminology: Use the same term for the same concept everywhere. Define domain terms inline on first use.
  • Structured over narrative: Prefer key: value patterns, bullet lists, and tables. Reserve prose for explaining why — rationale that cannot be expressed as a list.

Validation Checklist

Before finalising documentation:

  • All factual claims verified against source code
  • Mermaid diagrams render correctly (valid syntax)
  • No implementation code, config snippets, or CLI commands included (API surface tables are acceptable)
  • Cross-references use correct relative paths
  • Document is under 500 lines (split if larger)
  • YAML frontmatter present with title, scope, relates-to, last-verified
  • docs/technical/index.md updated if this is a new document (and <package>/docs/index.md for mono-repo package docs)
  • Bullet points and tables used instead of prose where possible
  • All public exports from documented modules are covered (check for multiple exports per file)
  • Numbering, terminology, and facts are consistent across all documents in the set
<!-- maverick-plugin-version: 4.0.1 -->

Keep looking

Skills are one crate of 627,801. 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.