documentation-update
Reusable logic for updating repository documentation (README, indices, tables) with new content while preserving formatting and structure
Best use case
documentation-update is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Reusable logic for updating repository documentation (README, indices, tables) with new content while preserving formatting and structure
Teams using documentation-update should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/documentation-update/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How documentation-update Compares
| Feature / Agent | documentation-update | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Reusable logic for updating repository documentation (README, indices, tables) with new content while preserving formatting and structure
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Documentation Update Skill
## When to Use This Skill
- Adding entries to README.md tables after integration
- Updating skill/command/agent indices
- Maintaining table of contents
- Cross-referencing new content
- Keeping documentation in sync with codebase
## What This Skill Does
Provides systematic approaches for:
- **Table Updates** - Adding rows while preserving format
- **Alphabetical Insertion** - Maintaining sorted order
- **Link Validation** - Ensuring references are correct
- **Format Preservation** - Matching existing markdown style
- **Duplicate Prevention** - Avoiding redundant entries
## Table Update Patterns
### Pattern 1: Adding to Markdown Tables
**Identify Table Structure**:
```markdown
| Column1 | Column2 | Column3 |
|---------|---------|---------|
| Value1 | Value2 | Value3 |
```
**Steps**:
1. **Locate table** - Search for table header
2. **Extract format** - Note column alignment (left/center/right)
3. **Create new row** - Match column count and format
4. **Insert position** - Alphabetical or by category
5. **Validate** - Ensure pipes align, no extra/missing columns
**Example - Adding Skill to README**:
Original:
```markdown
| Skill | Purpose | Use When |
|-------|---------|----------|
| **skill-creator** | Creates new skills | Building new automation |
| **skill-orchestrator** | Coordinates multiple skills | Complex workflows |
```
New Entry Data:
```
Name: using-git-worktrees
Purpose: Isolated workspace management
Use When: Feature work needing isolation
```
Updated (alphabetically inserted):
```markdown
| Skill | Purpose | Use When |
|-------|---------|----------|
| **skill-creator** | Creates new skills | Building new automation |
| **skill-orchestrator** | Coordinates multiple skills | Complex workflows |
| **using-git-worktrees** | Isolated workspace management | Feature work needing isolation |
```
### Pattern 2: Alphabetical Insertion
**Algorithm**:
```
function insertAlphabetically(table, newEntry):
rows = table.split("\n")
headerRow = rows[0]
separatorRow = rows[1]
dataRows = rows[2..]
// Extract first column values for sorting
existingEntries = dataRows.map(row => extractFirstColumn(row))
// Find insertion point
insertionIndex = 0
for i, entry in existingEntries:
if newEntry < entry:
insertionIndex = i
break
else:
insertionIndex = i + 1
// Insert new row
dataRows.insert(insertionIndex, formatRow(newEntry))
// Rebuild table
return [headerRow, separatorRow, ...dataRows].join("\n")
```
### Pattern 3: Category-Based Tables
For tables organized by category (not alphabetical):
**Example - Command Categories**:
```markdown
#### Core Workflow Commands
- **start-session.md** - Initialize development session
- **close-session.md** - End session with summary
#### Quality Assurance Commands
- **test-all.md** - Execute test suites
- **lint-fixes.md** - Auto-fix style issues
```
**Insertion Logic**:
1. Determine category from content/metadata
2. Locate correct category section
3. Add to end of that category (or alphabetically within)
4. Maintain bullet/numbering format
## Link Update Patterns
### Pattern 4: Updating Cross-References
**Find and Update Links**:
```markdown
Old: See [Document 07](docs/best-practices/07-Quick-Reference.md)
New: See [Document 07](docs/best-practices/07-Quick-Reference.md) and [Document 08](docs/best-practices/08-Skills-Guide.md)
```
**Validation**:
```bash
# Check link target exists
!test -f docs/best-practices/08-Skills-Guide.md && echo "✅ Valid"
```
### Pattern 5: Creating Index Files
**For skills/README.md**:
```markdown
# Skills Directory
## Available Skills
[Auto-generated table from skills/*/SKILL.md files]
| Skill | Description | Category |
|-------|-------------|----------|
[Rows auto-populated from frontmatter]
## Usage
[Standard usage instructions]
## Creating Skills
[Link to templates and guides]
```
**Generation Logic**:
```
function generateSkillsIndex():
skills = findAll("skills/*/SKILL.md")
table = createTable(["Skill", "Description", "Category"])
for skill in skills:
frontmatter = extractFrontmatter(skill)
name = frontmatter.name
description = frontmatter.description
category = determineCategory(skill)
table.addRow([name, description, category])
table.sortAlphabetically()
return table
```
## Format Preservation
### Matching Existing Style
**Detect Style**:
```
- Bold pattern: **text** or __text__
- Link pattern: [text](url) or [text][ref]
- List style: - item or * item or 1. item
- Code blocks: ```lang or ~~~lang
- Headers: # H1 or ## H2 (ATX style)
```
**Apply Consistently**:
```markdown
# If existing entries use:
| **bold-name** | Description |
# New entry must use:
| **new-entry** | Description |
# NOT:
| new-entry | Description |
```
### Column Alignment
Preserve alignment indicators:
```markdown
| Left | Center | Right |
|:-----|:------:|------:|
| L1 | C1 | R1 |
| L2 | C2 | R2 |
```
New row must match:
```markdown
| New | Data | 123 |
```
## Duplicate Prevention
### Check Before Adding
```
function isDuplicate(table, newEntry):
existingEntries = extractEntriesFromTable(table)
for entry in existingEntries:
if entry.name == newEntry.name:
return true
if entry.path == newEntry.path:
return true
return false
```
**Action on Duplicate**:
- **Exact match**: Skip, note in update report
- **Similar match**: Flag for review
- **Same name, different path**: Warning, possible conflict
## Example Usage
### Example 1: Add 6 Skills to README
**Input**:
```javascript
skills = [
{name: "content-research-writer", purpose: "Writing assistance", useWhen: "Writing articles"},
{name: "root-cause-tracing", purpose: "Systematic debugging", useWhen: "Tracing bugs"},
{name: "sharing-skills", purpose: "Contribute skills upstream", useWhen: "Sharing patterns"},
{name: "subagent-driven-development", purpose: "Execute plans with subagents", useWhen: "Plan execution"},
{name: "using-git-worktrees", purpose: "Isolated workspace management", useWhen: "Feature isolation"},
{name: "using-superpowers", purpose: "Meta-skill for skill discovery", useWhen: "Starting conversations"}
]
```
**Process**:
1. Read README.md
2. Locate "Pre-Built Skills" table
3. For each skill:
- Check for duplicates
- Format as table row
- Insert alphabetically
4. Write updated README.md
5. Verify table structure intact
**Output Report**:
```markdown
### README.md Updates
- ✅ Added 6 skills to Pre-Built Skills table
- ✅ Alphabetical order maintained
- ✅ No duplicates created
- ✅ Table format preserved
- ✅ All links validated
```
### Example 2: Create skills/README.md Index
**Input**: List of all skills in `skills/*/SKILL.md`
**Process**:
1. Scan `skills/` directory
2. Read each SKILL.md file
3. Extract frontmatter (name, description)
4. Categorize by type (workflow/content/meta)
5. Generate organized tables
6. Add usage instructions
7. Write to skills/README.md
**Output**: Comprehensive index file with categorized skill tables
### Example 3: Update Command List
**Input**: New command `integration-process.md`
**Process**:
1. Determine category: "Integration & Maintenance Commands"
2. Extract description from frontmatter
3. Locate category section in README
4. Format as bullet item with link
5. Insert (alphabetically or at end)
6. Save README.md
## Validation Checks
### Pre-Update Validation
- [ ] Target file exists and is writable
- [ ] Table structure is valid
- [ ] New entry has all required fields
- [ ] No duplicate entries
- [ ] Links reference existing files
### Post-Update Validation
- [ ] Table structure still valid
- [ ] No broken pipes or misaligned columns
- [ ] All links still work
- [ ] Alphabetical order maintained (if applicable)
- [ ] No extra blank lines introduced
### Validation Commands
```bash
# Check table structure
!grep -A 5 "| Skill | Purpose |" README.md | head -10
# Verify link targets
!for link in $(grep -o "\](.*\.md)" README.md | tr -d ']()'); do
test -f "$link" || echo "Broken: $link"
done
# Count table rows
!grep -c "|.*|.*|" README.md
```
## Error Handling
### Malformed Table
```
Error: Table has inconsistent column counts
Action: Report error, do not modify
Fix: Manually correct table structure first
```
### File Not Writable
```
Error: Permission denied writing to README.md
Action: Log error, skip update
Fallback: Create pending-updates.md with changes
```
### Duplicate Entry
```
Warning: Skill "using-git-worktrees" already in table
Action: Skip insertion, note in report
Info: Entry exists at line 156
```
## Integration with Commands
### Used By
- `/integration-update-docs` - Primary documentation updater
- `/maintenance-plan-update` - DEVELOPMENT_PLAN.md updates
- Custom documentation workflows
### Usage Pattern
```markdown
# In integration-update-docs command
After integration:
1. Load integration report
2. For each integrated file:
- Use documentation-update skill
- Update appropriate doc files
- Validate changes
3. Generate doc update report
```
## Best Practices
### DO
- ✅ Always backup before modifying
- ✅ Validate table structure before and after
- ✅ Preserve existing formatting
- ✅ Check for duplicates
- ✅ Verify all links
- ✅ Maintain alphabetical order
- ✅ Test with git diff before committing
### DON'T
- ❌ Assume table structure
- ❌ Mix formatting styles
- ❌ Skip duplicate checks
- ❌ Modify without validation
- ❌ Break existing links
- ❌ Introduce trailing whitespace
## Testing Recommendations
Test with:
1. **Simple table** - Add single entry to clean table
2. **Complex table** - Multi-column with formatting
3. **Edge cases** - Empty table, single row, malformed
4. **Bulk updates** - Add 10+ entries at once
5. **Recovery** - Test rollback on error
Expected behavior:
- **Clean tables**: 100% success
- **Malformed tables**: Detect and report, no corruption
- **Duplicates**: Detect and skip appropriately
## Version History
**1.0** (2025-11-23)
- Initial documentation update skill
- Table manipulation logic
- Link validation
- Format preservation
- Duplicate prevention
---
**Skill Status**: Production Ready
**Integration**: Used by /integration-update-docs
**Dependencies**: None (standalone logic)Related Skills
web-artifacts-builder
Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
ui-ux-pro-max
UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient.
turbo-sdk
Complete Arweave Turbo ecosystem including client SDKs, core upload infrastructure, payment service backend, and CLI tools for permanent decentralized storage
terraform-best-practices
Comprehensive best practices for Terraform infrastructure as code from Anton Babenko's community guide
sveltekit-svelte5-tailwind-skill
Comprehensive integration skill for building sites with SvelteKit 2, Svelte 5, and Tailwind CSS v4
workflow-ship-faster
Ship Faster end-to-end workflow for small web apps (default: Next.js 16.1.1): idea/prototype → foundation gate → design-system.md → lightweight guardrails + docs → feature iteration → optional Supabase + Stripe → optional GitHub + Vercel deploy → optional AI-era SEO (sitemap/robots/llms.txt). Resumable, artifact-first under runs/ship-faster/ (or OpenSpec changes/). Trigger: ship/launch/deploy/production-ready MVP.
workflow-project-intake
Use when you need to clarify requirements and route to the right workflow (idea → executable input). Project intake + routing: help the user brainstorm and clarify intent, persist goal/context artifacts, then dispatch to the right workflow or step skill. Default route is workflow-ship-faster (Next.js 16.1.1) for idea/prototype→launch. Triggers: project kickoff, requirements clarification, brainstorm, ideas, discovery, intake.
workflow-feature-shipper
Use when you need to ship a single PR-sized feature end-to-end (plan -> implement -> verify) with artifacts. Ship core product features quickly in a Next.js codebase: turn a feature idea into an executable plan, implement in PR-sized slices, and keep artifacts under runs/ (or OpenSpec changes/ when available). Supports plan-only mode for early scoping. For prototype UI work, include a demo-ready wow moment (animation/micro-interaction) by default unless user opts out.
workflow-creator
Create workflow-* skills by composing existing skills into end-to-end chains. Turns a user idea into a workflow_spec.md SSOT (via workflow-brainstorm), discovers available skills locally + from skills.sh, and generates a new workflow-<slug>/ skill package. Use when you want to design a new workflow, chain multiple skills into a flow, or turn scattered atomic skills into a resumable plan-then-confirm workflow.
workflow-brainstorm
Use when you need to turn a vague idea into a confirmed design spec before implementation (new feature/component/behavior change). First check project context, then ask one question at a time, provide 2-3 options with trade-offs, finally output design in segments (~200-300 words each) with confirmation after each. Triggers: brainstorm, clarify idea, design spec, refine concept, requirement clarification.
tool-x-article-publisher
Publish Markdown to X (Twitter) Articles as a draft (never auto-publish). Use when the user asks to publish/post an article to X Articles, convert Markdown to X Articles rich text, or mentions "X article", "publish to X", "post to Twitter articles". Converts Markdown → HTML, pastes rich text, and inserts images deterministically.
tool-ui-ux-pro-max
Use when you need concrete UI/UX inputs (palette, typography, landing patterns, UX/a11y constraints) to drive design or review. Searchable UI/UX design intelligence (styles, palettes, typography, landing patterns, charts, UX/a11y guidelines + stack best practices) backed by CSV + a Python search script. Triggers: UIUX/uiux, UI/UX, UX design, UI design, design system, design spec, color palette, typography, layout, animation, accessibility/a11y, component styling. Actions: search, recommend, review, improve UI.