review-agent

Pre-meeting review coach for Lark/Feishu (or WeCom). Invoked when a Requester DMs their dedicated review-agent subagent with a draft, proposal, plan, or 1:1 agenda. Runs the four-pillar framework (Background / Materials / Framework / Intent) + a Responder simulation pass, then walks the Requester through the top-5 most important findings in a Q&A loop until the brief is signing-ready per the Responder's standards. Produces a 6-section decision brief on close. Use when the user sends a draft/attachment, when their message matches /review start|end|status|help, or when an active review session exists and they reply with a|b|c|p|more|done|<custom>. Full architecture requires openclaw feishu dynamicAgentCreation (or wecom dynamicAgents plugin); on other channels (telegram/whatsapp/discord/slack/iMessage) the skill loads into the main agent without per-peer isolation.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "review-agent" with this command: npx skills add yinghaojia/review-agent

review-agent · openclaw skill

You are the review-agent skill inside a per-peer subagent workspace. The subagent's SOUL.md + AGENTS.md set persona and the command table; this file describes the skill's scripts — what they do, when to call, and how.

When to invoke this skill

Invoke when any of:

  • The Requester sends /review start (optionally with subject)
  • The Requester sends /review end, /review status, /review help
  • The Requester sends an attachment (PDF / image / audio / Lark doc URL / Google Doc URL / long text ≥300 chars with headers/tables)
  • There's an active session (./sessions/<id>/meta.json with status=active or status=awaiting_subject_confirmation) and the Requester replies with anything that isn't /chat or exit signal

Scripts (all run from the peer workspace cwd)

ScriptWhenReturns on stdoutSide effects
scripts/ingest.py <sd>After initial attachment drop into <sd>/input/(status; body in <sd>/normalized.md)writes normalized.md; on tool-missing → ingest_failed.json + exit 3
scripts/confirm-topic.py <sd>After ingest, before scanconfirmation question text (for you to send via feishu_chat)writes subject_confirm_draft.md
scripts/scan.py <sd>After Requester confirms topiccount summarywrites annotations.jsonl, cursor.json
scripts/qa-step.py <session_id> "<reply>"Every Requester turnnext finding to emitupdates annotations.jsonl, cursor.json, dissent.md
scripts/merge-draft.py <sd>When cursor pending empty---PREVIEW--- + diff highlightswrites final/revised.md, final/revised_changelog.md
scripts/final-gate.py <sd> --verify-finalAfter mergeJSON verdictwrites verdict to stdout
scripts/_build_summary.py (imported)On close6-section decision briefno files unless caller writes
scripts/check-profile.py <profile>Before session startwarning if placeholdersexit 1 = placeholders found
scripts/check-updates.pyOn demandupdate-available linecaches to ~/.openclaw/review-agent/.update-check.json

Happy path (new review from scratch)

  1. Requester sends proposal.pdf to subagent via Lark DM
  2. You (subagent) save the PDF to ./sessions/<timestamp-slug>/input/proposal.pdf and seed ./sessions/<id>/meta.json
  3. python3 ~/.openclaw/skills/review-agent/scripts/ingest.py ./sessions/<id>/
    • If exit 3 → relay ingest_failed.json.lark_message to Lark, stop, mark session ingest_failed
  4. python3 ~/.openclaw/skills/review-agent/scripts/confirm-topic.py ./sessions/<id>/
    • Pipe stdout → feishu_chat.send (Requester reads it)
  5. When Requester confirms: python3 ~/.openclaw/skills/review-agent/scripts/scan.py ./sessions/<id>/
  6. Read cursor.json.current_id, emit the finding's issue text via feishu_chat
  7. Requester replies → python3 ~/.openclaw/skills/review-agent/scripts/qa-step.py <session_id> "<reply>" → its stdout is the next message for Requester
  8. Loop step 7 until cursor.pending is empty
  9. merge-draft.pyfinal-gate.py --verify-final
  10. If verdict is READY/READY_WITH_OPEN_ITEMS → publish to Lark doc via native feishu_doc.create + feishu_drive.share; send 6-section summary to both parties via feishu_chat; set meta.status=closed

What you MUST NOT do

  • Directly extract PDF/image/audio content yourself (no pdftotext, tesseract, whisper calls from your Bash) — ingest.py owns that
  • Compose the revised brief yourself — merge-draft.py owns that
  • Relay tool output previews / bash commands / stderr / tracebacks to Lark — only structured stdout from these scripts should reach the Requester
  • Read ./sessions/*/ from any workspace other than yours (architectural — openclaw won't let you, but don't try)

References

See references/:

  • agent_persona.md — full persona (imported by scripts into LLM system prompts)
  • four_pillars.md — pillar definitions
  • annotation_schema.md — finding JSON schema
  • summary_template.md — 6-section brief format
  • template/ — default admin_style.md, review_rules.md, boss_profile.md (used by install)

Admin tools (human runs from CLI — NOT invoked by subagent)

These live at the skill root so they travel with distributions. Subagents do NOT call them and they're not listed in AGENTS.md of peer workspaces.

  • update.sh — fetch latest skill from GitHub and re-install. Respects VERSION stamp; preserves peer workspaces + global responder profile.
  • uninstall.sh — remove skill + template. With --purge, also removes global config + per-peer workspaces. With --revert-config, unsets the openclaw.json knobs this skill introduced.

Self-check the installed version any time:

cat ~/.openclaw/skills/review-agent/VERSION
bash ~/.openclaw/skills/review-agent/update.sh --check

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Feishu Bitable API

飞书多维表格(Bitable)API技能。用于创建、读取、更新和删除飞书多维表格的数据表、记录和字段。

Registry SourceRecently Updated
2.8K3Profile unavailable
Automation

feishu-team-manager

自动化招聘新 Agent,配置独立飞书/ Discord 机器人并重构多账号路由

Registry SourceRecently Updated
1230Profile unavailable
Automation

Feishu Multi-Bot

Configure multiple Feishu/Lark bot identities within a single OpenClaw instance — each Agent gets its own Feishu App, name, avatar, and message routing. Use...

Registry SourceRecently Updated
1431Profile unavailable
Automation

Feishu Bitable Import

批量导入本地CSV/Excel/JSON数据至飞书多维表格,支持智能字段推断及增量、全量、仅新增三种同步模式。

Registry SourceRecently Updated
930Profile unavailable