adept-at/Adept Triage Agent

AI-powered test failure triage to determine if failures are test or product issues

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 10, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: adept-at/adept-triage-agent@1d71ed283909ca56ef0e2e045048ab1011eec1c2 # v1.54.3

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
GITHUB_TOKENGitHub 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_KEYOpenAI API key for AI analysisyes
ERROR_MESSAGEError message to analyze (optional if using workflow artifacts)no
ERROR_FILETest 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_NAMETest case title when using ERROR_MESSAGE directly (e.g. should login successfully). Improves skill matching and validation scoping.no
PERSIST_RESULTSWhen false, skip DynamoDB skill/failure/outcome writes for this run. Outputs and artifacts are still emitted. Use for synthetic canary runs.notrue
WORKFLOW_RUN_IDWorkflow run ID to fetch logs fromno
JOB_NAMESpecific job name to analyzeno
CONFIDENCE_THRESHOLDMinimum confidence level for verdict (0-100)no70
PR_NUMBERPull request number to fetch diff fromno
COMMIT_SHACommit SHA associated with the test failureno
BRANCHBranch being tested (used to fetch branch diff when no PR number available)no
REPOSITORYApp/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_FRAMEWORKSTest framework: "cypress" or "webdriverio".nocypress
ENABLE_AUTO_FIXEnable automatic branch creation with fix. Consumer opts in by setting this to true.nofalse
AUTO_FIX_BASE_BRANCHBase branch to create fix branch fromnomain
AUTO_FIX_MIN_CONFIDENCEMinimum fix confidence required to apply auto-fix (0-100)no70
AUTO_FIX_TARGET_REPORepository 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_VALIDATIONEnable 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.nofalse
ENABLE_LOCAL_VALIDATIONWhen 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.nofalse
VALIDATION_WORKFLOWName of the validation workflow file (e.g., validate-fix.yml). Used by the remote validation path when ENABLE_LOCAL_VALIDATION is false.novalidate-fix.yml
VALIDATION_PREVIEW_URLPreview URL for validation tests (if different from original). Replaces {url} in VALIDATION_TEST_COMMAND.no
VALIDATION_SPECSpec file for validation tests (if different from detected). Replaces {spec} in VALIDATION_TEST_COMMAND.no
VALIDATION_TEST_COMMANDTest 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 sauceno
NPM_TOKENToken for npm registry auth (e.g., GitHub Packages read token). Falls back to GITHUB_TOKEN when not set.no
PRODUCT_REPOProduct repository (owner/repo). All browser-test repos target the same frontend. Used for fetching recent product commits and PR diffs.noadept-at/learn-webapp
PRODUCT_DIFF_COMMITSNumber of recent product commits to include in the diff context (default: 5)no5
TRIAGE_AWS_REGIONAWS region for DynamoDB skill store.nous-east-1
TRIAGE_DYNAMO_TABLEDynamoDB table name for skill store.notriage-skills-v1-live
MODEL_OVERRIDE_FIX_GENOptional 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_REVIEWOptional override for the review agent model. Same rollback mechanism as MODEL_OVERRIDE_FIX_GEN, independent. Effort auto-resets the same way. no""
namedescription
verdictClassification result: TEST_ISSUE, PRODUCT_ISSUE, INCONCLUSIVE, PENDING, ERROR, or NO_FAILURE
confidenceConfidence score (0-100)
reasoningDetailed explanation of the decision
summaryBrief summary for PR comments
triage_jsonComplete triage analysis as JSON string
has_fix_recommendationBoolean indicating if a fix recommendation was generated (TEST_ISSUE only)
fix_recommendationComplete fix recommendation as JSON (when available)
fix_summaryHuman-readable fix recommendation summary (when available)
fix_confidenceConfidence score for the fix recommendation (0-100)
auto_fix_appliedWhether 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_branchName of the created branch (if auto-fix applied)
auto_fix_commitLast commit SHA created while applying the fix (if auto-fix applied)
auto_fix_filesJSON array of modified files (if auto-fix applied)
validation_run_idWorkflow run ID of the validation workflow (legacy remote validation path only)
validation_statusAuthoritative 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_urlURL to the validation workflow run (legacy remote validation path only)
auto_fix_skippedWhether 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_reasonHuman-readable reason when auto_fix_skipped is true (e.g., chronic flakiness message, recommendation for human follow-up).
repair_statusRepair 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_summaryHuman-readable repair outcome for Slack (orthogonal to classifier verdict)
repair_detailsJSON object with iterations, lastStage, review issues, fix summary, timing
repair_iterationsFix/review loop iterations completed in agentic repair
repair_last_stageLast repair stage reached: analysis, code_reading, investigation, fix_generation, review
repair_review_issuesNewline-separated review issue lines when review rejected a fix (empty otherwise)