尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
An automated pre-market news brief for US equities, macro and AI/tech.
Every trading day at 6:00 AM PT it scans global financial and tech news, merges
duplicate stories, ranks them into three tiers, explains why each one matters,
and publishes a web dashboard plus a Markdown archive.檢視完整 README ↗English · 中文
An automated pre-market news brief for US equities, macro and AI/tech. Every trading day at 6:00 AM PT it scans global financial and tech news, merges duplicate stories, ranks them into three tiers, explains why each one matters, and publishes a web dashboard plus a Markdown archive.
It's inspired by Taurient, the in-house tool at the Australian hedge fund Minotaur Capital that uses several LLMs to scan about 35,000 news articles a week for investment ideas. Taurient Lite covers only the information-compression part of that. It doesn't pick stocks or give advice. Its job is to tell you what you need to know before the open in a few minutes of reading.
→ Live brief: taurient-lite-backend.onrender.com (The brief itself is written in Chinese. Free-tier hosting, so the first load may take a few seconds.)
GitHub Actions ──► market data (Yahoo, FINRA, full-market momentum scan) ──► data/*.json
│
Claude Code routine ──► scan news, dedupe, tier, write "why it matters" ──► briefs/YYYY-MM-DD.json ← single source of truth
│
taurient_lite/ (pure-stdlib renderer) ──► validate JSON ──► HTML dashboard + Markdown archive
│
backend/ (FastAPI on Render) ──► serves the latest brief with live quotes, stock pages, accounts
theme.py. Changing news coverage touches only
config.json.schema → components → renderers → pipeline, so each
layer can be tested on its own.More detail is in docs/architecture.md and docs/frontend-architecture.md (in Chinese).
News is a lagging signal. By the time a catalyst makes the headlines, much of the move has usually happened already. The scanner reads only price and volume (OHLCV) and asks how far into its move a stock is:
| Stage | Meaning |
|---|---|
| Early | Broke a 50-day high within the last 3 days, on volume ≥ 2.5× the 20-day median |
| Continuation | Within two weeks of the breakout. The trend holds, but the best entry has passed |
| Base | Not broken out yet, range tightening. A watchlist candidate |
| Extended | > 35% above the 20-day MA, or > 10 days since the breakout, or doubled off its base |
This is not a trading signal. The full backtest covered 2,515 liquid US stocks over two years and 5,090 early-stage signals:
The stages are there to state facts about where a stock is in its move, not to predict returns. What the scanner gives you is time. It flagged BE as early stage at $23.92 on 2025-06-30, months before it became a headline. The stock is now around $258. The scanner didn't predict that. It saw the move in price and volume before it reached the news. The full tables are in README.zh-CN.md.
git clone https://github.com/400-tang/taurient-lite.git
cd taurient-lite
# Re-render an existing brief (no dependencies needed)
python3 render.py 2026-09-18 # → site/index.html + briefs/2026-09-18.md
# Run the test suite (standard library only)
python3 -m unittest discover -s tests -t .
# Run the web backend locally
pip install -r backend/requirements.txt
uvicorn backend.server:app --reload # → http://127.0.0.1:8000
Other entry points:
python3 scan_momentum.py # daily momentum scan over data/universe.txt
python3 scan_momentum.py --refresh-universe # rebuild the liquid-stock universe (weekly)
python3 apply_momentum.py <date> # merge scan results into a day's brief
python3 fetch_sectors.py # sector map + market caps for the heatmap
python3 fetch_short_interest.py # official FINRA short interest
python3 import_watchlist.py # import a TradingView watchlist export
To generate a full brief with Claude Code: claude "Generate today's brief following RUNBOOK.md".
taurient-lite/
├── RUNBOOK.md Daily procedure the scheduled agent follows
├── config.json Coverage, item targets, freshness limits, watchlist
├── taurient_lite/ Rendering pipeline (zero third-party deps)
│ ├── schema.py Data model and validation
│ ├── components/ UI components
│ ├── theme.py Design tokens and stylesheet (light and dark)
│ ├── momentum.py Momentum stage logic (pure functions)
│ ├── treemap.py Treemap layout (pure geometry)
│ └── ...
├── backend/ FastAPI service on Render (live quotes, stock pages, Supabase auth)
├── tests/ 381 tests, standard library only
├── briefs/ Daily JSON (source of truth) and Markdown archive
├── data/ Market snapshots produced by GitHub Actions
└── .github/workflows/ Scheduled market-snapshot and momentum-scan jobs
0 13,14 * * 1-5
(UTC), and a time gate in the prompt makes only the run after 6:00 AM Pacific
do any work. That handles daylight-saving time without editing the cron twice a
year.backend/ from render.yaml
(New → Blueprint in the Render dashboard).The layout is modeled on a morning newsletter rather than a trading terminal: a single column about 65 characters wide, Newsreader for headlines, IBM Plex Sans for body text and IBM Plex Mono for every number. Cobalt blue is used for structure and interaction only. Red and green are reserved for market direction. The up/down colors were checked for color-blind readability. In dark mode, arrows, signed values and intensity bars mark direction as well as color.
This is a news-summary tool, not investment advice. It makes no buy or sell recommendations and no price predictions. Every number in a brief has to trace back to a cited source, and numbers that can't be verified are left out.