一键导入
doc-regression
Manual-only repo workflow. Use only when explicitly invoked as doc-regression or by SKILL.md path; do not auto-select from related requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manual-only repo workflow. Use only when explicitly invoked as doc-regression or by SKILL.md path; do not auto-select from related requests.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Manual-only repo workflow. Use only when explicitly invoked as uat-regression or by SKILL.md path; do not auto-select from related requests.
Manual-only repo workflow. Use only when explicitly invoked as doc-suite-updater or by SKILL.md path; do not auto-select from related requests.
Manual-only repo workflow. Use only when explicitly invoked as fastmcp-spike-guide or by SKILL.md path; do not auto-select from related requests.
Manual-only repo workflow. Use only when explicitly invoked as omnifocus-api-ground-truth-audit or by SKILL.md path; do not auto-select from related requests.
Manual-only repo workflow. Use only when explicitly invoked as test-omnifocus-operator or by SKILL.md path; do not auto-select from related requests.
Manual-only repo workflow. Use only when explicitly invoked as uat-gm-cross-coverage-audit or by SKILL.md path; do not auto-select from related requests.
| name | doc-regression |
| description | Manual-only repo workflow. Use only when explicitly invoked as doc-regression or by SKILL.md path; do not auto-select from related requests. |
Test whether the tool documentation (description + inputSchema) is clear enough for LLMs to construct correct JSON payloads, without access to source code.
The whole point is testing docs as agents see them. Tool knowledge comes ONLY from ToolSearch queries. Never read server.py, model files, or any .py source. This applies during scenario creation, test execution, AND grading.
Trigger: "doc regression", "run doc tests", "test tool docs", "schema regression"
Run scenario suites against models and produce a scorecard.
Invocation patterns:
doc regression edit-tasks — all scenarios, all 3 modelsdoc regression add-tasks sonnet — one suite, one modeldoc regression edit-tasks scenario 3 haiku — one scenario, one modeldoc regression all — all suites, all modelsTrigger: "add doc scenarios", "brainstorm scenarios", "new doc test cases"
Collaboratively brainstorm and add new scenarios. Flow:
Determine from the user's message:
edit-tasks, add-tasks, all)haiku, sonnet, opus, or all three)This is the most important step. Use ToolSearch to fetch the CURRENT description + schema for the tools needed by the suite:
edit-tasks suite → fetch both edit_tasks AND add_tasks (multi-tool scenarios)add-tasks suite → fetch both add_tasks AND edit_tasks (multi-tool scenarios)Search query: omnifocus (broad enough to find all tools). Extract the description and full parameters schema for each tool.
Format the tool docs as a clean reference block to include in the exam prompt:
## Tool: add_tasks
**Description:**
[full description text]
**Input Schema:**
[full JSON Schema]
---
## Tool: edit_tasks
**Description:**
[full description text]
**Input Schema:**
[full JSON Schema]
Read the scenario file from scenarios/ (relative to this skill file). Parse each ### Scenario section, extracting:
For each scenario, build this prompt (NEVER include Trap or Grading):
You are being tested on how well you can construct MCP tool call payloads from a tool definition.
Here are the tools with their descriptions and input schemas:
---
{tool docs from Step 2}
---
Today's date is {current date in YYYY-MM-DD format}.
Produce the correct JSON payload for this task. Output ONLY the tool name and JSON payload.
If multiple tool calls are needed, show each one in order and note dependencies.
Task: {scenario prompt}
Spawn one Agent per model — each agent receives ALL scenarios as a single exam and answers every one. With 2 models that's 2 agents; with 3 models, 3 agents. Launch all model agents in parallel.
Construct the agent prompt by concatenating ALL scenario exam prompts (from Step 4) into one message, separated by ---. The agent answers each scenario in order. Agent prompt is exactly the combined exam — nothing more.
For each model response:
Grading notes:
Output the report using the format below.
Each scenario file uses this markdown structure:
### Scenario N: Short descriptive name
**Prompt:**
> Natural language task request as an agent would receive it.
**Trap:** What makes this tricky (human-only, NEVER sent to model).
**Expected:** `tool_name`
\```json
{ ... }
\```
**Grading:**
- `items[0].field` MUST equal "value"
- `items[0].other` MUST NOT be present
- `items[0].field` SHOULD contain "text"
Rules:
add_tasks then edit_tasks, show both payloadsMUST be a date in [month] [year]Use emoji for results: ✅ = pass, ❌ = fail, ⚠️ = pass with warnings.
Group scenarios by category with bold header rows for visual scanning. Keep the table tight — trap column should be 3-5 words max.
When only one model is tested, omit the other model columns.
# 📋 Doc Regression — {suite_name}
> **Date:** {date}
> **Docs:** fetched live via ToolSearch
> **Models:** Haiku · Sonnet · Opus
---
## Results
| # | Scenario | Trap | 🟣 Haiku | 🔵 Sonnet | 🟠 Opus |
|--:|----------|------|:--------:|:---------:|:-------:|
| | **Patch Semantics** | | | | |
| 1 | Surgical null/omit/value | estimatedMinutes omit | ✅ | ✅ | ✅ |
| 2 | Mass clear | all fields + tags | ❌ | ✅ | ✅ |
| | **Date Fields** | | | | |
| 5 | Hide from lists | defer not planned | ✅ | ⚠️ | ✅ |
...
---
## Scoreboard
| Model | ✅ | ❌ | Score |
|-------|:--:|:--:|:-----:|
| 🟣 Haiku | 20 | 2 | **20/22** |
| 🔵 Sonnet | 18 | 4 | **18/22** |
| 🟠 Opus | 22 | 0 | **22/22** |
---
## ❌ Failures
### Scenario 2 — Mass clear (Haiku)
**Trap:** all fields + tags
**Expected:** `actions.tags.replace: null`
**Got:** `actions.tags.remove: ["all"]` — used remove mode instead of replace
**Root cause:** Docs don't explicitly say "replace with null/[] to clear all"
### Scenario 5 — Hide from lists (Sonnet) ⚠️
**Trap:** defer not planned
**Note:** Used correct field (deferDate) but also set plannedDate — harmless but unnecessary
---
## 📝 Doc Improvement Notes
Patterns from failures that suggest documentation could be clearer:
- **[Pattern]:** N/M models failed scenario X — [suggested doc improvement]
Section rules: