anvil-docs

Organizes project documentation into canonical docs/ domains and manages spec lifecycle.

1|Updated Aug 27, 2026
One-click install
npx skills add https://github.com/rogerznts/anvil --skill anvil-docs-rogerznts
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: anvil-docs
Source: https://github.com/rogerznts/anvil/tree/main/anvil/.claude/skills/anvil-docs
Command: npx skills add https://github.com/rogerznts/anvil --skill anvil-docs-rogerznts

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Projects accumulate scattered documentation—loose files in docs/, monolithic PRDs, duplicate stories, and specs that reach the main branch unarchived. This Skill defines where every document lives, how specs are named, and what happens when a spec closes, with scripts that enforce the rules instead of relying on prose. ## Core Features & Use Cases - Four verbs: scaffold creates the canonical tree in a new project, adopt classifies and relocates an existing messy docs/ with duplicate detection, index regenerates docs/index.md, and archive promotes canonical artifacts and moves closed specs to docs/specs/archive/. - Merge guard: a PreToolUse hook blocks git merge and PR creation while a spec has unresolved tickets or is not yet archived, reading the spec from each branch's commit. - Validation scripts: validate.sh checks ship-readiness and canonical docs paths; find-dupes.sh detects duplicate content by hash, artifact identifier, and title. - Use Case: Adopting a brownfield project whose docs/ contains loose files, an old docs/adr/ layout, and duplicated stories—survey everything, get an approved move plan, and finish with a clean, indexed, duplicate-free tree. ## Quick Start Ask the assistant to run the anvil-docs skill to scaffold the documentation tree or adopt the existing docs folder in this repository.

Frequently Asked Questions about anvil-docs

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I organize a messy docs folder in an existing project?▼

Use the adopt verb: it surveys every file, classifies each as conforming or non-conforming against canonical domains, runs duplicate detection, and presents a full move plan for approval before touching anything. Nothing is overwritten or deleted without explicit confirmation.

How do I archive a completed spec before merging?▼

Run the archive verb after all tickets show Status: resolved and before opening the PR, on the same branch. It applies front-matter promote directives, moves the spec to docs/specs/archive/, and regenerates the index so the merge guard passes.

Why does git merge get blocked by the spec guard hook?▼

The guard blocks merge or PR creation when the branch's spec has tickets without Status: resolved or is not yet under docs/specs/archive/ in the commit. It reads specs from each branch's commit, so uncommitted changes do not count.

How are duplicate documents detected in docs/?▼

The find-dupes.sh script groups Markdown files by identical content hash, shared artifact identifiers like US-014 or ADR-003, and matching titles. It lists candidate groups and exits 1 when any are found, leaving the merge-or-keep decision to the user.

What is the difference between the spec branch name and folder name?▼

The branch is {type}/{NNN}-{name} while the folder is docs/specs/{NNN}-{type}-{name}; they are deliberately different strings. Always resolve between them by the numeric prefix, never by string equality.