skills/obsidian-setup/SKILL.md
Set up the Hermit Cortex — an Obsidian vault surface over your hermit's state. Creates the obsidian/ directory with Brain, Cortex, Evolution, System Health, Connections, and Cortex Portal pages. Run once per project.
npx skillsauth add gtapps/claude-code-hermit obsidian-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Sets up the Hermit Cortex in the current project. Safe to re-run — see --force scope below.
Pass --reconfigure-manifest to re-run only the artifact path discovery wizard (updates cortex-manifest.json and rebuilds Connections.md).
.claude-code-hermit/config.json to confirm the hermit is hatched..claude-code-hermit/ does not exist, stop: "Run /claude-code-hermit:hatch first."obsidian/ directory already exists by using Glob("obsidian/*.md") — if it returns results, the Cortex is already set up.
--force nor --reconfigure-manifest was passed: list existing pages and ask: "Obsidian Cortex already set up. Use --force to overwrite static pages, or --reconfigure-manifest to update artifact paths."--force was passed: proceed (static pages will be replaced).--reconfigure-manifest was passed: skip to Step 4 directly.--force scope:
| Component | Default | --force |
| ------------------------------------------------------ | ------------------ | ---------------------------------------- |
| Static pages (Brain, Cortex, Evolution, System Health) | Skip if exists | Overwrite |
| cortex-manifest.json | Skip if exists | Skip (operator-managed, never overwrite) |
| Connections.md / Cortex Portal.md | Always regenerated | Always regenerated |
Set HERMIT_PATH = .claude-code-hermit.
For each template in ${CLAUDE_PLUGIN_ROOT}/state-templates/obsidian/:
{{GENERATED_AT}} with current ISO timestampobsidian/<template-name-without-.template> in the project root--force)Templates to copy:
Brain.md.template → obsidian/Brain.mdCortex.md.template → obsidian/Cortex.mdEvolution.md.template → obsidian/Evolution.mdSystem Health.md.template → obsidian/System Health.mdConnections.md.template → obsidian/Connections.md (header only — body generated in step 5)Cortex Portal.md.template → obsidian/Cortex Portal.md (header only — body generated in step 5)If .claude-code-hermit/cortex-manifest.json does not exist (first run):
Scan the project root for candidate artifact paths using these heuristics:
.md files (exclude .git, node_modules, .claude-code-hermit, .claude, obsidian, .vscode, .github).md files with existing YAML frontmatter (stronger signal than bare .md).md files matching date-like patterns (e.g. *-2026-*.md, *-YYYY-*.md).claude-code-hermit/compiled as a default path — this is where durable domain outputs live and should always be indexed.If candidates found, present them to the operator:
questions: [
{
header: "Artifacts",
question: "These directories and files look like hermit-produced content. Files in these paths will appear in Connections.md and the Obsidian graph:\n{candidate_list}\nConfirm, edit, or skip.",
options: [
{ label: "Confirm as-is", description: "Use all listed paths" },
{ label: "Skip", description: "Empty artifact_paths — add later via --reconfigure-manifest" }
]
}
]
artifact_paths: []Let the operator confirm, add, remove, or skip entirely.
Write .claude-code-hermit/cortex-manifest.json with confirmed paths. If operator skips: write with an empty artifact_paths array.
If .claude-code-hermit/cortex-manifest.json already exists and --reconfigure-manifest was passed:
artifact_paths as the starting point.questions: [
{
header: "Artifacts",
question: "Current paths: {existing}\nNew candidates found: {new_candidates}\nConfirm, edit, or reset.",
options: [
{ label: "Confirm all", description: "Keep existing paths and add new candidates" },
{ label: "Keep current", description: "Ignore new candidates, keep only existing" },
{ label: "Reset", description: "Clear all artifact paths and start fresh" }
]
}
]
If file already exists and --reconfigure-manifest was NOT passed: skip this step.
Run:
node ${CLAUDE_PLUGIN_ROOT}/scripts/build-cortex.js .claude-code-hermit obsidian .
This generates obsidian/Connections.md from current session, proposal, and artifact data. obsidian/Cortex Portal.md is a static Dataview template copied from the plugin — it does not need generation and should not be overwritten by this script.
If obsidian/Latest Review.md does not exist, write a placeholder:
# Latest Review
> No weekly review has run yet. Run `/claude-code-hermit:weekly-review` manually, or enable the `weekly-review` routine in config.json.
This file is overwritten by scripts/weekly-review.js on first run — the placeholder simply prevents dangling wikilinks in Cortex.md and Cortex Portal.md.
Read .claude-code-hermit/config.json. Check if a routine with id: "cortex-refresh" already exists.
routines array:
{
"id": "cortex-refresh",
"schedule": "30 23 * * *",
"skill": "claude-code-hermit:cortex-refresh",
"enabled": true
}
Write the updated config.json back atomically (write to state/.config.json.tmp, rename to config.json).
Hermit Cortex created in obsidian/
Operator view into your hermit's current state and evolution.
First look:
1. Open your repo root as an Obsidian vault (if not already)
2. Install the FolderBridge community plugin — required for Dataview to read .claude-code-hermit/
https://github.com/tescolopio/Obsidian_FolderBridge
3. Open obsidian/Brain.md — live session, fragile zones, what needs attention
4. Open obsidian/Cortex.md — uncertainty, stability, regressions, operator dependence
5. Open obsidian/Cortex Portal.md → right-click tab → Open local graph
Session and proposal nodes radiate from the cortex pages at center.
Pages:
Brain.md — live session, fragile zones, what needs attention
Cortex.md — uncertainty, stability, regressions, operator dependence
Evolution.md — first vs latest, cost trends, autonomy trajectory
System Health.md — agent state, alerts, incomplete sessions
Connections.md — relationship map: sessions ↔ proposals ↔ artifacts
Cortex Portal.md — graph center: links everything
Artifact tracking:
Files declared in cortex-manifest.json appear in Connections.md.
Add title + created frontmatter to connect them to the graph.
Update paths anytime: /claude-code-hermit:obsidian-setup --reconfigure-manifest
Connections refresh nightly at 23:30.
To enrich existing content with frontmatter and tags:
/claude-code-hermit:cortex-sync
Note: At session 1, Brain.md shows your live session and empty Dataview tables. By session 10, Cortex.md starts showing fragile zones. By session 20, Evolution.md tells a real story. The cortex gets more useful the longer your hermit runs.
data-ai
Initializes or resumes a work session. Loads context from OPERATOR.md and SHELL.md, orients the agent, and establishes what to work on. Use at the beginning of every work session.
tools
Evolves hermit configuration and templates after a plugin update. Detects version gaps, presents new features, walks through new settings. Run after updating the plugin.
testing
Initializes the autonomous agent in the current project. Creates the state directory, templates, OPERATOR.md, and config.json. Appends session discipline to CLAUDE.md. Detects installed hermits. Run once per project, like git init.
tools
Generates Docker scaffolding and walks the operator through the full deployment — token setup, build, start, MCP plugin configuration, workspace trust, and verification. Offers to back up and overwrite existing Docker files. Run after /hatch.