
vault-skill-factory
Create a reviewable Agent Skill package from mature curated wiki pages. Use when turning verified vault knowledge into a reusable skill. Reads the vault and writes only to a review directory; it does not install skills.
- Installs
- 721
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/ar9av/obsidian-wiki --skill vault-skill-factory- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads vault-skill-factory automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Vault Skill Factory
You turn a cluster of mature, curated wiki pages into a portable Agent Skill: a
SKILL.md plus a references/ folder, written to a review directory for the human to inspect
and (only if they choose) install. This is the inverse of wiki-capture: capture turns a
conversation into a page; the factory turns a body of pages into a reusable skill.
Hard guardrails (read first)
- Never write into
.skills/and never runsetup.shor create symlinks into any global skill directory (~/.claude/skills,~/.codex/skills, …). Generated skills go to the review dir only. Installation is a separate, explicit human decision. - Never auto-install. End by telling the user where the skill is and how to install it project-locally if they want — do not do it for them.
- Source pages are trusted vault content, but do not invent capabilities: the generated skill must reflect what the pages actually say.
Before You Start
- Resolve config (Config Resolution Protocol in
llm-wiki/SKILL.md): getOBSIDIAN_VAULT_PATH,OBSIDIAN_WIKI_REPO,OBSIDIAN_LINK_FORMAT, the QMD vars, and:SKILL_FACTORY_OUTPUT_DIR— where generated skills land. Default:$OBSIDIAN_VAULT_PATH/_generated-skills(a vault-level, underscore-prefixed excluded dir — like_raw/_staging/_sources, NOT theskills/knowledge category). This co-locates generated skills with the vault they were distilled from. Create it if missing. Note:_generated-skills/holds runtime Agent-Skill bundles (name+descriptionfrontmatter), not wiki pages — never write them intoskills/(that category is for knowledge pages and is graph-/lint-/index-tracked).SKILL_FACTORY_MATURITY— comma list oflifecycle:values that count as "mature". Default:reviewed,verified. Pages withtier: corealso qualify.
- Read
index.mdto understand what the vault holds.
Step 1: Choose the cluster
Decide which pages become the skill. The user may name a topic, tag, or project; otherwise propose candidates.
- Seed from the user's intent (a topic, tag, project, or a named page).
- Expand the cluster:
- If QMD is configured (
QMD_WIKI_COLLECTION), runqmd query "<topic>" -c "$QMD_WIKI_COLLECTION" --files(orvsearch) to gather semantically related pages — this is the intended way to find the full cluster, not just exact-tag matches. - Otherwise
Grep/Globby tag and wikilink-neighbourhood (pages linked from the seed pages).
- If QMD is configured (
- Filter by maturity: keep pages whose
lifecycle:is inSKILL_FACTORY_MATURITYor whosetier:iscore. Dropdraftpages unless the user explicitly includes them. - Confirm the cluster with the user (list page names + count) before generating. If fewer than ~3 mature pages match, say so — a skill from one thin page isn't worth it; offer to proceed anyway or widen the net.
Step 2: Design the skill
From the cluster, decide:
name— kebab-case, derived from the cluster's subject (e.g.french-theory-expert,peptide-protocols). Must not collide with an existing skill in.skills/.description— the trigger. Write it "pushy" (perskill-creator): state when to use it (all the phrasings a user might say) and what it does. This field is what makes the skill fire.- Reasoning approach — how an agent should use this knowledge: the questions it answers, the method it applies, the caveats it respects. Distil this from the pages' synthesis, not a copy-paste.
- Depth material — which page bodies become
references/files.
Step 3: Write the skill to the review dir
Create $SKILL_FACTORY_OUTPUT_DIR/<name>/ with:
<name>/
├── SKILL.md # frontmatter (name + pushy description) + reasoning approach + key knowledge
├── references/ # depth material distilled from the cluster
│ ├── <topic>.md # one per sub-theme; declarative knowledge, not chat
│ └── sources.md # provenance: which vault pages this was built from (+ their sources)
└── SKILL_FACTORY.md # provenance manifest (see below) — NOT part of the installed skill
SKILL.md body should be lean (the trigger logic + a compact reasoning guide), pushing depth into
references/. Follow the structure of existing skills in this repo. Preserve ^[inferred] /
^[ambiguous] markers when carrying over uncertain claims — a generated skill must not launder
synthesis into fact.
references/sources.md lists every vault page used (by [[wikilink]]) and their upstream
sources: — so the skill stays auditable back to the vault and original sources.
SKILL_FACTORY.md (factory metadata, kept out of the installable skill) records: generation
date, the cluster pages + their lifecycle/tier, the maturity filter used, and the vault commit/hash
if available. This lets a regenerate-on-update workflow diff later.
Optional, if the user asks: append/update a marketplace.json entry in the output dir (the OpenKB
one-line-install convention) — still not an install, just a manifest.
Step 4: Optionally lean on skill-creator
skill-creator ships reusable scripts. Their path differs between a pip/uv install and a source
checkout, so check both layouts under $OBSIDIAN_WIKI_REPO and use the first that exists:
$OBSIDIAN_WIKI_REPO/skills/skill-creator/scripts/— packaged install (OBSIDIAN_WIKI_REPOpoints at the bundled_data/dir, which ships the skills underskills/).$OBSIDIAN_WIKI_REPO/.skills/skill-creator/scripts/— source checkout.
Whichever resolves, it holds:
improve_description.py— tighten the generateddescriptionfor better triggering.package_skill.py— bundle the skill dir into a distributable archive.quick_validate.py— sanity-check the skill's structure.
Use them when the user wants a polished/validated artifact; don't reinvent them.
Step 5: Report — and stop
Tell the user:
- the path:
$SKILL_FACTORY_OUTPUT_DIR/<name>/ - the cluster it was built from (page count + names)
- the trigger
description - How to install if they want it (their decision, project-local only):
Note explicitly: review first; do not run
ln -s ../../.skills/<name> <repo>/.claude/skills/<name> # after copying <name>/ into .skills/, sans SKILL_FACTORY.mdsetup.sh(it fans skills into global dirs); never global-install without explicit agreement.
Do not install it yourself. Do not write to .skills/. Done.
Quality checklist
- Output went to
$SKILL_FACTORY_OUTPUT_DIR, never.skills/or a global dir - Cluster confirmed with the user; only mature pages (per
SKILL_FACTORY_MATURITY/tier: core) -
descriptionis pushy and accurate (when + what) - SKILL.md body is lean; depth lives in
references/ -
^[inferred]/^[ambiguous]markers preserved; no synthesis laundered into fact -
references/sources.mdtraces back to vault pages + their sources -
SKILL_FACTORY.mdprovenance manifest present (excluded from the installable skill) - Report names the path and the manual, project-local-only install step; nothing auto-installed
FAQ
What does the vault-skill-factory skill do?
Create a reviewable Agent Skill package from mature curated wiki pages. Use when turning verified vault knowledge into a reusable skill. Reads the vault and writes only to a review directory; it does not install skills.
How do I install vault-skill-factory?
Run npx skills add https://github.com/ar9av/obsidian-wiki --skill vault-skill-factory in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/vault-skill-factory/ (personal) or .claude/skills/vault-skill-factory/ (project).
Which AI agents can use vault-skill-factory?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is vault-skill-factory safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains vault-skill-factory?
It is published by ar9av in ar9av/obsidian-wiki. It has 721 recorded installs.
More from ar9av/obsidian-wiki
llm-wiki
ar9av/obsidian-wiki
Explain and apply the foundational LLM Wiki architecture and knowledge-management strategy. Use for setup, architecture, schema, or organization decisions; operational ingest/query/lint work uses dedicated skills.
wiki-ingest
ar9av/obsidian-wiki
Ingest new documents, raw text, folders, or URLs into the Obsidian wiki as distilled, linked knowledge. Use for general wiki ingestion when no more specific ingest skill applies, including processing raw/ staged content.
wiki-setup
ar9av/obsidian-wiki
Initialize or repair an Obsidian wiki vault's required structure and configuration. Use for new-vault setup, .env/config creation, reconfiguration, or broken setup recovery.
wiki-query
ar9av/obsidian-wiki
Search and synthesize answers from the compiled Obsidian wiki, including cited and multi-hop answers. Use for questions about existing wiki knowledge or fast index-only lookups, and for challenge requests ("challenge this", "argue against X", "poke holes in my plan") that look for the vault's own evidence against a plan. Supports named-vault routing such as wiki-query @work; not for ingesting new sources.
wiki-lint
ar9av/obsidian-wiki
Audit wiki health: broken links, orphans, contradictions, stale content, lifecycle and tag issues. Use for maintenance or health checks. Default is report-only; use wiki-dedup for page-identity merges.
wiki-status
ar9av/obsidian-wiki
Report wiki ingestion/completeness state, pending source delta, structural insights, or maintenance equilibrium. Use for remaining-work/status questions, hubs and bridges, or whether maintenance skills still have pending changes. wiki-digest summarizes learned knowledge instead.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.