hathbanger/Sentinel
Dual-model AI review bot for pull requests and issues using Anthropic + OpenAI
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Stale
- License
- None
Inputs
| name | description | required | default |
|---|---|---|---|
| anthropic_api_key | Anthropic API key for Claude (optional if openrouter_api_key is set) | no | — |
| openai_api_key | OpenAI API key for GPT (optional if openrouter_api_key is set) | no | — |
| github_token | GitHub token for API access | no | ${{ github.token }} |
| config_path | Path to sentinel.yml config file | no | .github/sentinel.yml |
| mode | Override mode: review, review_and_suggest, review_and_patch, issue_triage, manual_only | no | — |
| anthropic_model | Anthropic model to use | no | claude-sonnet-4-20250514 |
| openai_model | OpenAI model to use | no | gpt-4o |
| trigger_label | Label required to trigger reviews/fixes. Leave unset to defer to sentinel.yml (default in config: agent, set to '' to run on every PR) | no | — |
| bot_name | Bot name for @mention detection (default: sentinel) | no | sentinel |
| fix_mode | Issue fix mode: propose_only, propose_and_pr, yolo | no | propose_and_pr |
| openrouter_api_key | OpenRouter API key — used as fallback when Anthropic or OpenAI keys are missing | no | — |
| openrouter_anthropic_model | OpenRouter model for the Anthropic (architect) role | no | anthropic/claude-sonnet-4-20250514 |
| openrouter_openai_model | OpenRouter model for the OpenAI (engineer) role | no | openai/gpt-4o |
| debug | Enable debug logging | no | false |
| subway_bridge_url | Subway bridge base URL for agent notifications | no | https://relay.subway.dev |
| subway_notify | Notify the agent registered in .subway/pr-contact when review completes | no | true |
Outputs
| name | description |
|---|---|
| review_json | Full review result as JSON (v2: includes quality_score, model_agreement, dimensions) |
| findings_count | Number of findings |
| action | Decision taken (comment_only, request_changes, etc.) |
| quality_score | Overall code quality score 0.0-1.0 (1.0 = no findings) |
| model_agreement | Cross-model agreement ratio 0.0-1.0 (1.0 = full agreement) |
| findings_critical | Critical finding count |
| findings_high | High finding count |
| findings_medium | Medium finding count |
| findings_low | Low finding count |
| dim_correctness | Correctness dimension 0.0-1.0 (penalized by bug/security findings) |
| dim_coverage | Coverage dimension 0.0-1.0 (penalized by test_gap findings) |
| dim_architecture | Architecture dimension 0.0-1.0 (penalized by architecture findings) |
| dim_value | Value dimension 0.0-1.0 (penalized by performance/maintainability findings) |