Give your agent a wallet you control.
에이전트가 일회용 카드나 기계 결제 프로토콜로 온라인 결제하고, 모든 요청을 직접 승인
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A Next.js + React base app that mirrors the PNC online banking site and mobile app. It is the starting point for the competition solution (Client & Family Experience + Advisor Workbench). Every figure on screen is mock data.
npm install
npm run dev # http://localhost:3000
npm run typecheck # next typegen + tsc
npm test # Vitest: settlement rulebook integrity + golden tests
npm run build # production build
npm run lint
npm run format # Prettier --write
npm run format:check # Prettier --check
There is no view switcher. src/proxy.ts reads the user-agent: phones get the
mobile app, laptops/desktops/tablets get online banking, on the same URL.
| URL | Laptop / desktop (app/web) | Phone (app/mobile) |
|---|---|---|
/ | Sign-on | Sign-on (Image 1) |
/accounts | Accounts dashboard (Image 7) | Home / Virtual Wallet (Image 2) |
/pay-transfer | Pay & Transfer + payment history | Pay & Transfer list (Image 3) |
/rewards | TotalRewards | TotalRewards (Images 4–5) |
/cards | All cards with controls | → redirects to /more |
/cards/[cardId] | → redirects to /cards | Card Details (Image 6) |
/deposit, /more | → redirect to /accounts | Mobile Deposit, More |
/help | Help | → redirects to /more |
To test the phone view on a laptop, use Chrome DevTools device mode (it sends a
phone user-agent) and reload. For demos/recordings you can also pin a view with
?view=mobile or ?view=web on any URL (stored in a cookie; ?view=auto clears
it). A pinned mobile view on a wide screen is shown inside an iPhone frame.
Sign-on decides the experience. Demo User IDs (any password; defined in
src/data/users.ts):
| User ID | Who | Lands on |
|---|---|---|
husband | Husband, 52 | /home |
wife | Wife, 49 — Husband's spouse | /home |
child1 | Child 1, 17 — turns 18 on Nov 30, 2026 | /home |
child2 | Child 2, 14 | /home |
advisor | Bank representative (Alex Example, Senior Wealth Advisor) | /advisor |
Earlier IDs still sign in as the same people: father and mother, and
before them jordan, casey, avery and riley. Each person's profile picture is an illustration that matches
their role (PersonAvatar, set by avatar in src/data/household.ts).
All four customers read one shared household (src/data/household.ts): ten
simple accounts (joint checking, savings, an IRA, a brokerage account, a credit
card, a life policy held outside PNC, Wife's savings and Roth IRA, and the
kids' custodial accounts). The session keeps the role (pnc-session) and the
person (pnc-person); src/proxy.ts keeps each role on its own pages.
Customer navigation: Home · My Assets · Will · Family · Help on laptops, and Home · My Assets · Will · Family · More on phones (Pay & Transfer, Cards, Rewards and Deposit live under More). Next steps appears for adults once the bank records a death in the household.
/accountsEach person sees their own dashboard: reminders, the accounts they own, the accounts they manage for a child, and accounts shared with them through a family (with what they're allowed to do).
Reminders (src/lib/nudges.ts) come from what's on file: write or finish
a will, add a beneficiary to each account that can take one, and update a
beneficiary who has died. Child 1 gets a heads-up about turning 18; Child 2 gets
none. Beneficiary reminders show as a count on My Assets and the will
reminder on Will in the navigation, where each is resolved.
/familyA family is a group of people you trust with access to your finances. Anyone 18 or over can create a family and becomes its admin; a person can belong to several families and switch between them. Husband's Sample Family is seeded: Husband and Wife are admins, Child 1 can see the joint checking account, and Child 2 sees nothing. Families are just family: no outside advisors.
canPayFrom). Anyone with no such account doesn't see the section.
Billers are mock data in src/data/mock.ts.There's no separate Planning page; the old /plan URL redirects to the Will page.
/will, Will in the navigation): an 8-step planner,
pre-filled with your household, saved per person as you go. Progress shows as
numbered steps across the top, each with a dropdown of its steps. Adults only;
under-18s see a short note instead./assets#manage-<accountId>): in each account's
Manage panel, name or change who inherits it. Changes feed the reminders
and, after a death, decide whether an account passes directly or through the
estate.Nothing happens automatically. A death only exists once the bank records it.
advisor): Record a death notice (defaults to Husband).src/lib/survivor.ts), built from Husband's accounts as they stand:
State lives in the browser (localStorage). Reset demo on the advisor home
clears the recorded deaths, flows, families, beneficiary changes and wills.
/advisor/clients/[id]The advisor dashboard opens with search (clients or family members; press
/) and a daily briefing of who needs attention and why. Every client name,
search result and notification opens that client's page. It reads top to bottom,
with the assistant docked on the right (below the content on phones):
Findoe's replies come from Claude Haiku 5.5 (src/app/api/findoe/route.ts),
grounded in the rulebook: the browser sends a client context built by
src/lib/findoe/context.ts (the plan, ranked steps, decision paths, dates,
citations, open questions, the client's notes and family), and the system prompt
forbids inventing any route, date, amount or citation. The model writes the
advice; the rulebook still makes every decision. Only signed-in advisors can call
the route, and the context is prompt-cached per client.
To switch it on, add your key to .env.local (git-ignored) and restart npm run dev:
ANTHROPIC_API_KEY=sk-ant-...
On Vercel, set the same ANTHROPIC_API_KEY in the project's environment
variables. Without it, the route falls back to Vercel AI Gateway
(anthropic/claude-haiku-5.5): it uses AI_GATEWAY_API_KEY if set, otherwise
the deployment's own OIDC token, so a deployed project with AI Gateway credits
needs no key at all. Locally, vercel env pull fetches a short-lived OIDC token.
Without a key Findoe shows Offline · answers from the rulebook only and falls back to the simulated rules-based answers, so the demo still works.
The assistant is simulated: src/lib/assistant.ts is a rules engine over the
mock profiles in src/data/clients.ts (hand-written for Morgan Placeholder and
Avery Example; generated for everyone else so totals match the table). Every
assistant panel is labeled "Simulated". It handles deaths recorded at runtime,
including when the customer themself died (it then works with the next of kin).
A deterministic, cited rules engine answers, for any household and any person in it: when this person dies, what legally happens to each account, who gets it, what has to be done by when, under which federal or Pennsylvania rule, and which steps need a professional to sign off? It runs in two modes from the same rulebook — same protocols, run before the death instead of after:
Decisions: src/lib/nextSteps.ts turns the plan into ranked steps;
src/lib/agent.ts is the assistant over it (briefing, Why?, what an answer
changed). Answers and done steps live in src/lib/settlement/casework.ts (in
the browser) and are fed back into settlementPlan as answers.
Rulebook data lives in src/data/settlement (sources, actions, decision
tree, overlays, household rules, Pennsylvania pack). Every rule cites a source;
sources nobody has verified yet are marked and pinned by a test.
Engine lives in src/lib/settlement — pure functions, no clock, no model.
src/lib/assistant.ts writes the words; the engine supplies routes, dates and
citations.
Advisors see the rules that apply through each account's decision path and
SourceChip citations; there is no standalone rulebook page.
Add a rule: add a node / overlay / household rule with a source in
src/data/settlement, then a test in src/lib/settlement/__tests__. npm test
checks every branch is covered, every source exists, and the golden plans for
Morgan, Avery and the Sample family.
The only stored state is what the advisor tells us: sign-offs
(src/lib/settlement/reviews.ts), answers and done steps
(src/lib/settlement/casework.ts), all in the browser. Reset demo on the
advisor home clears them.
General guidance under federal and Pennsylvania rules as reviewed on Oct 26, 2026. Not legal or tax advice. The plan is in docs/plans/settlement-rules-engine.md.
src/
app/
web/ internal: laptop view. page.tsx = sign-on
(signed-in)/ customer pages (customer nav + footer)
advisor/ advisor pages (advisor nav + footer)
mobile/ internal: phone view. page.tsx = sign-on
(tabs)/ customer screens (5-tab bar)
advisor/ advisor screens (Home-only tab bar)
proxy.ts device detection -> rewrites public URLs into web/ or mobile/
components/
brand/ PncLogo, FacetBackdrop (the blue triangle pattern)
advisor/ CustomerTable (web), CustomerList (mobile), NotificationList, Pagination
family/ FamilyProvider (state + persistence), FamilyDashboard (tabs) and its
Overview / Members / Roles (RoleEditor, AccessMatrix) panels and
MemberFamilyView (what non-admins see)
will/ WillTab (overview), WillPlanner + screens/, WillDocument (the will as a
sheet), WillExecution (begin + track execution), WillReminder
mock/ MockBadge
ui/ Money, IconChip, Toggle, CardArt (shared by both views)
shared/ catalog.ts (Pay & Transfer options), CardLockRow
web/ WebHeader, WebHero, WebCard, AccountRow, WebSignOnForm
mobile/ PhoneFrame, MobileHeader, MobileCard rows, BottomTabBar, ...
data/
types.ts data shapes
mock.ts customer mock data
advisor.ts advisor profile, assigned customers, loss events, notifications
users.ts demo sign-on User IDs and roles
family.ts family seed data + legal steps and timelines per succession method
bereavement.ts transfer flows, key/secondary asset groups, resources, outreach wording
will.ts will planner reference data (placeholder charities, institutions, states)
lib/format.ts money/date formatting, cn()
lib/routes.ts public URL map + toPublicPath()
lib/session.ts session cookie + role helpers (shared by proxy and actions)
lib/auth.ts signIn / signOff Server Actions
lib/advisor.ts attention sorting + notification building (+ bank-recorded losses)
lib/bereavement.ts bereavement demo store (recorded deaths, certificate, flow progress)
lib/transfer.ts derived step/flow completion for the transfer flows
lib/family.ts family access rules, succession rules and the state reducer
lib/will/ planner flow + validation, will text generator, roles/estate steps, storage
See AGENTS.md for the conventions to follow when extending the app.