document-review
Optional utility for reviewing existing docs, external specs, hand-authored notes, or non-HOTL documents. HOTL design docs and workflows get structural lint + AI review; other documents get AI-only review with a generic rubric.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 1.6k
- Forks
- 474
01 前言 Front Matter
- name
- document-review
- description
- Optional utility for reviewing existing docs, external specs, hand-authored notes, or non-HOTL documents. HOTL design docs and workflows get structural lint + AI review; other documents get AI-only review with a generic rubric.
03 SKILL.md 正文
HOTL Document Review
Overview
Optional utility for ad hoc document review. Use this to review existing docs, external specs, hand-authored plans, or any non-HOTL document. HOTL documents get structural lint (hard gate) followed by AI review. Non-HOTL documents skip lint and go straight to AI review with a generic rubric.
Note: This skill is not required in the standard HOTL flow. Writing-plans includes a built-in self-check, and execution preflight runs structural lint automatically. Use this skill when you want to review a document outside of the normal plan-then-execute cycle.
Announce: "Running document review. Classifying input..."
Step 0 — Classify the Input
Before doing anything else, classify the input into one of four categories:
| Category | Detection | Review Path |
|---|---|---|
| HOTL workflow | Canonical docs/plans/*-workflow.md or legacy hotl-workflow-*.md |
Phase 1 (HOTL lint, hard gate) → Phase 2 (HOTL AI review) |
| HOTL design doc (marked) | A design-doc-shaped file (canonical docs/designs/*.md or legacy *-design.md / *-plan.md) whose YAML frontmatter declares design_type: (one of feature | phase | initiative | architecture | contract | reference) OR hotl_managed: true |
Phase 1 (HOTL lint) → Phase 2 (HOTL AI review) |
| Generic text/markdown | Any other .md, .txt, or pasted text — including design-shaped files in docs/designs/ that lack an HOTL marker |
Skip Phase 1 → Phase 2 (generic AI review) |
.pdf extension |
If the current runtime can read/extract the content, treat as generic text and review. Otherwise, ask the user for a text, markdown, or PDF-text export. | |
| DOCX / PPTX / binary | .docx, .pptx, or other binary formats |
STOP. Ask the user for a markdown, plain text, or PDF export. Do not attempt conversion. |
Phase 1.6 opt-in rule: Path alone does NOT classify a file as HOTL. A design-shaped Markdown file in docs/designs/ without an HOTL frontmatter marker (design_type: or hotl_managed: true) is treated as generic markdown — document-lint.sh will SKIP it cleanly, and this skill routes it through Phase 2's generic-rubric AI review. To opt a hand-authored design doc into HOTL strict review, add design_type: <recognized-value> or hotl_managed: true to its frontmatter.
Announce the classification: e.g., "Classified as HOTL design doc (marked via design_type) — running lint + HOTL review." or "Classified as generic markdown — skipping lint, running generic review."
Phase 1: Structural Lint (HOTL Documents Only)
Skip this phase entirely for non-HOTL documents. If the input was classified as generic text/markdown or PDF, go directly to Phase 2 (generic AI review).
For HOTL documents only, run the deterministic lint script:
bash scripts/document-lint.sh <file>
Resolve document-lint.sh in this order:
- If you are working in the
hotl-pluginrepo itself, usescripts/document-lint.sh - Codex native-skills install:
~/.codex/hotl/scripts/document-lint.sh - Codex plugin install:
~/.codex/plugins/hotl-source/scripts/document-lint.sh - Codex plugin cache fallback:
~/.codex/plugins/cache/codex-plugins/hotl/*/scripts/document-lint.sh - Cline install fallback:
~/.cline/hotl/scripts/document-lint.sh - Claude Code plugin fallback:
~/.claude/plugins/hotl/scripts/document-lint.sh
Do not assume scripts/document-lint.sh exists in the repo being reviewed. The lint script lives in the HOTL install, not in arbitrary user projects.
Resolving hotl-config.sh
hotl-config.sh (the canonical reader for .hotl/config.yml) follows the same six-location resolution order as document-lint.sh:
- If you are working in the
hotl-pluginrepo itself, usescripts/hotl-config.sh - Codex native-skills install:
~/.codex/hotl/scripts/hotl-config.sh - Codex plugin install:
~/.codex/plugins/hotl-source/scripts/hotl-config.sh - Codex plugin cache fallback:
~/.codex/plugins/cache/codex-plugins/hotl/*/scripts/hotl-config.sh - Cline install fallback:
~/.cline/hotl/scripts/hotl-config.sh - Claude Code plugin fallback:
~/.claude/plugins/hotl/scripts/hotl-config.sh
Do not assume scripts/hotl-config.sh exists in the repo being reviewed. Callers that do not know their install location should invoke scripts/hotl-config-resolve.sh (a thin command proxy that locates hotl-config.sh and forwards argv).
If lint FAILS: STOP. Show all errors. The author MUST fix structural issues before AI review runs. Do not proceed.
If lint PASSES: Continue to Phase 2 (HOTL AI review).
What Lint Checks
Design docs (canonical docs/designs/*.md, plus legacy *-design.md / *-plan.md tactical docs):
- Intent Contract with intent, constraints, success_criteria, risk_level
- Verification Contract with at least one verify step
- Governance Contract with approval_gates and rollback
- risk_level is low, medium, or high
Workflow files (canonical docs/plans/*-workflow.md, plus legacy hotl-workflow-*.md):
- YAML frontmatter with intent, success_criteria, risk_level
- Every step has action and loop fields
- Every looped step (loop: until) has verify and max_iterations
- Preferred workflow step syntax is
- [ ] **Step N: ...**, though legacy### N.headings may still appear - High-risk steps with security keywords have gate: human
Phase 2: AI-Driven Review (Soft Gate)
Read the full document and evaluate using the rubric that matches the classification:
For Design Docs
- Internal consistency — Do the three contracts align with each other? Does the verification contract actually test the intent?
- YAGNI — Is anything speculative, overbuilt, or solving problems that don't exist yet?
- Risk assessment — Is the risk_level appropriate? Are high-risk areas (auth, encryption, billing) correctly identified?
- Success criteria — Are they concrete and testable, or vague?
- Scope — Does this cross too many subsystems? Should it be decomposed?
For Workflow Files
- Step sizing — Are steps atomic (2-5 minutes each)? Flag steps that are too large or vague.
- Verify coverage — Do verify commands actually test what the step claims to do?
- Gate placement — Are human gates placed at the right points? Any risky steps missing gates?
- Loop safety — Are max_iterations reasonable? Any infinite-loop risks?
- Ordering — Do steps build on each other logically? Any missing dependencies?
For Generic Documents
- Clarity — Is the writing clear, specific, and unambiguous?
- Completeness — Are important details, assumptions, or decisions missing?
- Internal consistency — Does the document contradict itself anywhere?
- Actionability — Are decisions, next steps, owners, or open questions clearly stated?
- Risk / Ambiguity — Are there risky assumptions, vague areas, or likely points of confusion?
Review Outcomes
After completing the review, output exactly one of the following. Use Lint: PASSED for HOTL documents or Lint: SKIPPED (non-HOTL document) for all other inputs.
PASS
All checks satisfied. Document is ready.
REVIEW: PASS
Document: <filename>
Lint: PASSED | SKIPPED (non-HOTL document)
AI Review: No issues found.
Ready for execution.
REVISE
Issues found that should be fixed. List each with a specific suggestion.
REVIEW: REVISE
Document: <filename>
Lint: PASSED | SKIPPED (non-HOTL document)
AI Review: <N> issue(s) found.
Issues:
1. [ISSUE]: <description>
Suggestion: <how to fix>
2. [ISSUE]: <description>
Suggestion: <how to fix>
Fix these issues and re-run document review.
HUMAN_OVERRIDE_REQUIRED
Serious concerns that the AI cannot resolve. Human must decide whether to proceed.
REVIEW: HUMAN_OVERRIDE_REQUIRED
Document: <filename>
Lint: PASSED | SKIPPED (non-HOTL document)
AI Review: Serious concern(s) requiring human judgment.
Concerns:
1. [CONCERN]: <description>
Risk: <what could go wrong>
2. [CONCERN]: <description>
Risk: <what could go wrong>
Do not continue until a human explicitly says to override these concerns.
Rules
- Always classify the input before choosing a review path.
- For HOTL documents: never skip lint; never continue to execution when lint fails.
- For non-HOTL documents: skip lint entirely (no structural validation).
- For DOCX/PPTX/binary: do not attempt conversion; ask for an export.
- If review outcome is
REVISE, the author fixes the document first. - If review outcome is
HUMAN_OVERRIDE_REQUIRED, only an explicit human decision allows execution to proceed.
04 同仓库更多 Skills
migrate-to-e2e
Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for /migrate-to-e2e, "migrate our tests to e2e", "port these Maestro flows", "move our TesterArmy tests", or when a project has an e2e config and an older suite still running.
e2e
Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.
create-verification-skill
Generate a project-local verify-<app> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for /create-verification-skill, "make a verification skill for this repo", or when a project has no scripted way to prove UI behavior.
deja-search
deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.
deja-reflect
End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.
revid
Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.