adept-at/Adept Triage Agent
AI-powered test failure triage to determine if failures are test or product issues
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 10, 2026
- License
- MIT
Pinned Snippet
uses: adept-at/adept-triage-agent@1d71ed283909ca56ef0e2e045048ab1011eec1c2 # v1.54.3tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| GITHUB_TOKEN | GitHub token for API access. Use a PAT or app token when REPOSITORY or AUTO_FIX_TARGET_REPO points to a different repo. | no | ${{ github.token }} |
| OPENAI_API_KEY | OpenAI API key for AI analysis | yes | — |
| ERROR_MESSAGE | Error message to analyze (optional if using workflow artifacts) | no | — |
| ERROR_FILE | Test file path when using ERROR_MESSAGE directly (e.g. cypress/e2e/login.cy.ts). Required for grounded auto-fix in direct-error mode. | no | — |
| ERROR_TEST_NAME | Test case title when using ERROR_MESSAGE directly (e.g. should login successfully). Improves skill matching and validation scoping. | no | — |
| PERSIST_RESULTS | When false, skip DynamoDB skill/failure/outcome writes for this run. Outputs and artifacts are still emitted. Use for synthetic canary runs. | no | true |
| WORKFLOW_RUN_ID | Workflow run ID to fetch logs from | no | — |
| JOB_NAME | Specific job name to analyze | no | — |
| CONFIDENCE_THRESHOLD | Minimum confidence level for verdict (0-100) | no | 70 |
| PR_NUMBER | Pull request number to fetch diff from | no | — |
| COMMIT_SHA | Commit SHA associated with the test failure | no | — |
| BRANCH | Branch being tested (used to fetch branch diff when no PR number available) | no | — |
| REPOSITORY | App/source repository in owner/repo format for PR, branch, or commit diff lookup. Workflow runs and artifacts are still read from the repo where this action executes. | no | ${{ github.repository }} |
| TEST_FRAMEWORKS | Test framework: "cypress" or "webdriverio". | no | cypress |
| ENABLE_AUTO_FIX | Enable automatic branch creation with fix. Consumer opts in by setting this to true. | no | false |
| AUTO_FIX_BASE_BRANCH | Base branch to create fix branch from | no | main |
| AUTO_FIX_MIN_CONFIDENCE | Minimum fix confidence required to apply auto-fix (0-100) | no | 70 |
| AUTO_FIX_TARGET_REPO | Repository where repair source files are fetched and fix branches are created (owner/repo format). Use this when test code lives in a different repo than REPOSITORY. | no | ${{ github.repository }} |
| ENABLE_VALIDATION | Enable validation of auto-fixes before accepting them. Validation runs remotely by default (dispatches VALIDATION_WORKFLOW with VALIDATION_TEST_COMMAND). Set ENABLE_LOCAL_VALIDATION=true to run validation in-container instead. | no | false |
| ENABLE_LOCAL_VALIDATION | When true with ENABLE_AUTO_FIX, ENABLE_VALIDATION, and VALIDATION_TEST_COMMAND, runs the validation test locally in-container (clone, apply, test, push + PR only on pass, up to 3 iterations). When false (default), validation is dispatched to VALIDATION_WORKFLOW remotely. | no | false |
| VALIDATION_WORKFLOW | Name of the validation workflow file (e.g., validate-fix.yml). Used by the remote validation path when ENABLE_LOCAL_VALIDATION is false. | no | validate-fix.yml |
| VALIDATION_PREVIEW_URL | Preview URL for validation tests (if different from original). Replaces {url} in VALIDATION_TEST_COMMAND. | no | — |
| VALIDATION_SPEC | Spec file for validation tests (if different from detected). Replaces {spec} in VALIDATION_TEST_COMMAND. | no | — |
| VALIDATION_TEST_COMMAND | Test command template with {spec} and {url} placeholders. Used by BOTH validation paths — passed to the remote VALIDATION_WORKFLOW via workflow_dispatch, or evaluated locally when ENABLE_LOCAL_VALIDATION=true. Example: npx wdio run wdio.conf.ts --spec {spec} -t sauce | no | — |
| NPM_TOKEN | Token for npm registry auth (e.g., GitHub Packages read token). Falls back to GITHUB_TOKEN when not set. | no | — |
| PRODUCT_REPO | Product repository (owner/repo). All browser-test repos target the same frontend. Used for fetching recent product commits and PR diffs. | no | adept-at/learn-webapp |
| PRODUCT_DIFF_COMMITS | Number of recent product commits to include in the diff context (default: 5) | no | 5 |
| TRIAGE_AWS_REGION | AWS region for DynamoDB skill store. | no | us-east-1 |
| TRIAGE_DYNAMO_TABLE | DynamoDB table name for skill store. | no | triage-skills-v1-live |
| MODEL_OVERRIDE_FIX_GEN | Optional override for the fix-generation agent model. When set (e.g. "gpt-5.5-pro"), fix-gen reverts to this model without requiring a new release. Reasoning effort automatically resets to 'none' when the override is not a gpt-5.5 model. | no | "" |
| MODEL_OVERRIDE_REVIEW | Optional override for the review agent model. Same rollback mechanism as MODEL_OVERRIDE_FIX_GEN, independent. Effort auto-resets the same way. | no | "" |
Outputs
| name | description |
|---|---|
| verdict | Classification result: TEST_ISSUE, PRODUCT_ISSUE, INCONCLUSIVE, PENDING, ERROR, or NO_FAILURE |
| confidence | Confidence score (0-100) |
| reasoning | Detailed explanation of the decision |
| summary | Brief summary for PR comments |
| triage_json | Complete triage analysis as JSON string |
| has_fix_recommendation | Boolean indicating if a fix recommendation was generated (TEST_ISSUE only) |
| fix_recommendation | Complete fix recommendation as JSON (when available) |
| fix_summary | Human-readable fix recommendation summary (when available) |
| fix_confidence | Confidence score for the fix recommendation (0-100) |
| auto_fix_applied | Whether the auto-fix completed successfully end-to-end (true/false). True only when both the fix was applied (branch created and pushed) AND validation passed in the same run. False when only a branch was created but validation failed, when validation passed but publish/apply did not complete, or when auto-fix was not attempted. The authoritative validation signal is `validation_status`. |
| auto_fix_branch | Name of the created branch (if auto-fix applied) |
| auto_fix_commit | Last commit SHA created while applying the fix (if auto-fix applied) |
| auto_fix_files | JSON array of modified files (if auto-fix applied) |
| validation_run_id | Workflow run ID of the validation workflow (legacy remote validation path only) |
| validation_status | Authoritative validation outcome. Set on both local and remote validation paths. "passed" means the fix was validated by the local or remote validation path independent of auto_fix_applied / push success — a "passed" status with auto_fix_applied=false indicates validation succeeded but publish/PR creation failed. Possible values: passed (local test succeeded or remote workflow concluded success with verified test evidence), failed (validation ran and reported a real failure), inconclusive (validation produced mixed/ambiguous evidence), pending (remote validation dispatched but not yet complete), or skipped (validation did not run, e.g., baseline check passed or no spec was identified). |
| validation_url | URL to the validation workflow run (legacy remote validation path only) |
| auto_fix_skipped | Whether auto-fix was intentionally withheld (true/false). Set to true when the agent decides not to apply a fix despite a TEST_ISSUE verdict — typically because the spec is chronically flaky and needs human investigation rather than another fallback fix. Verdict/confidence/reasoning still reflect the honest classification; only the auto-fix step is skipped. |
| auto_fix_skipped_reason | Human-readable reason when auto_fix_skipped is true (e.g., chronic flakiness message, recommendation for human follow-up). |
| repair_status | Repair pipeline lifecycle: not_started, skipped, in_progress, no_fix_generated, review_rejected, timed_out, cancelled, no_approved_fix, approved, applied, validated, validated_publish_failed (validation passed but publish/PR creation failed afterward — the fix was real, only delivery failed), validated_not_published (validation passed without a completed apply/publish; reserved for future ApplyResult shapes). |
| repair_summary | Human-readable repair outcome for Slack (orthogonal to classifier verdict) |
| repair_details | JSON object with iterations, lastStage, review issues, fix summary, timing |
| repair_iterations | Fix/review loop iterations completed in agentic repair |
| repair_last_stage | Last repair stage reached: analysis, code_reading, investigation, fix_generation, review |
| repair_review_issues | Newline-separated review issue lines when review rejected a fix (empty otherwise) |