Pocket Lint
An agentic compliance linter for Clinical Study Reports.
Core trick
Two managed agents write and run Python in sandboxes to check clinical report structure and table arithmetic, then queue each flag for human review.
Description
An agentic compliance linter for Clinical Study Reports. These regulatory documents run hundreds of pages, and a single missing section or mismatched table total can sink a
submission. Pocket Lint treats the report as structured data, not prose: two specialist
agents write and run code to verify structure and arithmetic, then flag issues to a human
accept/reject queue with each problem highlighted on the page. It checks structure and math only, never clinical content.
README excerpt
# Pocket Lint **Agentic compliance — down to the last thread.** An agentic linter for regulatory Clinical Study Reports (CSRs). A CSR is a structured database trapped in a PDF, so Pocket Lint verifies it with **code execution, not RAG**. Two specialist [Gemini Managed Agents][ma] (announced at Google I/O 2026) each run in their own isolated remote Linux sandbox, write and run Python to check the document, and surface flags to a human accept/reject queue — with the violations highlighted on the page. > Demoed on a prepared **synthetic** 3-page CSR with two intentionally planted > defects. It is a representative sample, not real patient data. Findings are > strictly structural/arithmetic; a human judges every one. ## The two agents | Agent | Sandbox | Catches | |---|---|---| | **Structural Auditor** | own remote Linux env | a mandatory ICH E3 section is missing (§12 Safety Evaluation) | | **Consistency Checker** | own remote Linux env | a table total (247) disagrees with the narrative (250) | ## Stack (Google I/O 2026 APIs) - **Gemini 3.5 Flash** — `base_agent="antigravity-preview-05-2026"` - **Managed Agents** — `client.agents.create(...)` from inline `SKILL.md` - **Interactions API** — `client.interactions.create(agent=..., environment="remote", stream=True)`, one isolated ephemeral Linux sandbox per agent, code execution inside it - **Streaming** — `step.delta` `code_execution_call` / `code_execution_result` deltas drive the glass-box trace - FastAPI + SSE coordin