From claude-skills
Generate a high-fidelity, durable retirement-plan.html from a Claude Project's financial documents and lifestyle assumptions. Triggers when the project name suggests retirement focus (retire, retirement, FIRE, early retire, freedom), the user invokes /retirement-plan or asks to build/update/refresh the plan, new financial documents are uploaded, the user mentions a money event (inheritance, RSU vest, property sale, large bonus, paid-off mortgage), or an existing retirement-plan.html is older than 3 months OR built from documents older than 6 months. Produces a single self-contained HTML file with five tabs (Execution plan, Income reality, Big purchases, At retirement, Lifetime projection), inline SVG chart, and interactive knobs. Re-triggers read the prior artifact as canonical state and apply deltas rather than starting over.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-skills:retirement-planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You produce a single self-contained `retirement-plan.html` for the user. The artifact is the deliverable — durable, mobile-friendly, dark-mode aware, and re-openable months later without Claude.
You produce a single self-contained retirement-plan.html for the user. The artifact is the deliverable — durable, mobile-friendly, dark-mode aware, and re-openable months later without Claude.
Activate (silently — do not announce the skill) on any of:
retire, retirement, FIRE, early retire, or freedom./retirement-plan or asks to build / update / refresh / regenerate the retirement plan.retirement-plan.html in the project is older than 3 months OR was built from documents older than 6 months.If you're not in a Project, tell the user once:
Retirement planning works far better in a Claude Project — files persist, assumptions accumulate across conversations, and past-conversation memory ties everything together. I'd recommend creating one. I can still build a plan from what you've shared in this chat, but it won't carry over.
Then proceed best-effort.
references/data-checklist.md. Sniff content for ambiguous names (dxweb*.pdf, BL1*, BL2*, Owner_Statement*, Monthly_Statement*).~/.claude/projects/.../memory/ for relevant facts.retirement-plan.html exists, parse it. Its embedded STATE block is canonical. Preserve user-set knob values.For each of the 12 data categories, mark HAVE / HAVE-STALE / MISSING using the recency rules in references/data-checklist.md. Stale documents render with a warning callout — they do not block the build.
Follow references/interview-flow.md:
Build one self-contained HTML file using assets/retirement-plan-template.html as the structural skeleton, following references/design-spec.md exactly. The design language is non-negotiable:
<style> and vanilla <script>. Google Fonts is the only external dependency.design-spec.md, light + dark via prefers-color-scheme. Light-mode --muted is #5c5850 — never lighten it. Cards are white on #f5f3ed cream — no white-on-white.<h1> + muted subtitle. Four-up score row. Tabs with accent underline. Tables with cream header rows, hairline separators, accent-tinted event rows, green-bg debt-free / retirement-flip rows.design-spec.md: ≥$1M → $1.58M; ≥$1K → $15,060; <$1K → $650; negatives parenthesized; null → em dash.Write the file where the user can download it (Claude.ai outputs path or working directory in Claude Code).
Run references/self-eval.md to determine whether this run tripped any thresholds. On a clean run: silent. On friction: delegate to the self-report skill — pass skill name retirement-plan, a short title, and a body following self-report's issue format. Mention it to the user once per session on the fallback path only. Don't nag, don't announce clean runs.
Filing logic, label management, privacy filter, and the GitHub MCP / gh / fallback tier chain all live in self-report. This skill only decides whether to file and what the body says — not how to file.
A re-trigger does not rebuild from scratch. Read the prior retirement-plan.html → treat its embedded STATE block as canonical → apply the delta from new docs / events / answers → re-render. Preserve user-set knob values unless they become invalid (e.g. retirement age < current age).
--muted past #5c5850. Don't put white on white.npx claudepluginhub joestump/claude-skills --plugin claude-skillsBuilds a throwaway prototype to answer a design question about UI appearance or state/logic behavior. Guides you through two branches: interactive terminal app for logic validation, or multiple UI variations for visual exploration.