/cs:human-gate — Get real human review on an artifact and prove it happened. Builds a single-file review page, collects batched feedback as structured data, and
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-claude-skills-25ef1c8c3591 ,按照其中的说明把「cs-human-gate」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
Command: /cs:human-gate <artifact> [step]
Machine checks answer "do the tests pass?". This answers the other one: has a person actually looked at this, and are their objections resolved?
content-humanizer / behuman (different problem entirely)md-review or code-reviewergrill-meagent-harnessRefuse to proceed and say which is missing:
.md or .html.S=engineering/human-gate/skills/human-gate/scripts
open — start a roundpython3 $S/human_gate.py open "$ARTIFACT" --launch
Builds a single-file review page (zero network requests, opens over file://) and records
round N. Prints the sidecar path.
Then end the turn. Do not poll. On a headless host open detects it, skips the browser,
and tells you to hand over the path — the reviewer can write the sidecar by hand in any editor.
status — non-blocking checkpython3 $S/human_gate.py status "$ARTIFACT"
| Exit | Meaning |
|---|---|
| 0 | collected and clear — close would pass |
| 2 | collected, but close would refuse — prints which rules, same code close uses |
| 3 | feedback waiting — collect it |
| 4 | nothing on disk yet — end the turn again |
Branch on the code alone: 0 clear · 2 blocked · 3 collect me · 4 nothing yet.
collect — read the batchpython3 $S/human_gate.py collect "$ARTIFACT" --output json
Emits batch.v1: every item with severity, block anchor, quote, and the blocking total.
Quotes are verified against the real file — a mismatch is reported, not swallowed.
Apply every item. EDIT items carry after across verbatim — that is the
reviewer's own wording, not a suggestion to paraphrase. If the artifact is generated from
a source, apply the edit there too or it disappears on the next build.
close — the gatepython3 $S/human_gate.py close "$ARTIFACT"
| Rule | Refuses when |
|---|---|
| G1 | no round collected — nobody has looked |
| G2 | a BLOCKER or MAJOR is still open |
| G3 | no named reviewer |
| G4 | the sidecar changed after the last collect |
| G5 | round cap exhausted → escalate |
| G6 | waiver used without a recorded reason — G1 can never be waived |
| G7 | the round carries unresolved integrity problems (mistyped severity, EDIT with no replacement, quote not in the file) |
Exit 2 means you are not done. Report what is open, not a summary that implies success.
Legitimate override, recorded:
python3 $S/human_gate.py close "$ARTIFACT" --waive "reviewer on leave; CTO accepted risk in writing"
Report back exactly this shape:
GATE: <PASSED | REFUSED | ESCALATE>
Reviewer: <name>
Rounds: <n> of <max>
Open: <BLOCKER/MAJOR items, by block id>
Applied: <what you changed, and in which source files>
Next: <the one action, or "none — done">
python3 engineering/human-gate/skills/human-gate/scripts/human_gate.py --sample
Runs the whole loop in a temp dir — including the refusals — in about a second.