Skip to main content
Glama

research-bridge

research-bridge 是一个本地 MCP 服务,用于连接 MCP 客户端与本机 Codex。它可以读取目标 Git 仓库、启动和跟进任务、查看事件与代码差异,并记录研究任务的审查证据。

本仓库包含源码、测试和示例配置。运行时数据库、审计记录、验证产物及本地密钥不属于源码,已由 .gitignore 排除。

能做什么

功能

主要工具

检查仓库

bridge_healthrepo_snapshotrepo_readrepo_search

执行任务

codex_start_taskcodex_send_followupcodex_abort

查看进展

codex_statuscodex_eventscodex_diffcodex_artifacts

审计与验收

codex_record_audit_eventcodex_auditworkstream_accept_candidate

研究治理

rva_review_contractrva_review_resultrva_review_next_experimentresearch_cycle_status

研究知识

research_publish_knowledgeresearch_knowledge_statusresearch_migration_scan

执行任务与研究任务采用不同流程。普通执行任务可按配置自动结算;研究任务需要提交研究契约、审查结果,并完成知识发布和后续实验决策。RVA(研究验证代理)只负责对研究结论提出有界质疑,不接管 Codex 的代码实现。

Related MCP server: codex-supervisor

环境要求

  • Node.js 22.5 或更高版本。

  • Git,以及 pnpm(推荐)或 npm。

  • 已安装并完成认证的本地 Codex。

  • 如需启用 DeepSeek RVA,另需 DeepSeek API 密钥;普通执行任务无需该密钥。

安装与运行

在项目目录执行:

pnpm install
pnpm run build
pnpm test

编译后的 MCP STDIO 入口是 dist/index.js。在启动服务的环境中指定要操作的目标仓库:

$env:RESEARCH_BRIDGE_REPO_ROOT = 'C:\path\to\target-repo'
$env:RESEARCH_BRIDGE_DATA_DIR = 'C:\path\to\bridge-data'
node .\dist\index.js

也可以将 Node.js 可执行文件及 dist/index.js 的绝对路径配置到支持 STDIO 的 MCP 客户端,并在该客户端的服务环境变量中设置上述路径。连接后先调用 bridge_health,再调用 repo_snapshot 检查目标仓库。

服务只将 MCP 协议消息写到标准输出;运行日志写到标准错误。服务会启动独立的后台 worker,因此 MCP 会话断开不等于取消已开始的任务。

配置

复制 .env.example 查看完整配置项。默认值由 src/config.ts 定义。常用设置如下:

环境变量

默认值

用途

RESEARCH_BRIDGE_REPO_ROOT

当前工作目录

Codex 操作的目标 Git 仓库

RESEARCH_BRIDGE_DATA_DIR

~/.research-bridge

SQLite 状态库及研究知识数据

RESEARCH_BRIDGE_AUDIT_DIR

本项目的 .agents/audit/bridge

审计日志目录

RESEARCH_BRIDGE_ALLOW_WORKSPACE_WRITE

0

是否允许任务请求写入工作区

RESEARCH_BRIDGE_ALLOW_NETWORK

0

是否允许任务请求网络访问

RESEARCH_BRIDGE_CODEX_MODEL

gpt-6-astra

Codex 默认模型

RESEARCH_BRIDGE_ALLOWED_MODELS

gpt-6-astra

可由调用方选择的模型列表

RESEARCH_BRIDGE_WORKER_READ_CONCURRENCY

4

同一仓库并行只读任务数上限

RESEARCH_BRIDGE_RVA_PROVIDER

CLAUDE_CODE_LEGACY_V1

RVA 提供方;也可选 DEEPSEEK_NATIVE_V1

DEEPSEEK_API_KEY

使用 DeepSeek 时必需

RESEARCH_BRIDGE_REPO_ROOT 可以与本项目目录不同。任务状态和知识数据保存在 RESEARCH_BRIDGE_DATA_DIR,审计日志保存在 RESEARCH_BRIDGE_AUDIT_DIR,不会自动写入目标仓库。

需要原生 DeepSeek RVA 时,设置 RESEARCH_BRIDGE_RVA_PROVIDER=DEEPSEEK_NATIVE_V1DEEPSEEK_API_KEY。支持通过 RESEARCH_BRIDGE_RVA_DEEPSEEK_ENDPOINTRESEARCH_BRIDGE_RVA_DEEPSEEK_MODEL 等变量调整请求参数。旧版 Claude Code RVA 仍可通过默认提供方使用;如需指定命令位置,设置 RESEARCH_BRIDGE_RVA_CLAUDE_PATH

密钥应放在进程环境或本地密钥管理器中。不要提交 .env、数据库、审计文件或运行日志。

典型任务流程

  1. bridge_health 确认配置,再用 repo_snapshot 检查目标分支和工作区状态。

  2. 调用 codex_start_task,保存返回的任务 ID。

  3. 使用 codex_statuscodex_events 查看进展;需要纠正时调用 codex_send_followup

  4. 通过 codex_diffcodex_artifacts 检查改动及产物。

  5. 对需要人工验收的任务,记录审查证据与最终裁决,再完成关闭流程。

研究任务还需要记录结果审查、调用 research_publish_knowledge(或明确说明无知识可发布),并作出后续实验决策。仅有 Codex 执行结束或文件存在,并不代表研究结论已经验收。

对于带 workstream 的任务,研究模式由审查者评审候选交接文件,再通过 workstream_accept_candidate 推进指针;可信执行模式由执行者按预先给定的下一任务决策推进。两种模式都要求校验任务、交接文件及 SHA-256 绑定。

本地数据与安全边界

  • 任务默认只读,且不允许网络访问。写入工作区或联网需要调用方请求,并同时得到主机配置允许。

  • MCP 客户端被视为可信调用方。服务没有针对任意本机进程的独立用户认证;不要把它作为公开 HTTP 服务暴露。

  • codex_diff 返回目标仓库的整体差异,其中可能包含任务开始前已有的未提交改动。审查时应结合任务基线。

  • 状态保存在 SQLite 中;审计事件另写入 events.jsonl 和可读的 audit.md。运行数据目录应由 bridge 管理。

  • 文件读取、搜索和事件分页均有上限;仓库路径会进行边界检查。

