| name | wiki |
| description | Access and manage the local GitHub Wiki clone. Use this skill when you need to read wiki content (architecture, design docs, guides), update wiki documentation, check wiki status, or push wiki changes. The wiki contains high-level system design and architectural documentation. |
| allowed-tools | Read, Grep, Glob, Bash, Edit, Write, AskUserQuestion |
Wiki Management Skill
Manage a local clone of the GitHub Wiki at docs/wiki/. Humans read wiki online; AI tools read/write locally.
When to Use This Skill
- User asks about architecture, system design, or high-level documentation
- User asks to read, update, or check wiki content
- User asks to push wiki changes
- You need architectural context not found in code
Wiki Repository
| Property | Value |
|---|
| Local path | docs/wiki/ (gitignored) |
| URLs | Derived from git remote (portable) |
Deriving Wiki URLs
GitHub wikis follow a convention: repo.wiki.git. Derive URLs from the main repo:
REPO_URL=$(git remote get-url origin 2>/dev/null)
WIKI_URL="${REPO_URL%.git}.wiki.git"
ONLINE_URL=$(echo "$REPO_URL" | sed -E 's|git@github.com:|https://github.com/|; s|\.git$|/wiki|')
Before Any Wiki Operation
-
Check if wiki clone exists:
test -d docs/wiki/.git && echo "exists" || echo "missing"
-
If missing, clone it:
REPO_URL=$(git remote get-url origin)
WIKI_URL="${REPO_URL%.git}.wiki.git"
git clone "$WIKI_URL" docs/wiki
-
If clone fails: Derive and provide the online wiki URL as fallback.
Reading Wiki Content
-
Auto-pull for freshness (silently):
git -C docs/wiki pull --quiet 2>/dev/null || true
-
Read the requested file from docs/wiki/
-
If file not found, list available pages:
ls docs/wiki/*.md 2>/dev/null | xargs -n1 basename
Wiki Status
Show the current state of the local wiki:
git -C docs/wiki status --porcelain
git -C docs/wiki log -1 --format="%h %s (%cr by %an)"
git -C docs/wiki fetch origin 2>/dev/null
git -C docs/wiki log origin/master..HEAD --oneline
git -C docs/wiki log HEAD..origin/master --oneline
ls docs/wiki/*.md 2>/dev/null | xargs -n1 basename
Warn if unpushed changes exist.
Updating Wiki Content
- Pull first to ensure working with latest
- Make the edits as requested
- Commit with standard message:
git -C docs/wiki add -A
git -C docs/wiki commit -m "Description of changes
Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>"
- Remind user: Changes are local until pushed
- Never auto-push - always require explicit request
Pushing Wiki Changes
CRITICAL: Requires explicit user approval. Wiki pushes go live immediately (no PR review).
-
Check for uncommitted changes:
git -C docs/wiki status --porcelain
If changes exist, commit them first (or ask user for commit message).
-
Check for unpushed commits:
git -C docs/wiki log origin/master..HEAD --oneline
If none: "Nothing to push. Wiki is in sync with remote."
-
Pull first to avoid conflicts:
git -C docs/wiki pull origin master
-
Show diff preview:
git -C docs/wiki diff origin/master..HEAD
-
Use AskUserQuestion for approval:
Present the diff and ask: "These changes will be pushed to the wiki and GO LIVE IMMEDIATELY. Proceed?"
- Option 1: "Yes, push these changes"
- Option 2: "No, cancel"
-
If approved, push:
git -C docs/wiki push origin master
-
Confirm success with online wiki URL.
Error Handling
| Scenario | Action |
|---|
| Clone fails (auth) | Provide online wiki URL as fallback |
| Push fails (auth) | Preserve local changes, show error, suggest fixes |
| Pull conflicts | Show conflicting files, ask user how to resolve |
| No wiki exists | Inform user, provide instructions to create one |
Important Rules
- Never auto-push - wiki pushes go live immediately
- Always pull before push - prevents lost updates
- Preserve local changes on failure - user work should never be lost
- Default to read-only if auth fails - better than nothing