verify
Pre-merge verification gate. Build, test, and lint must all pass before marking done or shipping.
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Verify — Pre-Completion Check
Iron Law
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE. "I tested it" without output is an unverified claim.
When to Trigger
- Before a
/gosubagent reports "done" - Before
/shipcreates a PR - Before telling the user "it's ready"
- After any significant code change
Process
1. Build
# Detect and run the project's build command
npm run build # or: go build ./... | cargo build | make
Must exit 0. If it fails, fix before proceeding.
2. Test
# Run the project's test suite
npm test # or: go test ./... | pytest | cargo test
Must exit 0. If tests fail, invoke debug skill.
3. Lint
# Run linter if configured
npm run lint # or: golangci-lint run | ruff check | cargo clippy
Warnings are OK. Errors must be fixed.
4. Type Check (if applicable)
npx tsc --noEmit # TypeScript
mypy . # Python
5. Final Sanity
- [ ] No
console.log/printdebug statements left - [ ] No
TODOorFIXMEintroduced without explanation - [ ] No hardcoded test values or credentials
- [ ] All new files are tracked by git
Anti-Rationalization
| Excuse | Rebuttal | What to do instead |
|--------|----------|-------------------|
| "Tests pass locally" | Did you actually run them? Trust the output, not your memory. | Run npm test right now. Show the output. |
| "I only changed one file" | One file can break the entire build. Imports propagate. | Full build + test. Every time. No exceptions. |
| "Lint warnings aren't errors" | Warnings become errors. Fix them before they multiply. | Zero warnings policy. Fix now or suppress with justification. |
| "CI will catch it" | CI feedback is 5-10 min delayed. Catch it locally in seconds. | Run verify locally before pushing. CI is the safety net, not the test. |
Evidence Required
Before reporting "ready", show ALL of these:
- [ ] Build output: exit code 0 (show the command + result)
- [ ] Test output: all passing (show summary line)
- [ ] Lint output: zero errors (show summary or "clean")
- [ ] Type check output: no errors (show
tsc --noEmitor equivalent) - [ ] Final sanity: no console.log, no unexplained TODO, no hardcoded values
Each check needs actual command output. "I ran it" without output = not verified.
Red Flags
- Reporting success without showing actual command output
- Skipping type check "because JavaScript is dynamic"
- Committing with TODO/FIXME and no explanation
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/epicsagas/epic-harness/skills/verify/SKILL.md