Skip to content
Skills Library
Programming · Writing

write-docs

/write-docs

Use when writing or updating a hand-written docs.sodax.com page — a guide, how-to, quickstart, network page, blog post or example under docs/ — so it cannot drift from the SDK: TypeScript comes from compiled examples in apps/docs-examples, existing SDK docs are linked rather than restated, and every claim that can go stale has a check. Triggers on "write a guide", "add a docs page", "document how to", "add an example to the docs", "write a blog post for the docs", "update the docs page". Also the rules developers follow when writing package docs (packages/sdk/docs, READMEs).

Repository
sodax-sdks ↗
Licence
MIT
Last repository change
13.11.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 13.11.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Use when writing or updating a hand-written docs.sodax.com page — a guide, how-to, quickstart, network page, blog post or example under docs/ — so it cannot drift from the SDK: TypeScript comes from compiled examples in apps/docs-examples, existing SDK docs are linked rather than restated, and every claim that can go stale has a check. Triggers on "write a guide", "add a docs page", "document how to", "add an example to the docs", "write a blog post for the docs", "update the docs page". Also the rules developers follow when writing package docs (packages/sdk/docs, READMEs).

Triggers from the description

write a guideadd a docs pagedocument how toadd an example to the docswrite a blog post for the docsupdate the docs page
Original author description

Use when writing or updating a hand-written docs.sodax.com page — a guide, how-to, quickstart, network page, blog post or example under docs/ — so it cannot drift from the SDK: TypeScript comes from compiled examples in apps/docs-examples, existing SDK docs are linked rather than restated, and every claim that can go stale has a check. Triggers on "write a guide", "add a docs page", "document how to", "add an example to the docs", "write a blog post for the docs", "update the docs page". Also the rules developers follow when writing package docs (packages/sdk/docs, READMEs).

How it works

  1. 0. Check the lane
  2. 1. The three rules
  3. 2. Claim → guard
  4. 3. Workflow
  5. 4. Cut these on sight
  6. Package docs (developer lane)
Original SKILL.md headings · 69 lines, 720 words
SKILL.md preview
---
name: write-docs
description: 'Use when writing or updating a hand-written docs.sodax.com page — a guide, how-to, quickstart, network page, blog post or example under docs/ — so it cannot drift from the SDK: TypeScript comes from compiled examples in apps/docs-examples, existing SDK docs are linked rather than restated, and every claim that can go stale has a check. Triggers on "write a guide", "add a docs page", "document how to", "add an example to the docs", "write a blog post for the docs", "update the docs page". Also the rules developers follow when writing package docs (packages/sdk/docs, READMEs).'
---

# Writing a docs.sodax.com page

> Anything that can drift will drift. A page is done when every claim it makes either comes from
> a source that CI checks, or is a link to one. Read `docs/AGENTS.md` for the site's
> non-negotiables (paths, nav, frontmatter, MDX); this skill covers what goes *on* the page.

## 0. Check the lane
The content lane covers hand-written `docs/` pages (no `generatedFrom` frontmatter key), their
`docs/docs.json` entries and images, and `apps/docs-examples`. If the page has a `generatedFrom`
key, edit the source it names instead. If the page can only be correct after a change to a
package or another app, stop and open an issue describing what's missing. Don't patch the SDK.

## 1. The three rules
1. **No pasted TypeScript.** Every `ts` / `tsx` / `typescript` block is copied from a region of a
   compiled file in `apps/docs-examples/src`. CI (`pnpm check:docs-examples`) fails on anything else.
2. **Link, don't restate.** Parameters, types, return shapes, error codes, defaults and rationale
   already live in the code, its types and JSDoc, package `README.md` files, `packages/sdk/docs`
   and package `AGENTS.md` files. A page states the reader's **goal**, the **sequence** of steps,
   and **when to use which API**, then links to those sources for the rest.
3. **Every drift-prone claim has a guard.** Find the guard for each claim in the table below. If
   a claim has no guard, cut it or turn it into a link.

## 2. Claim → guard
| The page says… | Guard |
| --- | --- |
| Code the reader runs or copies | Region embed from `apps/docs-examples` (compiled; asserted when deterministic) |
| A behaviour the code shows ("a failed network comes back as `null`") | A test beside the example asserting exactly that |
| Networks, tokens, addresses, counts | A `data-sodax-config` element (`docs/README.md`, *Live config tables*), never typed |
| What a parameter, type, error or default means | A link to the source file or package doc that defines it |
| Why the SDK works this way | A link to the package `AGENTS.md` or `packages/sdk/docs` page |
| Another docs page | Root-relative, extensionless link (`/developers/faq`); `pnpm docs:validate` checks it |
| "Available since x.y", "currently", "new", refresh intervals, internal mechanisms | Nothing can guard these, so leave them out |

