goberomsu/craft-skills/document

Claude Code and agent skill by goberomsu/craft-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Scaffolds and authors repository documentation through a six-type ontology and canonical artifacts. Use when asked to scaffold repository docs, "record this decision", "where does this spec go", "draft the project CHANGELOG", or "comment-the-why". Not for READMEs (use readme), conducting research (use research), technical reports (use write-report), API-surface comments, or DESIGN.md, visual direction, UX audits, and design-system work (use design).

Install

npx vskill@latest install goberomsu/craft-skills/document

SKILL.md

document

Author and file project documentation so every artifact lands at exactly one canonical location with the right template. Success: a reader or agent can always answer "where does this go?" without guessing. Run unslop as the final pass over the prose this skill writes; code and fixed machine formats are excluded.

Requirements

  • POSIX find, sed, grep (BSD or GNU) — the root-doc-sprawl check below.

Artifact types (MECE)

Every documentation artifact answers exactly one question; never let one artifact try to answer two.

ArtifactQuestion answeredLifespanTemplateCanonical location
researchWhat did I find — facts, sources, comparisons (pre-decision)Topic-scoped; superseded as evidence evolvestemplates/research.mddocs/research/{slug}.md
referencesWhat does this external source say — verbatim static archive of a third-party documentPermanent snapshot; never edited after capturetemplates/references.mddocs/research/references/{slug}.md
specWhat is this work and are the requirements clear?Work-scoped, one-shottemplates/spec.mddocs/exec-plan/active/{slug}/spec.md
planHow to implement (steps, files, order)Work-scoped; body immutable only after explicit finalizationtemplates/plan.mddocs/exec-plan/active/{slug}/plan.md
decisionOne expensive-to-reverse cross-cutting decisionPermanent topic anchor; edited in place, each change logged in the ADR's ## Changelogtemplates/adr.mddocs/decisions/ADR-NNN-{topic}.md
ruleA standing convention (ongoing constraint, not work-scoped)Alive as long as the convention holdstemplates/rule.mddocs/rules/{topic}.md

Routing

Pick the primary question a task answers and route by that row — the ontology table above for the six ontology artifacts, or the table below for repo-level artifacts and standing conventions. Create a decision artifact only when the user explicitly asks to record a decision or write an ADR; otherwise keep research, specs, plans, and rules in their own lanes and note decision candidates inside that artifact.

TaskReadAuthor with
Record a cross-cutting decision / write an ADRreferences/adr.mdtemplates/adr.md
Write the project-level CHANGELOG / release notesreferences/changelog.mdtemplates/changelog.md
Decide which code comments survive (Comment Sicko keep-list)references/inline-comments.md—
Write or review prose in a doc, RFC, README, PR description, or commit messagereferences/technical-writing.md—
Map the system (architecture.md)see architecture.md section belowtemplates/architecture.md
File research, a spec, a plan, a rule, or an archived sourceontology table abovematching file in templates/
Scaffold repository documentationdocs/ layout belowcreate the applicable canonical directories and artifacts

No documentation task should dead-end here — every repo-level artifact and every ontology artifact has an exit row.

Nearest-neighbor boundary

design owns DESIGN.md, visual direction, UX audits, and design-system work; route those requests there. readme owns the repository README.md; route README authoring there.

References vs research: a references file is a verbatim static copy of an external document; a research file is your own synthesis. Never merge them.

Rule vs ADR: the what to do goes in a rule. Load references/adr.md only when the user explicitly asks for an ADR or decision record.

Root-doc-sprawl check

Loose .md files accumulate at the repo root instead of filing into the ontology above. Count them, excluding the conventional set:

bash
find . -maxdepth 1 -name '*.md' | sed 's|^\./||' | grep -viE '^(readme|agents|claude|changelog|contributing|license|code_of_conduct)\.md$' | wc -l

More than 3 is a signal to investigate the loose documents and propose their canonical docs/ paths before adding more. Do not move existing documents without an explicit request.

Decision boundaries

text
research (facts found) | decision/ADR (explicit record request) | plan (implementation built)

