Document Design
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you.
$ npx skills add petergyang/human-review --skill human-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install petergyang/human-review human-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src .claude/skills/human-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .claude/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/petergyang/human-review/tree/main/srcType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add petergyang/human-review --skill human-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install petergyang/human-review human-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src .agents/skills/human-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .agents/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petergyang/human-review --skill human-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install petergyang/human-review human-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src .cursor/skills/human-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .cursor/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/petergyang/human-review.git --path src--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add petergyang/human-review --skill human-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install petergyang/human-review human-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src .gemini/skills/human-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .gemini/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install petergyang/human-review human-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add petergyang/human-review --skill human-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .github/skills && cp -r skills-src/src .github/skills/human-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .github/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add petergyang/human-review --skill human-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install petergyang/human-review human-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/petergyang/human-review.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src .opencode/skills/human-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "human-review" agent skill from https://github.com/petergyang/human-review/tree/main/src into .opencode/skills/human-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "human-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
human-reviewOpen an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you.
Human Review is an agent skill from petergyang/human-review. Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you. Use after writing or updating something the user will read — specs, plans, reports, newsletter drafts, landing pages, slide decks, and locally running web pages.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files (for example `anchor-text.js`, `chrome-client.js` and `chrome-session.js`).
It sits in Documents & Office, covering Landing pages, Slides and decks and Newsletters. The repository describes itself as: A visual tool to edit HTML and Markdown files, leave comments like a Google Doc, and send feedback to your AI agent. Works inside your favorite AI harness. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f9a5581. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Human Review loads about 2.1k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 1,131 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from petergyang/human-review at commit f9a5581, republished under its MIT licence (© petergyang). 1,131 words, ~2,112 tokens.
.claude/skills/human-review/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.The user reviews your HTML, Markdown, or localhost page in a real browser: they fix small things by typing, select anything to comment on it, and send you the whole batch at once.
Markdown files open rendered. Their quotes and edits reference the rendered text, and the file itself is never touched — apply every change to the Markdown source, keeping its formatting syntax.
Write or update the HTML or Markdown file, or start the local page being reviewed.
Open it for the user:
npx -y human-review path/to/file.htmlFor a page served by a local development server, open the real route instead of recreating it as a separate HTML file:
npx -y human-review http://localhost:3000/wikiWait for feedback. This command blocks until the user hits Send in the browser, then prints their batch and exits:
npx -y human-review poll path/to/file.htmlThe command exits only when the user clicks Send or closes the review.
There is nothing to re-run, no interval to poll on, and no --timeout to
add. It survives the local server restarting, and feedback is saved even
if the poll dies, so nothing is ever lost. How you wait depends on your
harness:
Claude Code: run it with run_in_background: true and end your turn.
Claude Code wakes you with the output the moment the command exits.
Codex, Cursor, and everything else: run it in the foreground,
inside your active turn, and stay on it until it prints feedback or
closed. Do not detach it or start it as a background session: nothing
wakes you when a detached command finishes. While the review is active:
feedback or closed — a final
response ends the turn and kills the wait.--timeout a little
under the cap and run bounded polls back to back in the same active
turn until one returns feedback or closed.Know the limit: this is reliable only while your turn stays active. A
turn that has already ended is not woken when the user hits Send; the
user has to message you, and you then run status and poll to pick
the batch up. There is no integration that resumes an ended task when
the poll exits.
If it prints {"status":"closed"}, the review is over: the user ended it,
closed the tab, or never had one open (reason says which). Stop and do
not start another poll. unsent counts feedback they left behind; if it is
not zero, tell the user in one line that it is kept and they can restore or
discard it next time. {"status":"superseded"} means a newer poll of
yours owns the wait — stop this one silently. {"status":"timeout"} only
appears after 12 hours; run status and start the wait again if the
review is still open.
Apply what comes back, then start the next background poll. --ack clears
the batch you just handled:
npx -y human-review poll path/to/file.html --ackRepeat 3–4 until the user says they are done.
Not sure whether feedback is already waiting — say, at the start of a new turn with no poll running? This answers instantly without blocking:
npx -y human-review status path/to/file.htmlIt prints {"status": "feedback-waiting"} when a batch is ready for a poll,
plus counts of unsent comments and edits still in the browser.
One batch covers every page the user visited, grouped by file or localhost URL.
{
"status": "feedback",
"pages": [
{
"file": "/abs/path/to/page.html",
"edits_saved": true,
"comments": [
{ "id": "c_1", "kind": "selection", "quote": "the exact text they selected",
"anchor": { "prefix": "...", "quote": "...", "suffix": "..." },
"feedback": "what they want changed" }
],
"edits": [
{ "label": "Problem body", "kind": "edited",
"before": "the original wording",
"after": "their exact new wording",
"after_html": "their exact new wording with <strong>formatting</strong>" }
]
}
],
"overall_note": "feedback not tied to any one page"
}edits are changes the user already made. after is their exact wording —
carry it across verbatim and never revert it. If the HTML was generated from
something else (MDX, Markdown, a template), apply after to the source too,
or their fix disappears on the next build.edits_saved: true means those edits are already in the file on disk.
Plain HTML files autosave as the user types, so your copy of the file is
stale. Re-read the file before touching it and make targeted changes only;
never regenerate it from what you wrote earlier, or their work disappears.
edits_saved: false (Markdown, localhost pages, self-rendering HTML) means the
edits exist only in this batch — apply them to the source yourself.kind: "deleted" means the user removed that whole block:
delete it from the source too, without asking why.truncated: true had its text cut at 200k characters; read
the block from the page itself rather than from after_html.before_html/after_html are present, the user changed formatting, not
just words — bold, italic, underline, links. Use the HTML version to carry the
formatting into the source, translated to its syntax (e.g. <strong> → **
in Markdown/MDX).kind: "url" was edited directly in the review UI. Its file
and url fields name the localhost route, not a writable file. Find the
matching project source (such as MDX, TSX, or a template), apply every edit
and deletion there, then acknowledge so the route reloads. Never write the
rendered HTTP response back into the app.after_html contains <img src="assets/...">, the user pasted
an image: the file already exists in an assets/ folder next to the reviewed
file. Keep that relative path — in Markdown, reference it as
. Never regenerate or inline the image.staged_assets. Copy its
local path into the app's appropriate asset folder, replace the temporary
preview URL in after_html, and preserve the image at the user's insertion
point. Never leave the temporary preview URL in source.kind: "moved" means the user relocated that whole block.
Reposition it in the source without rewriting its content: it now sits right
after the block whose text starts with moved_after, and right before the
block whose text starts with moved_before (both are clipped to 90
characters and may end in …). An empty moved_after means it is now the
first block in its container.quote. It is the rendered text the user
selected, so in Markdown or templated HTML it may span formatting syntax or
tags; anchor.prefix and anchor.suffix give the surrounding text to
disambiguate.kind: "element" points at a whole block, so quote is its label, not body text.staged_assets files before you ack: --ack deletes them.overall_note has an empty pages array.pages, not just the first.Name the sections you author and the user's edit list uses your names instead of guessing from the DOM:
<p data-block="Problem body">…</p>
<div data-container="Metrics callout">…</div>data-block names a region for the edit list. data-container also makes the block
clickable as a comment target.
© petergyang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 18 other files in src of petergyang/human-review.
Open the folder on GitHubat commit f9a5581
Human Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Human Review this skillpetergyang/human-review | 1.4k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Document Designjamditis/claude-skills-journalism | 416 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Youtube Notetakersickn33/agentic-awesome-skills | 47k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Markdown HTML Orchestratoralirezarezvani/claude-skills | 28k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Ultralytics Brandingfcakyon/claude-codex-settings | 1.2k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Data Viz Deckthatrebeccarae/claude-marketing | 161 | — | ~1.8k | Automated safety check: Pass | MIT |
jamditis/claude-skills-journalism
Creates print-ready HTML that exports to PDF. An agent skill from jamditis/claude-skills-journalism.
sickn33/agentic-awesome-skills
Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.
alirezarezvani/claude-skills
A skill your agent uses when a user wants to convert any markdown file in their Claude project into a single-file, lightly-interactive HTML — long-form documents (specs, plans, RFCs, reports…
fcakyon/claude-codex-settings
This skill should be used when creating Ultralytics-branded content of any kind, including PDF, PPTX, Canva, or Google Slides presentations, DOCX documents, marketing or newsletter HTML emails…
thatrebeccarae/claude-marketing
Transform audit data, performance reports, and structured analyses into polished visual deliverables.
swyxio/skills
Given a local video or video URL, downloads the media if needed, extracts slide frames and key moments, transcribes the audio, and writes a Markdown timeline that interleaves screenshots with the…
Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you. Human Review is an agent skill from petergyang/human-review. Open an HTML file, Markdown file, or localhost page in the browser so the user can edit text directly and leave comments on specific parts, then send all edits and comments back to you.
Human Review fits situations like: tasks that involve Landing pages; tasks that involve Slides and decks; tasks that involve Newsletters.
Run `npx skills add petergyang/human-review --skill human-review -a claude-code`. Or copy the skill folder (src in petergyang/human-review) into .claude/skills/human-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add petergyang/human-review --skill human-review -a codex`. Or copy the skill folder (src in petergyang/human-review) into .agents/skills/human-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add petergyang/human-review --skill human-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/human-review, .gemini/skills/human-review, .github/skills/human-review and .opencode/skills/human-review in your project.
Going by SKILL.md and its folder, Human Review needs JavaScript for the scripts in its folder and the command-line tools its instructions call (npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Human Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Human Review: Document Design (jamditis/claude-skills-journalism, 416 stars), Youtube Notetaker (sickn33/agentic-awesome-skills, 47k stars), Markdown HTML Orchestrator (alirezarezvani/claude-skills, 28k stars) and Ultralytics Branding (fcakyon/claude-codex-settings, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
petergyang (a GitHub user) maintains it in petergyang/human-review, which has 1,380 GitHub stars. The repository was last updated on September 17, 2026.
Source: petergyang/human-review on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.