From geopol-sim
Take a completed simulation run and produce a shareable artifact — a blog post, a PDF, or both. Use when the user wants to "publish this forecast", "bundle a run", "make a blog post from this simulation", "generate a PDF report", or "share this forecast". Strips internal-only fields, formats horizons as concrete dates, and pipes through existing publishing flows where available.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin geopol-simThis skill is limited to using the following tools:
Turn a `reports/<timestamp>/` directory into something a human reader (or blog audience) can consume.
Provides 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.
Analyzes multiple pages for keyword overlap, SEO cannibalization risks, and content duplication. Suggests differentiation, consolidation, and resolution strategies when reviewing similar content.
Share bugs, ideas, or general feedback.
Turn a reports/<timestamp>/ directory into something a human reader (or blog audience) can consume.
reports/. If the runstore is configured, the user can also pick from <runstore_root>/by-date/.blog, pdf, or both. Default: ask.public (sanitised, neutral) or internal (preserves model names, raw confidence scores, divergence detail). Default: public for blog, internal for pdf-only.blog.danielrosehill.com or heyitworks.tech or other configured target. Hand off to daniel-blog-manager:new-blog-post if available..template-id from the workspace containing the run. This determines which output files exist (report.pdf, synthesis.json, chairman_report.md, etc. differ by template).meta.json, head.json, synthesis.json, report.pdf.meta.json, chairman_report.md, intel_report.pdf, simulation.json.meta.json's run timestamp + horizon strings. Replace relative horizons ("1w", "1m") with concrete UTC dates in the output.Forecast: <question> — <date>.public audience: strip per-model attribution, raw confidence floats, and any internal-only metadata. For internal: keep them.daniel-blog-manager:new-blog-post if the user picked a blog destination.report.pdf / intel_report.pdf as the base — the upstream templates already render polished PDFs. Don't re-render unless the audience demands sanitisation.public sanitisation, regenerate via Typst (lean on repo-to-content:repo-to-pdf patterns) with model names redacted and brand-styled cover.<run-dir>/bundled/ so they live alongside the run rather than scattered. Symlink from the runstore's by-date view if configured.Forecasts-Index repo if Daniel maintains one).chairman_report.md is already publication-quality prose — for blog format prefer adapting it over rewriting from synthesis.json.report.pdf is the canonical PDF — bundle-run should default to using it as-is for internal audience..env values in the output. Sanity-check the bundled markdown for stray secrets before publishing.