Book Acquirer
Acquire a specific, verified book through the user's connected libraries or a
retailer. Prefer libraries, preserve format intent, and keep paid fallback
explicit.
Required skills
Load and follow these skills only when needed:
books-calibre: check ownership and verify imports.
- Your persistent browser automation: drive the library app (e.g. Libby) and
retailer (e.g. Kobo).
- Your web search tooling (for example a
firecrawl-search skill): resolve
uncertain bibliographic details or locate an exact listing.
- Your purchase/payment workflow (for example a
make-purchase skill):
perform a retailer purchase only after explicit paid-purchase intent.
Use the persistent library profile connected to the user's library systems.
Use the persistent retailer profile connected to the user's account.
Interpret the request
- Resolve the exact title, author, edition, ISBN when available, and desired
format.
- Preserve explicit verbs:
place a hold means one library hold.
borrow means a library loan if available.
buy means a retailer purchase workflow.
download EPUB/ACSM means obtain only a file the lending or retail site
legally offers.
- For a generic
get or acquire request, use library-first defaults:
- Prefer ebook unless the user asked to listen or specified audiobook.
- Borrow immediately when the requested format is available.
- Otherwise place the shortest library hold when the estimated wait is six
weeks or less.
- If the shortest wait exceeds six weeks or the format is absent, present the
best hold and current retailer option. Do not begin a paid purchase until
the user explicitly chooses to buy.
- Never silently substitute audiobook for ebook or vice versa.
- Treat a structured handoff from
books-release-scout as context, not fresh
truth. Recheck every mutable fact.
Check ownership and duplicates
- Search all Calibre records, including archived books, by ISBN and normalized
title + author.
- If the requested work is already owned, stop and report the Calibre record
unless the user explicitly wants another edition or format.
- Check the library app's Loans and Holds before acting.
- Do not create a duplicate loan or hold. Report the existing system, format,
and status instead.
Recheck the library across all systems
- Search every connected system for the exact title and author.
- Verify ebook and audiobook records separately.
- Record availability, estimated wait, queue position when shown, copy counts
when shown, system, and format.
- Rank identical-format options:
- available now,
- shortest estimated wait,
- stronger copy-to-hold ratio,
- preferred home system only as a tie-breaker.
- If bibliographic matches conflict, verify ISBN or publisher before acting.
- Never expose library card numbers in chat, logs, screenshots, or state.
Borrow from the library
Borrow only when the user explicitly chose borrow or when a generic
get/acquire request reaches an immediately available library-first result.
- Select the requested format and best connected system.
- Use the longest offered loan period unless the user specified otherwise.
- Submit the loan once.
- Verify the title appears on the Loans shelf and record its due date.
- For ebooks, inspect the manage-loan or reading options for a legally offered
download:
Download EPUB ebook,
Download DRM-free EPUB,
Download Adobe EPUB or an ACSM fulfillment file.
- Do not extract protected app data, reverse engineer APIs, or circumvent DRM.
- Audiobooks remain in the app unless the site explicitly offers a standard
downloadable file. Never scrape or reconstruct audiobook media.
Place a library hold
Place a hold only when the user explicitly chose place hold or when a generic
get/acquire request reaches a wait of six weeks or less.
- Recheck availability immediately before submission.
- Select one system with the shortest wait for the requested format.
- Submit one hold.
- Verify it appears on the Holds shelf.
- Report system, format, estimated wait, and queue position when shown.
- If the title became available, borrow only when the request already
authorized generic acquisition; otherwise offer
Borrow now.
Download and import a library ebook
When a library loan exposes a download:
- Save the offered file to the user's Calibre import/watch folder with a clear
title-author filename when possible.
- For EPUB:
- verify the file type,
- run a ZIP integrity check,
- wait for the watched folder to consume it,
- verify the resulting Calibre title, author, format, and record ID.
- For ACSM:
- verify it is non-empty XML or an Adobe fulfillment document,
- place it in the import folder,
- verify whether the configured importer consumes it,
- report ACSM honestly if no readable EPUB appears.
- Do not claim successful Calibre import merely because a download event fired.
- If the library offers only in-app reading or send-to-Kindle, report that
limitation; do not fabricate a downloadable EPUB.
Buy from a retailer
Begin this section only after the user explicitly says to buy, chooses a Buy
action, or approves the paid fallback with the displayed price.
- Open the exact United States retailer listing and verify title, author,
edition, format, DRM/download option, and current price.
- Reject country switching, unrelated editions, subscriptions, financing, and
trial upsells unless the user explicitly requested them.
- Load and follow your purchase/payment workflow for the payment approval,
checkout, receipt handling, and reporting rules.
- After successful purchase, open the retailer library and use the title's
download action.
- Save EPUB or ACSM to the user's Calibre import/watch folder.
- Validate the file and verify watched-folder import exactly as in the library
download workflow.
- Clean up any temporary payment credential files. Never reveal card details.
Shared recommendation ledger
If memory/books-release-scout.json exists, update only after verifying the
action:
held: a library hold is visible.
borrowed: a library loan is visible.
bought: the retailer confirms the order.
owned: Calibre already contained the book or import is verified.
Store the selected system and a short non-secret note. Never store credentials,
card identifiers, library card numbers, browser state, or approval URLs.
Report the result
Report only verified facts:
- title, author, and format,
- acquisition path: library system or retailer,
- hold wait/position or loan due date,
- retailer total and order number when purchased,
- downloaded file type,
- Calibre record ID when imported,
- any limitation such as app-only reading or unprocessed ACSM.
Safety checks
- No hold, loan, or purchase without an explicit acquisition request.
- No paid fallback from a generic request without a displayed price and explicit
buy choice.
- No duplicate holds across systems unless the user explicitly requests that
strategy.
- No format substitution without consent.
- No DRM circumvention or audiobook extraction.
- No retailer country change, points redemption, subscription, or trial without
explicit instruction.
- Stop when identity verification, a new library-card login, suspicious
redirects, or a materially higher total requires the user's involvement.
1---2name: books-acquirer3description: Acquire named books via library borrow/hold/download first, then explicit retailer purchase. Use when asked to get, hold, borrow, buy, or download an EPUB book.4---56# Book Acquirer78Acquire a specific, verified book through the user's connected libraries or a9retailer. Prefer libraries, preserve format intent, and keep paid fallback10explicit.1112## Required skills1314Load and follow these skills only when needed:1516- `books-calibre`: check ownership and verify imports.17- Your persistent browser automation: drive the library app (e.g. Libby) and18 retailer (e.g. Kobo).19- Your web search tooling (for example a `firecrawl-search` skill): resolve20 uncertain bibliographic details or locate an exact listing.21- Your purchase/payment workflow (for example a `make-purchase` skill):22 perform a retailer purchase only after explicit paid-purchase intent.2324Use the persistent library profile connected to the user's library systems.25Use the persistent retailer profile connected to the user's account.2627## Interpret the request28291. Resolve the exact title, author, edition, ISBN when available, and desired30 format.312. Preserve explicit verbs:32 - `place a hold` means one library hold.33 - `borrow` means a library loan if available.34 - `buy` means a retailer purchase workflow.35 - `download EPUB/ACSM` means obtain only a file the lending or retail site36 legally offers.373. For a generic `get` or `acquire` request, use library-first defaults:38 - Prefer ebook unless the user asked to listen or specified audiobook.39 - Borrow immediately when the requested format is available.40 - Otherwise place the shortest library hold when the estimated wait is six41 weeks or less.42 - If the shortest wait exceeds six weeks or the format is absent, present the43 best hold and current retailer option. Do not begin a paid purchase until44 the user explicitly chooses to buy.454. Never silently substitute audiobook for ebook or vice versa.465. Treat a structured handoff from `books-release-scout` as context, not fresh47 truth. Recheck every mutable fact.4849## Check ownership and duplicates50511. Search all Calibre records, including archived books, by ISBN and normalized52 title + author.532. If the requested work is already owned, stop and report the Calibre record54 unless the user explicitly wants another edition or format.553. Check the library app's Loans and Holds before acting.564. Do not create a duplicate loan or hold. Report the existing system, format,57 and status instead.5859## Recheck the library across all systems60611. Search every connected system for the exact title and author.622. Verify ebook and audiobook records separately.633. Record availability, estimated wait, queue position when shown, copy counts64 when shown, system, and format.654. Rank identical-format options:66 - available now,67 - shortest estimated wait,68 - stronger copy-to-hold ratio,69 - preferred home system only as a tie-breaker.705. If bibliographic matches conflict, verify ISBN or publisher before acting.716. Never expose library card numbers in chat, logs, screenshots, or state.7273## Borrow from the library7475Borrow only when the user explicitly chose `borrow` or when a generic76`get/acquire` request reaches an immediately available library-first result.77781. Select the requested format and best connected system.792. Use the longest offered loan period unless the user specified otherwise.803. Submit the loan once.814. Verify the title appears on the Loans shelf and record its due date.825. For ebooks, inspect the manage-loan or reading options for a legally offered83 download:84 - `Download EPUB ebook`,85 - `Download DRM-free EPUB`,86 - `Download Adobe EPUB` or an ACSM fulfillment file.876. Do not extract protected app data, reverse engineer APIs, or circumvent DRM.887. Audiobooks remain in the app unless the site explicitly offers a standard89 downloadable file. Never scrape or reconstruct audiobook media.9091## Place a library hold9293Place a hold only when the user explicitly chose `place hold` or when a generic94`get/acquire` request reaches a wait of six weeks or less.95961. Recheck availability immediately before submission.972. Select one system with the shortest wait for the requested format.983. Submit one hold.994. Verify it appears on the Holds shelf.1005. Report system, format, estimated wait, and queue position when shown.1016. If the title became available, borrow only when the request already102 authorized generic acquisition; otherwise offer `Borrow now`.103104## Download and import a library ebook105106When a library loan exposes a download:1071081. Save the offered file to the user's Calibre import/watch folder with a clear109 title-author filename when possible.1102. For EPUB:111 - verify the file type,112 - run a ZIP integrity check,113 - wait for the watched folder to consume it,114 - verify the resulting Calibre title, author, format, and record ID.1153. For ACSM:116 - verify it is non-empty XML or an Adobe fulfillment document,117 - place it in the import folder,118 - verify whether the configured importer consumes it,119 - report ACSM honestly if no readable EPUB appears.1204. Do not claim successful Calibre import merely because a download event fired.1215. If the library offers only in-app reading or send-to-Kindle, report that122 limitation; do not fabricate a downloadable EPUB.123124## Buy from a retailer125126Begin this section only after the user explicitly says to buy, chooses a `Buy`127action, or approves the paid fallback with the displayed price.1281291. Open the exact United States retailer listing and verify title, author,130 edition, format, DRM/download option, and current price.1312. Reject country switching, unrelated editions, subscriptions, financing, and132 trial upsells unless the user explicitly requested them.1333. Load and follow your purchase/payment workflow for the payment approval,134 checkout, receipt handling, and reporting rules.1354. After successful purchase, open the retailer library and use the title's136 download action.1375. Save EPUB or ACSM to the user's Calibre import/watch folder.1386. Validate the file and verify watched-folder import exactly as in the library139 download workflow.1407. Clean up any temporary payment credential files. Never reveal card details.141142## Shared recommendation ledger143144If `memory/books-release-scout.json` exists, update only after verifying the145action:146147- `held`: a library hold is visible.148- `borrowed`: a library loan is visible.149- `bought`: the retailer confirms the order.150- `owned`: Calibre already contained the book or import is verified.151152Store the selected system and a short non-secret note. Never store credentials,153card identifiers, library card numbers, browser state, or approval URLs.154155## Report the result156157Report only verified facts:158159- title, author, and format,160- acquisition path: library system or retailer,161- hold wait/position or loan due date,162- retailer total and order number when purchased,163- downloaded file type,164- Calibre record ID when imported,165- any limitation such as app-only reading or unprocessed ACSM.166167## Safety checks168169- No hold, loan, or purchase without an explicit acquisition request.170- No paid fallback from a generic request without a displayed price and explicit171 buy choice.172- No duplicate holds across systems unless the user explicitly requests that173 strategy.174- No format substitution without consent.175- No DRM circumvention or audiobook extraction.176- No retailer country change, points redemption, subscription, or trial without177 explicit instruction.178- Stop when identity verification, a new library-card login, suspicious179 redirects, or a materially higher total requires the user's involvement.