## 3. Workflow
- [ ] **Find the existing page first.** Update in place and keep its headings. Only a genuinely
      new topic gets a new page.
- [ ] **Outline:** goal, then the steps in order, then pitfalls the reader can't see from the types.
- [ ] **Write each example** in `apps/docs-examples/src/<page-topic>/`, following
      `apps/docs-examples/AGENTS.md`. Import public entry points only. Declare values the reader
      supplies (`declare const userAddress: …`) *outside* the region.
- [ ] **Wrap the shown part** in `// #region <name>` … `// #endregion <name>`.
- [ ] **Test what the prose claims.** If the page asserts behaviour and the example can run
      without a network, add `<name>.test.ts` beside it with mocks.
- [ ] **Embed it.** On the line directly above the fence, put `{/* example: <page-topic>/<file>#<name> */}`,
      then run `pnpm docs:sync-examples`. Never edit the code inside a marked fence; edit the example instead.
- [ ] **Opt out only for pseudocode** that cannot compile: `{/* example: none — <reason> */}`.
- [ ] **Register a new page** in `docs/docs.json` and give it a `title` and an `icon`.
- [ ] **Run the gates** and read their output:
  ```bash
  pnpm --filter docs-examples checkTs && pnpm --filter docs-examples test
  pnpm check:docs-examples
  pnpm check:docs-nav && pnpm check:docs-pages
  pnpm docs:validate
  ```
- [ ] **Self-review** with `.claude/skills/review-docs/` before opening the pull request.

## 4. Cut these on sight
- A table or list of parameters, fields or error codes (the type already says it).
- A paragraph explaining a mechanism the SDK hides ("the SDK batches via multicall3…"), unless
  the reader must act on it.
- A summary of a package doc you could link instead.
- Copies of the same snippet on several pages. Embed one region from all of them.

## Package docs (developer lane)
Developers writing `packages/sdk/docs` pages or package READMEs follow the same three rules.
The embed gate covers hand-written `docs/` pages only, so in package docs, prefer linking to a
runnable file (`apps/node`, tests) over pasting long code.

Versions

RepositoryScoreLicence
This page · gosodax/sodax-sdks100MIT
hassan-mohiddin/freeflow100MIT
alchemy-run/alchemy100Apache-2.0
Agenta-AI/agenta100MIT
comet-ml/opik100Apache-2.0
jelvodev/yaap100MIT
gtriggiano/statica100MIT
browseros-ai/browseros100BSD-3-Clause
wilbeibi/claude-toolkit100MIT

Database snapshot: 13.11.2026 · package version 5866f83e36ab (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100review-docs
    Use when reviewing a change, diff or PR that adds or edits hand-written docs.sodax.com content — guides, how-tos, quickstarts, network pages, blog posts, or examples in apps/docs-examples — for drift risk: pasted TypeScript, restated SDK knowledge, claims with no check, lane…
  • 100writing-docs
    Write, audit or update a project's docs from its source code. User docs (quickstart, install, configuration, a page per feature) and maintainer docs (architecture, data model, invariants), as plain Markdown or for a docs framework such as Starlight or MkDocs. Use for "write the…
  • 100add-doc-page
    Use when adding or updating yaebal docs pages under apps/docs/src/routes/docs, including nav, seo, runnable try examples, codetabs, and docs health checks.
  • 100writing-docs
    Use when writing or editing documentation in packages/docs. Covers Gitbook markdown syntax, special blocks, page structure, and the SUMMARY.md table of contents. Trigger phrases include "write docs", "add documentation", "docs page", "gitbook", "user manual".
  • 100docs-update
    Use when documentation has drifted from code changes and the user asks to synchronize. Not for ADRs or architectural rationale (docs-and-adrs). Not for writing an isolated document (docs-writing).
  • 100generating-api-docs
    Create comprehensive API documentation with examples, authentication guides, and SDKs. Use when creating comprehensive API documentation. Trigger with phrases like "generate API docs", "create API documentation", or "document the API".

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.