html-human-review
Skill4 starsChanged 8 days agoMITView on GitHub
Converts a Markdown file into a read-only HTML artifact and runs a visual review loop on the Markdown source. Use when asked to render a document as HTML or to apply a review batch.
In this repository12 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- advisorSkill
- ai-project-auditSkill
- ai-project-frameworkSkill
- build-in-publicSkill
- calendar-colorsSkill
- kindle-exportSkill
- learning-reviewSkill
- no-ai-slopSkill
- permissions-tuneSkill
- weekly-reviewSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Always generate the HTML by running the deterministic script — never hand-write the HTML when the script is available:
- Very specific: line 39
If the script is unavailable and HTML must be hand-written: preserve every element (headings, lists, tables, code, links, footnotes), …
- Very specific: line 82
After applying a batch to a .md that has an HTML artifact → immediately regenerate the HTML (0 tokens).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
HTML + Human Review — the document loop
Purpose
One skill, two halves of the same loop:
- Publish (read): convert a Markdown file into a readable HTML artifact without changing its meaning.
- Review (edit): open the Markdown source in a visual editor so the user edits text directly and leaves anchored comments; apply the batch to the
.md; regenerate the HTML.
The Markdown file is ALWAYS the source of truth. The HTML is a generated, read-only artifact.
Done: done when the .md carries every edit from the batch and its HTML has been regenerated from it.
1. Write/generate the .md [as always]
2. md2html → HTML to READ [0 tokens]
3. review the .md → visual editor [review]
4. Apply the batch to the .md source [tokens only here]
5. Regenerate the HTML [0 tokens]Half 1 — Markdown → HTML artifact
Always generate the HTML by running the deterministic script — never hand-write the HTML when the script is available:
python3 tools/md2html.py path/to/document.mdOutput: <source-dir>/artifacts/<basename>.html (clean styles, footer with source + date). Same base filename; never create -v2/-final duplicates unless explicitly asked.
If the script is unavailable and HTML must be hand-written: preserve every element (headings, lists, tables, code, links, footnotes), invent nothing, change no numbers/dates/units, and produce a complete standalone document (inline CSS, works over file://, no external dependencies, responsive).
Light/dark theme
Every generated page (reading HTML and cloud review page) carries a ☾/☀ button. Untouched, the theme is automatic: dark between sunset and sunrise (computed in the browser for the SUN_LAT/SUN_LON set at the top of both scripts; change them to your city) or whenever the OS is in dark mode; a small dot on the button marks automatic. One click pins the other theme until the next sunrise/sunset, then it goes back to automatic. The choice lives in localStorage (key pos-theme), shared by every page on the same origin. Printing and PDF export always come out light. The server-mode editor has its own toggle, but it only darkens its frame, not the document.
Half 2 — Human review loop (over the .md source)
Two modes, same batch format and same applying rules. In a cloud session the cloud mode is the default (a local server can't run there); locally the server mode is the default.
Cloud mode — self-contained review page
python3 tools/md2review.py path/to/document.mdOutput: <source-dir>/artifacts/<basename>.review.html — a self-contained page (inline CSS/JS, zero external requests, works over file://) where the user:
- Edits text directly on the blocks (contenteditable; bold/italic get re-mapped to
**/*— the page serializesafterin Markdown). - Selects text → anchored comment via the macro buttons or free text (side panel, deletable before export).
- Writes an optional
overall_note. - Hits "Export batch" → JSON
{source_file, generated_at, edits[{label,before,after}], comments[{quote,feedback}], overall_note}copied to clipboard (+ downloadable.jsonfallback) → pastes it in the chat. - The agent applies it to the
.md(rules below) → regenerates the reading HTML (mandatory hook).
State is memory-only: closing without exporting loses the review (the page warns). The .review.html is a disposable input-capturer — regenerable from the .md, never a source, never edited by hand.
Server mode — local
npx -y human-review path/to/document.md # open the editor on the .md source
npx -y human-review poll path/to/document.md --timeout 600 # wait for the batchRe-run on timeout (unsent work persists in the browser). After applying a batch, confirm with --ack. Server by Peter Yang's human-review (see credits).
Applying the batch
editsare changes the user already made: carryafteracross verbatim into the.md, re-mapping formatting to Markdown syntax. Never revert them.commentsare instructions that need judgment: find each by itsquote, apply per the macros below or the comment's text.- Process every page in the batch, not just the first.
Regeneration hook (mandatory)
After applying a batch to a .md that has an HTML artifact → immediately regenerate the HTML (0 tokens). Never leave the md/HTML pair out of sync.
Anti-rule (hard)
Never edit the generated HTML — it gets overwritten on the next regeneration. The editor always opens on the .md. If the user edits a generated HTML by mistake: diff their changes, port them to the .md source first, then regenerate.
Review vocabulary — comment macros (fixed meaning)
| Macro | Meaning for the agent |
CUT | Apply Smart Brevity: reduce the marked text to ~half. Headline first, one idea per sentence. |
DATA? | The claim needs a real datum. Find one with source, or mark → fill when ready. Never invent. |
SOURCE | Add source + date for the marked claim. |
VOICE | It doesn't sound like the author → rewrite with their voice file; no AI-tells. |
SLOP | Delete the marked text without replacement. |
(Rename the macros to your own language/shorthand — the point is a fixed, shared vocabulary.)
Attachments in a review
The editor is text-only. Workaround: the user drops the file anywhere on disk and writes its path in a comment or the overall note, plus what to do with it. When a batch arrives, scan comments and overall_note for file paths and read every referenced file before applying. Treat the referenced file as part of the feedback.
Correction → memory loop
If the same kind of correction appears in 2+ review sessions, propose promoting it to a permanent rule — in the author's voice file or the OS memory — and say what was promoted and why. Each review should train the system so the next draft ships better by default.
Core principle
Markdown stores the canonical content. HTML provides the reading experience. Review happens on the Markdown, through the editor. Always regenerate the HTML from the Markdown rather than maintaining two versions.
Credits
- Server-mode editor: petergyang/human-review.
- The cloud mode was built to run the same loop where a local server can't (cloud agent sessions); as a bonus, its batch carries bold/italic through serialization.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

