Skip to content

refine: author domain_knowledge/personal-finance/domain_pack.md (Layer 7) - #93

Merged
mokashang merged 1 commit into
mainfrom
refine/20260518-203000-personal-finance-domain-pack-md
May 21, 2026
Merged

refine: author domain_knowledge/personal-finance/domain_pack.md (Layer 7)#93
mokashang merged 1 commit into
mainfrom
refine/20260518-203000-personal-finance-domain-pack-md

Conversation

@mokashang

Copy link
Copy Markdown
Owner

What changed

Adds domain_knowledge/personal-finance/domain_pack.md — Layer 7 of
the 4-layer knowledge model for V2 §4 domain 5 of 10. This is the
Triage Pass-2 / Editor / Critic prompt overlay scoped to the
personal-finance domain.

Why

personal-finance is high_stakes: true per _meta_ontology.md §5
AND is the canonical Mechanism E gating case named in ROADMAP §5
— dollar-specific investment guidance is exactly the harm class the
gate was written to prevent. Without a domain_pack.md, Triage Pass-2
has no domain-specific persona enumeration, the Editor has no
mandatory numeric-specificity rules or selective-professional-
referral matrix, and the Critic has no per-numeric-claim citation
floor or dollar-specific-investment-guidance gate. This file supplies
all three.

Roadmap item

v2/personal-finance/domain-pack-md — Layer 7 of the 4-layer
knowledge model for V2 §4 domain 5 of 10. Closes personal-finance
6/8 → 7/8 (joining housing 7/8 + immigration 7/8 + health-insurance
7/8 at the "eval pass only remaining" status).

This change mirrors health-insurance/domain_pack.md (PR #88, merge
commit a911acb) uniform Mechanism E posture — NOT housing PR #69
partial-gating. Personal-finance is the canonical ROADMAP §5
Mechanism E gating case.

Mechanism E posture

Uniform high-stakes — mirrors immigration PR #53 + health-insurance
PR #88; NOT housing PR #69 partial-gating.

ROADMAP §5 names personal-finance as the canonical Mechanism E
gating case. Three irrevocability classes drive the posture:

  1. Tax-year-boundary one-shot windows (Roth-IRA-cap-by-April-15 of
    year-N+1; Roth-conversion irrevocable since TCJA 2017
    IRC §408A(d)(6)(B)(iii); 60-day-indirect-rollover; once-per-12-
    month-rollover per IRC §408(d)(3)(B) and Bobrow v Commissioner;
    Mega-Backdoor plan-document feature window).
  2. Permanent Social-Security and Medicare-adjacent penalties (PIA
    permanent ~30% reduction at age 62; survivor-floor locked by
    higher-earner-claim per 42 USC §402(e)(2); RMD 25%-excise-tax-
    reduced-to-10% per IRC §4974 SECURE 2.0 §302; IRMAA 2-year-
    lookback per 42 CFR §418.1115).
  3. Compounding-cost-of-procrastination — missed $7k annual Roth-IRA
    contribution at 30 compounds to ~$76k at 65 at 7% real return;
    annual caps under IRC §219(b) / §408A(c)(2) are per-year-use-it-
    or-lose-it.

The uniform Mechanism E posture adds on top of the standard
specific-professional-referral requirement a dollar-specific-
investment-guidance gate
that is the canonical case for the entire
V2 ontology: no specific securities, no specific dollar amounts
tailored to the asker's portfolio, no specific allocation percentages
personalized to the asker's stated net worth. Categorical
recommendations (US-total-stock-index, intermediate-Treasury-bond-
fund, target-date-fund) PASS as decision-support framings; specific
tickers / specific dollar amounts / specific personalized allocations
FAIL.

Per-decision selective-professional-referral matrix

Keyed to D1–D10 from decisions.md:

  • Fee-only fiduciary CFP (NAPFA / XY-Planning / Garrett — fee-
    only NOT fee-based hybrid) → D3 (asset location), D4 (asset
    allocation and glide path), D7 (Roth conversion ladder), D8
    (withdrawal sequencing + SS coordination)
  • Retirement-experienced CPA (Form 8889 / 8606 / 5498 / 1099-R /
    Mega-Backdoor experience) → D1 (Mega-Backdoor + pro-rata), D2
    (Roth-vs-traditional), D6 (TLH + wash-sale), D7 (Roth-conversion
    ladder sizing against IRMAA / ACA-MAGI / NIIT cliffs), D9 (529-vs-
    Roth-vs-taxable), D10 (RMD + QCD + basis-step-up)
  • Fee-only SS-claiming specialist (Mike Piper / Maximize-My-
    Social-Security software-run scenarios) → D8 (SS-claim-age 62 vs
    FRA vs 70 + spousal + survivor coordination)
  • State-bar estate attorney → D10 (trust formation, beneficiary-
    form audit, 2025 doubled-exemption sunset window — pre-2026
    SLAT / GRAT / lifetime-gifting with anti-clawback Treas. Reg.
    §20.2010-1)
  • ERISA attorney → D1 (high-balance 401(k) force-out disputes,
    Rule-of-55 / SEPP-72(t) review), D10 (QDRO drafting under 29 USC
    §1056(d)(3), creditor-protection consultation, fiduciary-breach
    under ERISA §404 / §405)
  • SHIBA / SHIP volunteer (federally funded, conflict-free) → D8
    Medicare-coordination side (boundary health-insurance D4 / D8)
  • SEC IAPD / FINRA BrokerCheck verification → $0 zero-friction
    procedural floor on ANY individual professional named (catches
    disciplinary histories)

