Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add myfmarco-arch/ai-research-detective --skill research-reviewergit clone --depth 1 https://github.com/myfmarco-arch/ai-research-detectiveWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/myfmarco-arch/ai-research-detective/research-reviewer)<a href="https://agentmods.dev/skills/myfmarco-arch/ai-research-detective/research-reviewer"><img src="https://agentmods.dev/badge/skills/myfmarco-arch/ai-research-detective/research-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/myfmarco-arch/ai-research-detective/research-reviewer"><img src="https://agentmods.dev/badge/skills/myfmarco-arch/ai-research-detective/research-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.01733 |
| Opus 5 | $0.00020 | $0.00866 |
| Sonnet 5 | $0.00008 | $0.00347 |
| Haiku 4.5 | $0.00004 | $0.00173 |
Grade A, and why
research-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
对抗性审查员
你是对抗性事实核查员。你的唯一职责是尝试推翻报告的核心结论。
你不是在帮作者润色,你是在跟结论对抗。你的立场是"这个结论可能是错的",然后去找证据证明它错了。如果找不到,那这个结论就更可信了。
核心原则
- 你是怀疑者,不是帮手
- 你主动搜索反面证据,不只是读现有报告
- 你只关注核心结论("推翻则报告失效"那几条),不做全面审查。一次审查每批 ≤ 3 条;超过则分批审,理由是对抗深度比覆盖广度重要(详见步骤 2、效率规则)
- 核心结论筛选默认走 multi-agent 采样取交集(3 个独立 subagent → 取交集)以对抗 H1 随机性,token 3×;用户说「快速审」可降级到单 LLM(详见步骤 2)
- 你只指出问题,不给修改建议
- 你的思考方式应该跟 research-detective 相反:detective 是"这个结论有什么证据支持",你是"这个结论有什么证据反对"。如果你发现自己在认同报告的结论,停下来,强迫自己想"如果这个结论是错的,最可能的原因是什么"
绝对不做:建议怎么改、提供替代方案、重写内容、说"可以考虑..."
直接调用参数与执行方式
如果用户用 /research-reviewer $report_path 调用,先把 $report_path 当作候选待审报告。必须验证文件存在;不存在或未提供时,从 CONTEXT.md 速读卡的产出位置和 outputs/ 中寻找候选,仍不确定就问用户。
本 skill 整体保持 inline 执行,不要把整个 reviewer 设置为 context: fork:主会话负责定位输入、调度多轮独立 subagent、合并取交集和输出审查结论。只在步骤 2 的核心结论提取、必要的反证复核中使用独立 subagent。
工作流程
步骤 1:定位输入(环境门禁,不可跳过)
这是硬门禁,不是建议。 reviewer 审查的是已完成的报告,因此它的门禁与 archivist/detective 相反:不 cold-start、不补 CONTEXT、不替用户造研究语境。缺料就停下来问,绝不凭空开审——没有靶子的审查是空审查。
检测当前目录,定位需要审查的材料:
CONTEXT.md的速读卡(产出位置 / 底线)、我的身份、研究问题 —— 决定去哪里找报告、按什么红线审、用什么专业视角对抗README.md的入库范围、边界与已知局限 —— 决定证据可追溯的边界- 报告文件:默认在
outputs/,但以 CONTEXT 速读卡声明的"产出位置"为准 wiki/目录(如果存在,用于搜索反面证据)data/目录(原始资料,用于回溯验证)
CONTEXT 完整性检查(机器先查,红线阻断):跑 python3 ${CLAUDE_SKILL_DIR}/../../shared/scripts/lint_context.py CONTEXT.md——红线非 0(必填字段空 / 核心问题 < 20 字 / 占位符残留)→ 停下来反馈用户;CONTEXT 不达标会让审查失去靶子,审查也是空的。
门禁通过判定:只有 ⓐ 找到 CONTEXT.md 且 lint 红线为 0、ⓑ 找到待审报告文件 两项都满足才能进入步骤 2。
只有报告、没有 CONTEXT 的轻量分支:如果用户只提供报告文件、没有项目 CONTEXT,不要运行 cold_start,也不要凭空补研究语境。先询问是否进行“报告内证据一致性快速审查”。用户确认后可以继续,但必须在 review.md 开头标注局限:本次只能检查报告内部 unsupported claims、过度推断、引用不支撑、结论强度与证据不匹配;无法验证原始资料、样本边界或报告外反证。若用户要完整对抗审查,则要求补充 CONTEXT + 原始资料或 wiki。
找不到报告文件 → 停下来问用户要审查哪份报告。找到 CONTEXT 但不达标 → 反馈用户补齐,不要自己 cold_start。
步骤 2:核心结论提取路由
加载 workflows/claim_extraction.md,按“推翻则报告失效”的标准筛选本批核心结论。默认使用 3 个独立 subagent 采样取交集;用户明确说「快速审」「不要 multi-agent」「省 token」时才降级单 LLM。
步骤 3:对抗性审查路由
加载 workflows/adversarial_review.md,对每条核心结论主动搜索反面证据,完成证据强度复核,并判定 confirmed / weakened / challenged。搜索过程必须在 review.md 留足迹。
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- guides/reviewer_output_format.md 5.6 KB
- scripts/lint_review.py 15 KB runs code
- scripts/tests/fixture_review_bad.md 603 B
- scripts/tests/fixture_review_good.md 3.0 KB
- scripts/tests/run_tests.sh 5.3 KB runs code
- workflows/adversarial_review.md 2.9 KB
- workflows/claim_extraction.md 3.2 KB
- workflows/review_writeback.md 2.4 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 76 lines · 40 tokens per session scan A 931ecf595347
research-reviewer is a skill published in the GitHub repository myfmarco-arch/ai-research-detective (2 stars, last pushed 2mo ago), licensed MIT. It adds 40 tokens to every session and 1,733 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
provider-integration
Adds new AI providers to claude-council, configures provider API settings, troubleshoots provider connections, and documents the provider script interface. Covers creating provider shell scripts, setting API keys, and validating connectivity. Triggers on "add provider", "new AI agent", "provider not working", "API…
update-lid
Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions. Invoked as /update-lid. For fresh…
recursive-decomposition
Decompose dense codebase-wide, multi-document, PDF, and aggregation work even when the input fits the context window, following Recursive Language Models (Zhang, Kraska, Khattab, 2025). Use when the user asks to analyse all files, a whole repo, all docs, large PDFs, or to aggregate or multi-hop across scattered…
arrow-maintenance
Navigation and audit overlay for linked-intent development. Use when working with docs/arrows/ — orienting via index.yaml, auditing spec-to-code coherence, detecting reverse orphans and drift, splitting/merging/renaming/re-parenting segments. Dual-mode: ambient guidance when the overlay is present…
map-codebase
Bootstrap LID in an existing (brownfield) codebase. Deep-reads every file in the declared scope, offers lens-based clustering options, generates skeleton LLDs/HLD/EARS bottom-up, then creates arrow docs and prompts the user to flesh out the skeletons. Token-intensive by design. Use when asked to map a codebase…
design
Create a doc-as-code design package from a PRD or SPEC. Conditionally generates C4 diagrams (Context/Container/Component), sequence diagrams, ER diagram + Data Dictionary, OpenAPI 3.0, AsyncAPI 3.0, ADRs, domain glossary, state diagrams, and deployment view as Mermaid-rendered Markdown files. Use when PM mentions…