/pith-wiki
Wiki mode — persistent knowledge base maintenance. Active during /pith wiki mode. Defines page formats, ingest workflow, query workflow, and lint checks.
$ npx -y skills add abhisekjha/pith --skill pith-wiki --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/pith-wiki
Context preview
The summary Claude sees to decide when to auto-load this skill.
Wiki mode — persistent knowledge base maintenance. Active during /pith wiki mode. Defines page formats, ingest workflow, query workflow, and lint checks.
SKILL.md
pith-wiki.SKILL.mdname: pith-wiki
description: >
Wiki mode — persistent knowledge base maintenance. Active during /pith wiki mode.
Defines page formats, ingest workflow, query workflow, and lint checks.
Wiki mode behavior
When wiki mode is active:
- After significant decisions: offer to save to wiki
- After bugs solved: offer to save resolution
- After architecture discussions: offer to save as decision record
- After ingest: show what was updated, ask for confirmation
- Keep all offers brief: one line. User says yes/no.
---
Page formats
Entity page (person, company, tool, service, component)
# [Entity Name]
**Type:** person | org | tool | service | component
**Summary:** [2 sentences max]
## Key Facts
- [fact]
- [fact]
## Connections
- [[related-entity]] — [how they relate]
## Sources
- [source title](../raw/sources/file.md) — [date]
## Contradictions
- [claim in source A] vs [claim in source B] — unresolved
Concept page (idea, pattern, method, principle)
# [Concept Name]
**Definition:** [one sentence]
**Why it matters:** [one sentence]
## How it works
[2-4 sentences max]
## Related
- [[concept]] — [relation]
## Examples
- [concrete example]
## Open questions
- [what's still unclear]
## Sources
- [source](../raw/sources/file.md)
Decision record
# Decision: [what was decided]
**Date:** YYYY-MM-DD
**Status:** decided | revisiting | superseded
## Context
[1-2 sentences: why this decision was needed]
## Options considered
| Option | Pro | Con |
|--------|-----|-----|
| A | ... | ... |
## Decision
[what was chosen and single-sentence why]
## Consequences
- [what this enables]
- [what this constrains]
Synthesis / analysis page
# [Title]
**Thesis:** [one-sentence claim]
**Confidence:** high | medium | low
## Evidence
- [point] — [source](../raw/sources/file.md)
## Counter-evidence
- [point that argues against the thesis]
## Open questions
- [what would change this conclusion]
---
index.md format
One entry per wiki page. Updated on every ingest or new page.
# Wiki Index
## Entities
- [[EntityName]] — [one-line description] — [source count] sources
## Concepts
- [[ConceptName]] — [one-line description]
## Decisions
- [[Decision-title]] — [date] — [status]
## Syntheses
- [[Synthesis-title]] — [one-line thesis]
## Sources processed
- [Source Title](raw/sources/file.md) — [date ingested] — [pages updated]
---
log.md format
Append-only. One entry per operation.
## [YYYY-MM-DD] ingest | [Source Title]
Pages updated: [[page1]], [[page2]], [[page3]]
New pages: [[new-page]]
Contradictions found: [yes/no — detail if yes]
## [YYYY-MM-DD] query | [question summary]
Pages consulted: [[page1]], [[page2]]
Answer filed: [[synthesis-page]] (yes/no)
## [YYYY-MM-DD] lint
Issues found: [N orphan pages, M stale claims, K missing cross-refs]
---
Ingest workflow
When `/pith ingest <file>` is called: 1. Run `python3 tools/ingest.py <file>`
When `/pith ingest --url <url>` is called: 1. Run `python3 tools/ingest.py --url <url>`
- Fetches URL, strips HTML, saves to `raw/sources/YYYY-MM-DD-slug.md`
- Then runs same ingest pipeline as a local file
---
Compile workflow
When `/pith compile` is called: 1. Run `python3 tools/compile.py`
- Reads all files in `raw/sources/`
- Asks Claude to identify cross-source topics and synthesis opportunities
- Creates/updates `wiki/concepts/` pages with multi-source evidence
- Files gaps back to wiki log
When `/pith compile --topic <topic>` is called: 1. Run `python3 tools/compile.py --topic "<topic>"`
When `/pith compile --dry-run` is called: 1. Run `python3 tools/compile.py --dry-run`
- Shows plan (topics, synthesis pages, gaps) without writing anything
---
Lint checks
When `/pith lint` is called: 1. Run `python3 tools/lint.py`
- Structural: orphan pages, missing sources, broken index links, stale contradictions
- Semantic (LLM): cross-page contradictions, missing entity pages, suggested connections, knowledge gaps, imputable facts
When `/pith lint --fix` is called: 1. Run `python3 tools/lint.py --fix`
- Same as above + auto-creates stub pages for missing entities
When `/pith lint --quick` is called: 1. Run `python3 tools/lint.py --quick`
- Structural checks only, no LLM call
---
Query workflow
When `/pith wiki "<question>"`: 1. Read index.md — identify relevant page entries 2. Load those pages (Pith compresses each read automatically) 3. Synthesize answer with citations: "Based on [[page1]] and [[page2]]..." 4. Offer to file the answer: "Worth saving this as a synthesis page?"
---
Boundaries
Never modify files in `raw/sources/` — those are immutable source documents. Always write compressed, cross-linked pages. No verbose prose. Every new entity or concept gets its own page — no inline-only mentions.
Read more
name: pith-wiki description: > Wiki mode — persistent knowledge base maintenance. Active during /pith wiki mode. Defines page formats, ingest workflow, query workflow, and lint checks.
Wiki mode behavior
When wiki mode is active:
- After significant decisions: offer to save to wiki
- After bugs solved: offer to save resolution
- After architecture discussions: offer to save as decision record
- After ingest: show what was updated, ask for confirmation
- Keep all offers brief: one line. User says yes/no.
---
Page formats
Entity page (person, company, tool, service, component)
# [Entity Name] **Type:** person | org | tool | service | component **Summary:** [2 sentences max] ## Key Facts - [fact] - [fact] ## Connections - [[related-entity]] — [how they relate] ## Sources - [source title](../raw/sources/file.md) — [date] ## Contradictions - [claim in source A] vs [claim in source B] — unresolved
Concept page (idea, pattern, method, principle)
# [Concept Name] **Definition:** [one sentence] **Why it matters:** [one sentence] ## How it works [2-4 sentences max] ## Related - [[concept]] — [relation] ## Examples - [concrete example] ## Open questions - [what's still unclear] ## Sources - [source](../raw/sources/file.md)
Decision record
# Decision: [what was decided] **Date:** YYYY-MM-DD **Status:** decided | revisiting | superseded ## Context [1-2 sentences: why this decision was needed] ## Options considered | Option | Pro | Con | |--------|-----|-----| | A | ... | ... | ## Decision [what was chosen and single-sentence why] ## Consequences - [what this enables] - [what this constrains]
Synthesis / analysis page
# [Title] **Thesis:** [one-sentence claim] **Confidence:** high | medium | low ## Evidence - [point] — [source](../raw/sources/file.md) ## Counter-evidence - [point that argues against the thesis] ## Open questions - [what would change this conclusion]
---
index.md format
One entry per wiki page. Updated on every ingest or new page.
# Wiki Index ## Entities - [[EntityName]] — [one-line description] — [source count] sources ## Concepts - [[ConceptName]] — [one-line description] ## Decisions - [[Decision-title]] — [date] — [status] ## Syntheses - [[Synthesis-title]] — [one-line thesis] ## Sources processed - [Source Title](raw/sources/file.md) — [date ingested] — [pages updated]
---
log.md format
Append-only. One entry per operation.
## [YYYY-MM-DD] ingest | [Source Title] Pages updated: [[page1]], [[page2]], [[page3]] New pages: [[new-page]] Contradictions found: [yes/no — detail if yes] ## [YYYY-MM-DD] query | [question summary] Pages consulted: [[page1]], [[page2]] Answer filed: [[synthesis-page]] (yes/no) ## [YYYY-MM-DD] lint Issues found: [N orphan pages, M stale claims, K missing cross-refs]
---
Ingest workflow
When `/pith ingest <file>` is called: 1. Run `python3 tools/ingest.py <file>`
When `/pith ingest --url <url>` is called: 1. Run `python3 tools/ingest.py --url <url>`
- Fetches URL, strips HTML, saves to `raw/sources/YYYY-MM-DD-slug.md`
- Then runs same ingest pipeline as a local file
---
Compile workflow
When `/pith compile` is called: 1. Run `python3 tools/compile.py`
- Reads all files in `raw/sources/`
- Asks Claude to identify cross-source topics and synthesis opportunities
- Creates/updates `wiki/concepts/` pages with multi-source evidence
- Files gaps back to wiki log
When `/pith compile --topic <topic>` is called: 1. Run `python3 tools/compile.py --topic "<topic>"`
When `/pith compile --dry-run` is called: 1. Run `python3 tools/compile.py --dry-run`
- Shows plan (topics, synthesis pages, gaps) without writing anything
---
Lint checks
When `/pith lint` is called: 1. Run `python3 tools/lint.py`
- Structural: orphan pages, missing sources, broken index links, stale contradictions
- Semantic (LLM): cross-page contradictions, missing entity pages, suggested connections, knowledge gaps, imputable facts
When `/pith lint --fix` is called: 1. Run `python3 tools/lint.py --fix`
- Same as above + auto-creates stub pages for missing entities
When `/pith lint --quick` is called: 1. Run `python3 tools/lint.py --quick`
- Structural checks only, no LLM call
---
Query workflow
When `/pith wiki "<question>"`: 1. Read index.md — identify relevant page entries 2. Load those pages (Pith compresses each read automatically) 3. Synthesize answer with citations: "Based on [[page1]] and [[page2]]..." 4. Offer to file the answer: "Worth saving this as a synthesis page?"
---
Boundaries
Never modify files in `raw/sources/` — those are immutable source documents. Always write compressed, cross-linked pages. No verbose prose. Every new entity or concept gets its own page — no inline-only mentions.
Status: stable — not actively adding features. Bug fixes welcome via issues. Token compression hooks for Claude Code. Install once, works in every session, zero config.
Repo: abhisekjha/pith
Other skills on pith.
- /pith-arch
One-shot architecture decision format. Use for technology choices, design decisions, system design questions. Format: Decision / Options table / Choice / Risks / Next. Does not persist.
Open skill - /pith-commit
One-shot commit message generator. Conventional Commits format, subject ≤50 chars. Use when writing a git commit message for staged changes. Does not persist.
Open skill - /pith-debug
One-shot structured debug format. Use when diagnosing errors, unexpected behavior, crashes, or failures. Format: Problem / Cause / Fix / Verify — 4 fields, no prose. Does not persist.
Open skill - /pith-graph
Run the Pith wiki graph generator for the current project. Scans wiki/ for .md files, extracts [[wikilinks]], and opens an interactive force-directed graph in the browser as wiki-graph.html.
Open skill - /pith-install
Install Pith into Claude Code. Copies hooks, patches settings.json, registers slash commands (/pith, /budget, /focus), and records the plugin root so hooks can resolve paths.
Open skill - /pith-plan
One-shot planning format. Use for feature planning, task breakdown, sprint planning, implementation plans. Format: Goal / Steps / Risks / Done-when. Does not persist.
Open skill