可选功能

**知识图谱浏览器:**运行 pnpm run knowledge:browser,默认访问 http://127.0.0.1:4317。页面只读取本地知识快照,不提供修改接口;可用 --data-root--port 指定数据目录与端口。

**ChatGPT 网页端连接:**可通过 OpenAI Secure MCP Tunnel 连接本地 STDIO 服务。项目提供 pnpm run tunnel:initpnpm run tunnel:doctorpnpm run tunnel:start,以及 Windows 启动器 scripts/tunnel.cmd。此方式用于受授权的个人组织或工作区;不要公开 tunnel 凭据。Tunnel 配置需要 CONTROL_PLANE_API_KEYRESEARCH_BRIDGE_TUNNEL_ID

历史研究迁移:research_migration_scan 只生成待确认候选,不会自动把历史材料写成权威结论。候选需通过 research_migration_resolve 明确确认或拒绝。

开发

pnpm run check
pnpm test
pnpm run build

源码在 src/,测试在 tests/,MCP 输入输出契约见 schemas/。修改服务代码后,需要重新构建并重启 MCP 服务和 worker,运行中的进程不会自动加载新版本。

许可证

本项目使用 MIT 许可证

Available Tools

27 tools
bridge_artifact_writeA
Idempotent

Atomically persist a text or structured reconstruction/source-registry artifact under an allowed bridge-owned data namespace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
namespaceYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and destructiveHint=false; the description adds non-obvious context by promising atomic persistence and scoping to an 'allowed bridge-owned data namespace'. No contradiction with annotations, but overwrite/conflict behavior is not detailed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no filler. The key guarantee ('Atomically') and the resource scope are presented first, and every phrase adds meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite concise atomic-write context and useful annotations, there is no output schema and no description of return values, path conventions, or error/overwrite behavior. For a required three-parameter write tool, an agent is left to infer too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema parameter descriptions are 0% covered, so the description must compensate. It tells the agent that content is text or structured and that the namespace is bridge-owned/allowed, but it says nothing about path semantics and gives only a vague type hint for content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb ('Atomically persist') and a specific resource ('text or structured reconstruction/source-registry artifact under an allowed bridge-owned data namespace'). It clearly separates this write tool from sibling read/search/review tools such as repo_read, repo_search, and rva_review_result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to prefer this tool over alternatives or when not to use it. It never references sibling tools or conditions such as 'use repo_read for reading' or 'use research_publish_knowledge for knowledge publication'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bridge_healthA
Read-onlyIdempotent

Check bridge configuration and target repository connectivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds context by specifying what is checked (bridge configuration and connectivity), but it does not describe the output format, error behavior, or what constitutes 'healthy'. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It conveys the essential purpose in seven words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only health check with annotations covering safety, the description is adequate. It states what is checked but does not specify the return value or success criteria. Given the tool's simplicity, this is reasonably complete, though a note on what 'healthy' means could improve it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is trivially 100%. The description adds no parameter info because there are none, which is appropriate. Baseline for zero parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'Check' and a clear resource 'bridge configuration and target repository connectivity'. It clearly differentiates from sibling tools like repo_snapshot or repo_read, which focus on repo content rather than health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It does not mention any prerequisites, alternatives, or conditions for use, leaving the agent to infer usage from the name and description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_abortA
Destructive

Request cancellation of a queued or running Codex task.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag the operation as destructive and non-read-only. The description adds the qualification that only queued or running tasks can be canceled, which is useful behavioral context. It does not detail side effects or response behavior, but the annotation coverage lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence that immediately communicates the action and scope. No filler words or redundant repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter cancellation tool with destructive annotations, the description provides enough to understand the basic call. Gaps include no information about expected response, error behavior for invalid task IDs, or side effects beyond the destructive hint. Given the annotations carry safety information, this is acceptable but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention task_id at all. The parameter is self-evident from the tool name and required schema, but the description adds no meaning beyond the schema's type and format constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Request cancellation') on a specific resource ('Codex task') with a scoping qualifier ('queued or running'). It clearly distinguishes itself from sibling tools like codex_status and codex_start_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use it (queued or running tasks), implying not to use it for completed tasks. It does not explicitly name alternative tools or provide when-not conditions beyond the state qualifier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_artifactsB
Read-onlyIdempotent

Check expected artifact paths and list all currently changed repository paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds some behavioral scope by naming what is checked and listed, but it doesn't disclose output shape, failure modes, or whether 'check' implies validation against a reference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no filler or redundant phrasing. It front-loads the core purpose and uses parallel structure effectively, though the dual-action phrasing could be slightly clearer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool, the description gives a reasonable idea of what the call accomplishes, but it lacks detail about return format and when to use it in a workflow. With no output schema, a small amount of extra context about what the caller receives would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description never mentions task_id or explains how it relates to the artifact paths being checked. The parameter is simple and self-descriptive by name, but the description provides no additional semantic value to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('check' and 'list') on specific resources ('expected artifact paths' and 'currently changed repository paths'). It is not a tautology, though it doesn't explicitly differentiate itself from sibling tools like repo_snapshot or codex_diff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to prefer this tool over alternatives or what conditions warrant its use. It does not mention exclusions, prerequisites, or relationships to sibling tools, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_auditB
Read-onlyIdempotent

Read a bounded page of machine-readable audit events and report their research-bridge paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
task_idYes
after_seqNo

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint and idempotentHint already covering the safety profile, the description contributes 'bounded page' pagination semantics, a machine-readable return format, and a concrete output claim (research-bridge paths). It adds meaningful context beyond the annotations and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 13-word sentence with the verb front-loaded. 'Bounded page,' 'machine-readable,' and 'research-bridge paths' each add a distinct constraint with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and zero parameter documentation, the burden falls on the description for return shape and cursor semantics. It hints the output contains research-bridge paths but never explains what those are, nor how after_seq and limit drive paging, so an agent can make a basic call but cannot page correctly or anticipate the response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain the three parameters to compensate. It only vaguely gestures at pagination with 'bounded page'; task_id — the sole required parameter — and the after_seq cursor are never mentioned, leaving their semantics to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ('Read') and a specific compound resource ('a bounded page of machine-readable audit events ... research-bridge paths'). The output focus on 'research-bridge paths' sets it apart from generic event readers like codex_events and the writer codex_record_audit_event, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance appears in the description. An agent choosing between codex_audit, codex_events, and codex_status gets no selection criteria, and the relationship to codex_record_audit_event is never clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_diffB

