internetarchive / internetarchive/openlibrary
Bot Account Application: AgenticCommonsBot
- Dominant language
- Python
- Stars
- 6.7k
- Forks
- 2k
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 126
Description
## Bot Account Application Request
**Account Name**: AgenticCommonsBot
**GitHub Username**: WendyLee07 (working as part of the [Agentic Commons](https://agentic-commons.org) project)
**Purpose**: Fill missing native-script `alternate_names` on long-tail OpenLibrary author records (CJK / Cyrillic / Arabic / etc.), citing Wikidata + Wikipedia as independent evidence sources.
### Request
- Please grant bot privileges to the `AgenticCommonsBot` account
- Please add `AgenticCommonsBot` to the "API" usergroup
### Why this matters
Many OL authors with a real backlog of works (5+) still have an empty `alternate_names` array — readers searching with a different script or language form of the author's name can't find them. For example, before [a recent manual edit](https://openlibrary.org/authors/OL412080A) the entry for "Chih-tsing Hsia" had no native-script form on file, so a reader typing "夏志清" couldn't find him.
### Bot behavior (per edit)
For one author at a time:
1. `GET /authors/OL...A.json`
2. Verify `alternate_names` is still empty (skip if already populated)
3. Append exactly **one** well-evidenced addition
4. `PUT` the updated record with a factual-citation edit comment
### Scope guardrails
- **Author pages only** (`/authors/OL...A`). No work / edition / subject edits.
- **Append-only** — never removes or reorders existing entries.
- Skips authors with `work_count < 5` (low search value).
- **≤8 edits/day total**, well below polite-bot thresholds.
### Evidence requirement
Each proposed addition requires **two independent reputable sources**:
- **Wikidata** — author's Q-id with matching multilingual label
- **Wikipedia article title in another language** (typically the native-language wiki)
If two sources cannot be confirmed, the candidate is dropped — no speculative or single-source additions.
### Edit comment format
Pure factual citation, no slogans or project attribution:
> Adding native-script form per Wikidata Q778276 (zh label '苏童') and Chinese Wikipedia article title '苏童'.
### Pipeline architecture
This is **not a free-form LLM editing OL**. The pipeline is:
1. Discovery crawler finds candidates with `alternate_names == []` and `work_count ≥ 5`
2. Research worker (LLM-assisted) gathers two-source evidence and produces a structured proposal
3. **Independent QA gate re-fetches both evidence URLs** and verifies the proposed value matches before the bot sees it
4. Only QA-passed proposals reach the bot, which performs the single PUT
The LLM proposes; an independent automated check verifies; the bot only commits proposals that survived both.
### Code
Already up for review at [openlibrary-bots#451](https://github.com/internetarchive/openlibrary-bots/pull/451) — single-file Python 3 stdlib, S3-key auth, with a sample two-source proposal ([Su Tong → 苏童 for OL2630047A](https://openlibrary.org/authors/OL2630047A)) and captured dry-run output (login 200, GET 200, PUT 403 as expected pending this grant).
### Operator contact
- GitHub: [@WendyLee07](https://github.com/WendyLee07)
- Email: wiki-bot@agentic-commons.org
Thank you for reviewing! 🙏
@mekarpeles @hornc
Contributor guide
Research direction
Review openlibrary-bots PR #451 and its single-file Python implementation, including the captured dry-run results and QA workflow described here. Confirm the bot account and proposed scope meet OpenLibrary requirements; done means granting AgenticCommonsBot bot privileges and adding it to the API usergroup, or recording why the request is declined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, authorization
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 25/100