尚未检测到更新。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.