Return the current repository-wide staged and unstaged diff plus the task baseline reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries the burden of explaining side effects, but it only says 'Return.' It does not disclose whether the tool modifies state, updates the baseline reference, or requires special permissions. The readOnlyHint=false creates ambiguity with the read-like phrasing, though not a direct contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It states the core operation and scope immediately, making it easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and ambiguous annotations, the description is too thin. It does not define 'task baseline reference,' specify the output format, or clarify side effects and selection context. An agent can guess the basic operation but lacks enough detail to confidently choose this tool among siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no description for task_id (0% coverage), and the description only loosely references 'task baseline reference.' It does not explain how task_id is used, what valid values represent, or what happens if it is missing or invalid. The name and UUID format give some clues, but the description adds little meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Return') and a precise resource: 'current repository-wide staged and unstaged diff plus the task baseline reference.' This clearly distinguishes it from sibling tools like repo_read or repo_snapshot by naming the exact scope and output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a task-oriented diff use case but never states when to prefer codex_diff over alternatives such as repo_snapshot or repo_read. There is no explicit when/when-not guidance, only an implied reason for using the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_eventsA
Read-onlyIdempotent

Read ordered, append-only bridge and Codex events after a sequence cursor.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
task_idYes
after_seqNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the description does not need to repeat those. The description adds 'ordered, append-only' which clarifies the event stream nature, and 'after a sequence cursor' explains pagination. However, it does not disclose details like what happens when the cursor is out of range or whether events are ephemeral or persisted. Given annotations cover the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, lean sentence that front-loads the core operation and immediately mentions key constraints ('ordered, append-only') and the pagination mechanism. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters (1 required), no output schema, and no enums. The description conveys the core concept but does not explain the return format, the meaning of 'bridge' events, or how 'after_seq' interacts with ordering. For a read-only tool with annotations covering safety, it is adequate but could benefit from clarifying the return structure and edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'sequence cursor' which maps to the 'after_seq' parameter, giving some meaning. It also implies ordering. However, it does not explain 'limit' or 'task_id' beyond what the schema names suggest. The description adds the concept of a cursor but leaves 'task_id' and 'limit' to be inferred.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Read') and a specific resource ('ordered, append-only bridge and Codex events') with a mechanism ('after a sequence cursor'). It distinguishes the tool's purpose but does not explicitly differentiate it from siblings like codex_audit or codex_status, which could also involve reading events or status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning 'after a sequence cursor' which indicates a cursor-based pagination pattern, but it does not explicitly state when to use this tool versus alternatives like codex_audit or codex_status. It gives no explicit guidance on when not to use it or what conditions lead to using a sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_record_audit_eventA

Trusted ChatGPT/bridge governance only. final_verdict content: JSON {verdict: ACCEPTED|REJECTED|NEEDS_REVISION, reason?: string}. completion_obligation_settled: JSON {obligation_id: string, evidence_ref: string}. task_closed atomically requires ACCEPTED, settled obligations, drained execution and research gates. bridge.test_evidence machine payload: JSON {version:1, run_id:string, generation:integer, evidence_key:string, status:PASS|FAIL, exit_code:integer}, using current codex_status execution_binding. Both PASS and exit_code=0 are required for command verification. Legacy prose is audit-only. Executors cannot certify evidence or acceptance. Duplicate closure is idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
task_idYes
event_typeYes
related_pathsNo

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses governance restrictions, atomic task_closed requirements, idempotency of duplicate closure, the requirement that both PASS and exit_code=0 must hold, and the audit-only status of legacy prose. These are meaningful behavioral facts beyond the annotations, which only provide basic read/write/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries useful contract information, but the description is a dense, unstructured block mixing governance rules, payload schemas, and validation conditions. It lacks a brief purpose statement up front and would benefit from more explicit structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the most important governance and payload contract details needed to call the tool correctly, including atomicity, idempotency, and evidence verification rules. It leaves gaps around return values, task_id semantics, and related_paths usage, but the core event payload contracts are well specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden, and it provides detailed JSON shapes for major event types and the task_closed preconditions. It still does not clarify task_id or related_paths semantics, and leaves some event_type values (chatgpt.review, chatgpt.semantic_review) without explicit content contracts, so it is strong but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name and input schema clearly identify this as an audit-event recording tool, and the description adds precise event_type-specific payload contracts for final_verdict, completion_obligation_settled, and bridge.test_evidence. However, there is no explicit verb+resource sentence in the description itself, and it does not directly differentiate itself from siblings like codex_audit or codex_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a strong access boundary ('Trusted ChatGPT/bridge governance only') and states that executors cannot certify evidence or acceptance, which implies when it may be used. It does not explicitly name alternatives or define triggering conditions, leaving usage guidance mostly implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_send_followupA

Send a correction immediately to the active Codex turn. awaiting_closure accepts followups and invalidates prior verdict/obligation settlements; completed rejects followups (create a new task). If no turn is active, start a follow-up on the same thread when execution gates permit. Inspect followup.steered or followup.delivery_failed events for delivery confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
instructionYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations, such as invalidating prior verdict/obligation settlements and rejecting followups on completed turns. It also directs the user to inspect followup.steered or followup.delivery_failed events for delivery confirmation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loading the primary action, and the conditional details are packed into a single sentence. It is not verbose, though the second sentence is dense with multiple conditions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides adequate context for typical use, including success/failure detection through events, but does not detail error scenarios or what happens if the turn is not active beyond a brief mention, leaving some edge cases unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% coverage from the description, and the description does not explain the semantics of task_id or instruction. It implies the correction content, but does not explicitly map parameters to their roles, leaving the agent to infer.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Send a correction immediately to the active Codex turn' with a specific verb and resource, and distinguishes itself by addressing conditions like awaiting_closure vs completed, which sets it apart from siblings like codex_start_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: 'awaiting_closure accepts followups' and 'completed rejects followups (create a new task)', giving clear alternatives. It also notes the condition for starting a follow-up when no turn is active.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_start_taskA

