.claude/skills/writing-vads-guidance/SKILL.md
Use when making documentation changes in the doc-queue workflow, writing new component/pattern/template guidance, or updating existing VADS documentation - ensures compliance with VADS templates and style standards
npx skillsauth add department-of-veterans-affairs/vets-design-system-documentation writing-vads-guidanceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write VA Design System documentation that follows established templates and style standards while allowing appropriate deviation based on designer judgment or existing system patterns.
Announce at start: "I'm using the writing-vads-guidance skill to help write documentation that follows VADS standards."
Called by: doc-queue (Step 5: Execute Documentation Updates)
Expects input from: guidance-grooming (the ## Grooming Summary comment on the issue)
When this skill is called from the doc-queue workflow, the issue will have a ## Grooming Summary comment posted by the guidance-grooming skill. Use it as follows:
digraph writing_process {
rankdir=TB;
"Identify content type" [shape=box];
"Load appropriate template" [shape=box];
"Read existing file (if updating)" [shape=box];
"Compare to template structure" [shape=diamond];
"Deviation justified?" [shape=diamond];
"Ask designer about deviation" [shape=box];
"Follow template structure" [shape=box];
"Document deviation reason" [shape=box];
"Write content following style guide" [shape=box];
"Add required includes" [shape=box];
"Verify YAML front matter unchanged (or approved)" [shape=box];
"Identify content type" -> "Load appropriate template";
"Load appropriate template" -> "Read existing file (if updating)";
"Read existing file (if updating)" -> "Compare to template structure";
"Compare to template structure" -> "Deviation justified?" [label="structure differs"];
"Compare to template structure" -> "Write content following style guide" [label="matches"];
"Deviation justified?" -> "Ask designer about deviation" [label="unclear"];
"Deviation justified?" -> "Document deviation reason" [label="yes - matches other examples"];
"Deviation justified?" -> "Follow template structure" [label="no"];
"Ask designer about deviation" -> "Document deviation reason" [label="approved"];
"Ask designer about deviation" -> "Follow template structure" [label="rejected"];
"Follow template structure" -> "Write content following style guide";
"Document deviation reason" -> "Write content following style guide";
"Write content following style guide" -> "Add required includes";
"Add required includes" -> "Verify YAML front matter unchanged (or approved)";
}
src/_components/)Template location: src/_components/template.md
Required sections:
Required front matter:
---
layout: component
title: Component Name
draft: true # Remove when ready to publish
web: true
mobile-app: true # If applicable
intro-text: "Purpose and function of the component"
figma-link-web: [URL]
status: use-with-caution-candidate # See Status Values section for all options
web-component: va-component-name
---
src/_patterns/)Template location: src/_patterns/template.md
Required sections:
Required front matter:
---
layout: pattern
title: Pattern Name
draft: true
permalink: /patterns/ask-users-for/[pattern-name]
sub-section: ask-users-for
intro-text: "Purpose and function of the pattern"
figma-link: [URL]
status: use-with-caution-candidate
---
src/_templates/)Template location: src/_templates/template.md
Required sections:
Required front matter:
---
layout: pattern
title: Template Name
draft: true
status: use-with-caution-candidate
intro-text: "Purpose and function of the template"
figma-link: [URL]
---
{% include storybook-preview.html story="uswds-va-component-name--variation" link_text="description" %}
For mobile:
{% include storybook-preview.html story="component--variation" link_text="description" is_mobile=true height="400px" %}
{% include component-example.html alt="Description of image" file="/images/components/name/filename.png" caption="Context for example" %}
Image rules:
/images/ folder{% include component-docs.html component_name=page.web-component %}
{% include _component-checklist.html component_name=page.web-component %}
| Standard | VADS Deviation | |----------|----------------| | Title case | Permitted for component/pattern/template names | | Abbreviations | Define on first use (support new teams) | | Technical depth | Higher expertise level acceptable | | "User" terminology | Acceptable in design system context |
DO:
[Alert](/components/alert/)DON'T:
Template deviations:
The template suggests [X section], but:
- This component doesn't have [relevant feature]
- Similar component [Y] omits this section
- Adding it would [reason]
Should we:
1. Follow template and add the section
2. Omit it (matching [similar example])
3. Something else
Multiple valid approaches:
Design decisions unclear:
Scope questions:
Content tone:
When deviating from template, add HTML comment:
<!-- Deviation from template: [section] omitted because [reason]. Approved by [designer] on [date]. -->
CRITICAL: Never modify front matter without explicit approval.
Front matter controls:
Before any front matter change:
Before completing documentation:
| Type | Path | Template |
|------|------|----------|
| Component | src/_components/[name]/index.md or src/_components/[name].md | src/_components/template.md |
| Pattern | src/_patterns/[category]/[name].md (categories: ask-users-for, help-users-to) | src/_patterns/template.md |
| Template | src/_templates/[name]/index.md or src/_templates/[name].md | src/_templates/template.md |
| Status | Meaning |
|--------|---------|
| use-best-practice | Recommended best practice across VA, widely adopted and stable |
| use-deployed | Production ready and deployed in at least one VA product |
| use-with-caution-available | Available but use carefully; has known limitations or pending updates |
| use-with-caution-candidate | Candidate pattern/component under development or evaluation |
| dont-use-proposed | Proposed pattern/component that should not be used yet |
| dont-use-deprecated | Deprecated; avoid new use and plan to migrate existing implementations |
{% include storybook-preview.html story="..." link_text="..." %}
{% include component-example.html alt="..." file="..." caption="..." %}
{% include component-docs.html component_name=page.web-component %}
{% include _component-checklist.html component_name=page.web-component %}
| Mistake | Fix |
|---------|-----|
| Modifying front matter without asking | Always show changes and get approval |
| Missing Storybook embeds for examples | Every example needs a preview |
| Hardcoding component names | Use page.web-component variable |
| Forgetting mobile examples | Check if component has mobile variant |
| Breaking existing links | Search for references before renaming |
| Removing sections silently | Ask before removing template sections |
testing
Creates and standardizes Mermaid decision flowcharts in VA Design System documentation, including templates, node types, accessibility alternatives, and the standard Jekyll include pattern.
testing
Use when the user wants to merge all PRs they have approved - updates each branch from main, waits for CI checks to pass, merges, then summarizes results
documentation
Use after selecting a documentation issue from the doc-queue to groom it - analyzes the issue, identifies gaps, prompts the designer for clarity, and posts a structured grooming comment so the issue is ready for the writing-vads-guidance skill or an async agent
documentation
Use when a designer asks to work on guidance or documentation issues, process documentation queue, or close out doc tickets - fetches oldest issue from quarterly epic and guides through resolution