AI skill
The repo ships skills/doma/SKILL.md — a portable agent skill file. It follows the Claude Code skill format, but it's just markdown with YAML frontmatter, so other coding agents (Codex, Gemini CLI, Cursor, Aider, …) can consume it directly or with light edits.
What it teaches the agent
- Recognize category-style requests ("my Crystal projects", "everything tagged X", "every repo I marked as Y") and reach for
doma list -t TAG --pathsbefore guessing. - Pick the right output mode —
--pathsfor newline-separated,-0for NUL-safe pipelines,--jsonwhen it needs id/short_id/tags/timestamps structurally. - Branch on exit codes, not error text — the skill carries the full table (2 validation, 3 not found, 4 ambiguous, 5 config, 6 import), plus the rule that an empty result is a successful 0, not a failure.
- Use
run --jsonfor bulk execution — the streaming form merges every directory onto one terminal, so under--parallelthere's no way to tell whose output is whose.--jsongives one attributable row per directory, in stable input order. - Compose with its own tools —
doma cdis useless inside an agent (no parent shell to mutate); usedoma list --pick(one path) ordoma list --paths(many) and pass the results toBash/Read/Editdirectly. - Never open the TUI — bare
domaanddoma tuiwait for a keypress and will hang an agent on a pty;DOMA_NO_TUI=1makes baredomaprint help instead. - Treat write ops as intent-driven —
addandmarkonly when the user clearly wants to track or bookmark a directory. - Avoid bulk-destructive housekeeping —
prune --gone,prune --expired, andimport --replaceneed explicit user authorization; doma itself refuses them without a TTY or--yes, which is a cue to ask the user rather than a guard to route around.
Install
The recommended path is Vercel Skills:
npx skills add hahwul/doma
That drops SKILL.md into your agent's skill directory. Restart your agent session to pick it up.
For a manual install (no node toolchain, or you want a working-tree symlink):
# copy into your agent's skill dir
cp -r skills/doma ~/.claude/skills/
# or symlink so updates land automatically
ln -s "$(pwd)/skills/doma" ~/.claude/skills/doma
The path above is for Claude Code. Substitute your agent's equivalent (e.g. ~/.codex/skills/, project-local .skills/).
Adapting for other agents
Most coding agents that support a "skills" or "rules" mechanism can consume the file directly or with light edits. The actionable content is the request-shape table near the bottom — port that into whatever your agent expects.