Start a background Codex turn. EXECUTION_ONLY workstreams require accepted_handoff_path/sha256 and explicit next_workstream: TASK with exact task_id/task_ref or NONE. Omission and legacy next_workstream_task_* inputs are errors. Uses TRUSTED_EXECUTOR_AUTO_ADVANCE with worker-owned DoD and mechanical pointer-only closure. RESEARCH retains candidate/review/RVA acceptance. Without workstreams, completion_policy is MANUAL, BRIDGE_AUTO_MACHINE_VERIFIED, or BRIDGE_AUTO_TRIVIAL; execution-only with zero required obligations defaults to trivial, required obligations to MANUAL.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
modelNo
sandboxNo
task_kindNo
instructionYes
rva_requiredNo
workstream_idNo
network_accessNo
next_workstreamNoRequired for EXECUTION_ONLY workstreams: TASK with exact id and hash-pinned ref, or explicit NONE. Omission is a hard error.
route_rationaleNo
research_programNo
route_decided_byNo
completion_policyNo
research_contractNo
research_cycle_idNo
expected_artifactsNo
rva_fallback_policyNo
accepted_handoff_pathNo
completion_obligationsNo
accepted_handoff_sha256No
next_workstream_task_idNoDeprecated; rejected. Use next_workstream.
next_workstream_task_refNoDeprecated; rejected. Use next_workstream.
research_cycle_link_modeNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds substantial behavioral detail: it mentions the TRUSTED_EXECUTOR_AUTO_ADVANCE mechanism, worker-owned DoD, error conditions for omitted/deprecated inputs, and the specific default completion policies. This goes well beyond the sparse annotations, though it does not describe the return value or potential side effects in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph but is not overly long relative to the complexity. It front-loads the core action ('Start a background Codex turn') and then packs constraints efficiently. No unnecessary filler; every sentence conveys a specific constraint or behavior. It could benefit from bullet points for readability, but the content is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite covering workstream logic and completion policies, the description leaves many parameters unexplained, including nested objects like research_program and research_contract, which are essential for RESEARCH workstreams. With only 13% schema description coverage and no output schema, an agent would lack sufficient context to correctly construct the full request. The description is inadequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 13%, the description compensates for the most critical parameters: it explains the next_workstream structure, the requirement for accepted_handoff_path/sha256 in EXECUTION_ONLY, and the behavior of completion_policy. However, it does not clarify many other parameters such as research_program, research_contract, expected_artifacts, or rva_fallback_policy, leaving a significant gap for a tool with 23 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Start a background Codex turn.' It uses a specific verb ('Start') and resource ('background Codex turn'), and the details about workstream types and policies distinguish it from sibling tools like codex_send_followup or codex_abort, which serve different lifecycle stages. The purpose is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when different configurations apply (e.g., EXECUTION_ONLY vs RESEARCH) and clarifies error conditions, but it does not explicitly name alternative tools or conditions under which an agent should choose this over a sibling. The guidance is more about parameter requirements than tool selection, leaving the agent to infer alternatives from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

codex_statusA
Read-onlyIdempotent

Return persisted task plus execution_status, execution_binding (run_id/generation), closure_status, closure_blockers and exact next_workstream TASK/NONE decision (null for legacy/missing/not applicable; never inferred). DRAINED/awaiting_closure consumes no executor slot. COMPLETED means manual or bridge policy closure. AUTO_BLOCKED reports stable verifier reasons; legacy/v1 stays manual without fabricated acceptance.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A3.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, covering the safety profile. The description goes beyond by explaining nuances: 'never inferred' for next_workstream, null for legacy/missing, DRAINED consumes no executor slot, and COMPLETED means manual/bridge policy closure. This adds rich behavioral context and is consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the primary purpose. It efficiently packs multiple status semantics into a few sentences without fluff. It could be slightly better structured (e.g., bullet points) but remains appropriately concise for the information it conveys.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description explains the return fields and their meanings comprehensively, including edge cases like legacy/v1 behavior and the 'never inferred' rule. It covers the key behavioral aspects an agent needs to interpret results correctly, making it complete for a status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has a single required task_id with 0% description coverage. The description never mentions task_id, its format, or its semantics. Since schema coverage is low, the description must compensate, but it does not address the parameter at all, leaving the agent to infer from the schema's format field alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and a clear resource ('persisted task') with detailed fields (execution_status, execution_binding, closure_status, etc.). It clearly identifies the tool's function and its scope is distinct from siblings by focusing on codex task status, making it easy to select appropriately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It provides contextual meaning of statuses (e.g., DRAINED, COMPLETED) which aids understanding, but it does not mention any exclusions or alternative tools. Usage is implied by the name and the fact that it returns status details, not explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repo_readB
Read-onlyIdempotent

Read a bounded line range from a UTF-8 text file inside the target repository.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
end_lineNo
start_lineNo
start_characterNo

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the description only needs to add context beyond those. It does add the UTF-8 text file requirement and the bounded line range behavior, which is useful. However, it does not disclose error behavior, encoding handling, or edge cases like out-of-bounds lines, so it only partially covers the burden with the low bar set by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tight sentence that states the action and key constraints without filler. It is appropriately concise, though it could front-load the parameter semantics to be more useful. No excess words, so it earns a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with four parameters (one required), no output schema, and zero schema descriptions, the description is minimal. It does not explain the start_character parameter, line indexing conventions, file-not-found behavior, or how bounds are interpreted. An agent cannot reliably call this tool correctly without additional inference, so completeness is low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has zero descriptions for all four parameters, so the description must compensate. It only mentions a 'bounded line range', which explains start_line and end_line at a high level, but leaves start_character entirely unexplained, and doesn't clarify whether lines are zero-based, inclusive, or what happens with missing bounds. This is insufficient given the 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb (read), a precise resource (a bounded line range from a UTF-8 text file inside the target repository), and the constraints (bounded, UTF-8, repository-scoped). This distinguishes it from siblings like repo_search or repo_snapshot without needing to inspect schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reading a specific file's lines but does not explicitly state when to use this versus alternatives like repo_search, repo_snapshot, or codex_diff. There is no when/when-not guidance or named sibling, leaving the agent to infer based on the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repo_snapshotA
Read-onlyIdempotent

