Automated summary
Turns the user's `~/.claude/` history into a static Quartz knowledge base, using a pre-processing script followed by parallel per-project digest agents and cross-cutting synthesis agents.
Strengths
- Automates the whole pipeline from raw JSONL to a running Quartz dev server in a single command with no required flags
- Fans work out across 5–12 parallel subagents and intelligently bundles small projects (under 50 prompts) into clusters
- Enforces verbatim quotes and `[[wikilinks]]` for every person, company and concept, reducing invented paraphrasing
- Handles edge cases explicitly: empty corpus, thin volume (under 50 prompts), non-empty output directory, and an alternate data source via `--source`
Limitations
- The provided SKILL.md is truncated mid-Phase 2, so phases 3–5 (cross-cutting synthesis, spine writing, Quartz install, dev server) are only partially described
- Output quality is proportional to history size; a recent user gets a very sparse vault
- Depends on prior install.sh setup, Python 3, the bundled scripts/templates, and the Node/Quartz toolchain
Use it when you want months of accumulated Claude Code sessions turned into a navigable, linkable site you can browse and search.
Avoid it if your `~/.claude` history is nearly empty, you cannot run local scripts, or you just want plain full-text search rather than a generated static site.
Security analysis
CautionThe skill uses powerful tools (Bash, npm, subagents) and reads highly sensitive local history, but each action is legitimate and directly serves its stated purpose of building a knowledge base. There is no destructive, exfiltrating, or obfuscated behavior, so it warrants caution rather than risky, mainly for the breadth of Bash/npm execution and the sensitivity of the data it ingests.
- •Reads the user's entire `~/.claude` history (prompts, session transcripts, subagent logs), which contains sensitive personal and business data; `--source` also allows pointing at another account's copied data.
- •Runs a bundled Python script (`preprocess.py`) and executes `npm install` + `npm run dev`, i.e. arbitrary package installs and a local dev server (broad Bash execution).
- •Dispatches many parallel subagents with Read/Write/Bash/Task, amplifying the scope of file access and writes.
- •Copies templates and overwrites output directory (asks once if non-empty) — mild data-loss risk if user has files in a reused dir.
- •No evidence of exfiltration, curl|sh, rm -rf, obfuscated payloads, or disabled safety; network use is limited to npm install and localhost binding.
Examples
/cc-wiki/cc-wiki ~/vaults/claude-kb/cc-wiki --source ~/backup-claude ./kb-backupname: cc-wiki
description: Distill the user's ~/.claude history into a Quartz knowledge base. Runs preprocess.py, dispatches parallel project-digest agents, then parallel cross-cutting synthesis agents (people / companies / projects / concepts / workflows / tools / playbooks), writes the spine, installs Quartz, and starts the dev server. Single command, no flags required.
argument-hint: "[output-dir, default ./my-kb]"
allowed-tools: Read Write Edit Bash Glob Grep Task TaskCreate TaskUpdate
model: claude-opus-4-7
cc-wiki — Claude history → Quartz knowledge base
When the user runs /cc-wiki [dir], build a complete Quartz vault from their
~/.claude/ history. Five phases. The first and last are mechanical; the
middle three dispatch parallel subagents. End-of-run prints the localhost URL.
Default output dir: ./my-kb. If the user passes [dir], use that. If the
directory already exists and is non-empty, ask once before overwriting.
If the user has copied another account's Claude data to a custom location,
they can mention it inline (e.g. /cc-wiki --source ~/backup-claude) — pass
the same --source <path> to preprocess.py in Phase 1. Otherwise default to
~/.claude.
<SKILL_DIR> resolution: ~/.claude/skills/cc-wiki/ (installed by install.sh).
Templates and scripts live under <SKILL_DIR>/templates/ and
<SKILL_DIR>/scripts/.
Phase 0 — Scaffold
Bash(mkdir -p <dir>)
Bash(cp -R <SKILL_DIR>/templates/quartz/. <dir>/)
Bash(cp -R <SKILL_DIR>/templates/spine-defaults/. <dir>/)
The Quartz template includes quartz/, quartz.config.ts, quartz.layout.ts,
package.json, tsconfig.json, vercel.json, kb.py, and a starter
internal/ skeleton. The spine defaults are empty stubs for index.md,
methodology.md, arc.md, glossary.md, open-questions.md,
disambiguation.md — Phase 4 fills them.
Phase 1 — Pre-process
Bash(python3 <SKILL_DIR>/scripts/preprocess.py --out <dir>/internal [--source <path>])
Reads ~/.claude/history.jsonl + ~/.claude/projects/**/*.jsonl (or
<path>/history.jsonl + <path>/projects/**/*.jsonl if --source is set). Writes:
<dir>/internal/prompts/{project_slug}.md— chronological prompt log per project (chunked by month when > 400 prompts)<dir>/internal/sessions/{slug}/{session_id}.md— per-session digest<dir>/internal/subagents/{slug}/{session_uuid}/agent-*.md— subagent transcripts<dir>/internal/project-overview.{md,json}— authoritative project → corpus mapping (agents use this)<dir>/internal/session-inventory.{md,json}— counts and date ranges
If no sessions are found, stop and report: No sessions in ~/.claude/projects/. Nothing to build.
If the user has fewer than ~50 prompts total, warn that the output will be thin but proceed (some signal is better than none).
Phase 2 — Project digests (parallel agents)
Read <dir>/internal/project-overview.json to get the list of projects with
prompt counts. Group them:
- Big projects (>200 prompts): one dedicated agent each
- Medium (50-200): one agent each
- Small (<50): bundle 3-5 into a single "cluster" agent
For typical users you'll dispatch 5-12 agents in parallel in a single
message. Each agent gets the project-digest prompt template
(<SKILL_DIR>/templates/prompts/digest-project.md) with project-specific
substitutions: project path, slug, prompt file paths, session/subagent dir
paths, and total prompt count.
The template instructs the agent to:
- Read all assigned prompt files chronologically (not skim)
- Sample 5-15 session/subagent transcripts for depth
- Write
<dir>/internal/project-digests/{slug}.mdwith fixed schema (TL;DR → strands → people → companies → tools → concepts → workflow obs → cross-project connections → notable verbatim prompts → open threads)
The template requires verbatim quotes (no paraphrasing) and [[wikilinks]]
for every person/company/concept mentioned.
Wait for all agents to finish before Phase 3.
Phase 3 — Cross-cutting synthesis (parallel agents)
Dispatch six agents in parallel, one per axis. Each reads ALL project digests
from Phase 2 and writes its assigned output dir. Templates under
<SKILL_DIR>/templates/prompts/synthesize-{axis}.md:
| Axis | Output dir | Template |
|---|---|---|
| People | <dir>/people/ | synthesize-people.md |
| Companies | <dir>/companies/ | synthesize-companies.md |
| Projects | <dir>/projects/ | synthesize-projects.md |
| Concepts | <dir>/concepts/ | synthesize-concepts.md |
| Workflows | <dir>/workflows/ | synthesize-workflows.md |
| Tools & Playbooks | <dir>/tools/ + <dir>/playbooks/ | synthesize-tools-playbooks.md |
Each output dir gets its own index.md plus one page per entry.
Wait for all six to finish before Phase 4.
Phase 4 — Spine (you do this directly)
Write six files with full context of what Phases 2 and 3 produced:
<dir>/index.md— landing<dir>/methodology.md— how this KB was built (cite the pipeline)<dir>/arc.md— chronological narrative of the user's six months (or however long)<dir>/glossary.md— distilled vocabulary, grouped by category<dir>/open-questions.md— unresolved threads, including stated-vs-observed tensions<dir>/disambiguation.md— name collisions flagged by Phase 3
Use <SKILL_DIR>/templates/spine-defaults/*.md as starting structure but
fill them with the specific evidence from the run. The arc should be a
single-read narrative — past tense, dated milestones.
Phase 5 — Build and serve
Bash(cd <dir> && npm install --silent)
Bash(cd <dir> && python3 kb.py build) # generate .index.json
Bash(cd <dir> && npm run dev) # background
npm run dev starts the Quartz server at http://localhost:8080. Run in
background and surface the URL.
Final message to the user:
Built {N} pages from {M} prompts. Open http://localhost:8080.
Spine: index, arc, glossary, methodology, open-questions, disambiguation
Content: {p_count} projects, {ppl_count} people, {co_count} companies,
{c_count} concepts, {w_count} workflows, {t_count} tools, {pb_count} playbooks
⚠️ This vault names real people and unredacted strategy. Don't deploy public without a redact pass.
Hard rules
- One command, no flags. If the user passes
[dir], use it. Otherwise default./my-kb. No other arguments. - Phases 2 and 3 dispatch in parallel via the Task tool in a single message. Don't fan out sequentially — costs 5-10× more wall time.
- Verbatim quotes only. Every person / decision / pivot in the synthesis must trace back to a quoted prompt from the digest. Forbidden to paraphrase load-bearing claims.
[[wikilinks]]everywhere. Pre-resolve to lowercase-kebab slugs. Aliases go in frontmatter.- Don't touch
~/.claude/. Read-only. Pre-processor never writes back. - No network calls except LLM API. The preprocessor is stdlib; Quartz is local-build.
- If
npm installfails: report the error, suggestnvm use 22, and stop. Don't try to repair. - If a Phase 2 or Phase 3 agent fails: continue with the others, then report which axes have gaps. The KB is still useful with one axis missing.
- Don't write inside
<SKILL_DIR>/. Treat it as read-only at runtime; everything goes under<dir>.
Failure modes
- Empty history:
No sessions found in ~/.claude/projects/.Stop. - Single tiny project (<50 prompts): build succeeds but warn output will be thin.
history.jsonlmissing (older Claude Code installs): fall back to session JSONL alone; the corpus is still usable, just missing the project-tagged prompt spine.- Agent returns malformed digest: re-dispatch that one agent only with
Retry with stricter adherence to the digest schema.Don't retry more than once. - YAML frontmatter error in synthesized page: the page-template forbids unquoted titles with colons / quotes. Phase 3 templates emphasize this.
What this skill does NOT do
- Doesn't pick which projects matter — every project gets analyzed.
- Doesn't push to GitHub or deploy to Vercel.
- Doesn't redact for public use.
- Doesn't run behavioral analysis on the sessions (no session-quality metrics, no model-regression detection).
- Doesn't update across runs — re-running re-builds from scratch. (Future: incremental refresh.)
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/download' --output '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md.part' && mv '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md.part' '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read Write Edit Bash Glob Grep Task TaskCreate TaskUpdate
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md' && test -s '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/cc-wiki' && cp -R '.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc' '.claude/skills/cc-wiki'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc'openskills read 'cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/cc-wiki-claude-history-to-quartz-knowledge-base-ms1aw3yc/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Supabase Docs Authoring
Documentation
Write, edit, and review Supabase documentation content including guides, tutorials, reference docs, and partials. Follow style guides and MDX/TOML validation rules.
Create Architecture Decision Record
Documentation
Create a new Architecture Decision Record with sequential numbering, register it in the AgentDB graph, and link related ADRs.
Plan update with deep research
Documentation
Updates a plan document by launching parallel subagents to analyze a topic across all compiler passes, then consolidates findings into the plan doc.