mirror of
https://github.com/alirezarezvani/claude-skills.git
synced 2026-09-05 08:05:57 +00:00
Audits petergyang/human-review and ships a conceptual derivation that fits this repo's stdlib-only conventions. Audit (audit/human-review-2026-08/AUDIT.md): upstream is a well-engineered ~5,200 LOC Node app — its own test suite passes 90/90, and its security model (loopback bind, DNS-rebinding Host check, constant-time token compare, realpath traversal guard, inert Markdown renderer, 45-min idle shutdown) is better than most local-server tools. It still does not fit: Node 20 + an npm runtime dependency fails the same stdlib-only test that kept the heavier skillopt package out in v2.11.2. Seven findings, three material — F1 (HIGH) unpinned `npx -y` executes a newly published version on every run; F2 (MED) "do not end your turn" plus re-poll on timeout with no headless guard or retry cap; F3 (MED) only /api/* is token-gated. Also: despite the name it is not a humanizer. This is human approval, not human voice — no overlap with behuman or content-humanizer. New plugin engineering/human-gate, three stdlib scripts, no server or socket: - review_page_builder.py — Markdown/HTML to a single-file anchored review page with zero network requests (~11 KB, opens over file://). Escapes before applying inline markup, scheme-allowlists hrefs, drops script/style on HTML input. - feedback_parser.py — sidecar to batch.v1 JSON. BLOCKER/MAJOR/MINOR/NIT (matching md-review) plus EDIT/NOTE/APPROVE. Verifies quotes against the real file; strips HTML comments so a documented example cannot parse as a real sign-off. - human_gate.py — open/status/collect/close/reset with atomic writes and 0700/0600 state. Rules G1-G6 refuse to close on: no collected round, an open BLOCKER/MAJOR, an unnamed reviewer, a sidecar changed after collection, an exhausted round cap (exit 5 = escalate), or an undocumented waiver. Loop discipline deliberately inverts upstream: no blocking poll, a headless guard, a round cap that escalates. The sidecar is hand-writable Markdown, so the loop closes over SSH and in CI. The optional bridge to upstream is opt-in and always version-pinned. Adds 3 references (7-8 sources each), a batch.v1 schema, a worked example, cs-human-gate agent, /cs:human-gate command. SKILL.md passes the write-a-skill 6-item checklist 6/6; description validator PASS. Counters: skills 362->363, tools 644->647, refs 741->744, agents 102->103, commands 116->117, plugins 88->89. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01233Eggb2cjSYf96X6C3pCm |
||
|---|---|---|
| .. | ||
| cs-human-gate.md | ||