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