Return the target repository branch, commit, dirty status, and top-level entries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description says 'Return' which aligns with these annotations. It does not add context beyond the annotations—no mention of what 'dirty status' means, how top-level entries are presented, or any edge cases. Given the annotations, a score of 3 is appropriate: consistent but not additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the core purpose. Every word earns its place with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only snapshot tool, the description is adequately complete. It names the four elements returned (branch, commit, dirty status, top-level entries). The absence of an output schema and the simplicity of the tool mean the description carries the full burden, and it does so sufficiently. Slightly more detail about the format of 'dirty status' or 'top-level entries' could push it to a 5, but it is not critically missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema description coverage is 100% (since there is nothing to describe). The baseline for no parameters is 4, and the description does not need to explain any parameter semantics. No credit lost here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns repository branch, commit, dirty status, and top-level entries. It is specific about the resource and the data provided, distinguishing it from sibling tools like repo_read (which likely reads file contents) and repo_search (which searches). However, it does not explicitly name alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as repo_read or repo_search. It does not mention any conditions, prerequisites, or scenarios where this snapshot tool is preferable. The agent is left to infer its use case from the name and description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_cycle_statusC
Read-onlyIdempotent

Return the durable research-cycle artifacts, gate settlements, reviews, and linked finite Codex tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds some context by naming the categories of returned data, but it discloses no edge-case behavior, error conditions, or whether results are scoped to a specific cycle.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the action verb, and contains no redundant filler. It is concise, though the domain jargon like 'durable research-cycle artifacts' and 'gate settlements' reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema, the description is too thin: it omits task_id semantics, output structure, and how this status tool relates to the many sibling tools. The broad list of return categories is helpful but not sufficient for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one required task_id parameter with 0% description coverage, and the description never mentions task_id at all. It does not explain what task_id identifies, how it relates to the research cycle, or what values are meaningful, leaving the agent to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a clear verb ('Return') and a specific resource: durable research-cycle artifacts, gate settlements, reviews, and linked finite Codex tasks. This is more informative than a generic status description, though it does not explicitly differentiate itself from sibling research/rva tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as research_knowledge_status, rva_review_result, or research_record_settlement_decision. The read-only annotations imply a status-checking use case, but the description itself provides no selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_knowledge_statusB
Read-onlyIdempotent

Read the authoritative research graph/ledger snapshot and separately listed migration candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the description does not need to restate safety. It adds that this is the 'authoritative' snapshot and that migration candidates are 'separately listed,' which is useful context. However, it does not disclose output format, freshness, or what the snapshot actually contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with the verb and resource front-loaded, containing no filler. The phrase 'separately listed' is slightly awkward, but overall the description is efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument read-only tool with safety annotations, the core action is covered. However, the return content is vague—'snapshot' and 'separately listed migration candidates'—and the description does not clarify how this differs from sibling status tools. With no output schema, a bit more detail about what the returned data contains would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the input schema is empty, so parameter semantics are inherently complete. The description appropriately focuses on what is read rather than inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a read operation ('Read') and the resource ('authoritative research graph/ledger snapshot and separately listed migration candidates'). It is distinguishable from mutation siblings, though 'separately listed migration candidates' is somewhat vague and could overlap with research_migration_scan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is given on when to use this tool over alternatives such as research_cycle_status or research_migration_scan. The read-only nature implies a status-checking use case, but no conditions, exclusions, or sibling comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_migration_resolveA
Idempotent

Explicitly confirm or reject one PROPOSED migration candidate with an auditable actor and reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
actorYes
actionYes
reasonYes
candidate_idYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds that the action is 'auditable' (requires actor and reason), which is a behavioral trait not in annotations. It also clarifies it applies to 'PROPOSED' candidates, implying a state transition. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states the purpose without waste. The key elements (confirm/reject, candidate, auditable) are all present in a compact form.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action but omits what happens after the call (e.g., state change, return value) and any prerequisites (e.g., candidate must exist and be in a certain state). With no output schema and a write operation, more context would be needed for full completeness, though the idempotent hint and non-destructive annotation mitigate some risk.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'actor' and 'reason' indirectly via 'auditable actor and reason', but does not explain candidate_id or the meaning of action beyond the enum. The action enum is self-explanatory, but candidate_id is undocumented. This is a significant gap for a 4-param required tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (confirm/reject) and the resource (PROPOSED migration candidate), and distinguishes it from siblings like research_migration_scan (which likely scans) and workstream_accept_candidate. The verb+resource combination is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: when you need to explicitly confirm or reject a proposed migration candidate. It doesn't explicitly exclude alternatives, but the context of sibling tools (scan, review, etc.) makes the intended use clear. Slight deduction for not naming alternatives directly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_migration_scanA
Idempotent

Offline bounded scan of the target repository (default) or bridge-owned data. Extracted artifacts remain PROPOSED.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
max_filesNo
path_prefixNo

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: the scan is 'offline' and 'bounded', and extracted artifacts remain 'PROPOSED'—clarifying that nothing is finalized or written. This goes beyond the annotations and helps an agent understand side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, and the most important qualifiers ('offline bounded', 'PROPOSED') are front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only scan with idempotentHint and no output schema, the description covers the key behavioral facts: offline, bounded, and non-final artifacts. However, it does not explain what the output looks like, how results are returned, or how path_prefix and max_files shape the scan. Given the tool's moderate complexity and zero schema description coverage, a bit more detail would be warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, but it only explains the source parameter implicitly ('default' vs bridge-owned data). It does not explain max_files or path_prefix semantics, though their names are fairly self-explanatory. The description adds some context for source but leaves the other two parameters to be inferred from names and schema constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('scan') and resource ('target repository' or 'bridge-owned data'), and adds the key qualifier 'offline bounded'. It distinguishes itself from siblings like repo_read and repo_search by emphasizing the scan is offline and bounded, though it doesn't explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it is a scan of the target repository or bridge-owned data, and the 'default' wording suggests the source parameter is optional. However, it does not explicitly state when to prefer this over repo_read, repo_search, or repo_snapshot, nor does it provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_publish_knowledgeA
Idempotent

