Reusable logic for updating repository documentation (README, indices, tables) with new content while preserving formatting and structure
Provides systematic approaches for:
Identify Table Structure:
| Column1 | Column2 | Column3 |
|---------|---------|---------|
| Value1 | Value2 | Value3 |
Steps:
Example - Adding Skill to README:
Original:
| 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):
| 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 |
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")
For tables organized by category (not alphabetical):
Example - Command Categories:
#### 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:
Find and Update Links:
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:
# Check link target exists
!test -f docs/best-practices/08-Skills-Guide.md && echo "✅ Valid"
For skills/README.md:
# 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
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:
# If existing entries use:
| **bold-name** | Description |
# New entry must use:
| **new-entry** | Description |
# NOT:
| new-entry | Description |
Preserve alignment indicators:
| Left | Center | Right |
|:-----|:------:|------:|
| L1 | C1 | R1 |
| L2 | C2 | R2 |
New row must match:
| New | Data | 123 |
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:
Input:
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:
Output Report:
### README.md Updates
- ✅ Added 6 skills to Pre-Built Skills table
- ✅ Alphabetical order maintained
- ✅ No duplicates created
- ✅ Table format preserved
- ✅ All links validated
Input: List of all skills in skills/*/SKILL.md
Process:
skills/ directoryOutput: Comprehensive index file with categorized skill tables
Input: New command integration-process.md
Process:
# 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: Table has inconsistent column counts
Action: Report error, do not modify
Fix: Manually correct table structure first
Error: Permission denied writing to README.md
Action: Log error, skip update
Fallback: Create pending-updates.md with changes
Warning: Skill "using-git-worktrees" already in table
Action: Skip insertion, note in report
Info: Entry exists at line 156
/integration-update-docs - Primary documentation updater/maintenance-plan-update - DEVELOPMENT_PLAN.md updates# 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
Test with:
Expected behavior:
1.0 (2025-11-23)
Skill Status: Production Ready Integration: Used by /integration-update-docs Dependencies: None (standalone logic)
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer