Docs
A daily-driver collection of skills for agentic coding — a portable, agent-agnostic catalog managed with the vd CLI.
npx -y skills add vanducng/skills --skill docsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Manage project documentation in ./docs/ - initialize, update, check, or record an ADR (architecture decision record). Canonical set is intentionally small: development guidelines, system architecture, tech stack, deployment; plus append-only decision history under docs/decisions/. Scouts the codebase, delegates writing to the docs-manager subagent (or stays inline with --inline).
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
7.3 KB, as published. Nobody here has run it
Docs
Keep ./docs/ honest. Scout the code, diff it against what the docs claim, write what's true. Small canonical set - easy to keep current, hard to let rot.
What this skill is - and isn't
| Skill | Question it answers | Output |
|---|---|---|
vd:scout | "Where does X live in this repo?" | File map, no writes |
vd:journal | "What did I just learn / decide / break?" | Personal entry in the injected Journals path |
vd:docs | "Are the shared ./docs/ files true and current?" | Updated files in ./docs/ |
./docs/ is team-facing truth. Journals are personal. Plans/reports live under ./plans/. Changelog, roadmap, and PR-style narrative are intentionally not in this skill's scope - those rot fastest and vd:ship / vd:journal already cover them.
Subcommands
| Subcommand | Reference | When |
|---|---|---|
init | references/init-workflow.md | Fresh repo - no ./docs/ yet, or only a stub README |
update | references/update-workflow.md | Code drifted from docs after a feature, refactor, or migration |
check | references/check-workflow.md | Validate-only: required files, size, freshness, broken refs. No writes. |
adr | references/adr-workflow.md | Record an architecture decision (the why behind an irreversible choice) under docs/decisions/ |
Parse $ARGUMENTS first word (in runtimes without $ARGUMENTS substitution, use the text following the skill name in the user's message):
init/update/check/adr→ load the matching reference- empty / unclear →
AskUserQuestionwith the options (AskUserQuestion in Claude Code; plain-text question elsewhere). Don't auto-runinit- it writes files.
Flags
| Flag | Effect |
|---|---|
--inline | Skip docs-manager subagent - write from main context. Use when you want to drive the writing yourself or the subagent is unavailable. |
--dry-run | Print the plan (files to scan, files to write/touch) and stop. No subagent, no writes. Use before letting a subagent churn on a large repo. |
Canonical doc set
Intentionally short. Every file here earns its place - code-derivable, frequently consulted, and stable enough not to need weekly rewriting.
| File | Purpose | Required? |
|---|---|---|
README.md | Project entry point, ≤ 300 lines - what is this, how to run it, where to read more | Yes |
docs/development-guidelines.md | Code style, naming conventions, file layout, local dev setup, contribution flow | Yes |
docs/system-architecture.md | Components, data flow, integrations, module boundaries | Yes |
docs/tech-stack.md | Languages, frameworks, runtimes, key libraries, infra services - what powers this | Yes |
docs/deployment.md | CI/CD pipelines, environments, deploy steps, env vars, rollback procedure | Yes |
Out of scope (by design):
- Changelog →
vd:shipwritesCHANGELOG.mddirectly - Project roadmap → lives in plans (
./plans/) or your issue tracker, not here - Codebase summary →
vd:scoutproduces this on demand; doesn't need a static file - PRD / requirements → product artifact, not a code-derivable doc
If a project has good reasons to maintain those, add them outside vd:docs's automated touch - this skill won't read, write, or validate them.
docs/decisions/ (ADRs) is a special case - append-only decision history written by the adr subcommand, not current-state docs. It is exempt from freshness, size-budget, and citation validation: an old ADR is correct (it records what was decided then), and a superseded one stays in place with its status flipped. check must skip docs/decisions/.
Pre-flight: missing ./docs/
Before any subcommand except init:
- If
./docs/does not exist → ask the user: runinitnow, or abort? - If
./docs/exists but is empty → same question. - If a single required file is missing → flag it in the plan; create it as part of the run.
Never create ./docs/ silently. The user owns this directory.
Writer strategy
| Condition | Writer |
|---|---|
Default, docs-manager subagent available | Delegate via Agent tool - passes the scout digest + doc readings, returns when files are written |
--inline, or subagent unavailable | Write from main context using the reference workflow's checklist |
check | Always inline - no writes |
When delegating, pass: scout digest, current doc LOC table, the user's $ARGUMENTS, plan dir (if any). Do not pass full file contents - let the subagent re-read what it needs.
After init or update writes files, list every changed doc with an openable location:
[deployment.md](/absolute/path/to/docs/deployment.md) and, when helpful,
file:///absolute/path/to/docs/deployment.md. Repo-relative paths are fine as
secondary context, but never hand off only a basename.
Token efficiency
- Scout in parallel, write once. Don't re-scout per doc file.
- Read docs in bulk when many. If
ls docs/*.md | wc -l≥ 4, spawnExploresubagents to read in parallel (read sequentially if subagents unavailable) - seereferences/update-workflow.mdPhase 1.5. - Don't dump full
git diffinto the subagent prompt -git log --oneline+git diff --statis enough; the subagent pulls scoped diffs only for files it names. --dry-runcosts almost nothing - run it first on unfamiliar repos.
Quality bar
- Every claim has a citation. Architecture docs name the file path. Tech-stack entries name the version (from lockfile /
package.json/go.mod). No "the system uses XYZ" withoutsrc/...:N. - No filler. If a section in a template has nothing concrete, delete it - don't pad with "TBD".
- Size budget.
docs.maxLocfrom session context (default 800). Over budget → split or trim, not "accept as-is". - Validation runs after every write.
references/update-workflow.mdPhase 4 - non-blocking, but report what it finds.
Workflow position
Typically follows: vd:ship (after the PR lands, sync ./docs/ to the new reality), vd:cook (end of plan), major refactor or migration.
Typically precedes: Nothing - vd:docs is terminal. Next pipeline starts at vd:scout or vd:plan.
Do not run vd:docs mid-implementation - docs drift faster than code does. Wait until the code is stable.
Hard rules
- Never write outside
./docs/or./README.md, unless the user explicitly names a project guidance file such asAGENTS.mdorCLAUDE.md. Plans, journals, and reports have their own homes. - Never invent. If the scout digest doesn't support a claim, the docs don't make it.
- Never run
initon a populated./docs/.updateis the right verb -initis for empty trees. --dry-runbefore any big sync. Especially on repos you don't own well.- One file write per doc. No append-mode, no patch-on-patch. Subagent rewrites the file in full or not at all.