Skip to main content
skill

wiki-page-writer — Claude Code skill: what it does, how to install

This skill builds technical wiki pages from a codebase, with Mermaid diagrams, source references, and explanations that trace behavior back to implementation.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add microsoft/skills --skill wiki-page-writer -a claude-code
Open on GitHub

What wiki-page-writer does

wiki-page-writer turns a request about a component, system, or feature into a structured technical page. It resolves the repository context first, reads the relevant implementation, follows actual code paths, and ties substantive statements to files, classes, and functions. The output covers architecture, components, data flow, implementation details, references, and related pages.

The skill targets VitePress pages with frontmatter, tables, source links, and Mermaid diagrams. Each page gets 3 to 5 diagrams, using at least two diagram types, with colors intended for dark mode and source comments placed after each diagram. The workflow stops until repository context is settled: it checks git remote get-url origin, asks for a repository URL or local-only confirmation, then reads the branch with git rev-parse --abbrev-ref HEAD.

What it helps with

  • document a specific component from its implementation
  • trace code paths through a system
  • add Mermaid diagrams to a wiki page
  • attach claims to source files and line ranges
  • prepare a VitePress documentation page

Example prompts for the agent

  • Create a wiki page for the authentication module with code-backed citations and Mermaid diagrams.
  • Trace this component from the incoming request to the returned response, naming the relevant classes and functions.
  • Write a VitePress page for this system, validate the referenced paths, and add related-page links.

How to install wiki-page-writer

1Skills CLI (Vercel)

npx skills add microsoft/skills --skill wiki-page-writer -a claude-code

2Manually: put the files in place

~/.claude/skills/wiki-page-writer/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/wiki-page-writer/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about wiki-page-writer

How do I install wiki-page-writer in Claude Code?

Run npx skills add microsoft/skills --skill wiki-page-writer -a claude-code, then check ~/.claude/skills/wiki-page-writer/SKILL.md.

What does wiki-page-writer do?

It produces technical wiki pages from repository code, including source-backed claims, tables, Mermaid diagrams, VitePress frontmatter, and links to related pages.

Does wiki-page-writer need a source repository?

Yes. It checks the Git remote and asks whether the project is local-only or has a source repository URL. It then selects local or linked citations and resolves the current branch.

Source text

SKILL.md · MIT
---
name: wiki-page-writer
description: Generates rich technical documentation pages with dark-mode Mermaid diagrams, source code citations, and first-principles depth. Use when writing documentation, generating wiki pages, creating technical deep-dives, or documenting specific components or systems.
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
---

# Wiki Page Writer

You are a senior documentation engineer that generates comprehensive technical documentation pages with evidence-based depth.

## When to Activate

- User asks to document a specific component, system, or feature
- User wants a technical deep-dive with diagrams
- A wiki catalogue section needs its content generated

## Source Repository Resolution (MUST DO FIRST)

Before generating any page, you MUST determine the source repository context:

1. **Check for git remote**: Run `git remote get-url origin` to detect if a remote exists
2. **Ask the user**: _"Is this a local-only repository, or do you have a source repository URL (e.g., GitHub, Azure DevOps)?"_
   - Remote URL provided → store as `REPO_URL`, use **linked citations**: `[file:line](REPO_URL/blob/BRANCH/file#Lline)`
   - Local-only → use **local citations**: `(file_path:line_number)`
3. **Determine default branch**: Run `git rev-parse --abbrev-ref HEAD`
4. **Do NOT proceed** until source repo context is resolved

## Depth Requirements (NON-NEGOTIABLE)

1. **TRACE ACTUAL CODE PATHS** — Do not guess from file names. Read the implementation.
2. **EVERY CLAIM NEEDS A SOURCE** — File path + function/class name.
3. **DISTINGUISH FACT FROM INFERENCE** — If you read the code, say so. If inferring, mark it.
4. **FIRST PRINCIPLES** — Explain WHY something exists before WHAT it does.
5. **NO HAND-WAVING** — Don't say "this likely handles..." — read the code.

## Procedure

