個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A daily news digest summarized with an open-weights model and published. No tracking, just events.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A daily news digest that checks its own work.
idhazh is Tamil for a journal. yen-idhazh is "my journal".
Every morning it reads a curated set of public sources, writes a short summary of
what matters, and - the part that makes it different - scores each summary
against the article it came from and shows you the score. Where the check went
badly, the item says so.
Nothing runs when you read it. The page is plain files.
It is for someone who wants to know what happened in a few subjects, in two
minutes, from a page that says how much to trust it.檢視完整 README ↗A daily news digest that checks its own work.
Read it: https://miztiik.github.io/yen-idhazh/
idhazh is Tamil for a journal. yen-idhazh is "my journal".
Every morning it reads a curated set of public sources, writes a short summary of what matters, and - the part that makes it different - scores each summary against the article it came from and shows you the score. Where the check went badly, the item says so.
Nothing runs when you read it. The page is plain files.
| Five subjects, one page | AI, energy, business and economy, world, India. Ten to fifteen stories, not a firehose. |
| A confidence mark on every story | Each summary is machine-checked against its source article. A story that scored badly is labelled, not hidden. |
| The link, always | You get our summary and the address it came from. The article itself is never republished. |
| Two minutes, then out | A digest, not a feed. No infinite scroll, nothing to come back for. |
| Nothing follows you | No accounts, no analytics, no cookies, no third-party scripts. |
| A picture only when it earns one | Numbers become a chart. A process becomes a diagram. Everything else gets nothing. |
| Search on your device | Optional. One download, then the archive is searchable without anything you type leaving your browser. |
It is for someone who wants to know what happened in a few subjects, in two minutes, from a page that says how much to trust it.
flowchart TD
subgraph build["Build time - Content refresh, four UTC runs daily"]
direction TB
A["<b>Collect</b><br/>read 138 live feeds<br/>rank by tier, repetition and age"]
B["<b>Extract</b><br/>pull readable text<br/>sanitise at the trust boundary"]
C["<b>Summarize</b><br/>Qwen3-8B on CPU<br/>output shape pinned by a schema"]
D["<b>Score</b><br/>faithfulness vs the source<br/>plus model-free counterweights"]
E["<b>Plan a visual</b><br/>a chart, or nothing<br/>the model picks numbers by index"]
F["<b>Assemble</b><br/>write the day's payload<br/>commit it to the repository"]
A --> B --> C --> D --> E --> F
end
F -->|"committed JSON + SVG"| G
subgraph read["Read time - a static page"]
direction TB
G["<b>Two kinds of page</b><br/>home, archive, scores prerendered<br/>a day page renders in the browser"]
H["<b>On-device search</b><br/>optional, reader-initiated"]
G -.->|"only if you click"| H
end
style build fill:#eef2ff,stroke:#4c6ef5
style read fill:#f0fdf4,stroke:#16a34a
The line between the two boxes is the whole design: everything expensive happens before you arrive. The summaries are written and committed; a page only reads them.
The pipeline runs on a stock GitHub runner - 4 vCPU, no GPU, a 6-hour job cap. That is not a budget to be raised; it is the platform. It decides which model can be used, how work is sharded, and which features never ship.
When a measurement contradicts the design, the design changes. A laptop said the 8B model decoded 3.3x slower than the 4B, which nearly cost it the job. The runner said 1.8x, so the 8B writes the summaries.
Sources are curated, not crawled. Every feed is listed by hand in
config/sources.json with a subject and a tier:
| Tier | What it is | Example |
|---|---|---|
| 1 | The institution that is the fact | a central bank, a statistical agency, a lab's own blog |
| 2 | Trade press that covers the beat daily | a specialist outlet, a wire's section feed |
| 3 | Community and aggregators | a forum, a link aggregator |
Ranking is arithmetic, not judgement: tier weight, times how many independent sources carried the story today, plus a bonus for a watched entity. A story three independent outlets carried is the day's story. No model is involved in choosing.
Live feeds, counted 2026-08-24: ai 38, india 27, world 27, energy 24, business-economy 22 - 138 in total.
A source that dies is retired in config, never deleted - deleting an id would
break every payload that referenced it. See
docs/architecture/sources/discovery.md.
Start here, in this order:
| If you want to know | Read |
|---|---|
| What this is and is not | docs/concepts/vision.md |
| How the whole system fits together | docs/architecture/overview.md |
| What each pipeline stage owns | docs/concepts/pipeline-loop.md |
| How a summary is scored, and why | docs/concepts/evaluation.md |
| What one column on the eval row means | docs/concepts/summary-metrics.md |
| Where stories come from | docs/architecture/sources/discovery.md |
| Why a story gets a chart or nothing | docs/architecture/publishing/visuals.md |
| Real numbers from real hardware | docs/reference/pipeline-cost.md |
| How the production pipeline runs | docs/how-to/run-the-pipeline.md |
| How to test the production pipeline |
python -m venv .venv
.venv/bin/pip install -e ".[dev]" # .venv/Scripts/pip on Windows
.venv/bin/python -m pytest # tests
.venv/bin/python -m ruff check . # lint
.venv/bin/python -m mypy # strict type check
Production runs in GitHub Actions; local model inference is not supported. Use the Pipeline tests workflow to exercise the production stages with configured article cases. Model weights and llama.cpp binaries are downloaded in CI and never committed.
backend/ produces and frontend/ publishes. They meet only through committed
files and the schemas generated from backend/idhazh/contracts/ - never through
a running service. Every directory is explained in
docs/reference/repository-layout.md.
CLAUDE.md - the engineering contract every change is held to.AGENTS.md - the pointer coding agents start from.TODO/20260815-digest-pipeline-plan.md - the build plan and its current state.| What every top-level directory is for | docs/reference/repository-layout.md |
| Where any other doc belongs | docs/reference/documentation-structure.md |