name: 'Triagebot' description: 'AI-powered issue triage bot with a label-driven state machine' author: 'withastro' inputs: read-token: description: 'GitHub token for reading issues, labels, and PRs' required: true write-token: description: 'GitHub token for posting comments, pushing branches, creating PRs, and managing labels' required: true anthropic-api-key: description: 'Anthropic API key for LLM calls. Required unless OpenAI or Cloudflare Workers AI credentials are provided.' required: false cloudflare-api-key: description: 'Cloudflare API token with Workers AI access. Enables using cloudflare-workers-ai/* models (e.g. Kimi). Requires cloudflare-account-id.' required: false cloudflare-account-id: description: 'Cloudflare account ID for the Workers AI REST endpoint. Required when cloudflare-api-key is set.' required: false openai-api-key: description: 'OpenAI API key for LLM calls. Required unless Anthropic or Cloudflare Workers AI credentials are provided.' required: false triage-skill: description: 'Path to triage skill directory (SKILL.md, reproduce.md, diagnose.md, verify.md, fix.md)' required: true pr-skill: description: 'Path to PR writer skill directory. If not provided, uses a built-in prompt to generate PR title and body.' required: false pr-skill-name: description: 'The skill name (from SKILL.md frontmatter) to invoke for PR generation. Only used when pr-skill is set.' default: 'pr-writer' auto-pr-on-fix: description: 'When true, open a pull request immediately after triage finds and pushes a fix, skipping the reporter-confirmation (preview release) flow. Default false preserves the confirm-first behavior.' default: 'false' build-command: description: 'Command to build the project before triage runs (e.g. "pnpm install && pnpm build")' required: false bot-logins: description: 'Comma-separated list of bot usernames whose comments should be ignored (github-actions[bot] is always included)' default: '' triage-model: description: 'Model for the triage pipeline (reproduce/diagnose/verify/fix)' default: 'anthropic/claude-opus-4-6' verification-model: description: 'Model for fix verification and retriage checks' default: 'anthropic/claude-sonnet-4-6' # Label customization label-needs-triage: description: 'Label for issues waiting to be triaged' default: 'triage: needs triage' label-not-actionable: description: 'Label for issues that are not bug reports' default: 'triage: not actionable' label-needs-reproduction: description: 'Label for issues missing a reproduction' default: 'triage: needs reproduction' label-skipped: description: 'Label for issues that cannot be triaged in CI' default: 'triage: skipped' label-unable-to-reproduce: description: 'Label for issues the agent could not reproduce' default: 'triage: unable to reproduce' label-unable-to-fix: description: 'Label for reproduced issues where no fix was found' default: 'triage: unable to fix' label-failed: description: 'Label for issues where triage failed unexpectedly and can be retried' default: 'triage: failed' label-fix-pending: description: 'Label for issues with a fix awaiting reporter confirmation' default: 'triage: fix pending' label-fix-rejected: description: 'Label for issues where the reporter says the fix does not work' default: 'triage: fix rejected' label-fix-verified: description: 'Label for issues where the reporter confirmed the fix works' default: 'triage: fix verified' pr-label-fix-verified: description: 'Label to apply to PRs created from verified fixes' default: 'fix verified' runs: using: 'node24' main: 'dist/index.mjs'