gestrich/ClaudeChain

Automate code refactoring with AI using Claude Code. Creates incremental PRs for systematic codebase improvements.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Apr 13, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: gestrich/claude-chain@06d916bae97cb26acc34fcd84afb03b23d5a4343 # no releases — HEAD as of 2026-07-11

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

namedescriptionrequireddefault
anthropic_api_keyAnthropic API key for Claude Codeyes
github_tokenGitHub token for PR creation and API accessyes${{ github.token }}
project_nameProject folder name under /claude-chain directory. Falls back to github.event.inputs.project_name for workflow_dispatch.no
default_base_branchDefault base branch if not specified in project config or event context. Defaults to main.no
merged_pr_numberPR number that was just merged (for auto-detecting project from labels)no
claude_modelClaude model to use (e.g., claude-sonnet-4-5)noclaude-sonnet-4-5
claude_allowed_toolsComma-separated list of tools Claude can use. Defaults to minimal permissions: Read,Write,Edit,Bash(git add:*),Bash(git commit:*)no
working_directoryWorking directory for the actionno.
add_pr_summaryAdd AI-generated summary comment to PR (true/false)notrue
slack_webhook_urlSlack webhook URL for PR notifications (optional)no""
pr_labelLabel to apply to ClaudeChain PRsnoclaudechain
pr_labelsComma-separated list of additional labels to apply to PRs (optional)no""
namedescription
skippedWhether execution was skipped (true/false). Check skip_reason for details.
skip_reasonReason for skipping if skipped (e.g., "No claudechain label", "PR not merged")
detected_projectsJSON array of all detected projects. Use with matrix strategy for parallel multi-project processing.
project_nameDetected/resolved project name
base_branchResolved base branch
pr_numberNumber of created PR (empty if none created)
pr_urlURL of created PR (empty if none created)
assigneeFirst assigned GitHub username (empty if none). Kept for backward compatibility — prefer assignees.
assigneesComma-separated list of assigned GitHub usernames (empty if none)
reviewersComma-separated list of reviewer GitHub usernames (empty if none)
task_completedTask description that was completed (empty if none)
has_capacityWhether project has capacity for a new PR (true/false)
all_tasks_doneWhether all tasks are complete (true/false)
claude_successWhether Claude Code task completed successfully (true/false)
claude_errorError message if Claude Code task failed (empty if successful)