用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/stoa-platform/stoa --skill verify-mega命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | verify-mega |
| description | Verify MEGA ticket close gates — ensures all sub-tickets Done, PRs merged, live verification passed. |
| argument-hint | CAB-XXXX | --all-done-7d |
Run all 5 MEGA Close Gates on a ticket (or audit all recently-closed MEGAs). Prevents false Dones on multi-phase tickets.
$ARGUMENTS is --all-done-7d: Audit mode — scan all MEGAs marked Done in last 7 days$ARGUMENTS is CAB-XXXX: Single mode — verify one MEGA ticketlinear.get_issue("CAB-XXXX", includeRelations=true)
Extract:
title — verify contains [MEGA] or has childrenchildren.nodes[] — list of sub-tickets with id, identifier, state.name, estimateestimate — total pointsIf no children → report: "CAB-XXXX is not a MEGA (no children). Use standard close flow."
linear.list_issues(
teamId: "<LINEAR_TEAM_ID>",
filter: { state: { name: { eq: "Done" } }, updatedAt: { gte: "<7 days ago>" } }
)
Filter results to only MEGAs (title contains [MEGA] or has children).
Run gates on each.
children.nodes.length > 0/decompose CAB-XXXX first."For each child ticket in Done state:
linear.list_comments(issueId: "<child_id>")
Check that at least one comment contains PR # or PR [#.
Check each child's state.name:
state.name == "Done" or state.name == "Canceled"CAB-1351: In Progress
CAB-1352: Todo
Based on the MEGA's component scope:
curl -s https://api.gostoa.dev/health → expect 200curl -s https://console.gostoa.dev or curl -s https://portal.gostoa.dev → expect 200curl -s https://mcp.gostoa.dev/health → expect 200curl -s https://docs.gostoa.dev → expect 200If automated verification is not possible, prompt the user: "Gate 3 requires manual verification. Please confirm the target is working: [endpoint/site]"
Check no child is stuck in non-terminal state:
## MEGA Verification: CAB-XXXX — [Title]
| # | Gate | Status | Detail |
|---|------|--------|--------|
| 0 | Decomposition | ✅/❌ | N sub-tickets |
| 1 | PR Evidence | ✅/❌ | N/M children have PRs |
| 2 | All Done | ✅/❌ | N/M children Done |
| 3 | Live Verification | ✅/❌ | endpoint status |
| 4 | No Stale Children | ✅/❌ | N stale |
**Verdict**: Go / Fix
linear.update_issue(id, state="Done")
linear.create_comment(issueId, body="MEGA completed — all 5 gates passed.\n\nSub-tickets:\n- CAB-1350: Done (PR #578)\n- CAB-1351: Done (PR #582)\n- CAB-1352: Done (PR #590)\n\nLive verification: ✅ [endpoint] responding")
MEGA-GATE-PASS | task=CAB-XXXX gates=5/5linear.create_comment(issueId, body="MEGA verification failed — X/5 gates passed.\n\nFailing gates:\n- Gate 1: CAB-1352 missing PR evidence\n- Gate 2: CAB-1352 still In Progress\n\nAction required: complete remaining work before closing.")
MEGA-GATE-FAIL | task=CAB-XXXX missing=<gate_numbers>## Weekly MEGA Audit — [date]
| MEGA | Points | Gates | Verdict | Action |
|------|--------|-------|---------|--------|
| CAB-1470 | 21 pts | 3/5 | Fix | Gate 1,2 failing |
| CAB-1490 | 13 pts | 5/5 | Go | Already correct |
Reopened: CAB-1470 (moved back to In Progress)