尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Render AI-written work reports from one JSON file: metric tiles, charts and before-and-after comparisons, kept in your browser and shared by link
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Read and compare reports: HTML, Markdown and Dossier JSON, side by side in your browser
Dossier is a reading desk for reports. Open a report and read it in one clean format, whatever it was written in: an HTML report with its own styling, a Markdown file, test results, or a Dossier document. Or put two to four reports next to each other (a human draft, an agent's output, the fixes) and see what each one says, what it left out and what changed word by word.
A Dossier document is a small typed JSON file an agent writes about its work: metric tiles with derived deltas, charts, before-and-after comparisons, diffs, test runs and findings. The agent states what it measured and the site does the arithmetic, because a wrong number in a report about correctness is the worst defect this kind of tool can ship.
Everything happens in your browser. There is no account, no server and no session. A report or a comparison you share travels inside its own link, and the one-file exports open with no account, no install and no network.
Live: dossier.neorgon.com
Reports. One report at a time. Saved reports and the open report's outline sit in a rail on the left, a bar above the report says where it came from and how many pages it has, and Edit opens the editor beside it. A first visit opens on a short welcome with examples.
Compare. Two to four whole reports in columns, each with a role (Human, Agent, Fixes, Other) and a letter (A to D). Drop a file into a column, choose one, paste text, use a report saved in Reports, or start a Fixes column from a copy of the column it fixes. Columns read in Dossier format (the same typography for every column, so you judge the content and not the styling) or in each report's Original layout.
llms.txt all read, so
they cannot disagree about the format.dossier-compare.json file, or the review as MarkdownGrouped as the catalog shows them. The full field list is in llms.txt, and
schema.json is the machine-readable contract.
| Group | Blocks |
|---|---|
| Narrative | heading prose callout quote steps kv grid |
| Measurement | metrics chart gauge scorecard table |
| Work | files diff code log checklist timeline findings tests |
| Comparison | compare |
| Judgment | risks actions decision |
| Attachment | image embed evidence |
Registered through the fleet NeoKeys kit, so every one of them can be turned
off or rebound from the ? sheet.
| Key | Reports | Compare |
|---|---|---|
? | The shortcut sheet, with the disable switch and rebinding | The same |
H | Hide or show the header bar | The same |
/ | Filter saved reports (opens the rail first) | Open the Comparisons switcher to find a comparison |
S | Copy a share link | Copy the comparison's link |
E | Share and export | Share and export the comparison |
[ ] | Previous and next page | Previous and next change, or heading when differences are off |
R | Edit or done | Not used |
# The contract, and a worked example that validates clean
curl https://dossier.neorgon.com/llms.txt
curl https://dossier.neorgon.com/schema.json
# Check a report before handing it over
node bin/validate.mjs report.json # 0 clean, 1 findings, 2 could not run
schema.json is JSON Schema draft-07, self-contained and under 60 KB, which
is what the agent platforms that accept a caller-supplied schema will take.
To hand over a comparison instead, emit {"dossierCompare": {...}} with up to
four columns, each with a role and a source; llms.txt has the rules. Save it
as <name>.dossier-compare.json and open it from the Open dialog.
ES modules require an HTTP server (not file://):
make serve # http://localhost:8899
make check # registry audit, every test, the fixtures, the byte scan
npm run test:browser # the browser checks, against a running server (DOSSIER_URL overrides)
make receipt # build the one-file export and check it with the network cut
make schema # regenerate schema.json, llms.txt and SKILL.md
The diagram is the Reports pipeline. The Compare view reads the same files
through js/compare/: HTML, Markdown and text become one intermediate
representation, which the columns draw, align and compare.
dossier-site/
├── index.html # the shell: one Header Kit bar, Reports, Compare, dialogs
├── embed.html # the sealed host that runs a report's scripts
├── schema.json # generated from the registry, draft-07
├── llms.txt SKILL.md # generated: the contract, as instructions
├── js/
│ ├── registry/ # the format itself, as data. Everything reads it
│ ├── parse.js # text to model. Never throws, never destructive
│ ├── derive.js # the arithmetic the author is not asked for
│ ├── validate.js # the same rules in the browser, the CLI and tests
│ ├── adapters/ # git, JUnit, SARIF, CTRF, Lighthouse, md, HTML
│ ├── render/ # the one renderer. Exports derive from its output
│ ├── compare/ # the Compare view: columns, sync, differences, review
│ ├── router.js # the one owner of the URL hash
│ ├── appearance.js # theme, reading options and view, before first paint
│ ├── display.js # the Display options dialog and the measured line width
│ ├── chrome.js # mode, view, rail, and the NeoKeys registration
│ ├── embeds.js # an imported HTML report's three views
│ ├── store.js # IndexedDB: report bodies, many of them
│ ├── share.js # #dz=, #dc= and ?src=, the fleet transport contract
│ ├── export.js # JSON, YAML, one HTML file, print, a Sage deck
│ └── open.js read.js library.js pipeline.js source-pane.js ...
├── css/ # tokens, shell, report, blocks, compare (+ vendored kits)
├── fixtures/ # minimal, complete (every block type), messy, foreign formats, hostile HTML
├── reports/ # eleven example reports and, in compare/, an example comparison
├── bin/ # validate, gen-schema, gen-llms
├── scripts/ # the browser checks and the export receipt
└── tests/ # plain node --test