Docs
brickbots/PiFinder
Author and edit PiFinder's user-facing documentation in the project's house style.
Write or improve software documentation using the Diátaxis framework — four documentation types (tutorials, how-to guides, reference, explanation), each serving a different user need.
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .claude/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .claude/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .agents/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .agents/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .cursor/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .cursor/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/calf-ai/calfkit-sdk.git --path .agents/skills/diataxis-docs-writer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .gemini/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .gemini/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .github/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .github/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install calf-ai/calfkit-sdk diataxis-docs-writer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/calf-ai/calfkit-sdk.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/diataxis-docs-writer .opencode/skills/diataxis-docs-writer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "diataxis-docs-writer" agent skill from https://github.com/calf-ai/calfkit-sdk/tree/main/.agents/skills/diataxis-docs-writer into .opencode/skills/diataxis-docs-writer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "diataxis-docs-writer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
diataxis-docs-writerWrite or improve software documentation using the Diátaxis framework — four documentation types (tutorials, how-to guides, reference, explanation), each serving a different user need.
Diataxis Docs Writer is an agent skill from calf-ai/calfkit-sdk. Write or improve software documentation using the Diátaxis framework — four documentation types (tutorials, how-to guides, reference, explanation), each serving a different user need. Use it whenever you're about to write or revise documentation for a finished feature, implementation, API, library, CLI, service, or project — READMEs, /docs pages, guides, API/config reference, conceptual overviews — even when the user just says "document this" or "write docs." Especially reach for it right after a feature or PR…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/distinctions.md`, `references/explanation.md` and `references/how-to-guides.md`).
It sits in Development, covering Technical documentation, Event-driven systems and Technical writing. It works with OpenAI, Pydantic AI, Python and Apache Kafka. The repository describes itself as: 🐮 Build distributed, event-driven agents. The licence is Apache-2.0.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d50af54. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Diataxis Docs Writer loads about 3k tokens when it runs, and up to ~13k if it reads all its reference files. Until then it costs about 256 tokens; SKILL.md has 1,518 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from calf-ai/calfkit-sdk at commit d50af54, republished under its Apache-2.0 licence (© calf-ai). 1,518 words, ~2,952 tokens.
.claude/skills/diataxis-docs-writer/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Good documentation is not one thing. It is four things, each answering a different question a user has, each written in a different way. Most bad documentation is bad not because the writing is poor but because two of these four got mixed together — a tutorial clogged with explanation, a reference page that wanders into opinion, a "how-to" that's really a half-finished lesson.
Your job with this skill is to keep them separate. Decide which kind you're writing, commit to its discipline, and link out to the others rather than bleeding into them.
Diátaxis is a guide, not a plan. You don't start by building four empty sections and filling them in. You write each piece well, in its proper mode, and good structure emerges from that.
Every craft involves two distinctions. Documentation must serve both sides of each:
Cross those two axes and you get four quadrants — the four documentation types. There can't be three or five; the two axes define the whole territory.
Before writing a sentence, decide which type you're producing. Ask just two questions:
| If the content informs… | …and serves the user's… | …then it is a… | It answers | Its form is |
|---|---|---|---|---|
| action | acquisition (study) | Tutorial | "Can you teach me to…?" | a lesson |
| action | application (work) | How-to guide | "How do I…?" | a recipe |
| cognition | application (work) | Reference | "What is…? / What are the options?" | dry description |
| cognition | acquisition (study) | Explanation | "Why…? / Tell me about…" | a discursive article |
Use the terms loosely at first — the point is to force a decision, not to win a naming argument. Apply the questions at any zoom level: a whole document, a section, or a single sentence that feels out of place.
Documenting a finished feature usually needs more than one type. A new API endpoint might want a reference entry (the parameters and return values), a how-to (accomplishing a real task with it), and maybe an explanation (why it works the way it does). Don't try to serve all of these in one page. Identify which types the feature actually needs right now, and write each separately. Skip the types it doesn't need yet — better a complete how-to than four thin, half-blurred pages.
When the type genuinely isn't obvious, or you suspect intuition is misleading you, read references/distinctions.md.
Once you know the type, open its reference file and follow it. Each gives you the principles, the sentence-level language patterns, a worked software example, a skeleton to adapt, and a self-check. Read the one you need — don't work from the summary below alone.
| Type | One-line discipline | Read |
|---|---|---|
| Tutorial | A lesson. Learning-oriented. The user learns by doing, on a single safe path you guarantee works. Ruthlessly minimize explanation. | references/tutorials.md |
| How-to guide | Directions to a real-world goal. Goal-oriented. Assumes competence. Can branch. Omit the unnecessary. Title it "How to …". | references/how-to-guides.md |
| Reference | Neutral technical description. Information-oriented. Austere, consistent, mirrors the structure of the code. Describe and only describe. | references/reference.md |
| Explanation | Discursive discussion. Understanding-oriented. Answers why. Gives context, alternatives, opinions. Read away from the keyboard. | references/explanation.md |
Each type has a natural pull toward its neighbours, and resisting that pull is most of the craft:
The fix is almost always the same: say the minimum, then link to the right place. A one-line "We use HTTPS here because it's more secure (see About transport security)" keeps a tutorial on track far better than a paragraph.
The two confusions worth knowing cold — because they cause the most damage — are tutorial vs. how-to (study vs. work) and reference vs. explanation (consult-while-working vs. read-while-reflecting). Both are covered in references/distinctions.md.
Documentation is something users trust and act on, so an invented or stale detail is worse than a missing one — it sends people confidently toward something that isn't there. Never document an implementation that doesn't exist.
When your docs describe code — a function, its parameters, return values, flags, errors, a config key, an endpoint — verify every statement against the actual code. The code is the only source of truth that can be fully trusted. Specs, tickets, design docs, the feature description you were handed, and even the existing documentation can all be out of date or have drifted from reality: implementations deviate when problems are hit mid-build, and written intentions are rarely updated to match. So read the real signature, the real schema, the real behavior in the source. When a description and the code disagree, trust the code — and flag the discrepancy so a human can reconcile it. If all you have is a description and you can't see the code, treat the description as an unverified claim: document what you can ground, and clearly mark what you couldn't verify rather than presenting it as fact.
This bites hardest in examples, which are tempting to embellish. An example must demonstrate real, verified behavior — don't reach for an input that asserts behavior nobody confirmed: how a function handles Unicode or empty input, what a config does at its limits, a package's install command or name, an error a call might raise. If a detail matters but you can't verify it against the code, say so plainly ("behavior for X is unspecified") or leave it out — never paper over the gap with a plausible-sounding guess. A confident hallucination is the most damaging thing documentation can contain. Accuracy is the first obligation of functional quality; see references/quality.md.
Authoring new docs for a feature you (or the user) just built:
Improving an existing doc set — don't rewrite it top-down. Diátaxis works iteratively, and improvements cascade naturally from small changes:
Resist two temptations when improving: tearing it all down to start over, and
creating empty tutorial/, how-to/, reference/, explanation/ folders to
"fix the structure." Structure should emerge from improved content, not be
imposed on top of it.
When you're shaping more than a single page — a /docs tree, a landing page, a
whole site — the four types become top-level sections, but the real world is
often more complex (multiple user types, platforms, or topic areas). For how to
structure landing pages, hierarchies, and these two-dimensional cases, read
references/structure.md.
Read references/quality.md for the self-review pass. The short version: first secure functional quality (accuracy, completeness, consistency) — Diátaxis can't give you these but it exposes where they're missing — then check for deep quality: does each page do exactly one job, in the right voice, with nothing blurred in from a neighbour, in a way that flows?
© calf-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in .agents/skills/diataxis-docs-writer of calf-ai/calfkit-sdk.
Open the folder on GitHubat commit d50af54
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in calf-ai/calfkit-sdk, which our catalogue first saw on October 7, 2026.
Diataxis Docs Writer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Diataxis Docs Writer this skillcalf-ai/calfkit-sdk | 149 | 1 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Docsbrickbots/PiFinder | 250 | — | ~6.2k | Automated safety check: Pass | GPL-3.0 | |
| Updating Docs For Releasestreamlit/docs | 178 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Generate Readmedivar-ir/ai-doc-gen | 767 | — | ~996 | Automated safety check: Pass | MIT | |
| Adk Stylegoogle/adk-python | 22k | — | ~769 | Automated safety check: Pass | Apache-2.0 | |
| Project Docsjjmartres/opencode | 133 | — | ~1.3k | Automated safety check: Pass | MIT |
brickbots/PiFinder
Author and edit PiFinder's user-facing documentation in the project's house style.
streamlit/docs
Update the streamlit/docs repo for a new Streamlit release. An agent skill from streamlit/docs.
divar-ir/ai-doc-gen
Generate or refresh a comprehensive, professional README.md for a repository, with architecture overview, mermaid and optional C4 diagrams, repository structure, dependencies, and API documentation.
google/adk-python
Python style and codebase conventions for ADK (Agent Development Kit): private-by-default file visibility, imports, type hints, Pydantic v2 models, formatting, docstrings, logging, async I/O, file…
jjmartres/opencode
Generate comprehensive, professional project documentation structures including README, ARCHITECTURE, USERGUIDE, DEVELOPERGUIDE, and CONTRIBUTING files.
wshobson/agents
Python code style, linting, formatting, naming conventions, and documentation standards.
calf-ai/calfkit-sdk
A skill your agent uses when a user wants guidance on starting, contributing to, growing, governing, funding, securing, or sustaining an open source project, or asks about contributor onboarding…
Works with
Categories
Write or improve software documentation using the Diátaxis framework — four documentation types (tutorials, how-to guides, reference, explanation), each serving a different user need. Diataxis Docs Writer is an agent skill from calf-ai/calfkit-sdk. Write or improve software documentation using the Diátaxis framework — four documentation types (tutorials, how-to guides, reference, explanation), each serving a different user need.
Diataxis Docs Writer fits situations like: youre about to write; revise documentation for a finished feature; project — READMEs; API/config reference.
Run `npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a claude-code`. Or copy the skill folder (.agents/skills/diataxis-docs-writer in calf-ai/calfkit-sdk) into .claude/skills/diataxis-docs-writer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a codex`. Or copy the skill folder (.agents/skills/diataxis-docs-writer in calf-ai/calfkit-sdk) into .agents/skills/diataxis-docs-writer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add calf-ai/calfkit-sdk --skill diataxis-docs-writer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/diataxis-docs-writer, .gemini/skills/diataxis-docs-writer, .github/skills/diataxis-docs-writer and .opencode/skills/diataxis-docs-writer in your project.
SKILL.md names no scripts, command-line tools or credentials: Diataxis Docs Writer is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Diataxis Docs Writer is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Diataxis Docs Writer: Docs (brickbots/PiFinder, 250 stars), Updating Docs For Release (streamlit/docs, 178 stars), Generate Readme (divar-ir/ai-doc-gen, 767 stars) and Adk Style (google/adk-python, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
calf-ai (a GitHub organization) maintains it in calf-ai/calfkit-sdk, which has 149 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 31, 2026.
Source: calf-ai/calfkit-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.