Skip to content

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.

Tags

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.
RameezMilk/pocket-lint★ 01 forksPythonCreated May 23, 2026 · last push May 26, 2026

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

Team