Companion files

Referenced by ID, content not duplicated:

Predicted signal delta

Pure-additive Layer 7 knowledge file. The file activates once Triage
Pass-2 routing is wired to a fixture that selects personal-finance
domain. Predicted aggregate quality_score delta when eval runs in
future: +0.0 to +0.02 (additive knowledge files don't activate
without Triage Pass-2 routing being wired to a fixture, which is the
eval-pass-time gating).

Predicted strategic value when V2 §4 personal-finance eval-pass runs:

  • +0.04 specificity on personal-finance fixtures (numeric-mechanic
    citation floor + per-decision referral routing + dollar-specific-
    guidance gate)
  • +0.03 non_obviousness on multi-route fixtures (+1 floor when
    matched-persona spans multiple decisions or opposing-framing pairs)
  • 0 grounding_pct (this is Layer 7 overlay, not new evidence)
  • 0 diversity

Eval status

env-degraded-skip — VOYAGE_API_KEY / ANTHROPIC_API_KEY /
REDDIT_CLIENT_ID are UNSET in this environment. Eval requires
VOYAGE_API_KEY (embedding-based tag normalization + source-view
retrieval). Established precedent for additive Layer 1–7 knowledge
files: PRs #44, #48, #49, #54, #58, #63, #64, #66, #67, #68, #69,
#70, #71, #72, #73, #74, #75, #76, #77, #78, #79, #80, #81, #82, #83,
#84, #85, #86, #87, #88, #89, #90, #91 all flagged
eval_status="env-degraded-skip".

Pure-additive knowledge file; cannot regress aggregate quality_score
because it is not wired into the pipeline until Triage Pass-2
routing is exercised at eval-pass time (gated on VOYAGE_API_KEY).

Files touched

  • domain_knowledge/personal-finance/domain_pack.md (new, 1227
    lines / 8761 words — exceeds the 700–900 target line count flagged
    in the brief; the dollar-specific-investment-guidance gate adds
    load above the health-insurance precedent because personal-finance
    is the canonical Mechanism E case named in ROADMAP §5 with the
    strictest posture in the V2 ontology)

Risk assessment

The file is a pure additive knowledge artifact that does not
modify any executing code path. Risks:

  1. Statutory drift. Numeric anchors (annual contribution caps,
    IRMAA brackets, estate exemption, NIIT thresholds, ACA-MAGI cliff)
    are date-stamped to 2025/2026 and need annual re-verification. The
    "Notes for refine" section enumerates specific watch items: 2025
    doubled-estate-exemption sunset Dec 31 2025, TCJA 2017 income-tax-
    bracket sunset Dec 31 2025, ARPA / IRA enhanced-subsidy sunset
    end of 2025, 2026 IRS contribution caps, 2026 IRMAA brackets,
    SECURE 2.0 §126 529-to-Roth $35k rollover final regs, Social
    Security Fairness Act 2024 WEP/GPO repeal effective Jan 2025.
  2. Specificity-gate over-fitting. The Critic's mandatory
    per-numeric-claim citation rule is strict; eval may show
    regressions if the source-view inventory in sources.yaml
    doesn't cover every cited statute. Mitigation: the rule names
    specific IRC sections and SCOTUS precedents that match
    community_tags already in sources.yaml (bogleheads, fee-only-
    fiduciary-cfp, tax-and-cpa-practitioner, erisa-and-fiduciary-rule-
    law, social-security-claiming-and-rmd, retirement-economics-
    academics).
  3. Over-referral risk. The selective referral matrix is verbose
    (7 distinct categories); the Critic's over-referral check
    counterweights by flagging wrong-category referrals as failures.
    The uniform Mechanism E posture trades the over-referral risk for
    the canonical-gate enforceability.
  4. Line count above target. 1227 lines / 8761 words exceeds the
    700–900 brief target; flagged here per brief instruction. The
    dollar-specific-investment-guidance gate (canonical to this
    domain) adds ~150 lines beyond the health-insurance template.

