agentleFS
tusharagg1tusharagg1/aifolimizer/.claude/skills/profile-setup/SKILL.md

profile-setup

Skill2 starsChanged 5 months agoMITView on GitHub

Capture or update the user's personal-finance context (age, province, salary, monthly expenses, contribution room RRSP/TFSA/FHSA, FTHB horizon, ESPP details, IOUs, debts, insurance, external crypto). Use when the user says "set up my profile", "personalize advice", "tell aifolimizer about me", "update my context", "I have new information", or whenever a downstream skill returns generic advice because get_personal_context.present is false. All fields optional.

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 3 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Call mcp__aifolimizer__get_personal_context to see what is already stored.

    line 14
  2. Distinctive:

    Ask the user which mode they prefer:

    line 15
  3. Very specific:

    After each group, call mcp__aifolimizer__set_personal_context_field for each provided field (one call per field - atomic + idempotent).

    line 64
  4. Very specific:

    After capture, call get_personal_context again and read back the derived block (marginal_tax_rate_pct, emergency_fund_target_cad, …

    line 66
  5. Very specific:

    Never store real names, emails, account numbers, employer names, bank names, counterparty names.

    line 78
  6. Distinctive:

    Every field is optional. Do NOT pressure the user to provide a value - accept silence or "skip" and move on.

    line 79
  7. Distinctive:

    Do NOT echo dollar values back in summaries beyond order-of-magnitude (use bands like ">90k") if the user later asks for a sharable summary.

    line 81
  8. Very specific:

    If user says "wipe my profile", call mcp__aifolimizer__clear_personal_context and confirm.

    line 82

≈ “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

Profile Setup - Personal-Finance Context Capture

Purpose

Personalize every advice skill by storing one structured profile of life context (separate from Wealthsimple account data). Stored locally only at ~/.aifolimizer/personal_context.json with mode 0o600, never committed, never sent to external LLMs in raw form.

How to run

  1. Call mcp__aifolimizer__get_personal_context to see what is already stored. Keep context_hash in mind - if the user updates anything, the hash flips and self-learning loops will know to re-weight.
  2. Ask the user which mode they prefer:
    • Guided: walk through field groups conversationally. Recommended first time.
    • Paste template: user pastes a filled JSON object - tool validates and writes atomically.
  3. Walk through groups (skip any group the user does not want to share - every field is optional):

Group A - Identity (★★★)

  • age
  • province (e.g. ON, BC, AB)

Group B - Income (★★★)

  • gross_salary_cad
  • employer_match_pct (RRSP match)
  • bonus_target_cad

Group C - Cashflow (★★★)

  • monthly_expenses_cad
  • monthly_savings_target_cad

Group D - Goals (★★★)

  • fthb_yes (first-time home buyer?)
  • home_horizon_years
  • mortgage_planned
  • dependents_count
  • spouse_present

Group E - Tax shelter room (★★★)

  • room_rrsp_cad, room_tfsa_cad, room_fhsa_cad

Group F - Risk (★★)

  • risk_tier_per_account - map per account-type, values ∈ {conservative, moderate, aggressive}

Group G - ESPP (★★)

  • espp_employer_label (anonymized - "EmployerA", never the real name)
  • espp_discount_pct, espp_cycle_months, espp_monthly_contrib_pct, espp_qualifying_hold_months

Group H - Liabilities (★★)

  • iou_receivable_cad (sum only - never counterparty names)
  • debts (list of {type, balance_cad, rate_pct} - type examples: student_loan, credit_card, line_of_credit)

Group I - Banking (★)

  • institutions (list of anonymized labels: "BankA", "BankB" - never real names like RBC/TD)
  • external_cash_cad (non-WS chequing + HISA total)

Group J - Insurance (★)

  • insurance_tier ∈ {basic, middle, comprehensive}

Group K - External crypto (★★)

  • external_crypto (list of {symbol, qty, cost_basis_cad, platform_label} - platform_label is anonymized: "PlatformA")
  1. After each group, call mcp__aifolimizer__set_personal_context_field for each provided field (one call per field - atomic + idempotent).
  2. For paste-template mode: ask user to paste a JSON object matching backend/personal_context.template.json. Then call mcp__aifolimizer__set_personal_context_bulk once with the parsed payload.
  3. After capture, call get_personal_context again and read back the derived block (marginal_tax_rate_pct, emergency_fund_target_cad, account_waterfall, fhsa_priority_first) so the user sees what skills will now infer.

Output structure

  1. Confirm what was set (field count, fields touched).
  2. Show derived summary: marginal tax rate, emergency-fund target, account-funding order.
  3. Print the new context_hash (16 hex chars) - used by track-record stratification.
  4. List skills that will now produce more personalized output: cash-deployment, tax-loss-review, dividend-strategy, portfolio-health, risk-assessment, daily-briefing, pre-trade-check.
  5. Reminder: re-run this skill any time a field changes (job change, dependents, FTHB completed, contribution room used).

Rules

  • Never store real names, emails, account numbers, employer names, bank names, counterparty names. Use anonymized labels. If user provides a real name, replace before calling set_personal_context_field.
  • Every field is optional. Do NOT pressure the user to provide a value - accept silence or "skip" and move on.
  • Validate values before submitting: province must be 2-letter Canadian code; risk tier ∈ {conservative, moderate, aggressive}; balances and rates ≥ 0.
  • Do NOT echo dollar values back in summaries beyond order-of-magnitude (use bands like ">90k") if the user later asks for a sharable summary.
  • If user says "wipe my profile", call mcp__aifolimizer__clear_personal_context and confirm.

Gotchas

  • Field validation happens server-side via Pydantic - if a set_personal_context_field call fails, surface the error to the user verbatim and re-prompt that field only (do not abort the whole flow).
  • risk_tier_per_account expects a full dict, not a single key - collect all account-type tiers in one prompt before sending.
  • debts and external_crypto are lists - sending an empty list [] is fine; do not send placeholder example items from the template.
  • personal_context_hash is short (16 hex). It will change every time any of the canonical-keys fields is updated. That is expected and is what enables self-learning stratification.
  • For the paste-template mode, the template ships with _INSTRUCTIONS and _help keys - strip those before validating.

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.