What I adapted
I adapted a bibliographic retrieval workflow into a synthetic sample that makes matching decisions, fallback attempts, and unresolved documents easy to inspect. It produces HTML review reports and CSV logs, with a related workflow for reconciling a target study list against a Covidence-style export and local PDFs.
A record and a PDF are not always an obvious match: titles vary, identifiers are missing, and a downloaded file may be an access page. I wanted the sample to show how a file was found and keep failures available for follow-up.
Follow the offline example
The example uses four invented records and mocked provider and validation responses. It runs without provider access, browser automation, or library credentials.
| Fictional record | What it demonstrates |
|---|---|
| Alpha | A mocked open-access document is accepted. |
| Beta | A splash page is rejected before a mocked trial document is accepted. |
| Gamma | Retrieval remains unresolved and visible for follow-up. |
| Delta | An existing synthetic PDF is reused. |
The report preserves the retrieval source because a trial protocol can differ from an article’s full text. Finding or reusing three files in this example demonstrates control flow, not live retrieval coverage.
Architecture and decisions
- Retain matching evidence. Reconciliation records the match method, score, ambiguity, tags, and source-list differences; fuzzy matches stay reviewable and scores are not calibrated probabilities.
- Make bundles portable. Copied PDF paths are relative to the bundle, and manifest paths resolve from the CSV location.
- Preserve failure outcomes. An unavailable document, rejected access page, or unresolved record remains a visible result rather than a missing row.
- Separate optional integrations. Browser-based resolution and LLM-assisted validation are configured separately, while the offline example substitutes their responses.
My contribution
I adapted the workflow and prepared the synthetic demonstration with AI coding assistance, following the approach described on the About page; operational development remains in the separate original project.
Scope and verification
Fresh offline validation passed 62 tests, and the mocked example demonstrates retrieval, rejection, fallback, reuse, and unresolved records. The synthetic fixtures test workflow and file handling without measuring live provider coverage, article identity, or LLM classification quality. This independent sample is not affiliated with Covidence and remains separate from the operational project.
Run the repository example
After installing the documented development dependencies:
python examples/run_mock_demo.py
The generated review page is tmp/mock_demo_output/reports/reviewer_links.html.
Source snapshot ac211b4 · Reviewed 2026-09-22. This case study describes that revision; development may continue separately.