internetarchive / internetarchive/openlibrary
Epic: AI Workflows — GitHub Actions automation for the issue/PR lifecycle
- Dominant language
- Python
- Stars
- 6.7k
- Forks
- 2k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 138
Description
## Summary
Track the migration of PAM's issue/PR automation from ad-hoc polling scripts (`pam.py`, run from `~/Projects/openlibrary-pam` and `~/Projects/pm`) to GitHub Actions triggered directly on repo events, using a Claude subscription token — the pattern first established for i18n (#13061). This is also the vehicle for replacing the code-review coverage lost when GitHub discontinued free Copilot credits for open-source maintainers.
## Sub-initiatives
- [x] **Issue Enricher** #13075
- [x] **PR Auto-Responder** — first-touch welcome comment on new contributor PRs, wait-time estimate, PR description completeness check. Logic already exists as a polling-based workflow (see `pr-prereview.md` in the `pm` PAM repo), currently run via `pam.py prs`; needs porting to a GH Action the same way issue enrichment was. #13164
- [ ] **Code Review Action** — an `@openlibrary-bot`-driven code review, triggered when staff request it as a PR reviewer or @-mention it directly in a PR comment (staff-only trigger, for security). Should post inline suggestion-style comments on specific code blocks/lines, similar to Copilot's review UX. On re-trigger, should review only the diff since its last pass, not the whole PR again. Needs research into how Copilot structures its inline review comments before design starts.
- [ ] **Issue Follower** — fires whenever an issue receives a new comment from a non-`openlibrary-bot` actor. Fine to ship as a no-op initially; the eventual goal is correct re-labeling (e.g. clearing `Needs: Response` once a lead replies).
## Related / prior art
- #13061 — i18n pipeline migration to `openlibrary-i18n`; established the Claude-token GitHub Action pattern this epic reuses.
- #13075 — Issue Enrichment via `claude-code-action` (already shipped: `.github/workflows/issue_enrichment.yml`) — first working example of this pattern for an OL-native (non-i18n) workflow.
- #13138 — `openlibrary-bot`'s own comments incorrectly triggering `Needs: Response` — an instance of the general "ignore our own bot's actions" problem every automation under this epic needs to avoid repeating.
## Cross-cutting rule
Every action under this epic must explicitly ignore actions taken by `openlibrary-bot` itself (its own comments/edits) to avoid feedback loops.
Contributor guide
Assessment
This issue has not been assessed yet.