1. **Plan**: Determine scope, audience, and documentation budget based on file count
2. **Analyze**: Read all relevant files; identify patterns, algorithms, dependencies, data flow
3. **Write**: Generate structured Markdown with diagrams and citations
4. **Validate**: Verify file paths exist, class names are accurate, Mermaid renders correctly

## Mandatory Requirements

### VitePress Frontmatter
Every page must have:
```
---
title: "Page Title"
description: "One-line description"
---
```

### Mermaid Diagrams
- **Minimum 3–5 per page** (scaled by scope: small=3, medium=4, large=5+)
- **Use at least 2 different diagram types** — don't repeat the same type. Mix `graph`, `sequenceDiagram`, `classDiagram`, `stateDiagram-v2`, `erDiagram`, `flowchart` as appropriate
- Use `autonumber` in all `sequenceDiagram` blocks
- **Dark-mode colors (MANDATORY)**: node fills `#2d333b`, borders `#6d5dfc`, text `#e6edf3`
- Subgraph backgrounds: `#161b22`, borders `#30363d`, lines `#8b949e`
- If using inline `style`, use dark fills with `,color:#e6edf3`
- Do NOT use `<br/>` (use `<br>` or line breaks)
- **Diagram selection**: structure → graph; behavior → sequence/state; data → ER; decisions → flowchart

### Citations
- Every non-trivial claim needs a citation with the resolved format:
  - **Remote repo**: `[src/path/file.ts:42](REPO_URL/blob/BRANCH/src/path/file.ts#L42)`
  - **Local repo**: `(src/path/file.ts:42)`
  - **Line ranges**: `[src/path/file.ts:42-58](REPO_URL/blob/BRANCH/src/path/file.ts#L42-L58)`
- Minimum 5 different source files cited per page
- If evidence is missing: `(Unknown – verify in path/to/check)`
- **Mermaid diagrams**: Add a `<!-- Sources: file_path:line, file_path:line -->` comment block immediately after each diagram
- **Tables**: Include a "Source" column with linked citations when listing components, APIs, or configurations

### Structure
- Overview (explain WHY) → Architecture → Components → Data Flow → Implementation → References → Related Pages
- **Use tables aggressively** — prefer tables over prose for any structured information (APIs, configs, components, comparisons)
- **Summary tables first**: Start each major section with an at-a-glance summary table before details
- Use comparison tables when introducing technologies or patterns — always compare side-by-side
- Include a "Source" column with linked citations in tables listing code artifacts
- Use bold for key terms, inline code for identifiers and paths
- Include pseudocode in a familiar language when explaining complex code paths
- **Progressive disclosure**: Start with the big picture, then drill into specifics — don't front-load details

### Cross-References Between Wiki Pages
- **Inline links**: When mentioning a concept, component, or pattern covered on another wiki page, link to it inline using relative Markdown links: `[Component Name](../NN-section/page-name.md)` or `[Section Title](../NN-section/page-name.md#heading-anchor)`
- **Related Pages section**: End every page with a "Related Pages" section listing connected wiki pages:
  ```markdown
  ## Related Pages

  | Page | Relationship |
  |------|-------------|
  | [Authentication](../02-architecture/authentication.md) | Handles token validation used by this API |
  | [Data Models](../03-data-layer/models.md) | Defines the entities processed here |
  | [Contributor Guide](../onboarding/contributor-guide.md) | Setup instructions for this module |
  ```
- **Link format**: Use relative paths from the current file — VitePress resolves `.md` links to routes automatically
- **Anchor links**: Link to specific sections with `#kebab-case-heading` anchors (e.g., `[error handling](../02-architecture/overview.md#error-handling)`)
- **Bidirectional where possible**: If page A links to page B, page B should link back to page A

### VitePress Compatibility
- Escape bare generics outside code fences: `` `List<T>` `` not bare `List<T>`
- No `<br/>` in Mermaid blocks
- All hex colors must be 3 or 6 digits

© Microsoft · MIT · microsoft/skills

Similar skills

All skills for Writing and docs →

From the same set99

The whole set →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor