Agent skill

Doc

by termio-sh in termio-sh/termio

A skill your agent uses for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying.

MITAuto-check passedDevelopment

Install Doc

skills CLI
$ npx skills add termio-sh/termio --skill doc -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install termio-sh/termio doc --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
doc
GitHub stars
540
Token cost
~2k tokens
SKILL.md length
872 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses for ANY operation on a doc under docs/ — creating, updating/editing, changing its status, or querying.

  • Works in 5 steps: Ask the user for the title and type if… → Pick a kebab-case filename derived from… → Write the file: front matter block… → …
  • ANY operation on a doc under docs/ — creating
  • SKILL.md covers Front matter schema, Create a doc, Update a doc and Query — "which docs are done /…, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • ANY operation on a doc under docs/ — creating
  • Updating/editing
  • Changing its status
  • Create a doc/design/RFC

Example prompts

  • “new doc”
  • “create a doc/design/RFC”
  • “start a design doc”
  • “/doc”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Ask the user for the title and type if not already clear from the request.
  2. Pick a kebab-case filename derived from the title (ASCII slug; for a
  3. Write the file: front matter block first, then a single # title, then a
  4. Regenerate the wiki index (see below) so docs/README.md reflects the new
  5. Tell the user the path you created.

What it can do on your machine

Read from SKILL.md and the folder at commit af3b35b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~147
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from termio-sh/termio at commit af3b35b, republished under its MIT licence (© termio-sh). 872 words, ~2,043 tokens.

Download SKILL.mdSave it as .claude/skills/doc/SKILL.md (or your agent's skills folder).
name
doc
description
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', '更新文档', '改一下这个文档', '把这个文档标记成完成/评审中', '哪些文档写完了', '我还有哪些没做完的文档', '按状态列出文档'.

Project docs — create & query

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.

Front matter schema

yaml
---
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.
  • Keys are English (tooling/Obsidian compatibility); values may be Chinese where natural (e.g. a Chinese title). Quote any value containing : # [ ].

Create a doc

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.

  1. Ask the user for the title and type if not already clear from the request. Default status: draft. Set both created and updated to today.
  2. Pick a kebab-case filename derived from the title (ASCII slug; for a Chinese title, ask for or invent a short English slug — keep the Chinese in title). Put it under docs/ unless the user names a subfolder.
  3. Write the file: front matter block first, then a single # <H1> title, then a one-line > blockquote stating the doc's goal. Do not pad with boilerplate sections — let the content grow naturally.
  4. Regenerate the wiki index (see below) so docs/README.md reflects the new doc.
  5. Tell the user the path you created.

Also regenerate the index whenever a doc's status/title/type changes, not only on create — the table is otherwise stale.

Update a doc

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.

  1. Make the requested edit to the doc body and/or front matter.
  2. Bump updated to today on any meaningful change (the whole point of the field). Leave created alone.
  3. If the user is advancing the doc's lifecycle, move status along the line draft → in-review → approved → active → done → archived — don't skip to a value that doesn't match reality.
  4. If you changed status/title/type, regenerate the wiki index (see Maintain the wiki index) so docs/README.md matches.
  5. Report what changed (path, old → new status if it moved).

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).

Show full SKILL.md (308 more words)Show less

Query — "which docs are done / in draft / ...?"

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:

bash
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 | sort

The 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.

Maintain the wiki index

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:

bash
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.md

The 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.

Scale — does this hold at 1000+ docs?

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

Files

Just SKILL.md in skills/doc of termio-sh/termio.

Open the folder on GitHubat commit af3b35b

Compare with similar skills

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.

Doc compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc this skilltermio-sh/termio540—~2kAutomated safety check: PassMIT
Dex Plandcramer/dex385—~3.2kAutomated safety check: PassMIT
Docs Diagramsvercel/next.js143k—~2.9kAutomated safety check: PassMIT
WooCommerce Markdown Guidelineswoocommerce/woocommerce11k1 repos~1.7kAutomated safety check: PassCustom licence
Docs Conventionsflet-dev/flet17k—~1.6kAutomated safety check: PassApache-2.0
Cut Releasespiculedata/saiku1.3k—~502Automated safety check: PassApache-2.0

Similar skills

  • Dex Plan

    dcramer/dex

    Create dex task from markdown planning documents (plans, specs, design docs, roadmaps)

    385 GitHub stars~3.2k tokensUpdated 7 mo ago
    Agent WorkflowsAuto-check passed
  • Docs Diagrams

    vercel/next.js

    Official

    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".

    143k GitHub stars~2.9k tokensUpdated today
    DevelopmentAuto-check passed
  • WooCommerce Markdown Guidelines

    woocommerce/woocommerce

    Rules for writing and editing markdown in the WooCommerce repository, with the project's markdownlint settings for headings, lists and code blocks.

    11k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Docs Conventions

    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)…

    17k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Cut Release

    spiculedata/saiku

    Cut a Saiku release via Gitflow — version bump, release branch, PR to main, tag, back-merge, and post-release chores.

    1.3k GitHub stars~502 tokensUpdated today
    DevelopmentAuto-check passed
  • Formats Markdown with the Flowmark auto-formatter for typographic cleanup and semantic line breaks, and helps adopt it across a repository.

    374 GitHub stars~631 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from termio-sh/termio

All 19 skills in this repo
  • Termio Bug Report

    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…

    540 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • App Screenshot Debug

    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…

    540 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Dia Source Analysis

    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).

    540 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Asc

    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…

    540 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Issue Creator

    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.

    540 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Og Generation

    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.

    540 GitHub stars~1k tokensUpdated today
    Auto-check passed

Questions about Doc

What does Doc do?

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.

When should I use Doc?

Doc fits situations like: ANY operation on a doc under docs/ — creating; updating/editing; changing its status; create a doc/design/RFC.

How do I install Doc in Claude Code?

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.

How do I install Doc in Codex?

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.

Can I use Doc in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Doc need to run?

SKILL.md names no scripts, command-line tools or credentials: Doc is instructions for the agent only.

Does Doc access the network?

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.

Is Doc safe to install?

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.

What licence does Doc use?

Doc is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doc use?

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.

What are the alternatives to Doc?

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.

Who maintains Doc?

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.