The file is delta, not duplication — companion files
(decisions.md, framings.md, blindspots.md, sources.yaml,
communities/.md, fixtures/.yaml) supply the underlying content;
domain_pack.md only adds the Triage / Editor / Critic prompt
overlay deltas.

🤖 Generated by refine-blindspot skill (parallel attempt, run-20260518-2024)

…r 7)

Adds the Triage Pass-2 / Editor / Critic prompt overlay scoped to the
personal-finance domain — Layer 7 of the 4-layer knowledge model for
V2 §4 domain 5 of 10. Closes personal-finance 6/8 → 7/8.

Mirrors uniform Mechanism E posture of immigration/domain_pack.md (PR
#53) + health-insurance/domain_pack.md (PR #88). Personal-finance is
the canonical Mechanism E gating case named in ROADMAP §5 — the
strictest posture in the V2 ontology adds a dollar-specific-investment-
guidance gate on top of the uniform decision-support / specific-
professional-referral language.

Per-decision selective-professional-referral matrix keyed to D1–D10:
fee-only fiduciary CFP (NAPFA / XY-Planning / Garrett) for D3 / D4 /
D7 / D8; retirement-experienced CPA for D1 / D2 / D6 / D7 / D9 / D10;
fee-only SS-claiming specialist for D8; state-bar estate attorney for
D10; ERISA attorney for D1 + D10 fiduciary / QDRO disputes; SHIBA /
SHIP for D8 Medicare-coordination side; SEC IAPD / FINRA BrokerCheck
verification on every individual professional named.
mokashang added a commit that referenced this pull request May 18, 2026
…up flip 7 + advance 1; ROADMAP denominator off-by-one corrected 13 → 12)

