cawplan-testcase-import
Installation
SKILL.md
CawPlan TestCase Import — A1 用例导入 TestRail
cawplan skill check
硬门禁(MUST)
- preview-first → 框 4 执行闸 →
execute --confirm;禁止跳闸。 - 数据源:已有展开用例 →
INLINE;仅测试点 →REQUIREMENT。禁止source.type=VERSION。 - Suite / Section 确认闸:
mappings get后 框 3(Suite)→ 框 3.5(Section 归属)(顺序固定)须用户确认后才可 preview / convert。禁止静默使用default_suite_id(不做推荐标注)或静默复用/推断parent_section_id。SUITE_NOT_IN_PROJECT/SECTION_NOT_IN_SUITE/SECTION_NOT_FOUND→ 停止。同会话已确认且未换 Suite/Section → 可复用(import-rules §ConfirmState)。框 3.5 每次导入都问,仅 Intent 显式命中或 ConfirmState 复用时免弹。Version 全程无感:不弹窗、不推断确认,仅 Intent 显式命中或用例自带值才写入,否则不传(结果里注明"未指定版本")。 - 用户展示:
ux.md §Glossary;preview_id/job_id/UUID 默认隐藏;跟随用户主语言;Agent 自行AskUserQuestion(不写入allowed-tools)。 - TestRail 超链接:
§Preview/§Result/§AsyncHandoff中 Suite ID、Section ID、Case ID 必须可点击跳转(ux §TestRailLinks);禁止仅裸数字 ID。 - 热接力:P1/P1b → 自动
INLINE,跳过框 0、框 1(ux.md §Trigger);不跳过框 3、框 3.5(除非ux §Intent显式命中 Suite/Section,或§ConfirmState复用);Version 无感,不涉及跳过判断。 - INLINE body 组装:数据来自同会话
cawplan-testcase-generate时,禁止手写 camelCase→snake_case 转换脚本或逐条手算source_case_key/priority——须先落一份与 A3csv-template-mapping.md同构的 interim JSON(camelCase,照抄字段,不做映射),框 3/3.5 确认后再用scripts/convert_generate_to_import.js转换为 body(import-rules.md §Convert)。convert因个别用例steps/expected不合规失败时,Agent 可读取<out>.errors.json、征得用户同意后从 interim JSON 摘除对应整条用例重跑(只删条目,不改内容值),不属于此处禁止的"手算字段"。 - 异步 Job(
to_create > 50):execute成功后 禁止默认jobs poll;须先走ux §AsyncHandoff+ 框 6。仅用户显式选「等到完成」才进入框 6b 等待循环。JobRUNNING时 禁止 重复execute。 - 失败后重试前必核实副作用:
execute(同步或异步)判定失败后(已知错误码或未知错误码),禁止直接复用旧preview_id或立即新开 preview 重新execute——失败可能只是批次级判定,execute内部可能已产生真实副作用(如 Section 已建到 TestRail)。须先按import-rules §RetrySafety核实,再决定下一步。