ONES Doc MCP
Read-only MCP server that fetches ONES docs, requirements, tasks, bugs, and their linked resources from an intranet ONES instance (auth via username/password or reused browser session).
Search & read docs:
search_docsfor keyword lookup;get_docreturns LLM-friendly Markdown (plus optional raw content and resource list) from a full ONES wiki URL or#12345requirement ref.Progressive long-doc reading:
get_doc_outlinefor section paths/size metadata, thenget_doc_sectionor cursor-basedget_doc_chunks;get_doc_contextauto-selects sections/chunks for a given question.Requirement workflows:
get_requirement_detail_by_ref(body, fields, related tasks),get_execution_tasks_by_ref,list_requirement_bugs_by_ref,extract_requirement_materials_by_ref(wiki pages, external links, images, completeness hints).Bug workflows:
get_bug_detail_by_ref(body, severity, priority, related tasks) andget_bug_parent_requirement_by_refto trace a bug back to its parent requirement.Task context:
get_task_messages_by_reffor comments/messages,get_related_wiki_pages_by_reffor linked wiki pages,get_task_rich_resources_by_reffor inline images.Resource download:
download_ones_resource(URL-based, returns file metadata + base64) anddownload_ones_resource_by_id(stableresource_id, returns MCP nativeImageContent).Ref resolution & compatibility:
resolve_requirement/resolve_bugand the*_by_refvariants parse numbers, task ids, or task URLs into standard entities with candidates and resolution paths; thetask_id-based tools remain for known ids or debugging.Machine-friendly output: every tool returns readable JSON text plus MCP
structuredContentwith typed output schemas; all tools are read-only, idempotent, and non-destructive.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ONES Doc MCPsearch for documents containing 'quarterly report'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ONES Doc MCP
用于内网环境的 ONES 文档读取 MCP Server。支持两种鉴权方式:
账号密码登录
浏览器已登录态复用
环境要求
Node.js 20.19.0+
可访问 ONES 内网地址
ONES 账号或已登录浏览器会话
Related MCP server: docsearch
环境变量
复制 .env.example 为 .env 并填写。以下两组选一种即可:
ONES_BASE_URL:ONES 内网根地址ONES_USERNAME:登录账号,账号密码模式必填ONES_PASSWORD:登录密码,账号密码模式必填ONES_TEAM_ID:默认 ONES 项目团队 ID;纯#12345这类工作项编号入口需要,完整 task URL 可从 URL 里解析 team idONES_AUTH_TOKEN:浏览器会话里的 Bearer token,会话复用模式可选但建议提供ONES_COOKIE:浏览器会话里的 Cookie,会话复用模式可选但建议提供ONES_ORIGIN:请求使用的 Origin,可选,默认回落到ONES_BASE_URLONES_REFERER:请求使用的 Referer,可选,默认回落到${ONES_BASE_URL}/project/ONES_USER_AGENT:请求使用的 User-Agent,可选;账号密码模式下未配置时默认使用企微风格 UAONES_TIMEOUT_MS:请求超时,可选,默认15000ONES_MAX_CONTENT_CHARS:正文最大长度,可选,默认20000ONES_OCR_PROVIDER:OCR 提供方,可选,当前支持httpONES_OCR_ENDPOINT:OCR 服务地址,可选ONES_OCR_API_KEY:OCR 服务鉴权 token,可选ONES_OCR_TIMEOUT_MS:OCR 请求超时,可选,默认15000
示例中的敏感信息请替换为你自己的值,不要把真实账号密码提交到仓库或直接写进公开文档:
ONES_BASE_URL=https://ones.example.internalONES_USERNAME=your_username@example.comONES_PASSWORD=your_password_here
或者:
ONES_BASE_URL=https://ones.example.internalONES_AUTH_TOKEN=your_browser_bearer_tokenONES_COOKIE=ones-lt=...; ones-ids-sid=...ONES_USER_AGENT=Mozilla/5.0 ...
单独包用法
这个包本质上是一个基于 stdio 的 MCP Server。单独运行时会等待 MCP 客户端连接,不会像普通 CLI 那样输出交互式菜单。
仓库内部已经按 transport 分层,默认入口仍只启用 stdio;未来如果需要接入 Streamable HTTP,可以在不改工具实现的前提下扩展新的 transport。
直接通过 npm 包运行
npx -y @bakarhythm/get-doc-content运行本地构建产物
npm install
npm run build
node dist/src/index.js本地开发模式
npm install
npm run devMCP 用法
在 Codex 中使用
~/.codex/config.toml 示例:
[mcp_servers.getDocContent]
type = "stdio"
command = "npx"
args = ["-y", "@bakarhythm/get-doc-content@latest"]
[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_USERNAME = "your_username@example.com"
ONES_PASSWORD = "your_password_here"如果你的 ONES 租户依赖浏览器登录态,也可以直接注入会话:
[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_AUTH_TOKEN = "your_browser_bearer_token"
ONES_COOKIE = "ones-lt=...; ones-ids-sid=..."
ONES_USER_AGENT = "Mozilla/5.0 ..."如果你想优先验证本地修复,而不是使用 npm 上的已发布版本,也可以直接指向本地构建产物:
[mcp_servers.getDocContent]
type = "stdio"
command = "node"
args = ["/absolute/path/to/mcp-demo/dist/src/index.js"]
[mcp_servers.getDocContent.env]
ONES_BASE_URL = "https://ones.example.internal"
ONES_USERNAME = "your_username@example.com"
ONES_PASSWORD = "your_password_here"在通用 MCP 客户端中使用
{
"mcpServers": {
"getDocContent": {
"command": "npx",
"args": ["-y", "@bakarhythm/get-doc-content"],
"env": {
"ONES_BASE_URL": "https://ones.example.internal",
"ONES_USERNAME": "your_username@example.com",
"ONES_PASSWORD": "your_password_here"
}
}
}
}启动成功后,MCP 客户端应能看到以下工具:
search_docsget_docget_doc_outlineget_doc_sectionget_doc_chunksget_doc_contextget_requirement_detail_by_refget_execution_tasks_by_refextract_requirement_materials_by_reflist_requirement_bugs_by_refget_task_messages_by_refget_related_wiki_pages_by_refget_task_rich_resources_by_refget_bug_detail_by_refget_bug_parent_requirement_by_refresolve_requirementget_requirement_detailget_execution_tasksresolve_bugget_bug_detailget_bug_parent_requirementlist_requirement_bugsget_task_messagesextract_requirement_materialsget_related_wiki_pagesget_task_rich_resourcesdownload_ones_resourcedownload_ones_resource_by_id
这些工具都会继续返回可读的 JSON 文本内容,同时也会提供 MCP structuredContent 供支持结构化结果的客户端直接消费。
调试与评估
调试页面解析
直接调试单个页面:
npm run debug:page -- "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID" --raw-chars 1200也可以使用本地调试配置文件:
cp debug-page.config.example.json debug-page.config.json
npm run debug:page
npm run debug:page -- table-page
npm run debug:page -- req-12345 --raw-chars 2000
npm run debug:page -- table-page --full-raw
npm run debug:page -- table-page --raw-chars alldebug-page.config.json 不会提交到 git,可用于保存本地常用 URL:
{
"defaultRef": "table-page",
"rawChars": 1200,
"refs": {
"table-page": "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID",
"req-12345": "#12345"
}
}这个脚本会直接复用仓库里的 ONES 登录和解析逻辑,打印:
parsed_refdoc.source_format顶层节点类型统计
资源与 OCR 状态
原始内容预览
如果你要保存完整原始内容,不要只用默认预览长度,可以改用:
npm run debug:page -- table-page --full-raw > tmp/debug-page-table-page.txt 2>&1或:
npm run debug:page -- table-page --raw-chars all > tmp/debug-page-table-page.txt 2>&1评估 LLM 对结构化结果的理解
cp llm-eval.config.example.json llm-eval.config.json
npm run eval:llm
npm run eval:llm -- --variant raw
npm run eval:llm -- --case table-page-summary这个脚本会:
按配置里的
ref实时拉取 ONES 文档选择
markdown、raw或full作为模型输入调用 OpenAI Responses API 回答问题
按
requiredPhrases和forbiddenPhrases输出简单通过率报告
需要额外配置:
OPENAI_API_KEY=your_openai_api_key
OPENAI_BASE_URL=llm-eval.config.json 示例:
{
"model": "gpt-5.2",
"variant": "markdown",
"maxOutputTokens": 800,
"refs": {
"table-page": "https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID"
},
"cases": [
{
"name": "table-page-summary",
"ref": "table-page",
"question": "请总结这份文档的核心需求,并明确指出是否涉及表格中的规则信息。",
"requiredPhrases": ["表格"],
"forbiddenPhrases": ["无法判断"]
}
]
}建议用法:
先跑
variant=markdown再跑
variant=raw比较同一批 case 的通过率、缺失项和误报项
历史 llm_view 人工审查材料已归档到 docs/review/archive/,仅供追溯旧结构化视图设计。
MCP 工具
推荐工作流
对于中长文档,推荐按下面的顺序调用,而不是默认直接取整篇:
get_doc_outlineget_doc_section或get_doc_chunks调用方在本地保留副本
再把需要的片段提供给 LLM
如果调用方不想自己编排,也可以直接用 get_doc_context,让 server 按问题内容自动选择章节或分块。
1) search_docs
按关键词搜索文档。
示例参数:
{"query":"ONES 登录","limit":5}2) get_doc
通过上下文引用获取文档,并返回面向 LLM 的 Markdown 内容。
ref 支持:
完整 ONES 文档 URL,优先
#12345需求号
可选参数:
include_raw:是否返回原始 ONES 内容,默认falseinclude_resources:是否刷新图片 URL 并返回稳定资源清单,默认true
图片分析推荐按以下顺序调用:
get_doc(include_resources=true)获取正文与resources从
resources读取稳定的resource_id调用
download_ones_resource_by_id,直接取得 MCP 原生ImageContent
resources 中的图片包含 resource_id、ref_type、ref_id、alt、caption、文件名、MIME、大小、宽高、刷新后的 url 和单图 error。get_doc 不会内嵌图片 base64;单张图片刷新失败也不会阻断正文返回。
当 ref 为 #12345 时:
服务会先查询需求关联文档
按
updated_at取最新一篇,缺失时回退created_at返回该文档正文
示例:
{"ref":"https://ones.example.internal/wiki/#/team/TEAM_ID/space/SPACE_ID/page/PAGE_ID"}{"ref":"#12345"}3) get_doc_outline
先获取文档目录结构、章节路径和粗略长度,适合在长文场景下做渐进式读取。
示例参数:
{"ref":"#12345"}4) get_doc_section
按 section_id 获取单个章节;可选 include_descendants=true 把子章节一起带回。
示例参数:
{"ref":"#12345","section_id":"sec-2","include_descendants":true}5) get_doc_chunks
按字符预算分页获取文档片段,适合“总结整篇”或“检查全文冲突”这类任务。
示例参数:
{"ref":"#12345","cursor":null,"max_chars":6000}6) get_doc_context
根据问题自动选择章节或 chunk,适合不想自行编排 outline/section/chunk 工作流的调用方。
示例参数:
{"ref":"#12345","question":"请总结整篇文档的所有权限规则","mode":"auto","max_chars":12000}ONES 工作项工具
从需求号或 bug 号开始时,优先使用 *_by_ref 工具。它们会先解析编号、task id 或 task URL,再读取正文或关联信息。
主入口工具:
get_requirement_detail_by_ref:按需求号、task id 或 task URL 读取需求正文、字段和关联任务get_execution_tasks_by_ref:按需求引用读取关联执行任务候选extract_requirement_materials_by_ref:按需求引用提取 wiki、外部链接、图片资源和完整性提示list_requirement_bugs_by_ref:显式需要时,按需求引用列出关联 bugget_task_messages_by_ref:按任务引用读取消息或评论get_related_wiki_pages_by_ref:按需求引用发现关联或正文链接到的 ONES wiki 页面get_task_rich_resources_by_ref:按任务引用提取正文里的富文本图片资源get_bug_detail_by_ref:按 bug 号、task id 或 task URL 读取 bug 正文、严重级别、优先级和关联任务get_bug_parent_requirement_by_ref:按 bug 引用反查父需求
兼容和调试工具:
resolve_requirement、resolve_bug:只解析编号或 URL,返回标准工作项实体和候选列表get_requirement_detail、get_execution_tasks、get_bug_detail、get_bug_parent_requirementlist_requirement_bugs、get_task_messages、extract_requirement_materials、get_related_wiki_pages、get_task_rich_resources
兼容工具接收 task_id,适合已知 task id、需要处理多候选、或排查编号解析与详情接口哪个环节失败的场景。
{"ref":"#12345","include_raw":true,"include_resources":true}7) 工作项工具
工作项工具用于读取 ONES 需求、任务、bug 和评论事实,服务于需求开发工作流。它们只读,不计算 baseline,也不会自动决定 bug 修复范围。
纯编号入口需要配置 ONES_TEAM_ID:
ONES_TEAM_ID=63FL1oSZ如果传入完整 task URL,工具会优先使用 URL 里的 team id。
工具列表:
resolve_requirement:把需求号、task id 或 task URL 解析成标准工作项实体get_requirement_detail:读取需求正文、字段和关联任务get_execution_tasks:读取需求关联的执行任务候选resolve_bug:把 bug 号、task id 或 task URL 解析成标准工作项实体get_bug_detail:读取 bug 正文、严重级别、优先级和关联任务get_bug_parent_requirement:从 bug 的关联任务里反查需求list_requirement_bugs:按需列出需求下的 bugget_task_messages:读取任务消息或评论extract_requirement_materials:从需求任务正文和富文本字段中提取 wiki、外部链接、图片资源和完整性提示get_related_wiki_pages:发现需求关联或正文链接到的 ONES wiki 页面get_task_rich_resources:提取任务正文里的富文本图片资源download_ones_resource:使用当前 MCP 登录态下载 ONES 鉴权资源,返回文件元数据和 base64 内容download_ones_resource_by_id:使用稳定resource_id刷新签名 URL,并把图片作为 MCP 原生ImageContent返回
示例参数:
{"ref":"#794"}{"task_id":"REQ-794"}{"url":"https://ones.example.internal/wiki/api/wiki/editor/team-id/ref-id/resources/mock-image.png"}{"resource_id":"Btj2N3hz","operation":"imageMogr2/auto-orient"}说明:
get_task_rich_resources默认只返回资源元数据和src,不会自动下载文件Wiki 图片优先使用
get_doc(include_resources=true)返回的resource_id调用download_ones_resource_by_id,避免依赖可能过期的签名 URLdownload_ones_resource保留 URL 下载兼容能力;图片响应会校验 MIME 与 PNG/JPEG/GIF/WebP 文件签名,登录页或不可解码内容会作为错误返回download_ones_resource继续返回content_base64,是否落盘由调用方自行决定
发布流程
仓库当前使用 Changesets 管理版本和发布说明,不再要求本地手工打 tag。
推荐流程:
完成功能后,判断这次改动是否对调用方可感知
如果可感知,运行
npm run changeset生成说明文件把代码和
.changeset/*.md一起合并到mainGitHub Actions 自动创建或更新 Release PR
合并 Release PR 后,Actions 自动发布 npm、创建 tag,并生成 GitHub Release
什么时候必须写 changeset
以下改动建议必须写:
新增、删除或重命名 MCP 工具
工具参数、返回结构、默认行为变化
安装方式、运行入口、环境变量契约变化
调用方能直接感知到的 bugfix
以下改动通常可以不写:
仅文档、测试、注释变更
不影响调用方的内部重构
仅 CI 或本地开发流程调整
去哪里看这次发了什么
Release PR:看即将发布的版本号和变更摘要
GitHub Release:看已经发布出去的 changelog
GitHub Actions 日志:看发布执行过程、失败原因和 npm publish 记录
常见问题
登录失败,
AUTH_FAILED
检查
ONES_BASE_URL、账号密码是否正确。如果使用会话复用,刷新
ONES_AUTH_TOKEN和ONES_COOKIE。
MCP 启动失败,提示
initialize response或连接被关闭
先确认客户端实际启动的是哪个版本。
如果你使用的是
npx -y @bakarhythm/get-doc-content@latest,请确认已升级到包含最新修复的版本。排查时优先查看 MCP 进程 stderr 日志;当前版本会输出
mcp.startup.begin、mcp.startup.ready、mcp.startup.failed、mcp.runtime.init.failed等结构化日志。
输入无效,
INVALID_DOC_REF
get_doc.ref仅支持完整 URL 或#数字。
无关联文档,
NO_LINKED_DOC
该需求号下没有关联文档,或当前账号无权限读取。
接口探测失败,
DISCOVERY_FAILED
说明当前 ONES 实例接口与候选路径不匹配,需要补充候选规则。
Available Tools
28 toolsdownload_ones_resourceDownload ONES ResourceARead-onlyIdempotent
Download an ONES resource by URL. Signed image URLs can expire; prefer get_doc(include_resources=true) followed by download_ones_resource_by_id.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| filename | Yes | |
| mime_type | Yes | |
| size_bytes | Yes | |
| content_base64 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds a genuinely useful behavioral trait beyond them: signed image URLs can expire, which explains why failures occur and points at a workaround.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core action front-loaded and the fallback guidance immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover the safety profile. For a one-parameter read tool the description covers the main operational pitfall (expiry); only URL format specifics are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (url) with 0% schema description coverage, so the description carries the burden. 'By URL' implies an ONES resource URL but gives no format, accepted schemes, or whether it must be signed or freshly obtained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Download an ONES resource by URL') and implicitly distinguishes itself from the sibling download_ones_resource_by_id by naming the URL-based access path. Clear enough for an agent to pick between the two, though it doesn't spell out the difference explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends an alternative path when signed URLs may be stale: 'prefer get_doc(include_resources=true) followed by download_ones_resource_by_id.' That is concrete when-to-use-other guidance, but the condition triggering the switch ('can expire') is stated loosely rather than as a hard rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
download_ones_resource_by_idDownload ONES Image By Resource IDARead-onlyIdempotent
Resolve a fresh signed URL for a stable ONES resource_id and return the image as MCP ImageContent. Recommended flow: get_doc(include_resources=true), read resources, then call this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | imageMogr2/auto-orient | |
| resource_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| width | Yes | |
| height | Yes | |
| filename | Yes | |
| mime_type | Yes | |
| size_bytes | Yes | |
| resource_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the bar is lower. The description still adds useful behavior beyond them: the URL is freshly signed (expiring) and keyed to a stable resource_id, and the return is MCP ImageContent. It does not disclose auth requirements or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and followed by the prerequisite flow. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be detailed, and the description still flags ImageContent. The prerequisite flow is captured well; the remaining gap is the unexplained operation parameter and lack of sibling disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 clarifies resource_id as a 'stable ONES resource_id' but says nothing about the 'operation' parameter (default imageMogr2/auto-orient), leaving that parameter undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Resolve a fresh signed URL for a stable ONES resource_id and return the image as MCP ImageContent'), which is clear and concrete. However, it never differentiates itself from the close sibling download_ones_resource, leaving the agent to guess which downloader applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit recommended flow ('get_doc(include_resources=true), read resources, then call this tool'), which tells the agent when to reach for this tool and what must precede it. It stops short of naming when NOT to use it or how it differs from download_ones_resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_requirement_materialsExtract ONES Requirement MaterialsARead-onlyIdempotent
Extract wiki pages, external links, rich resources, and completeness hints from a requirement task id. Prefer extract_requirement_materials_by_ref when starting from a requirement number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| wiki_pages | Yes | |
| raw_payload | Yes | |
| requirement | Yes | |
| completeness | Yes | |
| external_links | Yes | |
| rich_resources | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered. The description adds that the result is an aggregate of several material types, which is useful context, but says nothing about auth requirements, rate limits, or failure behavior. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the resource list front-loaded and the sibling routing placed after the core purpose. Nothing redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and annotations cover the safety profile. Inputs and the sibling relationship are both addressed; the only real gap is the undocumented team_id parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and largely does not. It clarifies that task_id is a 'requirement task id', but team_id is left entirely unexplained in both schema and description, so an agent cannot tell why or when to supply it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Extract') and enumerates the exact resources returned (wiki pages, external links, rich resources, completeness hints) scoped to a requirement task id. It also differentiates itself from the near-identical sibling extract_requirement_materials_by_ref by naming the input form each expects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Prefer extract_requirement_materials_by_ref when starting from a requirement number or URL.' The condition that selects the alternative is stated, leaving nothing to inference for the most likely ambiguity in this sibling cluster.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_requirement_materials_by_refExtract ONES Requirement Materials By RefARead-onlyIdempotent
Extract wiki pages, external links, rich resources, and completeness hints by requirement number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| wiki_pages | Yes | |
| raw_payload | Yes | |
| requirement | Yes | |
| completeness | Yes | |
| external_links | Yes | |
| rich_resources | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is fully covered by structured data. The description adds the useful behavioral fact that results are aggregated across four heterogeneous categories rather than a single resource type, but says nothing about auth requirements, rate limits, truncation, or what 'completeness hints' actually means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence listing the verb, the returned resource categories, and the accepted identifier forms. Every clause carries information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the annotations carry the safety profile. The description covers what is extracted and what identifies the target, making it largely self-sufficient. The only residual gap is that the meaning and format of 'completeness hints' is left undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% — the schema only says 'ref' is a non-empty string. The description compensates well by telling the agent that ref accepts a requirement number, a task id, or a task URL, which is exactly the disambiguation needed to call the tool correctly. It does not give format examples for each identifier type, so it falls short of a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (extract) and enumerates the exact resource types returned (wiki pages, external links, rich resources, completeness hints), plus the three identifier forms accepted. This clearly separates it from retrieval siblings like get_related_wiki_pages_by_ref or get_task_rich_resources_by_ref, which cover only one category each. It stops short of explicitly distinguishing itself from the non-ref extract_requirement_materials sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus the many alternatives in the sibling list (extract_requirement_materials, get_related_wiki_pages_by_ref, get_task_rich_resources_by_ref, resolve_requirement). The 'by_ref' naming implies the agent must already have a requirement number, task id, or URL, but this is inferred from the name rather than stated as guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bug_detailGet ONES Bug DetailARead-onlyIdempotent
Get bug body, fields, and related task facts by task id. Prefer get_bug_detail_by_ref when starting from a bug number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| priority | Yes | |
| severity | Yes | |
| description | Yes | |
| raw_payload | Yes | |
| related_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds only that it returns body, fields, and related task facts, which is largely redundant given an output schema exists, and says nothing about auth or rate limits. Adequate but adds little beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero filler; the scope statement is front-loaded ahead of the routing hint. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and annotations cover the safety profile, so the description is nearly complete. The only shortfall is the undocumented 'team_id' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 2 parameters, so the description must carry the load. It conveys that 'task_id' is the lookup key, but the optional 'team_id' parameter is undocumented in both the schema and the description, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get bug body, fields, and related task facts') and pins the lookup key ('by task id'). It also names the sibling it is not, so an agent can distinguish it from get_bug_detail_by_ref without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Prefer get_bug_detail_by_ref when starting from a bug number or URL,' which states both the alternative and the condition that selects it. Nothing about tool selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bug_detail_by_refGet ONES Bug Detail By RefARead-onlyIdempotent
Get bug body, fields, and related task facts by bug number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| priority | Yes | |
| severity | Yes | |
| description | Yes | |
| raw_payload | Yes | |
| related_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds only a high-level statement of returned content (body, fields, related task facts); it does not add auth, rate-limit, or side-effect context beyond what the annotations provide. A 3 reflects useful but limited added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single concise sentence with the action and return categories front-loaded before the accepted reference forms. No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed further, and annotations cover the safety profile. For a simple one-parameter read tool, the description supplies enough purpose and parameter meaning for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. It does so effectively by defining the single ref parameter as a bug number, task id, or task URL, which compensates for the otherwise undocumented string parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get bug body, fields, and related task facts by reference. It also names the accepted reference forms (bug number, task id, task URL), which implicitly distinguishes it from the sibling get_bug_detail. It stops short of explicitly differentiating itself from that sibling, keeping it at a strong 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call this when you have a bug number, task id, or task URL. It does not state when not to use it or mention alternatives such as get_bug_detail or other by-ref siblings, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bug_parent_requirementGet ONES Bug Parent RequirementARead-onlyIdempotent
Resolve the parent requirement for a selected bug by task id. Prefer get_bug_parent_requirement_by_ref when starting from a bug number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bug | Yes | |
| raw_payload | Yes | |
| requirement | Yes | |
| resolution_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds nothing about behavior beyond annotations: no statement of what happens when a bug has no parent requirement, no auth/permission notes, no mention that team_id broadens or narrows the lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero wasted words, and the primary action is front-loaded ahead of the sibling-routing guidance. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. However, for a two-parameter lookup the undisclosed team_id and the unspecified no-parent-found behavior leave real gaps an agent would need to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 full burden. It only obliquely covers task_id ('by task id') and says nothing at all about team_id, the optional second parameter. With two parameters and zero documentation anywhere, the description leaves half the input surface unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (resolve) plus the exact resource (the parent requirement for a selected bug) and the keying mechanism (by task id). It also differentiates itself from the by_ref sibling in the same sentence, so an agent can select it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative tool (get_bug_parent_requirement_by_ref) and the condition that should select it (starting from a bug number or URL). This is a direct when-to-use-which routing rule, not an implied one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bug_parent_requirement_by_refGet ONES Bug Parent Requirement By RefBRead-onlyIdempotent
Resolve the parent requirement by bug number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| bug | Yes | |
| raw_payload | Yes | |
| requirement | Yes | |
| resolution_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds no behavioral context beyond that — no indication of what is returned, error behavior for unresolvable refs, or how resolution across bug/task/URL differs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb, resource, and reference forms in the first clause. No filler, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and annotations carry the safety profile, making the description nearly sufficient for a one-param tool. The gap is the complete absence of sibling differentiation among several similarly named resolve/get tools, which is what an agent needs to select correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and it does add real value by enumerating the accepted forms of 'ref' (bug number, task id, or task URL) that the bare 'string' schema does not convey. It stops short of giving format examples or precedence rules when a value matches multiple forms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and resource ('parent requirement') plus the accepted reference forms. It does not, however, distinguish itself from the closely named sibling 'get_bug_parent_requirement' or 'resolve_requirement', so an agent cannot tell the _by_ref variant apart from those without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many near-identical siblings (get_bug_parent_requirement, resolve_requirement, list_requirement_bugs_by_ref). No prerequisites, no exclusions, no stated conditions selecting this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docGet ONES DocumentARead-onlyIdempotent
Get an ONES document by URL or #requirement. With include_resources=true, refresh image URLs and return stable resource_id metadata; then call download_ones_resource_by_id for MCP-native image content.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| include_raw | No | ||
| include_resources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| doc | Yes | |
| raw | No | |
| markdown | Yes | |
| resources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/openWorld, so the safety profile is free. The description adds genuinely non-obvious behavior beyond that: include_resources=true refreshes image URLs and returns stable resource_id metadata, and it names the downstream tool that consumes those IDs. It omits whether the refresh has side effects or cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the core action front-loaded and the resource workflow appended; no filler. The '#'-prefixed reference syntax and the semicolon-chained follow-up step are slightly dense, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The description covers the primary parameter and the resource workflow adequately, but with 0% schema description coverage the unexplained include_raw flag leaves a small completeness gap for a three-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 full burden. It usefully defines 'ref' (URL or #requirement) and the effect of include_resources, but include_raw is never explained in either the schema or the description, leaving one of three parameters semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get an ONES document') and names the accepted reference forms (URL or #requirement), which is more than the title alone. It does not, however, differentiate itself from the many doc siblings (get_doc_section, get_doc_context, get_doc_outline, get_doc_chunks), so an agent cannot tell from the description alone which doc-fetching variant to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear conditional workflow: use include_resources=true to get refreshed image URLs and resource_id metadata, then call download_ones_resource_by_id for MCP-native image content. This is explicit guidance on an alternative tool and when to use it, though it never states when *not* to use this tool or how it relates to the other get_doc_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_chunksGet ONES Document ChunksBRead-onlyIdempotent
Return one cursor-based chunk from a ONES doc ref using a character budget.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| cursor | No | ||
| max_chars | No | ||
| include_resources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| doc | Yes | |
| chunk | Yes | |
| has_more | Yes | |
| markdown | Yes | |
| next_cursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only, idempotent, non-destructive behavior. The description adds that results are chunked and cursor-driven with a character budget, which is useful context, but does not clarify how cursors advance or how to retrieve the entire document.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded and efficient. However, it is arguably too concise for a tool with four parameters and no schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters with 0% coverage and an underlying paginated/chunked operation, the description omits essential details about how to call the tool, how `ref` is initially obtained, how to paginate, or what the output schema returns. It is incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 `ref`, `cursor`, `max_chars`, and `include_resources`. It only vaguely references a 'character budget', without naming parameters or clarifying their roles and constraints. This leaves most parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('Return') and resource ('one cursor-based chunk from a ONES doc ref'), which distinguishes it from document-level siblings like get_doc and get_doc_outline. It could be sharper about being a paginated read of document content, but the core purpose is identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cursor-based, chunked nature implies when to use it (streaming large docs), but no explicit when/when-not guidance or alternatives (e.g., 'use get_doc for the full document') are given. There are many doc-related siblings it could be compared against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_contextGet ONES Document ContextBRead-onlyIdempotent
Automatically select sections or chunks for a ONES doc ref based on a question.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| mode | No | auto | |
| question | Yes | ||
| max_chars | No | ||
| include_resources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| doc | Yes | |
| reason | Yes | |
| markdown | Yes | |
| strategy | Yes | |
| truncated | Yes | |
| consumed_chunks | Yes | |
| selected_sections | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, covering safety and side effects. The description adds only that the tool 'automatically selects' content, which does not contradict annotations but also does not provide additional behavioral context such as rate limits or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded, containing no filler or redundant information. Every word contributes to the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no schema-level descriptions, the description is insufficient for an agent to understand how to use it correctly. The existence of an output schema mitigates the lack of return value explanation, but parameter semantics and usage context are still lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description bears full responsibility for explaining parameters. It only identifies 'ref' and 'question' implicitly but does not explain 'max_chars', 'mode', or 'include_resources'. The parameter 'mode' is restricted to 'auto' but this is not clarified in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: automatically select sections or chunks from a ONES document based on a question. It uses a specific verb ('select') and resource ('sections or chunks for a ONES doc ref'), and it implicitly differentiates from sibling tools that retrieve entire documents or specific sections without intelligent selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like get_doc_chunks or get_doc_section. It does not mention prerequisites, context, or exclusions. The agent is left to infer usage from the tool 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.
get_doc_outlineGet ONES Document OutlineARead-onlyIdempotent
Return section outline and size metadata for a ONES doc ref.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| doc | Yes | |
| sections | Yes | |
| section_count | Yes | |
| estimated_chars | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds limited behavioral context: it specifies the tool returns section outline and size metadata. No additional side effects or prerequisites are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, no unnecessary information. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one param) and existence of an output schema, the description sufficiently covers the tool's role. It could elaborate on what 'size metadata' entails, but is adequate for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter 'ref' with 0% description coverage. The description clarifies that 'ref' is a ONES document reference, adding meaning that the schema lacks. However, it does not provide format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and resource ('section outline and size metadata for a ONES doc ref'). It clearly distinguishes from sibling tools like get_doc (full document) and get_doc_section (specific section).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool. The purpose is clear from context and sibling names, but the description does not state when it is preferable over alternatives such as get_doc or get_doc_section.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_sectionGet ONES Document SectionBRead-onlyIdempotent
Return one outline section from a ONES doc ref, optionally including descendants.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| section_id | Yes | ||
| include_resources | No | ||
| include_descendants | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| doc | Yes | |
| section | Yes | |
| markdown | Yes | |
| truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. Description adds the descendant inclusion behavior but nothing about error handling or response format. Annotations carry most of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with no fluff, but at the cost of omitting critical parameter details. Front-loads the purpose well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, output schema, and many siblings, the description is too sparse. No explanation of output or parameter formats. Lacks completeness despite existing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must document parameters. It only hints at include_descendants, ignoring ref, section_id, and include_resources. Insufficient compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns one outline section from a ONES doc, with optional descendants. It distinguishes from siblings like get_doc (full doc) and get_doc_outline (outline structure).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_doc or get_doc_outline. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_execution_tasksGet ONES Requirement Execution TasksARead-onlyIdempotent
Get execution-task candidates related to a requirement by task id. Prefer get_execution_tasks_by_ref when starting from a requirement number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| raw_payload | Yes | |
| requirement | Yes | |
| execution_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds only the word 'candidates', hinting results are suggestions rather than a definitive list; it says nothing about pagination, auth, or scoping beyond annotations. Adequate but thin given the annotations carry the load.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the primary operation stated first and the alternative routing second. No filler, nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations are present, so return values and safety need not be restated. The only real gap is the undocumented team_id parameter; everything else an agent needs to select and call the tool is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with two parameters. The phrase 'by task id' implicitly explains the required task_id, but team_id is never mentioned in the description or the schema, leaving one parameter semantically undocumented. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get) and resource (execution-task candidates related to a requirement) and keys it to 'task id', which cleanly separates it from the by_ref sibling. An agent can tell the two apart without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative and the condition that selects it: 'Prefer get_execution_tasks_by_ref when starting from a requirement number or URL.' That is a direct routing rule, not an implied one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_execution_tasks_by_refGet ONES Requirement Execution Tasks By RefARead-onlyIdempotent
Get execution-task candidates by requirement number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| raw_payload | Yes | |
| requirement | Yes | |
| execution_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety/behavioral profile is largely covered. The description adds only the word 'candidates', implying a possibly fuzzy or filtered result set rather than an authoritative task list — useful but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. The key information — the three accepted ref forms — is placed where it is immediately visible and nothing is repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and an output schema handling return values, the description covers the essential call-shape details. It leaves a mild gap around relationship to the unfiltered get_execution_tasks sibling and whether the lookup is exact or fuzzy, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole 'ref' parameter has no schema description, so the description carries the burden and does so well: it explains that ref accepts a requirement number, task id, or task URL. That is exactly the information the schema omits. It stops short of format examples (e.g., what a task URL looks like).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get execution-task candidates') and enumerates the three accepted identifier forms (requirement number, task id, task URL). That distinguishes it reasonably from the sibling get_execution_tasks, but the differentiation is only implicit — it never says outright that this is the ref-scoped variant versus the unfiltered one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The ref-type list hints at when this tool applies, but there is no explicit when-to-use guidance and no named alternative (e.g., get_execution_tasks or get_task_messages_by_ref). Usage is implied rather than stated, which is the definition of a minimum-viable 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_detailGet ONES Requirement DetailARead-onlyIdempotent
Get requirement body, fields, and related task facts by task id. Prefer get_requirement_detail_by_ref when starting from a requirement number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| description | Yes | |
| raw_payload | Yes | |
| custom_fields | Yes | |
| related_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is fully covered structurally. The description adds only the shape of what is returned (body, fields, related task facts); it says nothing about permissions, cross-team access, or result size. Adequate but thin beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core capability stated first and the disambiguation rule second. Nothing earns removal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and annotations cover the safety profile. What remains missing is any meaning for team_id or the task-id-vs-requirement-number distinction at the parameter level, a small gap for a two-parameter lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 param burden. It clarifies that task_id is the lookup key (and implicitly required via 'by task id'), but team_id is never mentioned, leaving half the parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get requirement body, fields, and related task facts') plus the lookup key ('by task id'), which is concrete and not tautological. It also explicitly distinguishes itself from the near-identical sibling get_requirement_detail_by_ref, so an agent can pick between them without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit routing rule: use this tool when starting from a task id, and 'Prefer get_requirement_detail_by_ref when starting from a requirement number or URL.' The alternative and the condition that selects it are both named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requirement_detail_by_refGet ONES Requirement Detail By RefARead-onlyIdempotent
Get requirement body, fields, and related task facts by requirement number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| description | Yes | |
| raw_payload | Yes | |
| custom_fields | Yes | |
| related_tasks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the useful note that related task facts are returned alongside the requirement body, but contributes nothing on lookup failure behavior or ref-resolution rules beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and the returned payload, then the accepted identifier forms. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, and the single required parameter is explained via its accepted forms. The only real gap is sibling disambiguation against 'get_requirement_detail', which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the bare 'ref' string carries no meaning in the schema. The description compensates by enumerating the three acceptable forms — requirement number, task id, or task URL — which is exactly the missing information an agent needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('requirement body, fields, and related task facts'), so the agent knows exactly what comes back. It does not, however, distinguish this tool from the non-ref sibling 'get_requirement_detail', leaving the naming convention as the only differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over 'get_requirement_detail', 'resolve_requirement', or 'extract_requirement_materials_by_ref'. Usage is only implied by the tool name, with no conditions or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_messagesGet ONES Task MessagesARead-onlyIdempotent
Get task comments/messages by task id for requirement workflow context. Prefer get_task_messages_by_ref when starting from a number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| messages | Yes | |
| raw_payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds only the vague phrase 'for requirement workflow context' and discloses nothing about pagination, result volume, or auth beyond the annotations, so it adds little behavioral value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose first, disambiguation second. No filler, nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the read-only nature is covered by annotations. The main gap is the undocumented team_id parameter; otherwise the definition is sufficient for a simple two-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for both parameters. The description clarifies that task_id is the lookup key, but team_id is entirely undocumented in both schema and description, leaving an agent guessing at its meaning and whether it is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get task comments/messages') plus the scoping key ('by task id'), and explicitly distinguishes itself from the sibling get_task_messages_by_ref. An agent can select between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: 'Prefer get_task_messages_by_ref when starting from a number or URL.' The condition that selects the alternative is stated, not implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_messages_by_refGet ONES Task Messages By RefBRead-onlyIdempotent
Get task comments/messages by task number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| messages | Yes | |
| raw_payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety and repeatability profile is covered. The description adds that the ref may be a number, id, or URL, but discloses nothing about ordering, pagination, or result limits for a potentially large comment list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource and the accepted reference forms come first and nothing is repeated from structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the one required parameter is described. The gap is inter-tool clarity: with sibling get_task_messages and many other '*_by_ref' tools present, the definition never explains when this variant should be chosen over them, nor whether pagination applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the single 'ref' parameter — and it does, enumerating three accepted formats (task number, task id, task URL). It falls short of specifying whether a URL must be the full task URL or which segment is parsed, so it is good but not exhaustive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieves task comments/messages for a task, and names the accepted reference forms (number, id, URL). It does not, however, distinguish itself from the sibling get_task_messages, so an agent must infer the difference between the '_by_ref' and plain variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the sibling get_task_messages as an alternative. The only hint of usage is that three ref formats are accepted, which is really parameter semantics rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_rich_resourcesGet ONES Task Rich ResourcesARead-onlyIdempotent
Extract rich-text image resources from a requirement, task, or bug body by task id. Prefer get_task_rich_resources_by_ref when starting from a number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| resources | Yes | |
| raw_payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds meaningful context about the source of the resources (the rich-text body of a requirement/task/bug) but says nothing about output shape, ordering, or size limits. With annotations carrying the behavioral burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose and followed immediately by the disambiguating alternative. Every clause earns its place; there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description covers the source and the routing alternative well. The gap is the undocumented team_id parameter, which an agent may need in multi-team contexts; otherwise the definition is complete enough to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. 'By task id' only loosely clarifies task_id, and team_id is entirely undocumented in both the schema and the description — an agent has no basis for deciding whether or how to supply it. This does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract rich-text image resources from a requirement, task, or bug body') with a scoping constraint ('by task id'). It explicitly distinguishes itself from the sibling get_task_rich_resources_by_ref, so an agent can route correctly without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the alternative tool and the exact condition that selects it ('Prefer get_task_rich_resources_by_ref when starting from a number or URL'), giving both when-to-use and when-to-use-something-else guidance. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_rich_resources_by_refGet ONES Task Rich Resources By RefBRead-onlyIdempotent
Extract rich-text image resources by task number, task id, or task URL.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | Yes | |
| resources | Yes | |
| raw_payload | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context of its own — it doesn't say what a 'resource' is (URLs vs. bytes), whether auth is required, or how large results behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, and zero filler. Nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be explained, and annotations cover safety. However, the description omits any routing guidance among the many _by_ref siblings and gives no detail on ref syntax, leaving a gap for a single-param lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the schema only constrains ref to a non-empty string. The description compensates by naming three acceptable ref formats (task number, task id, task URL), which is exactly the missing information an agent needs to build a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Extract) and resource (rich-text image resources) plus the accepted identifier forms. It reads clearly against siblings like get_task_rich_resources, but never explicitly distinguishes the _by_ref variant from the non-ref sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no prerequisites. The only implicit signal is that ref accepts a task number, id, or URL; nothing tells the agent when this is preferable to get_task_rich_resources or the download_ones_resource siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requirement_bugsList ONES Requirement BugsARead-onlyIdempotent
List bugs under a requirement by task id when explicitly requested. Prefer list_requirement_bugs_by_ref when starting from a requirement number or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| team_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bugs | Yes | |
| count | Yes | |
| raw_payload | Yes | |
| requirement | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the conditional-invocation nuance and nothing about pagination, result size, or what happens with a missing/invalid task_id. Adequate but thin given annotations do the heavy lifting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the primary scope statement front-loaded before the routing advice. Nothing could be cut without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and the sibling routing is fully handled. The remaining gap is team_id semantics, which is left undocumented in both schema and description — a real but limited omission for a simple read-only list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It clarifies task_id ("by task id") but says nothing about team_id — its format, its purpose, or what happens when it is omitted — and gives no format hints for either id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list bugs under a requirement) plus the exact key it operates on (task id), and explicitly distinguishes itself from the near-identical sibling list_requirement_bugs_by_ref. An agent can pick between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger condition ("when explicitly requested") and names the alternative with the condition that selects it ("when starting from a requirement number or URL"). This is textbook when-to-use/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requirement_bugs_by_refList ONES Requirement Bugs By RefARead-onlyIdempotent
List bugs under a requirement by requirement number, task id, or task URL when explicitly requested.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| bugs | Yes | |
| count | Yes | |
| raw_payload | Yes | |
| requirement | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered structurally. The description adds only the scoping detail that results are the bugs beneath a requirement; it says nothing about result volume, pagination, or what happens when the ref resolves to nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with no filler. It could be tightened only marginally and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-value details are unnecessary, and the annotations carry the safety profile. For a single-parameter read tool the description supplies purpose, scope, and accepted ref forms, leaving no material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 for the single 'ref' parameter, and it does clarify that the value may be a requirement number, task id, or task URL. It stops short of giving the accepted formats or examples for each form, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (bugs under a requirement) and enumerates the three accepted reference forms (requirement number, task id, task URL). It is clearly distinguishable from get_bug_detail_by_ref and from the non-ref sibling list_requirement_bugs, though it never explicitly contrasts itself with that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'when explicitly requested' gives a weak usage condition, implying the agent should not call this proactively. However, it never states when to prefer this over list_requirement_bugs or the various get_*_by_ref siblings, so the routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_bugResolve ONES BugARead-onlyIdempotent
Resolve an ONES bug by number, task id, or task URL. Prefer *_by_ref tools for normal workflow reads.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | Yes | |
| entity | Yes | |
| matched | Yes | |
| candidates | Yes | |
| raw_payload | Yes | |
| resolution_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is fully covered without the description. The description adds only that the ref can take three forms, which usefully resolves the 'resolve = read' ambiguity but is thin for behavioral disclosure. No contradiction with the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the purpose front-loaded and the routing hint second. No redundant restatement of the title or name, though the phrasing is terse enough that a little more specificity could fit without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value shape need not be described. Purpose, accepted input forms, and sibling routing are all present, leaving the definition complete enough to invoke correctly for a one-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'ref' parameter has 0% schema description coverage, so the description must carry the burden — and it does, stating that ref may be a bug number, a task id, or a task URL. This meaningfully extends the bare minLength:1 string schema, though it omits format examples or precedence rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-plus-resource ('Resolve an ONES bug') and enumerates the accepted reference forms (number, task id, task URL). The verb 'resolve' is ambiguous (lookup vs. fix), but the 'by number, task id, or task URL' phrasing steers the reader toward reference resolution. It does not explicitly distinguish itself from the many get_*_by_ref siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence ('Prefer *_by_ref tools for normal workflow reads') gives a routing hint toward the sibling family. However, it never states the converse condition — i.e., exactly when resolve_bug IS the right choice (presumably when you only hold a raw number/URL) — so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_requirementResolve ONES RequirementARead-onlyIdempotent
Resolve an ONES requirement by number, task id, or task URL. Prefer *_by_ref tools for normal workflow reads.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | Yes | |
| entity | Yes | |
| matched | Yes | |
| candidates | Yes | |
| raw_payload | Yes | |
| resolution_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is fully covered. The description adds the input-form context and routing hint but no additional behavioral detail (e.g., what the resolution returns or failure modes) beyond what annotations and the output schema supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, the core capability front-loaded and the routing caveat second. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only resolver with annotations covering safety and an output schema covering returns, the description supplies the essential accepted-input guidance and the sibling-routing condition. It could say slightly more about what 'resolve' produces, but coverage is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with only 'ref' documented, but the description compensates by specifying the three accepted forms (number, task id, task URL). That meaningfully enriches an otherwise bare string parameter, though it omits format specifics or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Resolve) and resource (ONES requirement) and enumerates the accepted identifier forms (number, task id, task URL), so an agent understands this normalizes an identifier into a reference. It partially distinguishes itself from siblings by pointing to *_by_ref tools, though the relationship to resolve_bug and get_requirement_detail isn't fully drawn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when NOT to use this tool ('Prefer *_by_ref tools for normal workflow reads'), implying this is a fallback for when only a raw number or URL is available. It gives clear context without exhaustively enumerating exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsSearch ONES DocsCRead-onlyIdempotent
Search ONES docs by keyword
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| items | Yes | |
| limit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds minimal behavioral context beyond 'search by keyword', not disclosing ordering, pagination, or result handling. Given annotations cover safety, but description fails to add useful behavior details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no redundant information. Every word is necessary and immediately conveys the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not specify the scope of 'ONES docs' or the search domain. For a search tool with many sibling get/list tools, more context on what 'docs' includes and how results are ordered would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. However, it only mentions 'keyword' without explaining the 'query' parameter format or the 'limit' parameter behavior. Parameters remain poorly documented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description specifies verb 'search' and resource 'ONES docs' with parameter 'keyword'. It clearly distinguishes from sibling tools which are all get/list/retrieve operations. However, it does not explicitly differentiate from potential search siblings, but there are none.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions. The description simply states what the tool does without context.
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.
25 tool updates
v2.1.0- Changed
download_ones_resource4 fields changed- removed
Output schema / properties / filename / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / filename / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / mime_type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / mime_type / typeAdded value: +[ + "string", + "null" +]
- Added
download_ones_resource_by_id - Changed
extract_requirement_materials29 fields changed- changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / alt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / alt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / mime_type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / mime_type / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / ref_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / ref_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / ref_type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / ref_type / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / resource_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / resource_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / rich_resources / items / properties / src / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / rich_resources / items / properties / src / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / team_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / team_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / title / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / title / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / url / typeAdded value: +[ + "string", + "null" +]
- Added
extract_requirement_materials_by_ref - Changed
get_bug_detail22 fields changed- removed
Output schema / properties / description / properties / html / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / description / properties / html / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / priority / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / related_tasks / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / severity / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_bug_detail_by_ref22 fields changed- removed
Output schema / properties / description / properties / html / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / description / properties / html / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / priority / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / related_tasks / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / severity / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_bug_parent_requirement10 fields changed- changed
Output schema / properties / bug / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bug / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bug / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / bug / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bug / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bug / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "assignee": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "entity_type": { - "enum": [ - "requirement", - "execution_task", - "bug", - "task" - ], - "type": "string" - }, - "number": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "owner": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "parent_task_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "summary": { - "type": "string" - }, - "task_id": { - "type": "string" - }, - "task_type": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "team": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "updated_at": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "entity_type", - "task_id", - "number", - "summary", - "task_type", - "status", - "owner", - "assignee", - "team", - "parent_task_id", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "entity_type": { + "enum": [ + "requirement", + "execution_task", + "bug", + "task" + ], + "type": "string" + }, + "number": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "owner": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "parent_task_id": { + "type": [ + "string", + "null" + ] + }, + "status": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "summary": { + "type": "string" + }, + "task_id": { + "type": "string" + }, + "task_type": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "team": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "entity_type", + "task_id", + "number", + "summary", + "task_type", + "status", + "owner", + "assignee", + "team", + "parent_task_id", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
get_bug_parent_requirement_by_ref10 fields changed- changed
Output schema / properties / bug / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bug / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bug / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / bug / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bug / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bug / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bug / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "assignee": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "entity_type": { - "enum": [ - "requirement", - "execution_task", - "bug", - "task" - ], - "type": "string" - }, - "number": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "owner": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "parent_task_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "summary": { - "type": "string" - }, - "task_id": { - "type": "string" - }, - "task_type": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "team": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "updated_at": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "entity_type", - "task_id", - "number", - "summary", - "task_type", - "status", - "owner", - "assignee", - "team", - "parent_task_id", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "entity_type": { + "enum": [ + "requirement", + "execution_task", + "bug", + "task" + ], + "type": "string" + }, + "number": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "owner": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "parent_task_id": { + "type": [ + "string", + "null" + ] + }, + "status": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "summary": { + "type": "string" + }, + "task_id": { + "type": "string" + }, + "task_type": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "team": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "entity_type", + "task_id", + "number", + "summary", + "task_type", + "status", + "owner", + "assignee", + "team", + "parent_task_id", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Added
get_doc - Changed
get_doc_chunks4 fields changed- removed
Input schema / properties / cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / cursor / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / next_cursor / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / next_cursor / typeAdded value: +[ + "string", + "null" +]
- Added
get_doc_outline - Changed
get_execution_tasks18 fields changed- changed
Output schema / properties / execution_tasks / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / execution_tasks / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / execution_tasks / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / execution_tasks / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / execution_tasks / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / execution_tasks / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
get_execution_tasks_by_ref18 fields changed- changed
Output schema / properties / execution_tasks / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / execution_tasks / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / execution_tasks / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / execution_tasks / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / execution_tasks / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / execution_tasks / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / execution_tasks / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
get_related_wiki_pages17 fields changed- changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / team_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / team_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / title / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / title / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
get_related_wiki_pages_by_ref17 fields changed- changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / error / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / error / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / team_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / team_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / title / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / title / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / wiki_pages / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / wiki_pages / items / properties / url / typeAdded value: +[ + "string", + "null" +]
- Changed
get_requirement_detail20 fields changed- removed
Output schema / properties / description / properties / html / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / description / properties / html / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / related_tasks / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / related_tasks / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / related_tasks / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / related_tasks / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / related_tasks / items / properties / url / typeAdded value: +[ + "string", + "null" +]
- Added
get_requirement_detail_by_ref - Changed
get_task_messages14 fields changed- changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / messages / items / properties / author / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / messages / items / properties / created_at / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / messages / items / properties / created_at / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / messages / items / properties / html / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / messages / items / properties / html / typeAdded value: +[ + "string", + "null" +]
- Changed
get_task_messages_by_ref14 fields changed- changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / messages / items / properties / author / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / messages / items / properties / created_at / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / messages / items / properties / created_at / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / messages / items / properties / html / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / messages / items / properties / html / typeAdded value: +[ + "string", + "null" +]
- Added
get_task_rich_resources - Changed
get_task_rich_resources_by_ref21 fields changed- changed
Output schema / properties / entity / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / entity / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / entity / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / entity / properties / url / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / alt / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / alt / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / mime_type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / mime_type / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / ref_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / ref_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / ref_type / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / ref_type / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / resource_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / resource_id / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / resources / items / properties / src / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / resources / items / properties / src / typeAdded value: +[ + "string", + "null" +]
- Changed
list_requirement_bugs18 fields changed- changed
Output schema / properties / bugs / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bugs / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bugs / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bugs / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / bugs / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bugs / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / bugs / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / bugs / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / bugs / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / requirement / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / requirement / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / requirement / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / requirement / properties / url / typeAdded value: +[ + "string", + "null" +]
- Added
list_requirement_bugs_by_ref - Added
resolve_bug - Changed
resolve_requirement10 fields changed- changed
Output schema / properties / candidates / items / properties / assignee / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / candidates / items / properties / owner / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / candidates / items / properties / parent_task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / candidates / items / properties / parent_task_id / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / candidates / items / properties / status / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / candidates / items / properties / task_type / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / candidates / items / properties / team / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } +] - removed
Output schema / properties / candidates / items / properties / url / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Output schema / properties / candidates / items / properties / url / typeAdded value: +[ + "string", + "null" +] - changed
Output schema / properties / entity / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "assignee": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "entity_type": { - "enum": [ - "requirement", - "execution_task", - "bug", - "task" - ], - "type": "string" - }, - "number": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": -9007199254740991, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "owner": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "parent_task_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "summary": { - "type": "string" - }, - "task_id": { - "type": "string" - }, - "task_type": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "team": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "id": { - "type": "string" - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "name" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "updated_at": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "entity_type", - "task_id", - "number", - "summary", - "task_type", - "status", - "owner", - "assignee", - "team", - "parent_task_id", - "url" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "assignee": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "entity_type": { + "enum": [ + "requirement", + "execution_task", + "bug", + "task" + ], + "type": "string" + }, + "number": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "owner": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "parent_task_id": { + "type": [ + "string", + "null" + ] + }, + "status": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "summary": { + "type": "string" + }, + "task_id": { + "type": "string" + }, + "task_type": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "team": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "updated_at": { + "type": "string" + }, + "url": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "entity_type", + "task_id", + "number", + "summary", + "task_type", + "status", + "owner", + "assignee", + "team", + "parent_task_id", + "url" + ], + "type": "object" + }, + { + "type": "null" + } +]
9 tool updates
v2.0.1- Removed
extract_requirement_materials_by_ref - Added
get_bug_detail_by_ref - Removed
get_doc - Removed
get_doc_outline - Added
get_requirement_detail - Added
get_task_messages_by_ref - Removed
get_task_rich_resources - Added
get_task_rich_resources_by_ref - Removed
resolve_bug
6 tool updates
v2.0.1- Removed
get_bug_detail_by_ref - Removed
get_requirement_detail - Removed
get_requirement_detail_by_ref - Removed
get_task_messages_by_ref - Removed
get_task_rich_resources_by_ref - Removed
list_requirement_bugs_by_ref
4 tool updates
v2.0.0- Changed
get_doc6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / viewRemoved value: -{ - "default": "llm", - "enum": [ - "llm", - "human", - "both" - ], - "type": "string" -} - removed
Output schema / properties / human_viewRemoved value: -{ - "additionalProperties": false, - "properties": { - "content": { - "type": "string" - }, - "format": { - "const": "markdown", - "type": "string" - } - }, - "required": [ - "format", - "content" - ], - "type": "object" -} - removed
Output schema / properties / llm_viewRemoved value: -{ - "additionalProperties": false, - "properties": { - "children": { - "items": {}, - "type": "array" - }, - "resources": { - "items": {}, - "type": "array" - }, - "source_format": { - "enum": [ - "html", - "richtext-json", - "plain" - ], - "type": "string" - }, - "type": { - "const": "document", - "type": "string" - } - }, - "required": [ - "type", - "source_format", - "children" - ], - "type": "object" -} - added
Output schema / properties / markdownAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "doc" -]New value: +[ + "doc", + "markdown" +]
- Changed
get_doc_chunks3 fields changed- removed
Output schema / properties / contentRemoved value: -{ - "additionalProperties": false, - "properties": { - "children": { - "items": {}, - "type": "array" - }, - "resources": { - "items": {}, - "type": "array" - }, - "source_format": { - "enum": [ - "html", - "richtext-json", - "plain" - ], - "type": "string" - }, - "type": { - "const": "document", - "type": "string" - } - }, - "required": [ - "type", - "source_format", - "children" - ], - "type": "object" -} - added
Output schema / properties / markdownAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "doc", - "chunk", - "content", - "has_more", - "next_cursor" -]New value: +[ + "doc", + "chunk", + "markdown", + "has_more", + "next_cursor" +]
- Changed
get_doc_context3 fields changed- removed
Output schema / properties / contextRemoved value: -{ - "additionalProperties": false, - "properties": { - "children": { - "items": {}, - "type": "array" - }, - "resources": { - "items": {}, - "type": "array" - }, - "source_format": { - "enum": [ - "html", - "richtext-json", - "plain" - ], - "type": "string" - }, - "type": { - "const": "document", - "type": "string" - } - }, - "required": [ - "type", - "source_format", - "children" - ], - "type": "object" -} - added
Output schema / properties / markdownAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "doc", - "strategy", - "reason", - "selected_sections", - "consumed_chunks", - "truncated", - "context" -]New value: +[ + "doc", + "strategy", + "reason", + "selected_sections", + "consumed_chunks", + "truncated", + "markdown" +]
- Changed
get_doc_section3 fields changed- removed
Output schema / properties / contentRemoved value: -{ - "additionalProperties": false, - "properties": { - "children": { - "items": {}, - "type": "array" - }, - "resources": { - "items": {}, - "type": "array" - }, - "source_format": { - "enum": [ - "html", - "richtext-json", - "plain" - ], - "type": "string" - }, - "type": { - "const": "document", - "type": "string" - } - }, - "required": [ - "type", - "source_format", - "children" - ], - "type": "object" -} - added
Output schema / properties / markdownAdded value: +{ + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "doc", - "section", - "content", - "truncated" -]New value: +[ + "doc", + "section", + "markdown", + "truncated" +]
1 tool update
v1.5.0- Added
download_ones_resource
26 tool updates
v1.4.0- First observed
extract_requirement_materials - First observed
extract_requirement_materials_by_ref - First observed
get_bug_detail - First observed
get_bug_detail_by_ref - First observed
get_bug_parent_requirement - First observed
get_bug_parent_requirement_by_ref - First observed
get_doc - First observed
get_doc_chunks - First observed
get_doc_context - First observed
get_doc_outline - First observed
get_doc_section - First observed
get_execution_tasks - First observed
get_execution_tasks_by_ref - First observed
get_related_wiki_pages - First observed
get_related_wiki_pages_by_ref - First observed
get_requirement_detail - First observed
get_requirement_detail_by_ref - First observed
get_task_messages - First observed
get_task_messages_by_ref - First observed
get_task_rich_resources - First observed
get_task_rich_resources_by_ref - First observed
list_requirement_bugs - First observed
list_requirement_bugs_by_ref - First observed
resolve_bug - First observed
resolve_requirement - First observed
search_docs
TDQS
Scored across 28 tools
The server is dominated by near-duplicate tool pairs (e.g. get_requirement_detail vs get_requirement_detail_by_ref, get_bug_detail vs get_bug_detail_by_ref, get_task_messages vs get_task_messages_by_ref) that differ only in whether the input is a task id or a number/URL. The descriptions explicitly state 'prefer *_by_ref for normal workflow reads,' which helps an agent choose, but the systematic duplication still creates real misselection risk. The doc tools (get_doc, get_doc_section, get_doc_chunks, get_doc_outline, get_doc_context) are mostly distinct by granularity, though get_doc_context overlaps with section/chunk retrieval.
All tools use snake_case verb_noun phrasing (get_, resolve_, list_, extract_, search_, download_) with a consistent '_by_ref' suffix convention for the reference-based variants. Minor stylistic drift exists between get_ vs resolve_ for related operations, but the pattern is largely predictable.
At 28 tools the set is heavy for the stated scope, and much of the bloat comes from duplicating roughly ten read operations into non-ref/ref pairs. Collapsing these pairs would bring the surface to a much more reasonable ~15 tools, so the current count is inflated rather than earned.
Coverage spans docs (retrieval, outline, chunks, search, resource download), requirements, bugs, tasks, comments, wiki pages, and rich resources, with by_ref variants for most read paths. It is a read-oriented surface with no create/update operations, but for a documentation/inspection server the lifecycle coverage is solid with only minor gaps (e.g. no generic task-detail fetch, search limited to docs).
Maintenance
Related MCP Connectors
Secure MCP server for exploring incwo CRM data, documents, and email workflows.
MCP server for opencode documentation, generated by doc2mcp.
MCP server for detecting and redacting PII (Personally Identifiable Information) in PDF documents.
Read-only MCP server exposing a user ORANO library to their own AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for Google Docs integration with comprehensive document operations support, batch processing, and efficient content management.62 npmMIT
- AlicenseAqualityDmaintenanceMCP server that enables searching and reading binary document files (PDF, DOCX, PPTX, XLSX, ODT, ODS, ODP, RTF, EPUB) using regex patterns and retrieving content by sections.2MIT
- AlicenseAqualityDmaintenanceMCP server for creating and reading Word (.docx) documents with rich formatting support.38 npmMIT
- FlicenseNot gradedqualityBmaintenanceA local MCP server providing read-only access to documents like Word, PDF, Excel, and images, with file listing, reading, and metadata extraction.1-