Repository navigation
user manual
Published from
docs/skills/user-manual.mdat150f808. Edit the source in the repository, not this page.
user-manual creates and maintains an application manual from your repository, with separate editions for end users, administrators, and technical readers. Pages are Markdown that reads correctly on GitHub; you choose how each edition is rendered.
| Bundle |
dev-tools (Claude Code plugin dev-tools@sanduq) |
| Version | 2.0.4 |
| Prerequisites | Python 3.10+, PyYAML and markdown-it-py (User-Manual/requirements.lock). Rendering through your own tool needs that tool. The MkDocs renderer needs MkDocs and a theme; its PDF also needs the system libraries in the skill's references/publishing.md. |
| Hosts | Claude Code: yes. Codex: yes. Claude Desktop: unverified. |
Follow the Install section of the README for your
host. In Claude Code, the dev-tools plugin
installs it.
/dev-tools:user-manual Create a manual for our booking application. Inspect the repository,
interview me about audiences, and propose the module map before writing anything.
Or just ask: "create a user manual for this app".
In Codex, call it as $user-manual with the same prompt.
The skill reads your code first. Then it proposes a module map: the product areas the manual will cover. Nothing is written until you approve it.
One skill does all of the manual work. It loads the detailed instructions for a task only when the task needs them:
- Pages: discovery, tutorials, how-to guides, reference and explanation pages per audience, in English and optional Arabic.
- API references: REST/OpenAPI, AsyncAPI, GraphQL, RPC, webhooks and code APIs, with a separate bundle per audience so internal operations never reach public pages.
- Release notes and migration guides written from what actually shipped.
- Screenshots: a capture matrix and repeatable, redacted web and mobile screenshots from your own test runner.
- Previews and releases: a private build for every pull request and versioned release archives.
The approval step is deliberate. Nothing is written until you accept the module map, and you can send it back as often as you need. The dashed line on the right is what keeps the manual honest later: once code changes, the freshness status fails and points you back at the pages to update. Editable source.
All content lives under User-Manual/ in your repository:
-
manual.yml: the approved module map, languages, audiences, publishing settings and the renderer. -
docs/en/(anddocs/ar/if you enable Arabic): one Markdown page per module, plus shared pages. -
theme/brand.yml: the title, subtitle, author, copyright, logo and colour every renderer shows. Your own templates go intheme/too. -
requirements.lock(PyYAML and markdown-it-py),requirements-mkdocs.lockandrequirements-pdf.lock: install only what your renderer needs. -
tools/: copies of the build, audit, and state scripts, so CI can run them.--no-toolsskips them. - Built output in
site/(andpdf/with the MkDocs renderer). Treat these as generated.
Outside that folder, it adds two CI workflows if they don't exist yet:
.github/workflows/user-manual-preview.yml and .github/workflows/user-manual-release.yml. They
install only what the selected renderer needs.
Markdown is the source of truth. Every page records its audience, content type, evidence paths, and last-verified date.
The build assembles each edition (one audience and language) as Markdown:
it selects the pages, fixes the links between them, and copies only the images and files they use.
Then renderer.kind in manual.yml decides the output:
renderer.kind |
You get |
|---|---|
markdown (default) |
The assembled Markdown edition, readable on GitHub or a wiki |
command |
Whatever your own tool makes from the edition, with your templates: a Word file through Pandoc, a Quarto book, your own script |
mkdocs |
An MkDocs HTML site with any installed theme, and with --pdf a PDF |
A Word edition through your team's template:
renderer:
kind: command
command: pandoc {pages} --metadata-file {metadata} --reference-doc theme/word.docx -o {output}/manual.docxThe command runs from User-Manual/, so its paths are relative to the manual. {pages} lists the
edition's pages in reading order; {metadata} gives Pandoc the title, author, language and text
direction. The full list of placeholders is in the skill's references/publishing.md.
Write GitHub's own Markdown, so pages read correctly in the repository: > [!NOTE] and the other
GitHub alerts for callouts, <details> for collapsible or alternative content, and plain pipe
tables. The MkDocs renderer converts them into its own boxes and sections, titled in the edition's
language. The audit warns about MkDocs-only syntax such as !!! note or === "Tab" and names the
GitHub form to use.
-
New or existing. For a new manual it interviews you and scaffolds. For an existing manual it
reads
manual.ymland your git changes, then updates only the affected pages. -
Coverage audit.
scripts/audit_manual.pylists gaps. Ask "audit the manual" and it explains each one. -
Build one edition.
scripts/build_manual.py --audience end-user --language en. Add--archivefor a zip,--module <id>for one module only,--renderer <kind>to try another renderer once, or--pdfwith the MkDocs renderer. -
MkDocs theme.
renderer.theme:material(the default),readthedocs,mkdocs, or any installed MkDocs theme.renderer.custom_diris a theme override folder relative toUser-Manual/. A cover template intheme/pdf/cover.htmlreplaces the PDF cover. -
Arabic. English is required. Arabic is optional, with right-to-left layout built in. Every
edition records its language and direction for any renderer. MkDocs PDFs keep right-to-left layout,
use the Amiri font (
fonts-hosny-amirion Ubuntu) and title the contents in Arabic. -
Freshness.
scripts/manual_state.py record --feature <dir>records the state after an update.statusexits 1 if inputs or outputs changed since then. - Diagrams. When illustrate is installed, the skill uses it for diagrams, including a system ER overview and smaller per-module ER diagrams.
- It documents only what it can find evidence for. Unknowns are marked, not invented.
- It never includes secrets, credentials, production records, or unredacted personal data. Examples use synthetic data.
- A page may link only to pages its own audience receives. The build rejects anything else.
- After you upgrade the skill, refresh
User-Manual/tools/from the skill'sscripts/folder. - The skill does not install a renderer command's tool. Put it on the build machine or CI runner.
- A
manual.ymlfrom before 2.0.0 has MkDocs settings and norenderer.kind: it keeps building its MkDocs site, and the build asks you to addkind: mkdocsto make that explicit. The fouruser-manual-*companion skills are gone; askuser-manualfor that work instead.
Published from samykabu/sanduq-skills at 150f808. The pages live in the repository's docs/ folder; edit them there. MIT licensed.
Plan
Delegate and track
Draw diagrams
Write and publish documentation
Reference