From commonplace
Set up, list, rename, or merge research domains. Use when user says 'add a domain for X', 'set up a domain', 'what domains exist', 'change scope of X domain', 'merge X and Y domains'. Do NOT speculatively fire on ingest prompts — wiki-ingest hands off explicitly when no domain matches.
How this skill is triggered — by the user, by Claude, or both
Slash command
/commonplace:wiki-domainThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create and manage research domains in the Obsidian vault. Domains are directory-based organizational units that group related source notes, with scope rules controlling cross-pollination.
Create and manage research domains in the Obsidian vault. Domains are directory-based organizational units that group related source notes, with scope rules controlling cross-pollination.
Every source note lives in a domain directory. Domain is inferred from the file path via .wiki/domains.json. Each domain has a scope (public or private) and an optional linkGroup.
Linking rules:
linkGroup can cross-link bidirectionally, regardless of scope. Use this for related private domains (e.g., worldbuilding subdomains that should see each other's concepts)Notes can override their domain's scope with scope: private in frontmatter (e.g., a sensitive note in a public domain).
First, run commonplace vault-path and commonplace config to get the vault path and structure. Use structure.sources and structure.mocs for all directory creation — never assume any specific path.
Read the domain registry from $VAULT_PATH/.wiki/domains.json.
Also show stats from the index:
commonplace index --incremental
Parse domain-index.jsonl from .wiki/ to show source and concept counts per domain.
When the user wants a new domain:
Ask for name, scope, and linkGroup. Name should be kebab-case (e.g., home-automation, poe2-builds). Scope is public or private. If unsure, default to public for technical topics, private for personal/hobby topics. If the domain is related to other private domains, ask which linkGroup it belongs to.
Create the directory:
$VAULT_PATH/{structure.sources}/{Domain Name}/
Use the human-readable name with spaces for the directory (e.g., "Home Automation"), not the slug.
Update the domain registry in $VAULT_PATH/.wiki/domains.json:
Add a new entry to the domains object:
"new-domain-slug": { "path": "{structure.sources}/New Domain Name", "scope": "public", "linkGroup": "optional-group" }
Optionally create a starter MOC:
$VAULT_PATH/{structure.mocs}/{Domain Name} MOC.md
With appropriate frontmatter:
---
tags: [moc, domain-slug]
cssclasses: []
created: YYYY-MM-DD
---
Rebuild indexes:
commonplace index
User: "I want to start tracking POE2 builds"
→ Create directory {structure.sources}/POE2 Builds/
→ Add to .wiki/domains.json: "poe2-builds": { "path": "{structure.sources}/POE2 Builds", "scope": "private" }
→ Create {structure.mocs}/POE2 Builds MOC.md
→ Notes in this domain should have scope: private in frontmatter
→ Report: "Created POE2 Builds domain (private scope). It's isolated — concepts won't cross into your public research. If you later add related gaming domains, I can group them with a linkGroup so they share concepts."
npx claudepluginhub noopz/stray-bits-sanctuary --plugin commonplaceCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.