Research collects evidence and presents options; it does not decide. A plan sequences implementation; it may mention trade-offs without spawning a decision record. An ADR is an explicit destination, not an automatic distillation step. When routing is unclear, ask which artifact the user wants: evidence, a recorded decision, or implementation sequencing.

docs/ layout

Scaffold only the canonical directories and repository documentation artifacts requested; do not create empty placeholder files or move existing documents without an explicit request.

text
docs/
├── research/ # Fact collection — sources, comparisons (pre-decision)
│ ├── {slug}.md
│ └── references/ # verbatim static archives of external documents
│ └── {slug}.md
├── exec-plan/
│ ├── active/{slug}/ # spec.md + plan.md while work is in progress
│ └── archive/{slug}/ # same folder, moved here when done/discarded/superseded
├── decisions/ # Cross-cutting ADRs — permanent, never deleted
│ ├── README.md # ADR index + lifecycle reference
│ └── ADR-NNN-{topic}.md
├── rules/
│ └── {topic}.md
└── architecture.md # Living system map — see architecture.md section below

Scratch drafts live outside docs/ and are not git-canonical. Finalizing a draft means moving it into docs/ at the correct path, then deleting the scratch source.

Lifecycle — spec and plan

text
spec drafted (scratch) → MOVE → docs/exec-plan/active/{slug}/spec.md
plan drafted (scratch) → MOVE → docs/exec-plan/active/{slug}/plan.md
FINALIZE only when the user explicitly adopts the immutable-plan contract
work done / discarded / superseded → add status: done|discarded|superseded (+ superseded-by: {slug} when applicable) → MOVE active/{slug}/ → archive/{slug}/
user explicitly requested a decision record → create/update docs/decisions/ADR-NNN-{topic}.md (references/adr.md)

Lifecycle = folder position. A plan is active or archived by where its folder lives, never by a status field alone; move the whole {slug}/ folder, never split spec and plan.

Supersede timing: when creating a superseding plan-B, archive plan-A in the same action, before beginning plan-B's execution.

Finalized-plan contract: a working plan remains editable after commits. Set finalized: true only when the user explicitly adopts its body as immutable; from then, a scope change gets a new slug and the old plan's frontmatter is updated to status: superseded + superseded-by: {new-slug}. Only the finalization and lifecycle frontmatter changes after finalization.

Slug naming

Format: {kebab-description} — lowercase, hyphens only, no date prefix, no issue number. The folder (or filename) is the authoritative slug; a frontmatter slug that disagrees with it is an error.

architecture.md

Answers "how is this system put together?" for someone who just opened the repo: an annotated directory tree, component boundaries, a cross-cutting-decisions index (links to ADRs, not restatements), and the one or two data/control flows that matter most.

Update it whenever a change moves a component boundary or a new cross-cutting decision lands — not on every commit. Staleness signal: its directory tree or ADR index no longer matches reality. Keep it a map: if a section starts duplicating an ADR body, replace the duplication with a link.

Trivial exemptions — no spec/plan required

  • Typo, comment, or wording fixes
  • Lint- or format-only changes
  • Dependency patch-version bumps (x.y.Z)
  • Behavior-preserving renames

Anti-patterns

  • Implicitly creating or scheduling an ADR because research, a plan, or a durable choice mentions a decision → keep the original artifact in its lane and create an ADR only when the user explicitly asks to record one.

Verification

  • [ ] Each artifact answers exactly one question (an ontology row or a routing-table row) — none dead-ended
  • [ ] Any ADR was created only from an explicit ADR / decision-record request
  • [ ] Completed/discarded work moved active/ → archive/ with a status line
  • [ ] architecture.md reflects the latest component boundaries and decisions, or was flagged stale
  • [ ] References files hold verbatim source content, not synthesis
  • [ ] Slug matches its folder/filename exactly
  • [ ] Root-doc-sprawl check run when loose root docs are suspected; any relocation was proposed and explicitly requested before moving files

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/goberomsu/craft-skills/document/badge)](https://verified-skill.com/skills/goberomsu/craft-skills/document)

Something wrong with this skill or its page? Tell us.