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:
# Get main repo remote URL
REPO_URL=$(git remote get-url origin 2>/dev/null)
# Derive wiki clone URL (works for both SSH and HTTPS)
WIKI_URL="${REPO_URL%.git}.wiki.git"
# Derive online wiki URL for fallback messages "$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/wikiIf 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 || trueRead 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:
# Uncommitted changes
git -C docs/wiki status --porcelain
# Last commit
git -C docs/wiki log -1 --format="%h %s (%cr by %an)"
# Unpushed commits (fetch first)
git -C docs/wiki fetch origin 2>/dev/null
git -C docs/wiki log origin/master..HEAD --oneline
# Unpulled commits
git -C docs/wiki log HEAD..origin/master --oneline
# Available pages
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 --porcelainIf changes exist, commit them first (or ask user for commit message).
Check for unpushed commits:
git -C docs/wiki log origin/master..HEAD --onelineIf none: "Nothing to push. Wiki is in sync with remote."
Pull first to avoid conflicts:
git -C docs/wiki pull origin masterShow diff preview:
git -C docs/wiki diff origin/master..HEADUse 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 masterConfirm 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
Converted and distributed by TomeVault — claim your Tome and manage your conversions.