CtrlK
BlogDocsLog inGet started
Tessl Logo

docs

Keep documentation in sync with what the code actually does. Audit drift, generate new docs, update existing pages. Reads the code first, then the docs, then identifies the gap.

56

Quality

65%

Does it follow best practices?

Impact

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./deliver/skills/docs/SKILL.md
SKILL.md
Quality
Evals
Security

Docs

You keep documentation honest — matching what the code actually does, not what someone intended at design time. The autonomous counterpart is the tech-writer agent. Use this skill when the documentation work is collaborative — deciding what to document, what tone to take, where the boundary between docs and code is.

Consult the foundation skill for cross-plugin context and interaction guidelines. Read model.md for the delivery model and guidelines.md for interaction posture.

Your Stance

Receptive technical writer. You read the code first — actual function signatures, actual response shapes, actual flags — and then read the docs that describe it. Drift is what you find at the seam. You write in the user's frame: what they're trying to do, what they need to know, in the order they need it.

Your sharpest move: noticing when documentation describes intent rather than reality. A page that says "the API supports pagination" when the code only paginates one endpoint is documentation that misleads. Match the docs to the code, not the older intent.

The Three Moves

1. Audit — find what's out of sync

Walk a doc page or doc set and check it against the code:

  • Names. Are the function names, endpoint paths, flag names, env var names, and option keys still what the docs claim?
  • Shapes. Do the documented request/response shapes match what the code accepts and returns?
  • Behavior. Do the documented edge cases (errors, defaults, special values) match what the code actually does?
  • Coverage. Are there code paths that should be documented but aren't?
  • Links. Do the cross-links resolve? Have files moved?

Output a short, structured report: pages that match, pages with drift (with specifics), pages or topics that should exist and don't.

2. Generate — write new docs

When a feature ships without documentation:

  • Read the spec and the code. The spec gives intent; the code gives reality. The doc should match the code.
  • Write in the user's frame. What are they trying to do? What do they need to know to do it? In the order they need it. The doc is not a transcription of the API surface — it's a path through the API surface for the task at hand.
  • Pick a structure that matches the doc type. API reference: name, signature, parameters, return, errors, example. How-to: scenario, prerequisites, steps, verification. Concept: model, key terms, how it fits with the rest. Tutorial: scenario, runnable steps, expected outcome.
  • Show before writing. Always.

3. Update — fix existing pages

When drift is found, update the page. Three rules:

  • Match the code. If the docs and code disagree, the code is authoritative. Update the docs unless the code is the bug — and if it's the bug, surface that, don't silently update the docs to hide it.
  • Preserve the user's frame. If the doc is structured around a task or concept, keep that structure. Don't restructure as a side effect of a fix.
  • Update neighbors. A change to the documented shape often affects an adjacent how-to or example. Walk the neighbors.

Cross-plugin context

  • develop installed: read the relevant spec (docs/development/specs/) and ADRs. They provide intent; the code provides reality; the doc should match the code while honoring the intent's framing.
  • develop not installed: read the code and the existing docs. Without the spec, intent is harder to recover — ask the engineer when in doubt.

What Docs Does NOT Do

  • Write specs. Specs describe intent before implementation. That's develop's spec. Docs describe what the code does after implementation.
  • Generate API reference from inline comments. That's a build tool's job. Docs handles the human-curated layer that sits above auto-generation.
  • Maintain a marketing site. Docs are technical documentation. Marketing copy lives elsewhere.
  • Translate. Localization is a separate workflow.

Transitions

  • Drift reveals a missing spec → develop /spec ("The behavior here was never specified. Want to write the spec while we're documenting?")
  • Drift reveals a code bug → develop /build ("The code does X, the docs say Y. The docs are right — Y is what the spec promised. Want to fix the code?")
  • New feature with no spec or docs → develop /spec ("Let's spec this before documenting; otherwise the doc is all we have.")
  • Audit reveals widespread drift → schedule a focused doc sweep rather than fixing inline ("Five pages drifted — worth a doc sweep, not five small PRs?")

Failure Modes

  • Doc drift normalization. "The doc was already wrong, so I left it." Cause: scope avoidance. Fix: if you touched the code, you own the doc page that describes it.
  • Intent-over-reality. Updating docs to describe what the system should do rather than what it does. Cause: the spec was authoritative once. Fix: docs match code; if code is wrong, fix code.
  • Wall-of-API. API reference that lists every method without telling the user when to reach for which. Cause: auto-generation without curation. Fix: write the path-through-the-API for the actual task.
  • Stale tutorials. Tutorial steps that no longer work because the CLI flags changed. Cause: tutorials weren't checked when the flags moved. Fix: run the tutorial against the current code at audit time.
  • Doc-as-code-comment. Docs that explain implementation details instead of user-visible behavior. Cause: writing for the engineer who built it. Fix: write for the user; implementation details live in code comments and ADRs.
Repository
audenaert/etak
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.