An agent asked to turn Markdown into a Word document has to know four things: what the library can do, how to build a document with it, how to look at what it built, and how to use a design that already exists. This page is how it gets them.
What it is
A skill is a directory. It holds a SKILL.md — a short account of what it is for and
when to use it — and beside it the files it points at: the documentation, the examples, and
the scripts that render a document so that it can be looked at.
The one for this suite is mdword, and it is built from this site. The pages in it are
the pages of this site; the examples in it are this site's own and the library's. Nothing in
it is written twice: it is a copy made by the build, and a copy that is made by the build
cannot drift from what it was made from.
Install it
OpenCode reads it over the network and needs nothing downloaded — one line in
opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"skills": ["https://markdown-office.github.io/skills/"]
}
Every other agent reads a directory, and the whole bundle is one file:
curl -LO https://markdown-office.github.io/skills/mdword.zip
unzip -q mdword.zip -d ~/.agents/skills/mdword
Where it goes
| Agent | It looks here | What to do |
|---|---|---|
| Codex | ~/.agents/skills/mdword |
nothing — that is where it is |
| OpenCode | ~/.agents/skills/mdword, ~/.config/opencode/skills/mdword and ~/.claude/skills/mdword |
nothing, or the catalog above |
| Claude Code | ~/.claude/skills/mdword |
a symlink to the unpacked copy |
| GitHub Copilot | ~/.copilot/skills/mdword, and .github/skills/mdword in a repository |
a symlink to the unpacked copy |
So the bundle is unpacked in one place and the other two are links to it:
ln -s ~/.agents/skills/mdword ~/.claude/skills/mdword
ln -s ~/.agents/skills/mdword ~/.copilot/skills/mdword
A repository can carry one of its own instead, under .agents/skills/ or .github/skills/,
and it is found from the repository root rather than from the machine.
Is the copy current?
The version is in VERSION beside the SKILL.md, and it is the same string as the version
in the published catalogue. A copy whose VERSION differs from the catalogue's is a copy
from before, and the catalogue is the newer of the two:
curl -s https://markdown-office.github.io/skills/index.json
What is in it
mdword/
├── SKILL.md what the library does, and how to use it
├── VERSION the version of this bundle
├── references/ the documentation, one file per page
├── examples/ this site's examples, and the library's
│ ├── site/
│ └── library/
└── scripts/ the render tools
The references are the pages of this site, one file each, with the frontmatter off. The examples are the decks and documents the pages show, built and named, and the library's own twenty-three — which between them are the catalogue of what the library can do.
The scripts render a document so that it can be looked at, which is the one step a prose answer cannot do for itself.
What it is not
It does not replace this documentation. It is a copy of it, made by the same build that makes the site, and the site is where a change is made first. A copy of the documentation is not the documentation: it is a copy of it, as of the moment the copy was made.
And it is not a second implementation of anything. The library is the library; the skill says how to drive it.
Every example on this page was built by the library it documents while this page was built. This page as Markdown.