Required post-result step for a research cycle. Call this exact tool after the latest ResultClaim has an acceptable settled mandatory RESULT_REVIEW and before any follow-up decision, next-experiment proposal, cycle closure, or linked execution. task_id MUST be the latest execution task UUID (the latest executionTaskIds entry / ResultClaim.executionTaskId), never the research cycle UUID. Use PUBLISH_AUTHORITATIVE to project the reviewed ResultClaim into deterministic Evidence and publish it directly to the authoritative Knowledge Graph. Use NO_KNOWLEDGE_TO_PUBLISH only when no reusable knowledge exists and provide a non-empty reason. The same action is idempotent, and no separate confirmation is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes
reasonNo
task_idYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that the tool projects a reviewed ResultClaim into deterministic Evidence)Skip and publishes it directly, and that the action is idempotent with no separate confirmation required. This aligns with and adds context beyond the idempotentHint annotation fran. It does not cover permissions or failure behavior, but the annotations already signal non-read-only and non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place: it front-loads the tool's mandatory role, then explains ordering, task_id selection, action semantics, and idempotence. There is no filler or repetition beyond what is structurally necessary for the complex workflow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-complexity workflow tool with no output schema, the description covers the key invocation context, parameter semantics, action variants, and idempotence. It does not describe return values, possible errors, or what happens if the latest ResultClaim is not acceptable, but it explicitly says no confirmation is required, which reduces that ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden for parameters. It explains task_id must be the latest execution task UUID, specifically the latest executionTaskIds entry or ResultClaim.executionTaskId, and never the research cycle UUID. It also gives semantic meaning to both action enum values and specifies that a non-empty reason is needed for NO_KNOWLEDGE_TO_PUBLISH.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines this as a required post-result publishing step, with a specific resource ('publish it directly to the authoritative Knowledge Graph') and two concrete action modes. It also disambiguates its position in the research cycle by stating it runs after RESULT_REVIEW and before follow-up decisions or cycle closure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit ordering conditions: call after an accepted settled RESULT_REVIEW and before follow-up decisions, next-experiment proposals, cycle closure, or linked execution. It also gives clear conditional guidance for NO_KNOWLEDGE_TO_PUBLISH. It does not explicitly name alternative sibling tools, so the boundary is clear in pipeline terms but not tool-comparison terms.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_record_followup_decisionA

After settled result review, explicitly record NO_NEXT_EXPERIMENT or DEFERRED. Formal NEXT_EXPERIMENT_PROPOSED is recorded by rva_review_next_experiment and must settle before closure/linking.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
decisionYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description conveys that this is a state-recording write action with workflow sequencing constraints. However, it does not disclose whether an existing decision is overwritten, what the response looks like, or what happens if called in the wrong state. Annotations provide no read-only or idempotency protection, so more behavioral detail would have helped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core action and allowed values are front-loaded, and the routing caveat is placed second. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter state-recording tool, the description plus schema provides enough to select and invoke it correctly: when it applies, what to pass, and how it relates to the sibling workflow tool. Missing details like overwrite semantics and return values are minor given the tool's low complexity and absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the parameter-semantics burden. It does add workflow context to the decision parameter by enumerating the valid choices and routing NEXT_EXPERIMENT_PROPOSED elsewhere, but it never defines task_id's referent or explains the practical meaning of DEFERRED versus NO_NEXT_EXPERIMENT. This is only partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('record') with a clear resource ('followup decision') and explicitly names the two allowed outcomes. It also differentiates this tool from rva_review_next_experiment, so an agent can tell them apart without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when the tool applies ('after settled result review'), which decisions belong here, and which decision belongs to a sibling tool. The condition that NEXT_EXPERIMENT_PROPOSED must settle before closure/linking gives actionable workflow ordering.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_record_settlement_decisionA
Idempotent

Record the orchestrator's content-based conclusion and next step, bound to the latest settled gate outcome. Required after scientific RVA budget exhaustion before publication, closure, or next execution. Address every objection from both rounds with evidence, preserve unsupported conclusions, and bound any experiment. A decision cannot clear a FAIL_CLOSED provider-failure gate; use rva_retry_unavailable_review after provider recovery.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
decisionYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a non-readonly, idempotent, non-destructive write, so the description does not need to restate that safety profile. The description adds meaningful behavioral constraints: every objection from both rounds must be addressed with evidence, unsupported conclusions must be preserved, experiments must be bounded, and FAIL_CLOSED provider-failure gates cannot be cleared through this tool. This is valuable context beyond what the annotations or schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, and each sentence earns its place: purpose, required timing, content obligations, and the fail-closed exception. The core purpose is front-loaded before policy details and alternative routing. There is no filler or redundant restatement of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has a complex nested decision schema, but the description supplies the missing policy context: when the call is required, what content obligations apply, and which gate failure must be routed to rva_retry_unavailable_review. The schema already documents structure, enums, required fields, and additionalProperties constraints. No critical invocation information is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, and it compensates well for the nested decision object: 'Address every objection... with evidence, preserve unsupported conclusions, and bound any experiment' maps to objections, evidenceRefs, unsupportedConclusions, and experimentBudget. It also links 'bound to the latest settled gate outcome' to outcomeId. It does not explicitly discuss task_id, but the parameter name and UUID schema make its role unambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening verb 'Record' names the action and the object: 'the orchestrator's content-based conclusion and next step, bound to the latest settled gate outcome.' It clearly distinguishes this from review/follow-up/retry siblings by specifying a distinct record-keeping operation with a specific trigger condition. This is not a tautology and gives the agent a concrete sense of what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when the tool is required: 'after scientific RVA budget exhaustion before publication, closure, or next execution.' It also provides an explicit exclusion and alternative: 'A decision cannot clear a FAIL_CLOSED provider-failure gate; use rva_retry_unavailable_review after provider recovery.' This gives the agent clear selection guidance versus a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rva_challenge_resultB

