agent-instructions
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
Use when writing developer-facing documentation. Covers the four documentation types and choosing between them, writing a README, API reference, and tutorials that work.
$ npx -y skills add nimadorostkar/Claude-Skills-collection --skill technical-documentation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/technical-documentationContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when writing developer-facing documentation. Covers the four documentation types and choosing between them, writing a README, API reference, and tutorials that work.
name: technical-documentation description: Use when writing developer-facing documentation. Covers the four documentation types and choosing between them, writing a README, API reference, and tutorials that work. metadata: category: writing version: 1.0.0 tags: [documentation, readme, api-docs, tutorials, technical-writing]
Write documentation that answers the question the reader actually has. Most documentation fails because it mixes four incompatible purposes into one document and serves none of them.
1. **Identify the reader's question** — "How do I start?" (tutorial), "How do I do X?" (how-to), "What are the parameters?" (reference), "Why is it built this way?" (explanation). These are four different documents. Mixing them is why documentation is unusable. 2. **Write the README to a first success** — Install, minimal working example, then links. A reader should be running something within two minutes. Everything else is a link. 3. **Make the examples runnable** — Copy, paste, and it works. An example with an elided `...` or an undefined variable is a broken promise. 4. **Generate the reference** — From the code, from the types, from the OpenAPI spec. Hand-written reference documentation is wrong within a month. 5. **Test the tutorial on a stranger** — Someone who has never seen the project. Every place they get stuck is a defect in the document.
**A README that gets to a working state:**
# rateguard
Rate limiting for FastAPI, backed by Redis. Token bucket and sliding window,
with per-user and per-endpoint limits.
## Install
pip install rateguard
## Use
from fastapi import FastAPI
from rateguard import RateLimiter, limit
app = FastAPI()
limiter = RateLimiter(redis_url="redis://localhost:6379")
@app.get("/search")
@limit(limiter, "20/minute", key="ip")
async def search(q: str):
return {"results": []}
Requests beyond the limit receive a 429 with a `Retry-After` header.
## Next
- [Per-user limits](docs/how-to/per-user.md)
- [Choosing an algorithm](docs/explanation/algorithms.md) — token bucket vs sliding window
- [API reference](docs/reference.md)
- [Deploying behind a proxy](docs/how-to/proxies.md) — you must configure this,
or every request will appear to come from the same IPThe reader is running rate-limited code in under a minute. The proxy warning is placed where it will actually be seen, because it is the mistake everyone makes.
**The four types, kept apart:**
docs/
tutorial/
getting-started.md "Take me from nothing to a working rate limiter."
Learning-oriented. One path. No options. No alternatives.
how-to/
per-user-limits.md "I need to limit by user ID, not IP."
proxies.md "I'm behind Cloudflare and all IPs are the same."
Task-oriented. Assumes competence. Solves one problem.
reference/
api.md "What are the parameters of `limit()`?"
Information-oriented. Complete. Dry. Generated.
explanation/
algorithms.md "Why token bucket rather than a fixed window?"
Understanding-oriented. Discusses trade-offs. No steps.A single "Documentation" page containing all four is the default, and it is why most documentation is unusable: the tutorial reader drowns in options and the reference reader wades through narrative.
A curated library of 137 production-grade skills for Claude and other AI coding agents. Every skill follows one structure, speaks with one voice, and earns its place by changing what the agent does.
Repo: nimadorostkar/Claude-Skills-collection
Use when writing project instructions for a coding agent (CLAUDE.md, AGENTS.md, or equivalent). Covers what belongs in them, what does not, structure, and…
Use when an agent needs state that survives a session or a context compaction. Covers what to persist, file-based memory, structuring notes for retrieval, and…
Use when automating agent behavior with lifecycle hooks. Covers hook events, deterministic enforcement of rules the model should not be trusted to remember,…
Use when packaging skills, commands, hooks, and MCP servers into a distributable plugin. Covers manifest structure, bundling, versioning, testing, and…
Use when writing a new skill for an AI agent. Covers scoping, description writing for reliable triggering, progressive disclosure, and the difference between a…
Use when reviewing or improving an existing agent skill. Covers triggering accuracy, content quality, redundancy with the base model, and measuring whether the…