Dex Plan
dcramer/dex
Create dex task from markdown planning documents (plans, specs, design docs, roadmaps)
A skill your agent uses for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying.
$ npx skills add termio-sh/termio --skill doc -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install termio-sh/termio doc --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/doc .claude/skills/doc && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .claude/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/termio-sh/termio/tree/main/skills/docType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add termio-sh/termio --skill doc -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install termio-sh/termio doc --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/doc .agents/skills/doc && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .agents/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add termio-sh/termio --skill doc -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install termio-sh/termio doc --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/doc .cursor/skills/doc && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .cursor/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/termio-sh/termio.git --path skills/doc--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add termio-sh/termio --skill doc -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install termio-sh/termio doc --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/doc .gemini/skills/doc && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .gemini/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install termio-sh/termio docInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add termio-sh/termio --skill doc -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/doc .github/skills/doc && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .github/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add termio-sh/termio --skill doc -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install termio-sh/termio doc --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/termio-sh/termio.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/doc .opencode/skills/doc && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "doc" agent skill from https://github.com/termio-sh/termio/tree/main/skills/doc into .opencode/skills/doc/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "doc", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
docA skill your agent uses for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying.
Doc is an agent skill from termio-sh/termio. Use for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying. Keeps the YAML front matter (title/status/type/updated) correct and regenerates the docs/README.md wiki index. Invoke when the user says 'new doc', 'create a doc/design/RFC', 'start a design doc', 'update the doc', 'edit this doc', 'mark this doc done/in-review', 'change the doc status', or asks 'which docs are done/draft', 'what am I still working on', 'list my docs by status', '新建文档', '建一个设计文档/RFC'…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Markdown and Architecture decision records. The repository describes itself as: A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, Tmux alternative. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit af3b35b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and yaml).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Doc loads about 2k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 872 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from termio-sh/termio at commit af3b35b, republished under its MIT licence (© termio-sh). 872 words, ~2,043 tokens.
.claude/skills/doc/SKILL.md (or your agent's skills folder).Every doc under docs/ carries its status in YAML front matter at the very
top of the file. That front matter is the single source of truth — there is
no central index/JSON to keep in sync. "What's done?" is answered by scanning
the front matter live (see Query). This skill writes that front matter when
creating a doc, and reads it when querying.
docs/README.md is the human-facing wiki for the folder: it explains the
organization and holds a generated index table between
<!-- BEGIN docs-index --> / <!-- END docs-index --> markers. That table is a
derived view, not a source of truth — regenerate it from front matter (see
Maintain the wiki index); never hand-edit the rows.
---
title: <free text — the human title>
status: draft # see vocabulary below
type: design # design | rfc | marketing
created: 2026-06-28 # YYYY-MM-DD, only the day the doc was first written
updated: 2026-06-28 # YYYY-MM-DD, bump on every meaningful edit
related: # optional — sibling filenames (YYYYMMDD- prefix under design/)
- 20260719-vibe-island-status.md
---status vocabulary (a doc moves down this list over its life):draft — being written, nothing committed to.in-review — content complete, awaiting sign-off.approved — signed off, not yet built.active — currently being executed / lived against (e.g. a strategy memo).done — fully delivered; kept for reference.archived — superseded or abandoned; ignore for planning.type is just a label on the doc; it does not dictate a subdirectory. The
set is small on purpose; add a new type only when a doc genuinely doesn't fit.title). Quote any value containing : # [ ].All docs live somewhere under docs/. The skill does not impose a per-type
folder layout — place the file under docs/ (or whichever existing
docs/ subfolder the user points at), and let type in the front matter, not
the path, carry the category.
title and type if not already clear from the request.
Default status: draft. Set both created and updated to today.title). Put it under docs/ unless the user names a subfolder.# <H1> title, then a
one-line > blockquote stating the doc's goal. Do not pad with boilerplate
sections — let the content grow naturally.docs/README.md reflects the new
doc.Also regenerate the index whenever a doc's status/title/type changes, not
only on create — the table is otherwise stale.
Use this skill for any edit to an existing doc, not just creation — editing its body, advancing its status, renaming it, or changing its type. The point is to keep the front matter honest and the wiki in sync after every change.
updated to today on any meaningful change (the whole point of the
field). Leave created alone.status along the line
draft → in-review → approved → active → done → archived — don't skip to a
value that doesn't match reality.status/title/type, regenerate the wiki index (see
Maintain the wiki index) so docs/README.md matches.Note: markdownlint's MD025 may warn "multiple top-level headings" because it
treats the front matter title: as an H1. It's a false positive for
front-matter docs and renders fine everywhere; ignore it (or the repo can set
MD025: { front_matter_title: "" } in .markdownlint.json).
Scan the front matter directly. This reads only the top of each file (the front matter sits at byte 0), so it stays cheap even with many docs:
find docs -name '*.md' -print0 | sort -z | while IFS= read -r -d '' f; do
awk -v file="$f" '
NR==1 && $0!="---" { exit } # no front matter → skip file
NR==1 { next }
/^status:/ { sub(/^status:[ \t]*/,""); status=$0 }
/^type:/ { sub(/^type:[ \t]*/,""); type=$0 }
/^title:/ { sub(/^title:[ \t]*/,""); title=$0 }
NR>1 && $0=="---" { # end of front matter → emit, stop
printf "%-10s %-9s %-40s %s\n", status, type, title, file
exit }
' "$f"
done | sortThe exit on the closing --- is what keeps this fast: awk never reads past the
front matter into the document body. To answer a specific question, filter the
output — e.g. append | grep -E '^(draft|in-review)' for "what's unfinished",
or | grep design to scope to design docs. Report the result grouped by status.
docs/README.md holds a generated table between <!-- BEGIN docs-index --> and
<!-- END docs-index -->. Regenerate it (don't hand-edit the rows) after
creating a doc or changing any doc's status/title/type. This rebuilds the
table from front matter and splices it back between the markers atomically:
readme=docs/README.md
rows=$(find docs -name '*.md' ! -name 'README.md' -print0 | sort -z |
while IFS= read -r -d '' f; do
awk -v file="$f" '
NR==1 && $0!="---" { exit }
NR==1 { next }
/^status:/ { sub(/^status:[ \t]*/,""); status=$0 }
/^type:/ { sub(/^type:[ \t]*/,""); type=$0 }
/^title:/ { sub(/^title:[ \t]*/,""); title=$0 }
NR>1 && $0=="---" {
rel=file; sub(/^docs\//,"",rel)
printf "| %s | %s | [%s](%s) |\n", status, type, title, rel
exit }
' "$f"
done | sort)
{
printf '| status | type | title |\n| --- | --- | --- |\n'
printf '%s\n' "$rows"
} > /tmp/docs-index.md
awk '
/<!-- BEGIN docs-index -->/ { print; while ((getline l < "/tmp/docs-index.md")>0) print l; skip=1; next }
/<!-- END docs-index -->/ { skip=0 }
!skip { print }
' "$readme" > "$readme.tmp" && mv "$readme.tmp" "$readme" && rm -f /tmp/docs-index.mdThe rows are sorted by status, so draft/in-review (unfinished) float to the
top. The splice only touches lines between the markers — the hand-written wiki
prose above is left alone.
Yes. The work is one open() + a few lines read per file, not a full-content
scan — the early exit above means each file contributes ~200 bytes of reads
regardless of how long the document is. 1000 small files is on the order of tens
of milliseconds on a local SSD; the cost is dominated by file-open syscalls, not
parsing.
It only stops being instant in the tens-of-thousands range, or on a slow/network
filesystem. If that ever happens, the fix is not to make the front matter
non-authoritative — it's to add a derived cache: regenerate docs/.index.json
from the front matter (keyed by file mtime, rebuilt when stale) and read that.
That index is a rebuildable cache, never hand-edited and never the source of
truth. Don't add it preemptively — the live scan is correct and fast for the
foreseeable size of this repo.
© termio-sh, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/doc of termio-sh/termio.
Open the folder on GitHubat commit af3b35b
Doc next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Doc this skilltermio-sh/termio | 540 | — | ~2k | Automated safety check: Pass | MIT | |
| Dex Plandcramer/dex | 385 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Docs Diagramsvercel/next.js | 143k | — | ~2.9k | Automated safety check: Pass | MIT | |
| WooCommerce Markdown Guidelineswoocommerce/woocommerce | 11k | 1 repos | ~1.7k | Automated safety check: Pass | Custom licence | |
| Docs Conventionsflet-dev/flet | 17k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Cut Releasespiculedata/saiku | 1.3k | — | ~502 | Automated safety check: Pass | Apache-2.0 |
dcramer/dex
Create dex task from markdown planning documents (plans, specs, design docs, roadmaps)
vercel/next.js
Draw diagrams for the Next.js docs in the style of the ones already published there: the light/dark PNGs an mdx references with <Image srcLight="/docs/light/<name.png" srcDark="/docs/dark/<name.png".
woocommerce/woocommerce
Rules for writing and editing markdown in the WooCommerce repository, with the project's markdownlint settings for headings, lists and code blocks.
flet-dev/flet
A skill your agent uses when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples)…
spiculedata/saiku
Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.
jlevy/repren
Formats Markdown with the Flowmark auto-formatter for typographic cleanup and semantic line breaks, and helps adopt it across a repository.
termio-sh/termio
Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the…
termio-sh/termio
Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just…
termio-sh/termio
Analyze / reverse-engineer the locally installed Dia Browser mac app (The Browser Company; bundle id company.thebrowser.dia; shares ArcCore with Arc).
termio-sh/termio
Drive App Store Connect from the terminal with the asc CLI — TestFlight builds, groups, testers and What to Test notes; App Store versions, metadata, keywords, screenshots and release notes…
termio-sh/termio
Turn vague customer or user feedback from pasted text, chat excerpts, or screenshots into a clear, evidence-backed GitHub issue without inventing requirements.
termio-sh/termio
Regenerate the landing site's OG/social card (web/landing/public/og.webp) by rendering a temporary in-app route with the real hero WebGL aurora and screenshotting it with headless Chrome.
Categories
A skill your agent uses for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying. Doc is an agent skill from termio-sh/termio. Use for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying.
Doc fits situations like: ANY operation on a doc under docs/ — creating; updating/editing; changing its status; create a doc/design/RFC.
Run `npx skills add termio-sh/termio --skill doc -a claude-code`. Or copy the skill folder (skills/doc in termio-sh/termio) into .claude/skills/doc in your project. Claude Code loads it when a task matches its description.
Run `npx skills add termio-sh/termio --skill doc -a codex`. Or copy the skill folder (skills/doc in termio-sh/termio) into .agents/skills/doc in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add termio-sh/termio --skill doc -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc, .gemini/skills/doc, .github/skills/doc and .opencode/skills/doc in your project.
SKILL.md names no scripts, command-line tools or credentials: Doc is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Doc is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Doc: Dex Plan (dcramer/dex, 385 stars), Docs Diagrams (vercel/next.js, 143k stars), WooCommerce Markdown Guidelines (woocommerce/woocommerce, 11k stars) and Docs Conventions (flet-dev/flet, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
termio-sh (a GitHub organization) maintains it in termio-sh/termio, which has 540 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 7, 2026.
Source: termio-sh/termio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.