From geopol-sim
One-time setup of a persistent archive for all simulation runs across workspaces and templates. Use when the user wants to "set up a runs archive", "configure where runs are stored", or asks where their forecasts are kept. Creates the runstore directory, persists the path via the plugin-data-storage convention so it survives plugin updates, and registers existing workspaces.
How this skill is triggered — by the user, by Claude, or both
Slash command
/geopol-sim:setup-runstoreThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Without this, runs live scattered inside each workspace's `reports/` dir. With it, every run across every template is archived in one place — making `grade-run` aggregate stats meaningful, and making bundling / browsing / cross-run comparison possible.
Without this, runs live scattered inside each workspace's reports/ dir. With it, every run across every template is archived in one place — making grade-run aggregate stats meaningful, and making bundling / browsing / cross-run comparison possible.
~/geopol-runs/. Suggest somewhere under ~/Documents/ or ~/repos/ (this is user-owned data, not plugin-owned — it shouldn't live under ~/.claude/).symlink (default, zero-copy) or copy (snapshot at registration time). Symlink is right for almost everyone; copy is for users who want the archive to be fully portable.PLUGIN_DATA="${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/geopol-sim"
mkdir -p "$PLUGIN_DATA"
mkdir -p <runstore_root>/{by-date,by-template,by-workspace}. These are organisational views — actual run dirs live under by-date/YYYY/MM/DD/<workspace>-<run-id>/ and are reachable via symlinks from the other two views.<PLUGIN_DATA>/config.json:
{
"runstore_root": "<absolute path>",
"mirror_mode": "symlink",
"registered_workspaces": []
}
~/repos/**/.template-id (depth-limited) for any pre-existing scaffolded workspaces. Ask the user which (if any) to register.<workspace>/reports/<run-id>/, link it into the runstore:
ln -s <workspace>/reports/<run-id> <runstore_root>/by-date/<YYYY>/<MM>/<DD>/<workspace-slug>-<run-id>
ln -s <workspace>/reports/<run-id> <runstore_root>/by-template/<template-id>/<workspace-slug>-<run-id>
ln -s <workspace>/reports/<run-id> <runstore_root>/by-workspace/<workspace-slug>/<run-id>
Append the workspace path to registered_workspaces in the config.After setup, scaffold-simulation will register new workspaces automatically, and run-simulation should link new run dirs into the store on completion (extension to that skill — when the runstore exists, it links; when it doesn't, it just leaves runs in <workspace>/reports/).
$CLAUDE_USER_DATA. The config under $CLAUDE_USER_DATA only stores the pointer to the runstore.update-templates could grow a lint pass for this; for v1 just warn the user.npx claudepluginhub danielrosehill/claude-code-plugins --plugin geopol-simProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.