Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Making settling shared expenses less awkward.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Making settling shared expenses less awkward.
Splitting the bill is easy. Asking friends to pay you back is awkward.
SquadPay handles the tedious part (reading a receipt, doing the tax math,
working out who owes what) so the only thing left is a low-friction
payment request — not a manual accounting chore.README 전문 보기 ↗Making settling shared expenses less awkward.
Live: squadpayy.vercel.app
Splitting the bill is easy. Asking friends to pay you back is awkward. SquadPay handles the tedious part (reading a receipt, doing the tax math, working out who owes what) so the only thing left is a low-friction payment request — not a manual accounting chore.
This isn't presented as "an AI app." Gemini is one step in a five-step
product flow, sitting behind two independent guardrail layers and a
mandatory human review screen before anything it produces becomes a real
number someone gets asked to pay. The full product/AI-PM case study —
problem, decisions, evaluation, failure modes, guardrails, what shipped
and what deliberately didn't — is in
docs/ai-pm/case-study.md.
Receipt photo (or manual entry, always available)
│
▼
AI-assisted extraction — Gemini reads items, quantities, tax, total
│
▼
Review — every field editable; two independent checks flag anything
that doesn't add up or looks implausible, in plain language
│
▼
Split — deterministic arithmetic, zero AI involvement at this step
│
▼
Payment request — drafted for WhatsApp; SquadPay requests, never moves money
Groups of friends, roommates, or trip companions who split shared costs regularly and currently do the accounting by hand — a calculator, a notes app, a mental tally — and find that asking people to actually pay up is the most uncomfortable part of the whole process.
SquadPay's receipt extraction was evaluated against 15 real, publicly-sourced receipts — not a curated demo set — and the results are published as-is, including the failures:
lib/domain/anomaly-detection.ts) — reconciling
arithmetic is not the same as being right.A second real evaluation run has since completed too — same dataset, same
scoring, stored separately so the two never get conflated. No regressions,
no cherry-picking. Full breakdown, both runs: eval/ANALYSIS.md.
Methodology, how to reproduce it, and its stated limitations:
eval/README.md.
This is a working, deployed product with one small-sample user-validation
round behind it — not yet a product with measured business outcomes.
A first round of real user testing across 12 known people found the core
problem is genuinely felt (9/12 showed real hesitation around asking
friends to repay them) and confirmed the most-requested next feature
(UPI/GPay integration — expected by all 12, deliberately deferred) — see
docs/ai-pm/user-validation-results.md.
Anything about adoption, retention, or measured time saved is still a
hypothesis, not a result — see
docs/ai-pm/business-hypotheses.md.
| Doc | What's in it |
|---|---|
docs/ai-pm/case-study.md | The full portfolio narrative |
docs/ai-pm/decision-log.md | P0/P1/P2 — what was fixed, what wasn't, and why |
docs/ai-pm/guardrail-architecture.md | The layered AI-safety design, in full |
docs/ai-pm/business-hypotheses.md | Quantitative metrics to validate — explicitly not yet measured |
docs/ai-pm/user-validation-plan.md | The usability test design |
docs/ai-pm/user-validation-results.md | What the first small-sample round actually found |
docs/ai-pm/portfolio-checklist.md | Status of the 5 portfolio artifacts |
eval/README.md | Evaluation methodology, how to run it, its limitations |
eval/ANALYSIS.md | Baseline and second-run results, read and interpreted |
npm install
npm run dev
Open http://localhost:3000. Copy .env.example
to .env.local and fill in Supabase + GEMINI_API_KEY to move past demo
mode — every value is optional in development; omitting any of them falls
back to a local mock store / mock receipt extraction so the UI stays fully
usable without external services.
npm run typecheck # tsc --noEmit
npm run lint # eslint
npm test # vitest — pure-logic tests only, zero API calls
npm run build # next build
Receipt-OCR evaluation is a separate, explicit, developer-triggered
command (never run automatically — see eval/README.md's API/quota-safety
section):
npm run eval:receipt -- receipt-01 # one receipt
npm run eval:receipts # all 15
Built on Next.js (App Router), TypeScript, Tailwind v4, and Supabase.