agentleFS
joestumpjoestump/claude-skills/retirement-plan/SKILL.md

retirement-plan

Skill2 starsChanged 6 months agoMITView on GitHub

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.

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 9 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If you're not in a Project, tell the user once:

    line 22
  2. Distinctive:

    Search past conversations in this project for prior interview answers, money events, and lifestyle context.

    line 33
  3. Very specific:

    Read user memory at ~/.claude/projects/.../memory/ for relevant facts.

    line 34
  4. Very specific:

    If a prior retirement-plan.html exists, parse it.

    line 35
  5. Distinctive:

    Use industry terms (PIA, FRA, RMD, SWR) without defining them — assume finance literacy.

    line 47
  6. Distinctive:

    Write the file where the user can download it (Claude.ai outputs path or working directory in Claude Code).

    line 67
  7. Distinctive:

    Don't announce "I'm using the retirement-plan skill." Just do the work.

    line 81
  8. Distinctive:

    Don't ask about sensitive topics (partner health, life expectancy, mental health).

    line 82
  9. Distinctive:

    Don't introduce CSS frameworks (no Bootstrap, no Tailwind), gradients, glassmorphism, neon, drop shadows beyond hairline borders, pie …

    line 83
  10. Very specific:

    Don't lighten light-mode --muted past #5c5850.

    line 84
  11. Distinctive:

    Don't invent new tabs. Don't include user financial data in self-report issues.

    line 85
  12. Distinctive:

    Don't surface clean-run self-evaluation.

    line 86

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

retirement-plan

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.

Triggers

Activate (silently — do not announce the skill) on any of:

  • Project name contains retire, retirement, FIRE, early retire, or freedom.
  • User invokes /retirement-plan or asks to build / update / refresh / regenerate the retirement plan.
  • New financial documents are uploaded to a retirement project.
  • User mentions a money event: inheritance, RSU vest, property sale, large bonus, paid-off mortgage, job change, divorce, etc.
  • Existing retirement-plan.html in the project is older than 3 months OR was built from documents older than 6 months.

Outside a Claude Project

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.

Five-phase workflow

1. Discovery

  • List every file in the project. Categorize each per references/data-checklist.md. Sniff content for ambiguous names (dxweb*.pdf, BL1*, BL2*, Owner_Statement*, Monthly_Statement*).
  • Search past conversations in this project for prior interview answers, money events, and lifestyle context.
  • Read user memory at ~/.claude/projects/.../memory/ for relevant facts.
  • If a prior retirement-plan.html exists, parse it. Its embedded STATE block is canonical. Preserve user-set knob values.

2. Gap analysis

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.

3. Interview

Follow references/interview-flow.md:

  • Skip anything already known from documents, past conversations, memory, or prior artifact.
  • ≤3 questions per turn. Mobile-friendly. Multiple-choice tools where available.
  • Use industry terms (PIA, FRA, RMD, SWR) without defining them — assume finance literacy.
  • Never surface sensitive topics in fresh interviews: partner health limits, life expectancy, anxiety/relationship stress. Encode known constraints into knob defaults silently.

4. Render

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:

  • Single file. Inline <style> and vanilla <script>. Google Fonts is the only external dependency.
  • DM Sans (body/UI) + DM Serif Display (display headings). Tabular numbers on every money cell.
  • The exact CSS-variable palette in 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.
  • Centered 720px wrap. Header with overline + serif <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.
  • Money formatter from design-spec.md: ≥$1M → $1.58M; ≥$1K → $15,060; <$1K → $650; negatives parenthesized; null → em dash.
  • Knobs split into two sub-tabs (Income & retirement timing / Spending & lifestyle).
  • Inline SVG line chart. No charting library.
  • Year-by-year projection table with milestone strips for Retire, partner-stops-cleaning (or equivalent), 59.5, Medicare-65, SS-claim, Spouse-SS, RMDs-73, pension drawdown.
  • Column glossary after every data table.
  • Bottom-line callout per headline tab (green if healthy, red if projection breaks).
  • Footer ends with "Not financial advice."
  • Skip tabs the data doesn't support. Don't invent new tabs.

Write the file where the user can download it (Claude.ai outputs path or working directory in Claude Code).

5. Self-evaluation

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.

Re-trigger semantics

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).

Things to never do

  • Don't announce "I'm using the retirement-plan skill." Just do the work.
  • Don't ask about sensitive topics (partner health, life expectancy, mental health). Encode constraints silently.
  • Don't introduce CSS frameworks (no Bootstrap, no Tailwind), gradients, glassmorphism, neon, drop shadows beyond hairline borders, pie charts, emojis as visual elements, or title-case body copy.
  • Don't lighten light-mode --muted past #5c5850. Don't put white on white.
  • Don't invent new tabs. Don't include user financial data in self-report issues.
  • Don't surface clean-run self-evaluation. Don't bring up the self-report more than once per session.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.