Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when an execution-layer dev (frontend-dev / backend-dev / ai-agent-dev / ml-engineer / miniapp-dev) has finished feature code + Unit tests and is about to enter code-review. Provides the SIT scope, environment, AC-driven integration walk, and evidence sink (progress/<role>.md). SIT is now a dev-owned step, not a separate QA stage.
.claude/skills/pcliangx-agf-running-sit-tests/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | -15% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 35% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 112% | 0% |
Use this skill when:
SIT verifies that independently-developed components compose correctly — frontend ↔ backend ↔ DB ↔ external services. It is NOT:
pytest / vitest on the branch before SIT)You just wrote the Unit tests, so you have the clearest picture of the unit-vs-integration boundary. If a failure reproduces by running just the backend unit tests with mocks, it's a unit-level miss, not a SIT finding; fold it back into the unit suite rather than writing it up as a SIT defect.
maindocs/changes/<change>/tasks.md(AC↔scenario 映射,ADR-012);旧 feature fallback docs/prd/[feature]-[date].md.env.local with SIT-mode flags configured (or .env.sit if a dedicated SIT config exists)*.msw.ts),非手写——mock 与 OpenAPI 契约同源(见 ADR-006 / coding.md 契约纪律)If any precondition fails: SendMessage product-lead, do not proceed.
Default SIT environment is local docker-compose, brought up via the root Makefile(本地开发一键 SSOT,依赖管理走 uv——见 ADR-000;不要手写 pip/alembic/uvicorn 命令绕开 uv.lock):
bash# from repo root make dev # postgres + backend (uv) + frontend (pnpm) 一键起栈 make migrate # apply latest schema (uv run alembic)
For LLM-dependent features, set provider env vars per agf-wiring-multi-llm-sdk skill. Use a dedicated SIT API key with a hard daily spend cap so a runaway test doesn't drain the budget.
Walk every AC from docs/changes/<change>/tasks.md(旧 feature fallback docs/prd/[feature].md). For each AC at the integration layer:
> Verify, don't assume. Don't write "Passed" because the code looks right. Run the action, capture the actual response, compare. Per .claude/standards/coding.md "Verify before assert" — paste the actual command output into the progress entry.
For each AC verdict:
curl -i output or browser DevTools Network exportpsql -c "SELECT ..." before/after dumpsKeep evidence inline in the **SIT 证据** section of progress/<role>.md (small payloads). Large/binary artifacts → store under progress/evidence/[feature]/ and reference by path.
SIT no longer produces a standalone report under docs/qa/. All evidence lives in progress/<role>.md under the **SIT 证据** section of the task entry — pass = single AC-tagged line (✅ AC-N (integration): <一句话>), fail/blocked expands命令 + 输出 + 偏差.
Format authority: .claude/standards/ac-lifecycle.md → 完整条目格式 (5-section format 状态 / Skills / SIT 证据 / 质量门 / 下一步 + the **SIT 证据** block rules). The progress file is archived into docs/qa/[feature]-process-log.md after UAT sign-off (product-lead), so SIT evidence survives without a separate report artifact.
完成 SIT 自跑后,先自检再报告——跑 bash .claude/scripts/agf-advisory.sh progress/<role>.md(advisory 机筛统一入口,ADR-026 D2)机筛 placeholder / 漏证据 / pass 含失败 token / 质量门矛盾(advisory,不阻断),把 flag 的修掉再 SendMessage,省一轮 code-review 打回。这是全链路唯一一次机筛:reviewer 的 SIT Audit 不重跑 advisory(ADR-011 决策 2 + ADR-026 D2)。然后:
progress/<role>.md 条目路径 + 时间戳progress/<role>.md 的 SIT 段(如实记录 fail / blocked),但 SendMessage 写明阻塞原因与影响范围,由 product-lead 决定本轮是否就修.claude/agents/code-reviewer.md "SIT Audit" section) and you'll be sent back| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 19,770 | 7,838 | -60% | 1 | 1 | 0% | 3,390 | 2,875 | -15% | 0 | 0 | — |
case-06 | fail→pass | 15,009 | 10,317 | -31% | 1 | 1 | 0% | 2,234 | 3,269 | +46% | 0 | 0 | — |
case-07 | fail→pass | 12,108 | 7,157 | -41% | 1 | 1 | 0% | 2,000 | 2,757 | +38% | 0 | 0 | — |
case-01 | fail→pass | 15,293 | 11,290 | -26% | 1 | 1 | 0% | 2,611 | 3,512 | +35% | 0 | 0 | — |
case-02 | fail→pass | 9,157 | 10,153 | +11% | 1 | 1 | 0% | 1,558 | 3,298 | +112% | 0 | 0 | — |
case-03 | fail→fail | 9,091 | 3,717 | -59% | 1 | 1 | 0% | 1,560 | 1,983 | +27% | 0 | 0 | — |
case-04 | pass→pass | 8,057 | 4,200 | -48% | 1 | 1 | 0% | 1,208 | 2,306 | +91% | 0 | 0 | — |
case-08 | fail→pass | 11,633 | 5,001 | -57% | 1 | 1 | 0% | 1,717 | 2,265 | +32% | 0 | 0 | — |
case-09 | fail→pass | 9,492 | 5,931 | -38% | 1 | 1 | 0% | 1,383 | 2,452 | +77% | 0 | 0 | — |
case-10 | pass→pass | 10,897 | 3,050 | -72% | 1 | 1 | 0% | 1,522 | 1,913 | +26% | 0 | 0 | — |
case-11 | fail→pass | 8,990 | 3,799 | -58% | 1 | 1 | 0% | 1,324 | 2,055 | +55% | 0 | 0 | — |
case-12 | fail→pass | 12,822 | 3,007 | -77% | 1 | 1 | 0% | 1,796 | 1,961 | +9% | 0 | 0 | — |
case-13 | pass→pass | 9,996 | 4,626 | -54% | 1 | 1 | 0% | 1,375 | 2,199 | +60% | 0 | 0 | — |
case-14 | fail→pass | 12,796 | 4,869 | -62% | 1 | 1 | 0% | 1,936 | 2,361 | +22% | 0 | 0 | — |
case-15 | fail→pass | 11,342 | 3,082 | -73% | 1 | 1 | 0% | 1,774 | 2,006 | +13% | 0 | 0 | — |
case-16 | fail→pass | 9,617 | 3,649 | -62% | 1 | 1 | 0% | 1,532 | 2,092 | +37% | 0 | 0 | — |
case-17 | fail→pass | 16,227 | 2,156 | -87% | 1 | 1 | 0% | 976 | 1,856 | +90% | 0 | 0 | — |
case-18 | fail→pass | 11,068 | 3,618 | -67% | 1 | 1 | 0% | 1,850 | 2,090 | +13% | 0 | 0 | — |
case-19 | fail→pass | 14,131 | 6,358 | -55% | 1 | 1 | 0% | 2,229 | 2,582 | +16% | 0 | 0 | — |
case-20 | fail→pass | 11,525 | 4,266 | -63% | 1 | 1 | 0% | 1,646 | 2,144 | +30% | 0 | 0 | — |
case-21 | pass→pass | 11,873 | 4,049 | -66% | 1 | 1 | 0% | 1,686 | 2,221 | +32% | 0 | 0 | — |
case-22 | fail→pass | 11,439 | 4,849 | -58% | 1 | 1 | 0% | 1,679 | 2,291 | +36% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +77 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.