尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A daily training tool that helps beginner investors build real decision-making intuition through reps, AI feedback, and structured reflection. Not a course, not a simulator — a training + feedback system.
Train like an investor in 10 minutes.檢視完整 README ↗A daily training tool that helps beginner investors build real decision-making intuition through reps, AI feedback, and structured reflection. Not a course, not a simulator — a training + feedback system.
Train like an investor in 10 minutes.
Investing App/
├─ app/
│ ├─ layout.tsx # Global shell + nav
│ ├─ page.tsx # Landing
│ ├─ globals.css # Tailwind + transitions + progress bar
│ ├─ challenge/page.tsx # The full daily flow (state machine)
│ ├─ journal/page.tsx # Past reflections
│ ├─ progress/page.tsx # Skill score, accuracy, calibration, trend
│ ├─ history/page.tsx # [BONUS] Review past decisions, expandable
│ └─ api/evaluate/route.ts # AI evaluation endpoint (Anthropic or OpenAI)
├─ components/
│ ├─ Nav.tsx
│ ├─ ScenarioCard.tsx
│ ├─ DecisionInput.tsx # Buy/Hold/Pass + confidence slider + reasoning
│ ├─ FeedbackPanel.tsx # Scores + did-well / missed / tip / tags
│ ├─ OutcomePanel.tsx # Outcome %, verdict, insight line, ideal answer
│ └─ ReflectionPrompt.tsx # 3-field structured journal entry
├─ data/
│ └─ scenarios.ts # 8 hardcoded scenarios (growth vs value, good vs bad)
├─ lib/
│ ├─ types.ts # Shared TS types
│ ├─ storage.ts # localStorage wrapper (single-key array)
│ ├─ scoring.ts # Verdict + progression math
│ └─ evaluationPrompt.ts # THE CORE PROMPT (see below)
├─ .env.local.example
├─ package.json
├─ tsconfig.json
├─ tailwind.config.ts
├─ postcss.config.js
└─ next.config.js
cd "Investing App"
npm install
Copy .env.local.example to .env.local and fill in ONE provider:
cp .env.local.example .env.local
Anthropic (default):
ANTHROPIC_API_KEY=sk-ant-...
AI_PROVIDER=anthropic
AI_MODEL=claude-sonnet-4-5
OpenAI:
OPENAI_API_KEY=sk-...
AI_PROVIDER=openai
AI_MODEL=gpt-4o-mini
No API key? The app still works —
/api/evaluatefalls back to a deterministic local rubric so the full flow remains usable offline. Feedback quality is worse; that's the point of using a real model.
npm run dev
# http://localhost:3000
npm run build
npm start
| Variable | Required | Description |
|---|---|---|
AI_PROVIDER | No | anthropic (default) or openai. |
AI_MODEL | No | Model name. Defaults: claude-sonnet-4-5 / gpt-4o-mini. |
ANTHROPIC_API_KEY | If anthropic | Anthropic API key. |
OPENAI_API_KEY | If openai | OpenAI API key. |
Nothing is ever sent to any third party besides the chosen AI provider. API keys stay server-side in app/api/evaluate/route.ts; do not expose them as NEXT_PUBLIC_* variables. All decisions, reflections, and progress live in the browser's localStorage under the key ait.decisions.v1. localStorage is readable by any script running on this origin, so XSS prevention remains critical and this data should not be treated as secret storage.
The prompt (in lib/evaluationPrompt.ts) is the most load-bearing part of the product. It:
If you want to tune the product's feel, tune this file.
Keep it focused. Reps + feedback is the product.