verify-upstream-config-examples
Detect drift between testagent's upstream config corpus and vendor docs; surface net-new examples as a draft PR.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Detect drift between testagent's upstream config corpus and vendor docs; surface net-new examples as a draft PR.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Drive cutting a new testagent release end-to-end: analyze the surface diff against the bump table in RELEASING.md, propose a version, draft three-bucket release notes, tag, watch CI, then publish curated notes.
Use when refreshing a vendor's section of COMPATIBILITY.md after an upstream release, when `task dumpcli:<vendor>` reports drift, when a contributor adds a flag or slash command not yet in the matrix, or for periodic coverage checks. Vendor is parsed from the trigger phrase. Triggers include "update claude compat", "research claude", "check claude coverage", "claude drift", "new claude version" — and the same patterns for "codex" and "cursor". Generic phrases ("compat drift", "sync compatibility") prompt for the vendor.
| name | verify-upstream-config-examples |
| description | Detect drift between testagent's upstream config corpus and vendor docs; surface net-new examples as a draft PR. |
| triggers | ["verify upstream config examples","check upstream config drift","verify config corpus"] |
Detects drift between the vendored corpus under testdata/upstream-examples/ and live vendor docs. Net-new examples that pass testagent <vendor> validate --strict are written to the corpus and surfaced as a draft PR.
| Phrase | Vendor arg |
|---|---|
| "verify upstream config examples" (no vendor named) | ask the user or default to all |
| "verify claude config corpus" / "check claude drift" | claude |
| "verify codex config corpus" / "check codex drift" | codex |
| "verify cursor config corpus" / "check cursor drift" | cursor |
| "verify upstream config examples all" | all (runs all three sequentially) |
Vendor must be claude, codex, cursor, or all. If ambiguous, ask: "Which vendor — claude, codex, cursor, or all?"
Per sources.md:
curl -sL https://code.claude.com/llms.txt — produces a flat list of doc URLs. Grep for lines containing hooks or mcp; curl each linked page (also markdown).curl -sL https://cursor.com/llms.txt — same shape. Linked pages under /docs/hooks and /docs/context/mcp.gh api repos/openai/codex/contents/README.md -H 'Accept: application/vnd.github.raw' — inline fenced blocks; no link-following needed.From each fetched page, extract all fenced code blocks of the relevant language:
claude and cursor: ```json blocks.codex: ```toml blocks.Use awk to detect ```json / ```toml openers and matching ``` closers. Produce one candidate file per block.
For each candidate block:
testdata/upstream-examples/<vendor>/.For each net-new or drifted block, run:
/tmp/testagent <vendor> validate --strict < <candidate-file>
testdata/upstream-examples/<vendor>/).update-compatibility follow-up item. Do NOT vendor the failing block. Include it in the ### Skipped — fail --strict section of the PR body.Before opening any PR, run:
gh pr list --search 'in:title "upstream-config drift detected (<vendor>)" state:open'
If a matching open PR exists, skip PR creation and report the existing PR URL.
If net-new passing fixtures were found:
testdata/upstream-examples/<vendor>/<slug>.{json,toml}..source sibling with:
url: <source-page-url>
verified: <YYYY-MM-DD>
testagent <vendor> validate --strict against every newly written fixture to confirm.chore/upstream-drift-<vendor>-<date>.chore(testdata): upstream-config drift detected (<vendor>).gh pr create --draft \
--title "chore(testdata): upstream-config drift detected (<vendor>)" \
--body "$(cat /tmp/drift-pr-body.md)"
## Upstream config drift detected — <vendor>
Net-new examples found in upstream docs that pass `testagent <vendor> validate --strict`. Adding to the corpus.
### Added
- `testdata/upstream-examples/<vendor>/<slug>.json` (from <source-url>)
### Drifted (existing fixture diverges from upstream)
- `testdata/upstream-examples/<vendor>/<existing>.json` — <description of change>
### Skipped — fail --strict
- N examples with <field> field (not in testagent's allowlist); tracked separately in `update-compatibility`.
🤖 Generated by `.github/workflows/upstream-drift.yml`
--strict. Surface it as an update-compatibility follow-up..claude/skills/verify-upstream-config-examples/
├── SKILL.md # this file
└── sources.md # per-vendor source URLs and extraction notes
The shell-script implementation lives at scripts/upstream-drift.sh (invoked by .github/workflows/upstream-drift.yml). The skill and the script must stay in sync.