documentation
Use before you edit a README.md, a crate README, anything under docs/, an architecture doc, or a protocol doc, when a behaviour change could leave a doc…
Skill by futex-ai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/futex-ai-documentation
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, testing, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/documentation
What's inside
- Skill name
documentation- Description
- Use before you edit a README.md, a crate README, anything under docs/, an architecture doc, or a protocol doc, when a behaviour change could leave a doc stale, when the code and a protocol doc disagree, when you decide whether a sentence belongs in a protocol doc, a README, a plan, a test, or the code, and when a change or a review option conflicts with a protocol doc.
- License
- MIT
- Instructions
- 173 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Documentation Docs under `docs/`, protocol docs, mockups, and every `README.md` are part of the spec. Keep them aligned with the behaviour of the implementation in the same change. A doc is stale when it contradicts the code. A doc that is silent on a detail is not stale. When a change removes or renames anything, search `docs/`, `plans/`, and every `README.md` for its name; see the `git-commit` skill. Mockups have their own rules in the `mockups` skill. ## The home of each kind of content Each fact lives in one place. Other docs link to it. | Content | Home | | --- | --- | | A requirement: observable behaviour at a boundary | The protocol doc | | A decision in force, with the rejected alternative and the reason | The protocol doc, next to its requirement | | Components, their responsibilities, and their boundaries | The architecture doc | | Entry points into the code: files, types, functions | The crate or area `README.md`, under `### Key Code` | | How the code works: mechanics, call order, module layout | The code and its doc comments | | The design of one change, its dated decisions, and history | The plan under `plans/` | | Cases and examples | The tests | | An API surface, a schema, a type list | Generated reference | ## Workspace README - A summary of the key features of the project, not a long list of every feature. - User-facing interface documentation: CLI, API, and similar. - Developer get-started steps. - Key code jumping-in points. - Links to the architecture doc, the protocol docs, and the `plans/` directory. Read the `README.md` for the area you work on before you change it, and update it with any new useful context in the same change. ## Rust crate READMEs - Treat every crate `README.md` as user-facing documentation good enough to publish on crates.io. - Start with a short statement of what the crate is for, where it fits in the workspace, and when a caller should depend on it. - Document the public behaviour and integration boundary, not only internal implementation details. - Include these sections, in this order: `## Responsibilities`, `## What This Crate Does`, `## Quick Start`, `## Development`, `### Key Code`, `### Related Docs`. - `## Quick Start` includes example code or runnable commands, not only prose. - `### Key Code` names the entry points: the files, types, and functions that a reader opens first, each with one sentence on what it does. This is the home of code references, so that protocol docs do not need them. Update it when an entry point moves or changes. - `### Related Docs` links to the protocol docs and the architecture doc that the crate implements. - For binary crates or user-facing tools, document the CLI or external interface, not only the internal architecture. - Keep examples aligned with the real public API and current behaviour. Do not describe internals that callers cannot use directly. - Keep crate READMEs concise and high-signal: main use cases and boundaries, not every file or minor feature. - When a crate has important neighbouring crates, name them and explain the boundary so that ownership is clear. ## Docs (`docs/`) - Docs stay aligned with the behaviour of the implementation. Fix a doc that contradicts the code in the same change. - Docs are consistent with themselves: no conflicting statements. - Docs may be nested in multiple directories. - A gap in the requirements found during implementation is a decision when it passes the decision test in the `decisions-and-findings` skill. See "Protocol docs change with the behaviour" below. ## Architecture docs An architecture doc describes the structure that no single piece of code shows: the components of the system, the responsibility of each, the boundaries between them, and the flow of data across the boundaries. It lives under `docs/`, for example `docs/architecture.md` or `docs/architecture/<area>.md`. - Describe components and their responsibilities, not modules, files, or functions. Code-level structure goes stale on every refactor. A component boundary does not. - Keep few architecture docs: one for the system, and one for a large area when the system doc passes the length target. - Update an architecture doc when a component, a responsibility, or a boundary changes. A change inside a component needs no update. - Apply the same length target as protocol docs. ## Generated reference Reference content lists what exists: an API surface, a schema, a type list, a command list. Hand-written reference drifts on every addition. - When a generator exists, generate the reference from the code and commit the output. The `shared-types` skill gives the generators for types that cross between Rust and TypeScript, and utoipa gives the OpenAPI document for an HTTP API. - Keep in prose only the semantics that a generator cannot express, such as idempotency, authorization, and ordering rules. These are requirements and belong in the protocol doc. - Do not hand-edit generated output. Regenerate it in the same change as the code. ## Protocol docs (`docs/protocol`), the specs A protocol doc holds the requirements and the decisions in force for one area. A human reviews it before implementation starts. The post-push review checks the behaviour of the code against it. Every change to a protocol doc is therefore a change to a requirement or to a decision, and is worth a review. - A requirement states observable behaviour at a boundary: an interface, a wire format, a state transition, an error, a limit, or what a user sees. Write one requirement in each sentence. - Apply this test to every sentence: could a different implementation
From futex-ai/skills, MIT.
More from futex-ai/skills
- 0.592score
git-commit
futex-ai
Use before you commit and directly after, when you write a commit message or a pull request title and description, when you squash, when the diff against…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
writing-skills
futex-ai
Use when you create or edit a skill, write or change a skill description, or when an agent skipped a rule, did not load a skill, or loaded the wrong one.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
deterministic-tests
futex-ai
Use when a test fails and then passes on a rerun, when a test is flaky or timing-dependent, when a test would assert elapsed time, a timeout, or performance…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
shared-types
futex-ai
Use when a Rust backend and a TypeScript or JavaScript frontend exchange data, before you add or change a request, response, query, event, message, or error…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rust
futex-ai
Use before you write or change Rust code, add a crate or a dependency to a Cargo workspace, write or move a Rust test, define or map an error type, or add a…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
implementation-review
futex-ai
Use after you push a branch and the work needs a review, before you run a review or apply its findings, when a plan's review TODO is reached, when the user…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
git-merge
futex-ai
Use before you merge or rebase a branch, when origin/main has moved ahead of your branch, when you resolve merge conflicts, directly after you commit a merge…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
product-ui
futex-ai
Use before you implement or change a screen, a component, a view, or a mockup, when you write or edit user-facing text such as a status, helper, label, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
decisions-and-findings
futex-ai
Use before you send a message that asks the user for a decision, presents review findings or review items, or gives a final report, when the user asks for…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
typescript
futex-ai
Use before you write or change TypeScript or JavaScript, add an npm dependency, set up a new package, or write a frontend file, a Node script, or a test file…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
databases
futex-ai
Use before you add, edit, or name a database migration or a seed migration, when you touch a schema, Diesel code, a migration lock, or a crate named…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
finish-work
futex-ai
Use before you say that work is complete or done, before you commit or push, when you decide which tests, checks, or gates to run, when a gate or a test suite…
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 21, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/futex-ai/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from futex-ai
- 0.592score
shared-types
futex-ai
Use when a Rust backend and a TypeScript or JavaScript frontend exchange data, before you add or change a request, response, query, event, message, or error…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
deterministic-tests
futex-ai
Use when a test fails and then passes on a rerun, when a test is flaky or timing-dependent, when a test would assert elapsed time, a timeout, or performance…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
git-commit
futex-ai
Use before you commit and directly after, when you write a commit message or a pull request title and description, when you squash, when the diff against…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rust
futex-ai
Use before you write or change Rust code, add a crate or a dependency to a Cargo workspace, write or move a Rust test, define or map an error type, or add a…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
implementation-review
futex-ai
Use after you push a branch and the work needs a review, before you run a review or apply its findings, when a plan's review TODO is reached, when the user…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
writing-skills
futex-ai
Use when you create or edit a skill, write or change a skill description, or when an agent skipped a rule, did not load a skill, or loaded the wrong one.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
documentation skill. Agent Mart. https://agentmart.dev/skills/futex-ai-documentation (last updated 2026-10-24)