원클릭으로
setup-wikibase
Install and configure a local Wikibase Suite for projects that need a Wikidata-style knowledge graph with claim-level provenance
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Install and configure a local Wikibase Suite for projects that need a Wikidata-style knowledge graph with claim-level provenance
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Definitive reference for how Claude Code works — disambiguates skills vs hooks vs subagents vs MCPs vs slash commands vs memory vs settings. Use when asked "how does Claude Code X work", "what's the difference between X and Y", "where should this live", "build me a [skill|hook|agent|mcp|slash command]", "configure Claude Code", or when picking the right surface for a new capability.
Scribe — the project-documentation skill. Generate or maintain a project's Claude-facing documentation (CLAUDE.md, .claude/docs/*, project-context.md, README) from verified facts. Use when the user says "document this project", "write the docs for X", "the docs are stale", "fill in the .claude docs", or "/scribe". Detects existing doc state and routes between from-scratch and update. Verify-before-assert is the core discipline — confirmed facts go to committed docs, inferred/uncertain ones go to a separate hazards artifact, never silently into the repo.
Speak content aloud via Kokoro neural TTS (local, offline). Use when the user says "read it for me", "read it to me", "play it in audio", "say it", "speak it", "read that aloud", "/say-it", or asks to hear something spoken instead of reading it.
Install a local neural voice interface for Claude Code on macOS Apple Silicon. Wires mlx-whisper (STT) + Kokoro TTS (offline neural voices) into voice-claude and vtranscribe CLI scripts. Two voice contexts — personal (af_heart) and tech (af_bella). Multi-session safe — concurrent sessions speak in turn (global lock) and announce their name. No cloud APIs, no API keys.
Collect the user's daily work activity from Slack, Jira, Confluence, GitHub, and Google Drive with source links
Collect a team member's daily work activity from Slack, Jira, Confluence, and GitHub
| name | setup-wikibase |
| description | Install and configure a local Wikibase Suite for projects that need a Wikidata-style knowledge graph with claim-level provenance |
| user_invocable | true |
| args | Optional preferred preset (minimal, full) |
See .claude/skills/_shared/MODEL_SELECTION.md (in your workspace) for full policy.
You are helping the user stand up a local Wikibase instance — the same software that powers Wikidata. This is the right choice when the project needs:
For projects that just need semantic search over markdown notes, cognee (see setup-cognee) is lighter weight. See .claude/docs/memory-systems.md for the full decision tree.
Before executing installation steps, look up current documentation:
wdqs:0.3.143 → wdqs:wdqs0.3.156); check Docker Hub for currently-published tags before pinningIf the current docs show different image tags or compose patterns than what this skill describes, adapt accordingly and tell the user what changed.
Detect what's available:
platform: linux/amd64 overrides for Wikibase images that lack arm64 manifests)docker --version, docker compose version — need v2.10+)lsof -nP -iTCP:8080 -sTCP:LISTEN.Report findings before proceeding.
The user has two real options. Help them pick:
| Self-hosted Docker | Hosted (wikibase.cloud) | |
|---|---|---|
| Effort | ~30 min initial + ongoing ops | Sign-up only |
| Data location | Local | WMDE-hosted |
| Cost | Free | Free for non-commercial |
| Customization | Full (custom properties, hooks, etc.) | Limited |
| Federation w/ Wikidata | Yes (when published online) | Yes (built-in) |
| Best for | Personal / private data, full control | Public data, no ops appetite |
If the user picks hosted, direct them to https://www.wikibase.cloud/ and stop here.
If self-hosted, continue.
The official wikibase-release-pipeline repo's deploy/ compose is production-oriented (Traefik + Let's Encrypt + real DNS). For local development, write a minimal compose that exposes services on plain HTTP localhost ports.
Key services in a minimal stack:
wikibase (MediaWiki + Wikibase extension) → :8080wikibase-jobrunner (background queue)mysql (MariaDB — internal only)wdqs (Blazegraph SPARQL endpoint)wdqs-proxy (nginx → exposes WDQS at :8834 with CORS headers)wdqs-updater (syncs Wikibase → triplestore)wdqs-frontend (query UI) → :8889quickstatements (bulk-import UI) → :9191Critical environment vars to get right:
wikibase:
environment:
MW_WG_SERVER: http://localhost:8080 # public-facing URL — used in entity URIs
DB_SERVER: mysql:3306
QUICKSTATEMENTS_PUBLIC_URL: http://localhost:9191
WDQS_PUBLIC_ENDPOINT_URL: http://localhost:8834/sparql
WDQS_PUBLIC_FRONTEND_URL: http://localhost:8889
METADATA_CALLBACK: "false"
wdqs-updater:
environment:
WIKIBASE_HOST: wikibase # Docker-internal DNS for fetching entity data
WIKIBASE_CONCEPT_URI: http://localhost:8080 # MUST match the public URL prefix in entity URIs
MEDIAWIKI_API_URL: http://wikibase/w/api.php
quickstatements:
environment:
QUICKSTATEMENTS_PUBLIC_URL: http://localhost:9191
WIKIBASE_PUBLIC_URL: http://localhost:8080
Apple Silicon caveat: add platform: linux/amd64 to all wikibase/* images (no arm64 manifests as of writing). Docker Desktop on M-series runs them via Rosetta — slower but works.
--bare flag breaks keychain auth. Don't use it for the wrapper script that runs claude -p against this stack — --bare blocks OAuth lookup; the user gets Not logged in · Please run /login.
After docker compose up -d, verify:
docker compose ps # all services should be healthy
curl -sf http://localhost:8080/wiki/Main_Page # MediaWiki up
curl -sf "http://localhost:8834/namespace/wdq/sparql" \
--data-urlencode 'query=SELECT (COUNT(*) AS ?n) WHERE {?s ?p ?o}' # SPARQL up
# Open in a browser:
# http://localhost:8080 (Wikibase)
# http://localhost:8889 (Query Service UI)
# http://localhost:9191 (QuickStatements)
Before bulk-importing any data, the user needs:
A property catalog — every relation in their data needs a Wikibase property (Pnnn). Don't skip the references properties — stated-in, reference-URL, retrieved, archive-URL are non-negotiable.
A foundation item set — types like human, political party, source organization; per-source items (CVK, Wikipedia LV, etc.) so references can point at them.
A property-map.yaml and item-map.yaml committed to the repo — every script reads these by key name (P["stated_in"], Q["src_wikipedia_lv"]) and never hardcodes Pnnn/Qnnn.
See .claude/docs/wikibase-migration-patterns.md for the full schema-design checklist + property catalog template.
For >1000 entities, the user needs the migration patterns documented separately. Key non-obvious points:
wikibaseintegrator (Python lib), not raw HTTP. Handles login token refresh, JSON encoding of statements with qualifiers and references.claims.add() is APPEND_OR_REPLACE — same-property statements get deduped silently. For multi-valued statements (e.g. one person ran in multiple elections) use ActionIfExists.FORCE_APPEND or you'll lose data.Full pattern reference: .claude/docs/wikibase-migration-patterns.md.
The skill should leave the user with these scripts in their project:
01_create_foundation.py — creates the Pnnn/Qnnn foundation, writes property-map.yaml + item-map.yaml02_bulk_create_entities.py — partitioned, idempotent worker (entity-ID-keyed shard files)make_index_page.py — generates a wikitext index page that lists all entities of a classlib_wbi.py — shared helpers (login, references, session refresh)A reference implementation lives at: see the project that contributed this skill (kept private; the patterns are documented in wikibase-migration-patterns.md).
Add to .claude/memory/MEMORY.md:
property-map.yaml and item-map.yamlmake_index_page.py invocation to refresh the index after data changessetup-cognee)If the user describes a project that doesn't fit the Wikibase niche, suggest the alternative and stop.