Backward-compatible alias: record any typed result disposition and queue the generic mandatory result-review gate.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
result_claimYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-idempotent operation. The description adds the side effect of queueing a generic mandatory review gate and accepting any typed disposition, which is useful context. However, it does not explain what the queued gate does, whether the operation can be retried, or what downstream effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single terse sentence with no filler, and the alias status is front-loaded. It is compact and scannable, though the brevity comes at the cost of important operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a complex required result_claim object, no output schema, and minimal annotations, yet the description does not explain what fields are required, what dispositions are allowed, or what the result-review gate entails. An agent would not have enough context to construct a valid invocation without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should explain task_id and result_claim, but it only vaguely references 'typed result disposition'. It does not mention task_id, the required nested fields, or the meaning of the disposition values, leaving agents to infer the structure entirely from the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a concrete action: record any typed result disposition and queue the mandatory result-review gate. It is not a tautology and includes alias status, but it does not explicitly name the tool it aliases or differentiate itself from siblings like rva_review_result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as rva_review_result or rva_review_next_experiment. The phrase 'Backward-compatible alias' hints at legacy usage but does not state conditions, exclusions, or when another tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rva_retry_unavailable_reviewA

Explicitly retry the latest RESULT_REVIEW or NEXT_EXPERIMENT_REVIEW after a FAIL_CLOSED RVA provider failure. The original artifact and failure remain auditable. A settlement decision, including BOUNDED_EXPERIMENT, cannot replace a successful RVA review. Scientific review rounds retain their original limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
gate_typeYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral context beyond the annotations: the original artifact and failure remain auditable, settlement cannot replace a successful review, and scientific review rounds keep their original limit. Since annotations declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, the description's extra constraints on auditability and round limits are valuable and do not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, each adding distinct value: the action, the audit preservation, the settlement exclusion, and the round-limit preservation. It is front-loaded with the core behavior and has no filler or redundant restating of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter retry tool, the description is largely complete: it states the trigger, the target gate types, and important invariants. It does not describe what happens if there is no previous failed review or mention the return/error behavior, but those gaps are acceptable given the focused scope and the presence of annotations covering safety characteristics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains the gate_type values by naming RESULT_REVIEW and NEXT_EXPERIMENT_REVIEW, and 'latest' implies task_id identifies the task whose most recent failed review should be retried. However, it never explicitly describes task_id's role or how it relates to the gate_type, leaving the agent to infer that from the tool name and context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('retry'), a precise resource ('the latest RESULT_REVIEW or NEXT_EXPERIMENT_REVIEW'), and a clear condition ('after a FAIL_CLOSED RVA provider failure'). This distinguishes it from the sibling review tools like rva_review_result and rva_review_next_experiment, which initiate rather than retry a review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly scopes usage to FAIL_CLOSED provider failures and warns that settlement decisions, including BOUNDED_EXPERIMENT, cannot substitute for a successful RVA review. It does not explicitly name the alternative tools to use in other situations, but the conditions and exclusions are concrete enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rva_review_contractC

Submit a new or revised typed Research Contract without RVA review; the updated contract is persisted and the task is queued for execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
research_programNo
research_contractYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-read-only (write operation) and no idempotency, but description adds that the contract is 'persisted' and the task is 'queued for execution'. This is useful context beyond annotations. However, it doesn't disclose if this overwrites existing contracts, whether it requires existing task state, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is one sentence, front-loaded with the core action and scope. It clearly states the result (persisted, queued). It adds the key distinction 'without RVA review' upfront. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and nested objects, the description is minimal. It doesn't explain the difference between this and rva_review_next_experiment or how the research_program fits in. With no output schema, it doesn't describe return values or errors. But annotations cover mutation semantics partially, and the schema provides structure. Agent might need more context to select correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the schema itself defines required fields and structure. The description mentions 'typed Research Contract' which implies the research_contract parameter structure, and the task_id is referenced by 'the task'. However, it does not explicitly describe research_program parameter, which is not required but present. Baseline 3 is appropriate as the schema is rich enough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Submit a new or revised typed Research Contract without RVA review'. It clarifies that the contract is persisted and the task is queued. However, it doesn't fully distinguish from sibling tools like rva_review_next_experiment or rva_challenge_result, and the term 'without RVA review' is an important distinguishing trait but not explicitly contrasted with alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when submitting a contract without RVA review, but provides no explicit guidance on when to use this versus rva_review_next_experiment or other RVA tools. No exclusions or alternative conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rva_review_next_experimentB

Record a next-experiment proposal. Each execution step permits at most two RVA rounds across revisions. The final rejecting round releases the gate immediately while preserving objections; record research_record_settlement_decision before linking execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
proposalYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false (readOnly, idempotent, destructive), so the description carries the full behavioral burden and does well: it discloses the at-most-two-rounds constraint, the immediate gate release on final rejection, and the preservation of objections. No contradiction with annotations. It leaves out auth requirements or reversibility, but the disclosed gate/round semantics are genuinely useful context beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with the purpose front-loaded in sentence one and workflow context following. It is compact with no redundancy, though the dense domain jargon (RVA rounds, 'releasing the gate', 'preserving objections') slightly reduces immediate readability for an agent without RVA context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a mutation tool with no output schema, sparse annotations, and 0% parameter coverage, the description must compensate heavily but does not. It explains workflow sequencing well but omits what the response contains, what success/failure looks like, and any guidance on the complex proposal structure. For a tool with a highly nested required object, this is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the proposal parameter is a deeply nested object with 13+ fields (abstractionLevel, discriminativeValue, decisionUnlocked, cleanValidationDataCost, etc.) that are entirely unexplained. The description does not clarify any parameter's meaning, format, or how required fields interrelate. For a nested object of this complexity, the lack of parameter guidance is a severe gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence 'Record a next-experiment proposal' states a clear verb+resource pair. However, with siblings like rva_review_contract, rva_review_result, and rva_challenge_result present, the description does not differentiate what makes this proposal distinct from those review/challenge records, so it stops short of full sibling disambiguation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides genuine procedural guidance: a two-round cap per execution step, the final rejecting round's gate-release behavior, and an explicit ordering prerequisite ('record research_record_settlement_decision before linking execution'). This names a specific sibling prerequisite, though it never states explicit exclusions or alternative conditions, so it earns a 4 rather than a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rva_review_resultA

