From yunxiao-bug-export
Use when you need to export Yunxiao project bug lists, unresolved bug details, rich-text screenshots, and dated Markdown or JSON artifacts through the official alibabacloud-devops-mcp-server. Trigger when the user asks to read Yunxiao bugs, inspect bug details with images, or migrate browser-based Projex harvesting to an MCP-first workflow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/yunxiao-bug-export:yunxiao-bug-exportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill exports Yunxiao bugs through the official `alibabacloud-devops-mcp-server` instead of relying on a logged-in browser session. It preserves the repo-local artifact workflow from the old bug harvest flow, but writes outputs under dated directories so later fixing work can consume stable JSON, Markdown, and downloaded screenshots.
This skill exports Yunxiao bugs through the official alibabacloud-devops-mcp-server instead of relying on a logged-in browser session. It preserves the repo-local artifact workflow from the old bug harvest flow, but writes outputs under dated directories so later fixing work can consume stable JSON, Markdown, and downloaded screenshots.
Use this skill when one or more of the following are true:
Do not use this skill as the first choice when the user explicitly wants browser scraping or when the target system is outside Yunxiao.
Use the bundled exporter to talk to the official MCP server over stdio. The exporter:
organizationId--project-id, --project-name, or --project-aliassearch_workitemsget_work_itemlist_workitem_attachmentsget_workitem_filedocs/output/yunxiao-bugs/YYYY-MM-DD/Recommended command:
bash scripts/export_yunxiao_bugs.sh \
--project-name "就业项目" \
--output-dir "/absolute/path/to/docs/output"
By default, the exporter exports unresolved bugs by excluding these statuses:
已修复已关闭暂不解决The exporter also tolerates nearby variants such as 暂不修复 and 已解决. This default is more reusable across different Yunxiao projects than hardcoding only a few in-progress states. Use --all-bugs only when you explicitly want every bug status.
Preferred reuse mode:
--project-id or --project-name--project-alias.codex/yunxiao-bug-export.projects.jsonConfig file example:
{
"defaultProjectAlias": "job3",
"projects": {
"job3": {
"organizationId": "f3fdeb6e-03b5-406d-b1dd-c79104fc0f5e",
"projectId": "a27b5e78f058a07cf351e424c2",
"projectName": "就业项目",
"customCode": "NJUJOB",
"excludedStatuses": ["已修复", "已关闭", "暂不解决"]
}
}
}
An example file is bundled at assets/projects.example.json.
Resolution priority is:
--project-aliasdefaultProjectAlias from configThe exporter first reads the current shell environment. If YUNXIAO_ACCESS_TOKEN or YUNXIAO_API_BASE_URL are missing there, it falls back to ~/.codex/config.toml under [mcp_servers.yunxiao.env].
This skill is installable from a marketplace in one step, but successful execution still depends on the Yunxiao MCP runtime being available on the machine.
Required dependency:
alibabacloud-devops-mcp-server must be installed and callable. The simplest setup is a global npm install:npm install -g alibabacloud-devops-mcp-server
Required Codex config:
[mcp_servers.yunxiao]
command = "alibabacloud-devops-mcp-server"
[mcp_servers.yunxiao.env]
YUNXIAO_ACCESS_TOKEN = "pt-..."
YUNXIAO_API_BASE_URL = "https://your-org.devops.aliyuncs.com"
Notes:
YUNXIAO_ACCESS_TOKEN and YUNXIAO_API_BASE_URL may be placed either in the shell environment or in ~/.codex/config.toml~/.codex/config.toml automatically when the shell environment is missing these variablesIf neither source is available, set:
export YUNXIAO_ACCESS_TOKEN="..."
export YUNXIAO_API_BASE_URL="https://your-org.devops.aliyuncs.com"
The exporter trims a trailing slash from YUNXIAO_API_BASE_URL automatically because the official MCP server can misroute requests when the base URL ends with /.
The output contract is:
docs/output/yunxiao-bugs/YYYY-MM-DD/README.mddocs/output/yunxiao-bugs/YYYY-MM-DD/yunxiao-bug-list-cache.jsondocs/output/yunxiao-bugs/YYYY-MM-DD/yunxiao-bugs-full.jsondocs/output/yunxiao-bugs/YYYY-MM-DD/yunxiao-bugs-summary.jsondocs/output/yunxiao-bugs/YYYY-MM-DD/yunxiao-bugs-grouped.mddocs/output/yunxiao-bugs/YYYY-MM-DD/bugs/*.mddocs/output/yunxiao-bugs/YYYY-MM-DD/yunxiao-bug-images/*docs/output/yunxiao-bugs/LATESTThis keeps every run grouped by date instead of flattening artifacts into a single directory.
If the raw list cache, full JSON, and optional image map have already been captured, regenerate the dated Markdown and summary artifacts with:
bash scripts/materialize_yunxiao_bugs.sh \
--list-url "yunxiao-mcp://project/<PROJECT_ID>/bugs" \
--list-cache-file "/absolute/path/to/list-cache.json" \
--full-json-file "/absolute/path/to/full-items.json" \
--output-dir "/absolute/path/to/docs/output" \
--image-map-file "/absolute/path/to/image-map.json" \
--source yunxiao-mcp
If the official MCP server cannot reproduce a UI-only filtered view, or if authentication and field parity are blocked, fall back to a temporary browser or Playwright workflow in the current task instead of reintroducing a permanent browser-first skill.
The most useful fields for downstream fixing work are usually:
workitemCodesubjectstatusdescriptionTextdescriptionImagePathsattachmentCountlocalBugMarkdownPathIf the description is screenshot-only, descriptionText may be short or empty while descriptionImagePaths still contains useful evidence.
get_workitem_file returns themCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub xuniversity/plugins-marketplace --plugin yunxiao-bug-export