Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Workflow for backend API test automation: TMS / Issue Tracker test cases → automated API tests, HITL-gated.
.claude/skills/griddynamics-api-aqa-flow/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-22 | ✗→✓ | ▲ Improved | 190% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 237% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 199% | 0% |
<api_aqa_flow>
<description_and_purpose>
End-to-end backend API test automation from test case input to working automated tests.
Prerequisite: Rosetta Prep Steps.
Terminology. External systems are named by role throughout this workflow and its phases: Test Management System (TMS), Issue Tracker, and Wiki. TestRail, Jira, and Confluence are canonical examples only — adapt identifiers, URLs, requests, calls, and query syntax to the systems resolved for the current project (from repository-root gain.json, explicit user input, recognizable URLs/handles, and available integrations).
At completion the user has: corrected, passing API test files in the repository; the per-session artifacts under plans/api-aqa-{IDENTIFIER}/ (raw-data.md, api-analysis.md, analysis.md, test-specs.md, execution-report.md); and agents/TEMP/<FEATURE>/api-aqa-state.md recording phase completion, metrics, and HITL approvals.
</description_and_purpose>
<workflow_phases>
<skip_rules> only.load-project-context loaded and fully executed.agents/TEMP/<FEATURE>/api-aqa-state.md → verify the phase-output gate → next; keep todos matched to the active phase; never batch-load future phases; never skip without approval (<skip_rules>). When a phase delegates work to subagents, dispatch per USE SKILL orchestration.ATC-NNN in test-specs.md traces to a Phase 3 source (a raw-data.md test case and/or an analysis.md G[N]/C[N]/A[N] finding); also Phase 1 raw-data.md, Phase 2 api-analysis.md, and Phase 6 execution-report.md present and non-placeholder.<skip_rules>
This block owns ONLY the api-aqa-flow-specific skip rules below: a set of always-in-force carve-outs plus a single verification-failure unilateral-start override (the only no-ask deviation; its preconditions are in the table further down). The carve-outs bind unconditionally; the override is subordinate to them. Gate-execution mechanics (how to run an approval gate, token handling) are owned by USE SKILL hitl — defer to it; not restated here.
type="HITL") — explicit user approval per the hitl skill.plans/api-aqa-{IDENTIFIER}/, comparable irreversible actions.hitl skill + the carve-outs above; the only no-ask deviation, applies only at this skip-verification gate.| Precondition (ALL true, independently verified) | Action | |---|---| | (a) user asserts Phases 0-2 complete this turn AND (b) agents/TEMP/<FEATURE>/api-aqa-state.md marks them complete AND (c) raw-data.md + api-analysis.md exist under plans/api-aqa-{IDENTIFIER}/ | Print (a)/(b)/(c) each with its concrete evidence (user-assertion quote · the api-aqa-state rows · the two artifact paths), then skip Phases 0-2 and resume at Phase 3. Any precondition not showable with concrete evidence → treat as uncertain (last row). | | Any of (a)/(b)/(c) false AND user instruction unambiguous | Print failing conditions; begin Phase 0 same turn. | | Any precondition uncertain | Fall back to normal HITL ask. Ambiguity defaults to ASK. |
</skip_rules>
<execution_policy>
coding before implementation or correction work that touches repository test code or shared utilities.<coding_standards_precedence>.agents/TEMP/<FEATURE>/api-aqa-state.md, expected artifacts for those phases exist under plans/api-aqa-{IDENTIFIER}/ (and related paths named in phase docs), and the user accepts the last test outcome or explicitly stops the run.</execution_policy>
<project_config_loading phase="0" applies="ALL" subagent="discoverer" role="AQA project config loader" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3.1-pro, grok-4.5, gpt-5.6-terra" type="HITL-CONDITIONAL">
phases/api-aqa-flow-project-config-loading.mdplans/api-aqa-{IDENTIFIER}/.qa-structure, sensitive-data (redaction at intake)questioning (config-missing interview)agents/TEMP/<FEATURE>/api-aqa-state.md; Phase 0 is not complete until its output spot-check passes.</project_config_loading>
<data_collection phase="1" applies="ALL" subagent="discoverer" role="AQA data collector" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3.1-pro, grok-4.5, gpt-5.6-terra">
phases/api-aqa-flow-data-collection.mdplans/api-aqa-{IDENTIFIER}/raw-data.md (test cases, documentation, existing test patterns).data-collection (TMS + Wiki collector), qa-knowledge (code_analysis mode — existing-test + backend-source scan), reverse-engineering, qa-structureagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 1 is not complete until its output spot-check passes.</data_collection>
<api_spec_analysis phase="2" applies="ALL" subagent="discoverer" role="API spec analyst" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3.1-pro, grok-4.5, gpt-5.6-terra">
phases/api-aqa-flow-api-spec-analysis.mdplans/api-aqa-{IDENTIFIER}/api-analysis.md (endpoint contracts, auth, data dependencies).qa-knowledge (code_analysis mode — API-contract extraction), reverse-engineering, sensitive-data, qa-structureagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 2 is not complete until its output spot-check passes.</api_spec_analysis>
<gap_and_requirements_clarification phase="3" applies="ALL" subagent="architect" role="Test requirements analyst" subagent_required_model="claude-opus-4-8, gpt-5.5-high, gemini-3.1-pro-high, gpt-5.6-sol" type="HITL">
phases/api-aqa-flow-gap-and-requirements-clarification.mdplans/api-aqa-{IDENTIFIER}/analysis.md (gaps, contradictions, ambiguities resolved).qa-knowledge (gap_analysis mode), qa-structurequestioningagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 3 is not complete until its output spot-check passes.</gap_and_requirements_clarification>
<test_case_specification phase="4" applies="ALL" subagent="architect" role="Test specification author" subagent_required_model="claude-opus-4-8, gpt-5.5-high, gemini-3.1-pro-high, gpt-5.6-sol" type="HITL">
phases/api-aqa-flow-test-case-specification.mdplans/api-aqa-{IDENTIFIER}/test-specs.md (Given-When-Then scenarios).qa-knowledge (scenario_design mode), sensitive-data, qa-structurehitlagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 4 is not complete until its output spot-check passes.</test_case_specification>
<test_implementation phase="5" applies="ALL" subagent="engineer" role="Test automation engineer" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3-flash, grok-4.5, gpt-5.6-terra" type="HITL">
phases/api-aqa-flow-test-implementation.mdqa-knowledge (implementation_modes — API impl), qa-structuretesting, coding (repo conventions)agents/TEMP/<FEATURE>/api-aqa-state.md; Phase 5 is not complete until its output spot-check passes.</test_implementation>
<execution_and_report_analysis phase="6" applies="ALL" subagent="engineer" role="Test failure analyst" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3-flash, grok-4.5, gpt-5.6-terra" type="HITL">
phases/api-aqa-flow-execution-and-report-analysis.mdagents/user-instructions/). Output: plans/api-aqa-{IDENTIFIER}/execution-report.md (failure analysis).qa-knowledge (test_execution_triage mode), sensitive-data, qa-structureagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 6 is not complete until its output spot-check passes.</execution_and_report_analysis>
<test_corrections phase="7" applies="ALL" subagent="engineer" role="Test correction engineer" subagent_required_model="claude-sonnet-5, gpt-5.4-medium, gemini-3-flash, grok-4.5, gpt-5.6-terra" type="HITL">
phases/api-aqa-flow-test-correction.mdqa-knowledge (correction mode), qa-structurecoding (authors the proposed/applied edits), debugging (root-cause alignment), hitlagents/TEMP/<FEATURE>/api-aqa-state.md; Phase 7 is not complete until its output spot-check passes.</test_corrections>
</workflow_phases>
<coding_standards_precedence> Conflict rule is binary: if guidance from a loaded skill conflicts with repository markdown (docs/CONTEXT.md, docs/ARCHITECTURE.md, agents/IMPLEMENTATION.md — or the paths gain.json configures — and project_description.md if present) on naming, structure/layout, tooling, or test patterns, repository markdown wins and the conflicting skill snippet is ignored for that decision. If there is no conflict, apply both. gain.json wins for file locations. Example: if a skill suggests /tests/api/ but docs/ARCHITECTURE.md requires /qa/api/tests/, use /qa/api/tests/. </coding_standards_precedence>
<failure_handling>
agents/TEMP/<FEATURE>/api-aqa-state.md, ask the user — never improvise an undocumented phase.agents/TEMP/<FEATURE>/api-aqa-state.md: pause, rebuild minimal phase pointers from plans/api-aqa-{IDENTIFIER}/ when possible, then ask the user to confirm.Phase 5 blocked: APPLY SKILL FILE phases/api-aqa-flow-test-implementation.md returned nothing at 2026-05-25T15:00Z; awaiting user action.</failure_handling>
<state_file>
agents/TEMP/<FEATURE>/api-aqa-state.md carries: header (Last Updated / Current Phase 0-7 / Test Case Source / Feature / IDENTIFIER — matching the Phase 0 stub; API Base URL is appended once Phase 2 resolves it) + 8-row ## Phase Completion Status checklist (one row per phase 0-7) + per-phase append blocks. Each phase file owns its own state-update snippet (the delta it appends after running) — this workflow does not restate the full template.
</state_file>
<references>
Subagents: discoverer · architect · engineer · executor (optional, mechanical actions).
Cross-phase skills: qa-structure (paths / identifier / state-file shape) and qa-knowledge (modes, taxonomies, artifact skeletons — loads its own assets at point of use).
Integrations: TMS, Issue Tracker, and Wiki per <description_and_purpose> Terminology.
</references>
</api_aqa_flow>
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-11 | fail→fail | 6,866 | 13,032 | +90% | 1 | 1 | 0% | 1,158 | 5,282 | +356% | 0 | 0 | — |
case-22 | fail→pass | 10,011 | 2,662 | -73% | 1 | 1 | 0% | 1,429 | 4,144 | +190% | 0 | 0 | — |
case-01 | fail→fail | 7,077 | 8,062 | +14% | 1 | 1 | 0% | 196 | 4,334 | +2111% | 0 | 0 | — |
case-02 | fail→fail | 15,965 | 5,992 | -62% | 1 | 1 | 0% | 2,710 | 4,207 | +55% | 0 | 0 | — |
case-03 | fail→fail | 18,181 | 7,613 | -58% | 1 | 1 | 0% | 3,352 | 4,286 | +28% | 0 | 0 | — |
case-04 | pass→fail | 15,985 | 10,284 | -36% | 1 | 1 | 0% | 3,276 | 5,385 | +64% | 0 | 0 | — |
case-05 | fail→fail | 15,485 | 4,329 | -72% | 1 | 1 | 0% | 3,026 | 4,069 | +34% | 0 | 0 | — |
case-06 | fail→fail | 14,585 | 6,712 | -54% | 1 | 1 | 0% | 3,135 | 4,148 | +32% | 0 | 0 | — |
case-07 | fail→pass | 28,814 | 5,893 | -80% | 1 | 1 | 0% | 6,179 | 4,765 | -23% | 0 | 0 | — |
case-08 | pass→pass | 6,063 | 2,886 | -52% | 1 | 1 | 0% | 982 | 4,229 | +331% | 0 | 0 | — |
case-09 | pass→pass | 6,399 | 2,303 | -64% | 1 | 1 | 0% | 1,009 | 4,178 | +314% | 0 | 0 | — |
case-10 | pass→pass | 6,969 | 5,979 | -14% | 1 | 1 | 0% | 1,170 | 4,860 | +315% | 0 | 0 | — |
case-12 | pass→pass | 7,344 | 8,106 | +10% | 1 | 1 | 0% | 1,286 | 5,228 | +307% | 0 | 0 | — |
case-13 | fail→pass | 11,541 | 7,398 | -36% | 1 | 1 | 0% | 1,876 | 4,949 | +164% | 0 | 0 | — |
case-14 | pass→pass | 5,521 | 5,103 | -8% | 1 | 1 | 0% | 858 | 4,487 | +423% | 0 | 0 | — |
case-15 | fail→pass | 8,090 | 4,283 | -47% | 1 | 1 | 0% | 1,326 | 4,475 | +237% | 0 | 0 | — |
case-16 | pass→pass | 8,052 | 6,227 | -23% | 1 | 1 | 0% | 1,320 | 4,800 | +264% | 0 | 0 | — |
case-17 | fail→pass | 8,942 | 3,091 | -65% | 1 | 1 | 0% | 1,444 | 4,318 | +199% | 0 | 0 | — |
case-18 | pass→pass | 5,466 | 3,641 | -33% | 1 | 1 | 0% | 852 | 4,383 | +414% | 0 | 0 | — |
case-19 | fail→pass | 9,487 | 3,654 | -61% | 1 | 1 | 0% | 1,444 | 4,459 | +209% | 0 | 0 | — |
case-20 | fail→pass | 7,548 | 2,462 | -67% | 1 | 1 | 0% | 1,159 | 4,193 | +262% | 0 | 0 | — |
case-21 | fail→pass | 10,534 | 1,968 | -81% | 1 | 1 | 0% | 1,711 | 4,058 | +137% | 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 17 counted toward the lift figure. The other 5 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 +32 percentage points is the difference between those two pass rates over the 17 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
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.