phorus-group/CI Assistant Action

Analyzes CI/CD pipeline failures using Claude Code, suggests fixes via PR comments, and posts summaries to Slack. Also works as on-demand code assistance via /ci-assistant suggest, even without pipeline failures.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
modeAction mode: auto-fix, command, manual, cleanupyes
working-directoryDirectory where Claude Code runsno.
max-turnsMax Claude conversation turns per attempt. Use -1 for unlimited.no50
max-retriesMax retry attempts (each gets fresh max-turns budget)no3
max-retry-commandsMax /ci-assistant retry commands per PR. Use -1 for unlimited.no2
max-alternative-commandsMax /ci-assistant alternative commands per PR. Use -1 for unlimited.no3
max-suggest-commandsMax /ci-assistant suggest commands per PR. Use -1 for unlimited.no3
max-explain-commandsMax /ci-assistant explain commands per PR. Use -1 for unlimited.no3
max-total-commandsMax total non-admin commands per PR. Use -1 for unlimited.no20
modelClaude model to use (e.g. 'claude-sonnet-4-6', 'claude-opus-4-6', 'claude-haiku-4-5-20251001')noclaude-sonnet-4-6
skip-permissionsPass --dangerously-skip-permissions to Claude Code. Safe in CI since the runner is ephemeral. Set to false to require permission checks.notrue
allowed-toolsComma-separated list of tools Claude Code can use (e.g. 'Bash,Edit,Read,Write,WebSearch'). Empty means all tools available.no""
disallowed-toolsComma-separated list of tools Claude Code cannot use (e.g. 'WebSearch,WebFetch'). Takes precedence over allowed-tools.no""
append-system-promptAdditional system prompt appended to Claude Code's default system prompt. Use for project-specific instructions not covered by CLAUDE.md.no""
admin-usersComma-separated GitHub usernames of admin users (e.g. user1,user2)no""
banned-usersComma-separated GitHub usernames permanently banned from using CI Assistantno""
slack-failure-channelSlack channel ID for fix notifications (optional, everything works without Slack)no""
slack-thread-tsSlack thread timestamp to post as a reply (optional)no""
slack-bot-tokenSlack Bot OAuth Token (optional)no""
failed-run-idThe workflow run ID that failedno""
failed-branchThe branch that failedno""
failed-shaThe commit SHA that failedno""
failed-pr-numberThe PR number (if failure was on a PR)no""
comment-pr-numberThe PR number the comment was made on (command mode)no""
auto-fix-promptPrompt template for automatic fix attempts. Placeholders: {{FAILURE_LOGS}}, {{REPO}}, {{BRANCH}}, {{SHA}}, {{PREVIOUS_SUGGESTIONS}}, {{USER_CONTEXT}}, {{CONVERSATION_HISTORY}}no""
retry-promptPrompt template for retry attempts. Placeholders: {{FAILURE_LOGS}}, {{PREVIOUS_ATTEMPTS}}, {{REPRODUCTION_OUTPUT}}, {{PREVIOUS_SUGGESTIONS}}, {{USER_CONTEXT}}, {{CONVERSATION_HISTORY}}, {{REPO}}, {{BRANCH}}, {{SHA}}no""
alternative-promptPrompt template for alternative suggestions. Placeholders: {{FAILURE_LOGS}}, {{PREVIOUS_SUGGESTIONS}}, {{REPO}}, {{BRANCH}}, {{SHA}}, {{CONVERSATION_HISTORY}}no""
suggest-promptPrompt template for suggest commands. Placeholders: {{USER_CONTEXT}}, {{FAILURE_LOGS}}, {{CONVERSATION_HISTORY}}, {{REPO}}, {{BRANCH}}, {{SHA}}no""
explain-promptPrompt template for explain commands. Placeholders: {{USER_PROMPT}}, {{FAILURE_LOGS}}, {{LATEST_FIX_DIFF}}, {{CONVERSATION_HISTORY}}, {{REPO}}, {{BRANCH}}no""
confidence-promptPrompt appended to fix prompts for confidence analysis. No placeholder substitution (appended as-is).no""
summary-promptPrompt appended to fix prompts for fix summary generation. Claude outputs FIX_TITLE and FIX_DESCRIPTION markers. No placeholder substitution.no""
github-tokenGitHub token for API calls (supports default github.token or GitHub App tokens)no""
app-slugGitHub App slug (from actions/create-github-app-token output). Used to determine the bot identity. If empty, falls back to API detection.no""
claude-code-oauth-tokenClaude Code OAuth token (from claude setup-token, uses subscription quota)no""
anthropic-api-keyAnthropic API key (pay-per-use fallback)no""
comment-bodyThe PR comment text (command mode)no""
namedescription
outcomeHigh-level result: fix-suggested, non-code, gave-up, or empty for cleanup/command modes without a fix attempt
fix-idThe selected fix ID (e.g. #fix-abc1234), empty if no fix was suggested
confidence-statusConfidence classification: reproduced-and-verified, not-reproduced-tests-pass, reproduced-tests-fail, neither, non-code, gave-up
confidence-percentageNumeric confidence score (0-100)
pr-numberThe PR number that was created or commented on
total-input-tokensTotal input tokens used across all attempts
total-output-tokensTotal output tokens used across all attempts
total-cache-read-tokensTotal cache read tokens across all attempts
total-cache-creation-tokensTotal cache creation tokens across all attempts
total-attemptsNumber of fix attempts made
total-duration-msTotal Claude API duration in milliseconds