shiplight
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseShiplight
Shiplight
The single entry point for Shiplight QA work. This skill takes a subcommand
and routes it to the right workflow. Everything Shiplight-branded comes through
here; the description above is deliberately gated so this skill fires only when
the user names "shiplight" or types — never on a generic "write a
test".
/shiplightShiplight QA工作的统一入口。该技能接收一个子命令并将其路由至对应的工作流。所有Shiplight相关的操作都通过此处执行;上述描述设置了触发限制,因此仅当用户提及"shiplight"或输入时才会激活该技能——不会因通用的"编写测试"请求触发。
/shiplightRouting contract
路由规则
- Identify the subcommand. Match the argument against the dispatch table —
do not rely on the first token alone, because synonyms are often multi-word
(,
yaml test) and intents may lead with a non-token word (set up tests for my app,create yaml test). In order: (a) an exact canonical token as the leading word; (b) the longest canonical-token or synonym phrase the argument contains; (c) overall intent against the synonym/intent column. Pick the single best-matching subcommand.show failing tests - Pass-through context. Forward whatever the selector didn't consume to the
subcommand as context. Natural phrasing is expected — users won't type the
exact hyphenated token; match the intent and treat the rest as the target.
Examples:
- →
/shiplight cover checkout flow+ contextcovercheckout flow - →
/shiplight create a yaml test for login(matched on "yaml test") + contextcreate-yaml-testsfor login - →
/shiplight create agent verification for the signup flow(matched on "agent verification") + contextcreate-agent-verificationfor the signup flow
- Dispatch. Read the matching (or
references/<subcommand>.mdfor nested subcommands) and follow it, carrying the context forward.references/<subcommand>/index.md - Clarify, don't guess. If the selector is empty (alone) or ambiguous (see Ambiguity notes), show the menu and ask one clarifying question — the user wants to act but didn't say how. This differs from
/shiplight, which is informational:helplists/explains subcommands and never executes (seehelp).references/help.md - Confirm destructive actions. Never auto-run against a non-empty project — confirm first.
init
- 识别子命令:将参数与调度表匹配——不要仅依赖第一个词,因为同义词通常是多词短语(如、
yaml test),且用户意图可能以非命令词开头(如set up tests for my app、create yaml test)。匹配优先级为:(a) 作为开头词的完全匹配标准命令;(b) 参数中包含的最长标准命令或同义词短语;(c) 整体意图与同义词/意图列匹配。选择最匹配的单个子命令。show failing tests - 传递上下文:将选择器未识别的内容作为上下文转发给子命令。支持自然表述——用户不会输入完全符合连字符格式的命令;匹配意图后,将剩余内容作为目标处理。示例:
- →
/shiplight cover checkout flow+ 上下文covercheckout flow - →
/shiplight create a yaml test for login(匹配"yaml test")+ 上下文create-yaml-testsfor login - →
/shiplight create agent verification for the signup flow(匹配"agent verification")+ 上下文create-agent-verificationfor the signup flow
- 调度执行:读取匹配的(对于嵌套子命令则读取
references/<subcommand>.md)并按照指引执行,同时携带上下文信息。references/<subcommand>/index.md - 明确询问,不猜测:如果选择器为空(仅输入)或存在歧义(参见歧义说明),则显示菜单并提出一个明确性问题——用户想要执行操作但未说明具体方式。这与
/shiplight命令不同,help仅提供信息:help会列出/解释子命令且从不执行操作(参见help)。references/help.md - 确认破坏性操作:切勿在非空项目中自动运行命令——需先确认。
init
Shared layer
共享层
- On every subcommand invocation (skip for and
help), identify the test project root, then runsupportonce (daily skill refresh +references/_shared/update-check.mdCLI version gate). It can halt the run: a CLI behind the latest published version stops the subcommand before it starts, and offers an upgrade.shiplightai - Each subcommand names the modules it needs (auth, mcp, evidence-and-report, project-layout, ground-truth, knowledge, secrets, vocabularies, test-spec-template). Read those before acting — they are the single source of truth, not restated per subcommand.
references/_shared/
- 在每次调用子命令时(和
help命令除外),识别测试项目根目录,然后运行一次support(每日技能更新 +references/_shared/update-check.mdCLI版本校验)。该步骤可终止运行:如果CLI版本低于最新发布版本,会在子命令启动前终止运行,并提供升级选项。shiplightai - 每个子命令会指定所需的模块(auth、mcp、evidence-and-report、project-layout、ground-truth、knowledge、secrets、vocabularies、test-spec-template)。执行操作前需先读取这些模块——它们是唯一的事实来源,不会在每个子命令中重复说明。
references/_shared/
Subcommands (menu)
子命令(菜单)
Show this grouped menu when invoked bare or when clarifying.
Setup
- — scaffold a Shiplight test project + write
initspecs/context.md - — set up / repair login and saved storage state
auth - — refresh installed Shiplight skills + the
updateCLIshiplightai
Author
- — implement deterministic YAML E2E tests from a spec
create-yaml-tests - — create a reusable agent-run verification script
create-agent-verification - — decide test format + effort, plan, drive the producers, report
cover
Maintain
- — reproduce and repair failing or drifted tests
fix
Check
- — verify UI changes in the browser during local development
verify
Review
- — app-quality review (security, privacy, design, performance, …)
review
Ship
- — wire CI workflows + failure-triage pipeline
ci - — read Shiplight Cloud (Nova) test results (runs, failing/flaky tests, artifacts) and analytics (health summary, pass-rate/run trends, slowest/flaky rankings, failure attribution)
cloud
Help
- — list subcommands, or
helpfor details (does not execute)help <subcommand> - — get human help: file a support ticket with session diagnostics, check replies
support
End the menu with one footer line:
Stuck? /shiplight support reaches a human — the ticket drafts itself from this session.当用户仅调用或需要明确意图时,显示以下分组菜单。
/shiplight设置
- —— 搭建Shiplight测试项目 + 编写
initspecs/context.md - —— 设置/修复登录状态和存储状态
auth - —— 更新已安装的Shiplight技能 +
updateCLIshiplightai
编写测试
- —— 根据规范实现确定性YAML端到端测试
create-yaml-tests - —— 创建可复用的Agent运行验证脚本
create-agent-verification - —— 确定测试格式与工作量、规划测试、推动执行并生成报告
cover
维护测试
- —— 复现并修复失败或偏移的测试
fix
验证
- —— 在本地开发期间在浏览器中验证UI变更
verify
评审
- —— 应用质量评审(安全、隐私、设计、性能等)
review
发布
- —— 配置CI工作流 + 失败分类流水线
ci - —— 查看Shiplight Cloud(Nova)测试结果(运行记录、失败/不稳定测试、工件)和分析数据(健康摘要、通过率/运行趋势、最慢/最不稳定测试排名、失败归因)
cloud
帮助
- —— 列出子命令,或使用
help查看详情(不执行操作)help <subcommand> - —— 获取人工帮助:提交包含会话诊断信息的支持工单,查看回复
support
菜单末尾添加一行页脚:
遇到问题?输入/shiplight support联系人工——工单会自动从当前会话生成诊断信息。Dispatch table
调度表
| Canonical | Synonyms / intents | Reference |
|---|---|---|
| set up shiplight, new test project, scaffold | |
| log in, save session, storage state, authentication | |
| self-update, upgrade skills, refresh skills, upgrade the shiplight cli, bump shiplightai, cli out of date | |
| yaml test(s), create a yaml test, write a yaml/e2e test, deterministic test, e2e test, write a test | |
| agent verification, create agent verification, verification script, repeatable agent check, live-env verification, full-stack test, cross-layer test, test the whole stack, drive the UI and check the backend/database, verify the backend state too, release smoke test, pre-release smoke | |
| coverage, test coverage, what's untested, coverage gaps, testing strategy, plan tests, write a spec, test plan, set up tests for my app, build tests, test this feature | |
| failing test, triage, repair test, update test for product change | |
| screenshot, verify the change, check the UI, visual check | |
| security review, review my app, accessibility, privacy, performance, seo | |
| github actions, ci setup, pipeline | |
| cloud results, test run results, failing tests, flaky tests, ci results, download artifacts, test health, pass rate, pass-rate/run trend, slowest tests, flakiest tests, failure attribution, failure breakdown, analytics | |
| I'm stuck, contact support, talk to a human, human help, shiplight is broken, report a shiplight bug, file a ticket, support ticket, ticket status | |
| what can shiplight do, list commands, usage, | |
| 标准命令 | 同义词 / 意图 | 参考文档 |
|---|---|---|
| set up shiplight, new test project, scaffold | |
| log in, save session, storage state, authentication | |
| self-update, upgrade skills, refresh skills, upgrade the shiplight cli, bump shiplightai, cli out of date | |
| yaml test(s), create a yaml test, write a yaml/e2e test, deterministic test, e2e test, write a test | |
| agent verification, create agent verification, verification script, repeatable agent check, live-env verification, full-stack test, cross-layer test, test the whole stack, drive the UI and check the backend/database, verify the backend state too, release smoke test, pre-release smoke | |
| coverage, test coverage, what's untested, coverage gaps, testing strategy, plan tests, write a spec, test plan, set up tests for my app, build tests, test this feature | |
| failing test, triage, repair test, update test for product change | |
| screenshot, verify the change, check the UI, visual check | |
| security review, review my app, accessibility, privacy, performance, seo | |
| github actions, ci setup, pipeline | |
| cloud results, test run results, failing tests, flaky tests, ci results, download artifacts, test health, pass rate, pass-rate/run trend, slowest tests, flakiest tests, failure attribution, failure breakdown, analytics | |
| I'm stuck, contact support, talk to a human, human help, shiplight is broken, report a shiplight bug, file a ticket, support ticket, ticket status | |
| what can shiplight do, list commands, usage, | |
Ambiguity notes
歧义说明
- "test" / "write a test" → could be (deterministic, UI focused) or
create-yaml-tests(spans UI and backend state). Default tocreate-agent-verificationunless the user signals a core journey, backend/ cross-layer proof, release smoke, or live-env judgment — but if unclear, ask.create-yaml-tests - "smoke test" → ambiguous alone. A quick UI pass over key screens is
; a pre-release check that a core journey works and left the right backend state is
create-yaml-tests. Ask which, unless the user names a backend expectation or a release gate.create-agent-verification - "verify" / "verification" → the verb (check a change now) is ; creating a reusable verification script is
verify. Thecreate-agent-verificationframing is the tell. Ask if the user's phrasing doesn't disambiguate.create- - "triage" → in Shiplight this means (repair failing tests). Do not confuse with
fix's internal triage/plan step.review - "failing tests" / "flaky tests" → reading them from CI ("in the cloud",
"from the last run", plural reporting) is (Nova results); repairing a broken test ("my test is failing", "fix this") is
cloud. Ask if the phrasing doesn't say which.fix - "report a bug" / "X is broken" → depends on what is broken. The user's
app misbehaving is ground truth to report (), not a subcommand; Shiplight itself misbehaving (skill, CLI, cloud API) is
_shared/ground-truth.md. Ask if unclear which one the user means.support
- "test" / "write a test" → 可能对应(确定性、聚焦UI)或
create-yaml-tests(覆盖UI 和 后端状态)。默认选择create-agent-verification,除非用户明确表示需要核心流程验证、后端/跨层验证、发布冒烟测试或实时环境判断——若存在歧义,需询问用户。create-yaml-tests - "smoke test" → 单独使用时存在歧义。快速遍历关键页面的UI测试属于;验证核心流程正常运行 且 后端状态正确的预发布检查属于
create-yaml-tests。若用户未明确说明,需询问具体需求。create-agent-verification - "verify" / "verification" → 作为动词(立即检查变更)时对应;创建可复用验证脚本时对应
verify。是否包含create-agent-verification前缀是判断依据。若用户表述无法明确区分,需询问。create- - "triage" → 在Shiplight中表示(修复失败测试)。请勿与
fix中的内部分类/规划步骤混淆。review - "failing tests" / "flaky tests" → 查看CI中的测试结果("在云端"、"上次运行结果"、批量报告)对应(Nova结果);修复单个失败测试("我的测试失败了"、"修复这个测试")对应
cloud。若用户表述无法明确区分,需询问。fix - "report a bug" / "X is broken" → 取决于什么出现问题。用户应用故障属于需要报告的事实依据(),不属于子命令;Shiplight自身故障(技能、CLI、云API)对应
_shared/ground-truth.md。若存在歧义,需询问用户。support
After a subcommand completes or aborts (next-step suggestion)
子命令完成或终止后的下一步建议
After a subcommand's final report — including the report of an aborted run —
optionally append one next-step suggestion. Rules:
- Evidence-only. A suggestion must be triggered by something already observed during the run — the diff analyzed, the failure diagnosed, the project state read. Never run extra analysis (a new git diff, file scan, or browser session) just to decide a suggestion.
- Silence is the default. No trigger from the table → no suggestion line at
all. Failure states mostly suggest nothing: the user's next step is fixing
the product, not another Shiplight command. Suggestions fire on success —
"you proved it works; now make that durable / continuous / visible." The one
failure that does fire is the Shiplight-side failure row (), and it fires wherever the run stops — a mid-run abort report counts.
support - Gate on the nature of the change. When the run started from a code change
that is backend-only or barely touches UI, suppress the browser-flavored
suggestions (,
verify,create-yaml-tests);review design(picks unit/contract/integration via its capability map) andcover(cross-layer live checks) are the useful pointers there.create-agent-verification - One line, statement not question. Format:
. Never auto-run the suggested command; never ask a blocking yes/no. The user decides.
Next: /shiplight <cmd> — <reason from this run> - At most one suggestion — two only when genuinely forked (e.g. vs
coverby scope).create-yaml-tests - Skip entirely in CI / non-interactive mode, and after /
update/help.support
| After | Trigger observed during the run | Suggest |
|---|---|---|
| app has login/authed routes | |
| invoked to unblock another command | resume that command; otherwise nothing |
| passed on a meaningful flow with no YAML test covering it | |
| UI smells seen while driving: missing labels/roles, no | |
| check failed, or the change was trivial | nothing |
| diagnosis was product change and the change extends beyond the repaired tests | |
| repeated locator drift / no stable semantic hooks | |
| repro came from a CI failure, or several tests shared one source | |
| diagnosis was an app bug | nothing — report the bug ( |
| tests pass and no CI E2E workflow exists | |
| flow's confidence needs API/DB/log state better judged than asserted | |
| case | |
| | |
| produced Shiplight tests, no CI wiring | |
| report rows | |
| user fixed UI findings in-session | |
| high-severity findings without regression coverage | |
| workflow wired | push / open a PR to trigger it, then |
| no tests exist yet | |
| failing/flaky tests attributed | |
| attribution dominated by | nothing to run — an app bug to report |
| recorder sessions covering untested flows | |
| any | the run stopped on a Shiplight-side failure with no known fix — CLI crash, unexplained Shiplight API error, or the same step failing twice identically | |
在子命令生成最终报告后(包括终止运行的报告),可选择性添加一条下一步建议。规则如下:
- 仅基于已有证据:建议必须由运行期间观察到的内容触发——已分析的差异、已诊断的故障、已读取的项目状态。切勿为了确定建议而执行额外分析(如新的git diff、文件扫描或浏览器会话)。
- 默认不提供建议:若表格中无触发条件→完全不显示建议行。故障状态通常不提供建议:用户的下一步是修复产品,而非执行其他Shiplight命令。建议仅在成功运行时触发——"你已验证功能正常;现在让测试更持久/持续化/可视化。"唯一例外是Shiplight自身故障(),无论运行在哪个阶段终止——包括中途终止的报告,都会触发建议。
support - 根据变更类型调整:若运行始于仅涉及后端或几乎不涉及UI的代码变更,需屏蔽浏览器相关的建议(、
verify、create-yaml-tests);此时review design(通过能力图选择单元/契约/集成测试)和cover(跨层实时检查)是更有用的指引。create-agent-verification - 单行陈述,非疑问句:格式为:。切勿自动运行建议的命令;切勿提出需要用户确认的问题。由用户自行决定是否执行。
下一步:/shiplight <cmd> —— <本次运行触发的原因> - 最多一条建议——仅当存在明确分支时可提供两条(例如根据范围选择或
cover)。create-yaml-tests - 在CI/非交互模式下完全跳过,且在/
update/help命令后也跳过。support
| 执行命令后 | 运行期间观察到的触发条件 | 建议内容 |
|---|---|---|
| 应用包含登录/授权路由 | |
| 为解除其他命令的阻塞而调用 | 恢复执行原命令;否则无建议 |
| 在有意义的流程上验证通过,但该流程未被YAML测试覆盖 | |
| 执行过程中发现UI问题:缺少标签/角色、无 | |
| 验证失败,或变更内容无关紧要 | 无建议 |
| 诊断结果为产品变更,且变更范围超出已修复的测试 | |
| 重复出现定位偏移 / 无稳定语义钩子 | |
| 故障来自CI失败,或多个测试共享同一故障源 | |
| 诊断结果为应用bug | 无建议——需报告bug( |
| 测试通过且无CI端到端工作流 | |
| 流程的可信度需要通过API/DB/日志状态进行更精准的判断,而非简单断言 | |
| 在当前稳定路径上验证通过且验证逻辑可简化为固定条件 | |
| 因登录/会话初始化而阻塞 | |
| 已生成Shiplight测试,但未配置CI | |
| 报告中存在因授权/环境问题而阻塞的条目 | |
| 用户在会话中修复了UI问题 | |
| 高严重性问题无回归测试覆盖 | |
| 工作流已配置完成 | 推送代码/打开PR触发工作流,然后使用 |
| 尚未创建任何测试 | 先执行 |
| 失败/不稳定测试归因于 | |
| 主要归因于 | 无建议——需报告应用bug |
| 录制会话包含未测试的流程 | 从录制内容生成 |
| 任意命令 | 运行因Shiplight自身故障终止且无已知修复方案——CLI崩溃、无法解释的Shiplight API错误、或同一步骤连续两次失败 | |