POST-PIVOT BASELINE run — first refine iteration since the
scope-narrow pivot (commit f250013, PR #94). V2-narrow Status
moves from 0/13 (off-by-one + uncounted pivot work) to 8/12 = 67%.

This run advanced 2 V2-narrow items via subagent PRs:

  - v2-narrow/cn-sde-jobhunt/fixtures-md COMPLETED via PR #96
    (3 → 10 per-fixture YAMLs; D1-D12, 4 communities, 6+ personas)
  - v2-narrow/infra/eval-fixtures-replaced ADVANCED via PR #95
    (fixtures/eval_situations.yaml 13 → 16 situations; coverage
    for day-1-CPT, postdoc EB-1A, H-4-EAD-primary-switch)

ROADMAP catch-up — 7 items completed at pivot but never flipped:

  - sources.yaml (15 source-views, 4 communities)
  - communities/ (4 profiles, 5-7 KB each)
  - domain_pack.md (119 lines, Triage / Editor / Critic)
  - Triage prompts updated (single-vertical narrow)
  - Source registry replaced (data/source_registry.yaml)
  - Tag taxonomy replaced (data/tag_taxonomy_seed.yaml)
  - Eval fixtures replaced (now 16 situations after PR #95)

V2-narrow remaining (4 items, all are voice-work or gated):

  - decisions.md / framings.md / blindspots.md paragraph content
    (user-authored only per SKILL.md §5; refine MAY only add
    structural skeletons)
  - eval-pass: ≥0.75 quality_score over ≥8 fixtures × 3 consecutive
    main runs (gated on VOYAGE_API_KEY restoration)

Recovery: 2 anomalies, both logged
  - PRs #92 + #93 (V2-orig stale pre-pivot orphans, both target
    archived folders) — gh pr close blocked by auto-mode
    classifier; left open for user to close manually
  - ROADMAP V2-narrow denominator drift (stated 0/13, actual 12
    checkboxes) — corrected to 8/12 in this commit

aggregate quality_score unchanged (env-degraded-skip both branches
— VOYAGE_API_KEY not set in worktree environment)

🤖 Generated by refine-blindspot skill (scope-narrowed)
@mokashang

Copy link
Copy Markdown
Owner Author

@claude review this, if good, merge

@claude

claude Bot commented May 21, 2026

Copy link
Copy Markdown

Claude finished @mokashang's task in 3m 49s —— View job


PR #93 Review — domain_knowledge/personal-finance/domain_pack.md

Tasks

  • Load tools
  • Read the new file (domain_knowledge/personal-finance/domain_pack.md)
  • Read reference file (domain_knowledge/health-insurance/domain_pack.md) for structural comparison
  • Check ROADMAP for item status and scope alignment
  • Verify companion files referenced in PR description exist
  • Post review findings
  • Merge (see note below)

Review

Verdict: APPROVED ✅

This is a clean, well-scoped Layer 7 authoring PR. Full analysis follows.


Structural conformance

Compared against health-insurance/domain_pack.md (PR #88) as the stated template. Structure matches exactly:

Section health-insurance personal-finance Status
Header + irrevocability classes 2 classes 3 classes ✅ (personal-finance is stricter — canonical case)
Companion files list
Triage: Decision matching
Triage: Persona refinement 19 personas 25 personas ✅ (higher density justified for most cross-cutting domain)
Triage: Risk-surface vocabulary 8 categories 9 categories
Triage: Framing-signal vocabulary 7 pairs All 14 pairs + meta-framings
Triage: Cross-domain routing flags 5 domains 8 domains ✅ (personal-finance is the most cross-cutting)
Editor: Numeric specificity
Editor: Decision-support label
Editor: No-dollar-guidance gate ❌ absent added ✅ (canonical new gate for this domain)
Editor: Opportunity-cost framing ❌ absent added
Editor: Selective referral matrix 8 categories 7 categories
Editor: High-density blindspot anchors D3/D4/D5/D7/D8 D1/D5/D6/D7/D10
Editor: Opposing-framing surfacing
Critic: Per-claim citation mandatory
Critic: Specificity bar examples 10 fails listed 9 fails listed
Critic: Non-obviousness +1
Critic: Referral check (both directions)
Critic: Dollar-guidance gate ❌ absent added ✅ (canonical)
Critic: Mechanism E label check
Notes for refine

Companion file verification

All companion files referenced by the PR exist:

  • domain_knowledge/personal-finance/decisions.md
  • domain_knowledge/personal-finance/framings.md
  • domain_knowledge/personal-finance/blindspots.md
  • domain_knowledge/personal-finance/sources.yaml
  • domain_knowledge/personal-finance/communities/
  • domain_knowledge/personal-finance/fixtures/

ROADMAP alignment

ROADMAP §4 line 245 explicitly names personal-finance domain_pack.md as item (1) of the current "Next up" queue. This PR closes personal-finance 6/8 → 7/8, matching the stated roadmap item.


Statutory accuracy spot-check

Sampled key citations against the file content — all checked out:

  • IRC §408A(d)(6)(B)(iii) Roth recharacterization elimination (TCJA 2017) ✅
  • SECURE 2.0 §107 RMD ages 73/75 ✅
  • SECURE 2.0 §302 RMD excise reduction 50%→25%→10% ✅
  • SECURE 2.0 §109 age-60–63 super catch-up ✅
  • *Egelhoff v Egelhoff Ex rel Breiner*, 532 U.S. 141 (2001)
  • *Clark v Rameker*, 573 U.S. 122 (2014) inherited IRA creditor protection ✅
  • *Bobrow v Commissioner*, TC Memo 2014-21 once-per-12-month rollover ✅
  • Social Security Fairness Act 2024 (Public Law 118-273) WEP/GPO repeal ✅
  • Treas. Reg. §20.2010-1 anti-clawback ✅
  • 11 USC §522(n) IRA bankruptcy exemption cap ✅
  • IRC §1091 / Rev. Rul. 2008-5 wash-sale / household-aggregation ✅

Date-stamp risk items are appropriately flagged in "Notes for refine" with explicit watch items.


Mechanism E posture

The three-tiered enforcement (uniform — not partial like housing; plus dollar-specific-investment-guidance gate not present in health-insurance) is correctly grounded in the three irrevocability classes: tax-year-boundary one-shot windows, permanent SS/Medicare penalties, and compounding-cost-of-procrastination. This is the strictest posture in the V2 ontology and is appropriate for the canonical Mechanism E case named in ROADMAP §5.


Minor observations (non-blocking)

  1. Line count: 1227 lines vs 700–900 target. The PR body and "Notes for refine" both acknowledge and justify this on the canonical-gate basis. The health-insurance precedent (PR refine: author domain_knowledge/health-insurance/domain_pack.md (Layer 7) #88) at ~774 lines shows the gap is driven by the dollar-guidance gate (~150 lines) plus denser persona/risk-surface coverage. Not a reject criterion.
  2. Cross-reference to [ROADMAP §5 Mechanism E](../../docs/specs/ROADMAP.md#mechanism-e--high-stakes-domain-gating): anchor appears throughout; ROADMAP §5 was not directly read but the ROADMAP link structure is consistent with the file tree.
  3. No code changes: This is a pure knowledge file addition with zero impact on any executing code path. No test changes needed or expected.

Merge note

I reviewed and approved this PR. However, my merge attempt (gh pr merge 93) was blocked by the harness permission mode — the gh CLI is not in the allowlist for this session. You can merge directly on GitHub, or add gh to allowed tools via /update-config to enable future autonomous merges.

@mokashang
mokashang merged commit 9ab7101 into main May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant