How shen0122/firstcatch works
FirstCatch is a personal open-source contribution radar. The main workflow reads subscribed repositories and preferences, incrementally fetches and filters issues, batch-triages and scores candidates, deep-dives feasible top-ranked issues, then renders and pushes a digest. A separate tracking path records the user’s PR outcomes so recommendations can be compared with merge results for scorer calibration. The README documents these capabilities; sampled source confirms core orchestration, fetching, scoring, deep-dive, notification, and storage behavior. Tracker internals were not sampled, so its detailed wiring is limited to documented behavior.
Main entry points: firstcatch.py Pipeline runner · memory.py SQLite memory · fetch.py Issue fetcher · deepdive.py Fix deep-dive
Components 17
Issue discovery
- Subscriptions
config/repos.yaml - Pipeline runner
firstcatch.py - Issue fetcher
inspector/fetch.py - SQLite memory
inspector/memory.py
Candidate analysis
- Batch triage
inspector/triage.py - Signal scorer
inspector/scoring.py - Fix deep-dive
inspector/deepdive.py - ReAct agent
github_agent.py
Digest delivery
- Digest renderer
inspector/digest.py - Webhook notifier
inspector/notify.py
Outcome feedback
- PR tracker
inspector/tracker.py - Score calibration
eval/calibrate.py
Other components
- Contributor
- GitHub MCP
- LLM service
- Git repositories
- Chat webhooks
Connections 22
- Contributor → Pipeline runner: starts run
- Subscriptions → Pipeline runner: configures
- Pipeline runner → Issue fetcher: runs fetch
- Issue fetcher → GitHub MCP: lists and hydrates
- Issue fetcher → SQLite memory: checks and records
- Pipeline runner → Batch triage: classifies issues
- Batch triage → LLM service: requests classification
- Pipeline runner → Signal scorer: scores triage
- Pipeline runner → SQLite memory: stores recommendations
- Pipeline runner → Fix deep-dive: deep-dives top issues
- Fix deep-dive → Git repositories: shallow clones
- Fix deep-dive → ReAct agent: requests verification
- ReAct agent → GitHub MCP: calls code tools
- ReAct agent → LLM service: runs ReAct
- Pipeline runner → Digest renderer: renders results
- Pipeline runner → Webhook notifier: pushes digest
- Webhook notifier → Chat webhooks: sends report
- Contributor → PR tracker: requests tracking
- PR tracker → GitHub MCP: polls PR status
- PR tracker → SQLite memory: records PR outcomes
- SQLite memory → Score calibration: provides joined outcomes
- Contributor → Score calibration: runs analysis