Record a FAVORABLE, NULL, ADVERSE, INCONCLUSIVE, or FEASIBILITY_ONLY result bound to the latest completed execution and canonical artifact hashes, then queue mandatory RVA result review.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
result_claimYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-idempotent operation, so the description need not repeat that. It adds valuable context by specifying the binding to the latest execution and canonical artifact hashes and the mandatory queueing of review, which are not in the annotations. However, it doesn't disclose side effects like overwriting previous results or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single sentence that front-loads the action and the allowed dispositions. It is concise and to the point, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a complex nested parameter and no output schema, the description is too high-level. It omits essential details such as the required fields within result_claim (schemaVersion, claim, evidenceSummary, contractId, limitations, proposedResearchStateAdvance) and the meaning of task_id. An agent would need to inspect the schema to construct a valid call, which the description does not compensate for.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not elaborate on task_id or the required structure of result_claim. It only hints at binding to hashes, leaving the agent to infer that the nested object contains artifact and hash fields. This is insufficient given the complexity of the result_claim object with multiple required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Record a FAVORABLE, NULL, ADVERSE, INCONCLUSIVE, or FEASIBILITY_ONLY result bound to the latest completed execution and canonical artifact hashes, then queue mandatory RVA result review.' It specifies a verb, resource, and the distinct disposition set, distinguishing it from sibling tools like rva_review_contract and rva_challenge_result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a clear use case (recording a result and queueing review) but does not explicitly mention when not to use it or contrast it with alternatives like rva_challenge_result or rva_retry_unavailable_review. There is no guidance on conditions that would make another tool more appropriate, so the agent must infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

workstream_accept_candidateA
Idempotent

Trusted ChatGPT/bridge governance only. Accept a reviewed agent-workstream-context-v1 CANDIDATE, create its immutable accepted handoff, and atomically advance the configured target repository. Requires a persisted chatgpt.review ACCEPTED JSON binding candidate, prior current SHA-256/revision/handoff, and next task. Task completion/auto-close never authorizes this action. Repeating the same committed transition is idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
next_task_idYes
next_task_refYes
workstream_idYes
candidate_pathYes
review_task_idYes
candidate_sha256Yes
review_event_seqYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false), the description adds meaningful behavioral details: the created handoff is 'immutable', the advancement is 'atomic', and idempotency is reiterated for the same committed transition. It also warns about authorization boundaries. These traits are not present in structured annotations, so the description adds real value here.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it starts with the governance constraint, then the primary action, then prerequisites and a guardrail. Each sentence provides distinct information. It is slightly dense but not wasteful. A small trim would improve it, but it remains appropriately structured and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex, 7-parameter mutation tool with no output schema and no parameter descriptions. The description omits essential operational context such as what each parameter means, how the 'configured target repository' is identified, what success/failure responses look like, and how the tool uses the provided SHA-256 values. An agent would struggle to construct a correct invocation without additional documentation. The description is not complete enough for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain the individual parameters. It references 'candidate', 'prior current SHA-256/revision/handoff', and 'next task' at a conceptual level, but does not map them to the 7 required parameters (e.g., review_task_id, review_event_seq, workstream_id, candidate_path). The nested object next_task_ref also lacks a clear relationship to the described workflow. With no schema-level descriptions, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies an exact action ('Accept a reviewed agent-workstream-context-v1 CANDIDATE'), the resource type, and the subsequent effects ('create its immutable accepted handoff, and atomically advance the configured target repository'). It also adds a governance boundary ('Trusted ChatGPT/bridge governance only') that distinguishes it from general-purpose tools. This clearly identifies the tool's unique role among the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit prerequisites ('Requires a persisted chatgpt.review ACCEPTED JSON binding candidate, prior current SHA-256/revision/handoff, and next task') and a clear when-not ('Task completion/auto-close never authorizes this action'). It also specifies the trusted governance context, which indicates who may use it. However, it does not name alternative tools or state when to prefer a sibling, so it's not a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 27 tool updatesv0.1.0
    • First observedbridge_artifact_write
    • First observedbridge_health
    • First observedcodex_abort
    • First observedcodex_artifacts
    • First observedcodex_audit
    • First observedcodex_diff
    • First observedcodex_events
    • First observedcodex_record_audit_event
    • First observedcodex_send_followup
    • First observedcodex_start_task
    • First observedcodex_status
    • First observedrepo_read
    • First observedrepo_search
    • First observedrepo_snapshot
    • First observedresearch_cycle_status
    • First observedresearch_knowledge_status
    • First observedresearch_migration_resolve
    • First observedresearch_migration_scan
    • First observedresearch_publish_knowledge
    • First observedresearch_record_followup_decision
    • First observedresearch_record_settlement_decision
    • First observedrva_challenge_result
    • First observedrva_retry_unavailable_review
    • First observedrva_review_contract
    • First observedrva_review_next_experiment
    • First observedrva_review_result
    • First observedworkstream_accept_candidate

TDQS

B3.4/5.0

Scored across 27 tools

Disambiguation4/5

Most tools are clearly distinct with specific purposes (e.g., repo_read vs repo_search, codex_status vs codex_events). However, a few pairs like rva_challenge_result/rva_review_result and research_record_followup_decision/research_record_settlement_decision are close in function and could be misselected without careful reading.

Naming Consistency4/5

Tool names consistently use snake_case with domain-specific prefixes (repo_, codex_, research_, rva_, bridge_, workstream_), and most follow a verb_noun pattern (e.g., repo_read, codex_start_task). The consistency is strong, though some longer names like research_record_settlement_decision mix multiple nouns but remain readable.

Tool Count2/5

With 27 tools, the surface is heavily populated for a single server. Even for a complex research-bridge system with Codex integration, the count exceeds the typical threshold and may overwhelm agents, increasing the risk of misselection and cognitive load.

Completeness4/5

The tool set covers the full workflow: repository inspection, Codex task lifecycle (start, status, events, abort, followup), research cycle status, knowledge publishing, migration handling, RVA reviews, and governance actions. Minor gaps exist (e.g., no direct tool for reading knowledge graph entries, only status), but the core lifecycle appears complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides bounded repository context and edit-grant MCP tools to coding agents such as Codex, indexing local repositories and enabling fingerprint-checked patch application.
    15
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Grok Build to orchestrate the local Codex CLI for code reviews, adversarial reviews, task rescue, session transfer, and background job management through MCP tools.
    1
    Apache 2.0