Traceable document intelligence for product-development plans, evidence, and decisions.
PDIS turns DOCX and PPTX product-development documents into citable analysis. It supports target product profiles and development plans for vaccines, drugs, diagnostics, and devices while preserving the source blocks behind every result.
Product-development work spans several distinct questions: whether a document is complete, whether two documents agree, and whether stated targets are supported by external evidence. PDIS keeps those responsibilities separate instead of collapsing them into one score.
The system is stateless. Inspector, Aligner, and Scout produce portable, versioned result files containing their parsed source blocks and retained visuals. Imported final results are read-only and Assistant never performs a new search.
Docker Desktop is the recommended local environment.
cp .env.example .env
cp .env.tooluniverse.example .env.tooluniverse
cp web/.env.local.example web/.env.local
docker compose up --buildSet OPENAI_API_KEY, ANTHROPIC_API_KEY, and a shared
TOOLUNIVERSE_API_TOKEN in .env. Set SEMANTIC_SCHOLAR_API_KEY in
.env.tooluniverse when that source is enabled.
Open the application at http://localhost:3000. The API health endpoint and OpenAPI reference are available at http://localhost:8000/api/health and http://localhost:8000/docs.
Native development requires Python 3.11 and Node.js 20. ToolUniverse can remain in Docker while the API and web application run locally.
docker compose up -d tooluniverse
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m uvicorn api.main:app --reload --port 8000In another terminal:
cd web
npm install
npm run dev- Open the workspace and choose a tool.
- Select the requested product context.
- Upload the source document or documents.
- Resolve any Scout review checkpoint.
- Inspect cited blocks and sources, then download the final result.
Assistant can navigate canonical PDIS process and architecture documentation, the tool catalog, current client-held analyses and utility outputs, their embedded source blocks, retained visuals, and already-cited URLs. Users may also attach transient documents or images as conversation context. Assistant cannot mutate results or retrieve new evidence. Conversation text, loaded results, and attachments share one in-memory workspace lifecycle; final-result export/import is the durable boundary.
| Tool | Responsibility |
|---|---|
| Inspector | Grade document completeness, adherence, rigor, and consistency. |
| Aligner | Trace commitments and changes across two documents. |
| Scout | Test document targets against evidence, comparators, and precedent. |
| Chunker | Produce ordered, citable text, table, and image blocks. |
| Searcher | Execute normalized retrieval across registered evidence sources. |
| Assistant | Navigate available results and cited material across the workspace. |
External GHIDE decision workflows appear as labeled shortcuts in the workspace; they are not executed by this repository.
Document workflows use four inputs: org, source_type,
intervention_class, and indication. The first three select YAML
configuration; indication scopes provenance and Scout retrieval.
Server credentials belong in .env; the browser environment contains only the
API origin. See .env.example and
web/.env.local.example for the supported variables.
Human-owned product rules live under services/*/configs/ and shared/.
Public product documentation lives in shared/product_knowledge.json; the web
documentation page and Assistant read that same versioned source.
Run the contract and build checks before merging cross-layer changes.
PYTHONPYCACHEPREFIX=/tmp/pdis-pycache \
.venv/bin/python -m compileall -q shared services api tests
.venv/bin/python -m unittest discover -s tests
npm --prefix web test
npm --prefix web run typecheck
npm --prefix web run build
git diff --checkBuild the images when a Dockerfile or a published shared/ artifact changes, since
the image build has its own copy rules.
docker compose buildImplementation invariants are documented in AGENTS.md.
render.yaml creates one PDIS project with a Production
environment: a free public Next.js client, a Starter Docker API, and a Starter
private ToolUniverse connector. Create it with New → Blueprint, provide the
prompted provider credentials, and let Render derive all cross-service hosts and
the shared ToolUniverse token.
Questions and bug reports are welcome in GitHub Issues. Pull requests should preserve the contracts in AGENTS.md and pass the development checks above.
UNLICENSED.

