Bootstrap a new LLM-maintained wiki at a chosen folder, following the llm-wiki.md pattern (a three-layer memex - raw sources, LLM-generated wiki pages, and a CLAUDE.md or AGENTS.md schema that tells the LLM how to ingest and maintain the wiki). Creates the directory layout, writes a tailored schema file, plus index.md and log.md with a bootstrap entry. Use this skill when the user asks to "set up an llm-wiki", "create an LLM wiki", "bootstrap a wiki", "instantiate the llm-wiki pattern", or invokes /setup-llm-wiki. The skill asks the user about target folder, domain (research deep-dive / personalised work wiki / personal knowledge base / business-team wiki / reading a book / combination), source types (web articles, academic PDFs, meeting/podcast transcripts, own notes), image handling, optional search tooling (qmd), schema filename (CLAUDE.md or AGENTS.md), and optional symlinks to sibling folders if the target sits inside an Obsidian vault.
87
90%
Does it follow best practices?
Impact
83%
2.24xAverage score across 4 eval scenarios
Advisory
Suggest reviewing before use
#!/usr/bin/env bash
# Usage: create_dirs.sh <target_dir> <source_types_csv>
# E.g.: create_dirs.sh ~/my-wiki "articles,papers,transcripts,notes"
#
# Creates the wiki directory tree:
# <target>/raw/{<each source type>,assets}/
# <target>/wiki/{entities,concepts,topics,sources,synthesis}/
#
# Always creates raw/assets/ regardless of the CSV. Always creates the five
# wiki/ subdirs.
set -euo pipefail
if [ "$#" -lt 2 ]; then
echo "Usage: $0 <target_dir> <source_types_csv>" >&2
echo " source_types_csv: comma-separated subset of articles,papers,transcripts,notes" >&2
exit 2
fi
target="$1"
sources_csv="$2"
# Expand leading ~ if present.
case "$target" in
"~"|"~/"*) target="${HOME}${target#~}" ;;
esac
mkdir -p "$target"
mkdir -p "$target/raw" "$target/raw/assets"
mkdir -p "$target/wiki/entities" "$target/wiki/concepts" "$target/wiki/topics" "$target/wiki/sources" "$target/wiki/synthesis"
IFS=',' read -ra TYPES <<< "$sources_csv"
for t in "${TYPES[@]}"; do
t_trimmed="$(echo "$t" | tr -d '[:space:]')"
case "$t_trimmed" in
articles|papers|transcripts|notes)
mkdir -p "$target/raw/$t_trimmed"
;;
"")
;;
*)
echo "warning: unknown source type '$t_trimmed' (expected articles|papers|transcripts|notes)" >&2
;;
esac
done
echo "created wiki skeleton at $target"