A bounded local skill runtime for synthetic protocol-review workflows. FastAPI exposes a health check, a fixed skill registry, and /workflows/protocol-review. The runtime executes an explicit plan, records each tool decision, and stops on invalid arguments, repeated steps or permission failures.
python -m venv .venv
. .venv/bin/activate
python -m pip install -e ".[dev]"
make runAt http://127.0.0.1:8000/docs, submit {"fixture_id":"fixture-001","session_id":"demo-001"} to the review workflow. Export the response as a JSON trace. The API fixes the analyst role; callers cannot select a privileged role or issue approvals.
- States: planned, running, completed, awaiting_approval, blocked, failed.
- Two synthetic fixture protocols; no patient records or external actions.
- Analyst and operator allowlists, a maximum step budget, and duplicate-step detection.
- A scheduling simulation requires a single-use approval bound to the exact session, tool and arguments.
ApprovalStore.issueis a trusted local human seam, not an exposed web endpoint or a production identity service. - Trace fields include timestamp, tool, arguments, result, status, error and latency. The runtime is deterministic; no LLM planner, dynamic skill creation or arbitrary code executor is implemented.
make test
make lintTests cover permissions, privilege escalation attempts, exact approval binding and reuse, repeated steps, invalid fixtures and API trace export. The related agent-eval-lab provides a separate trace-scoring contract. See its integration report for the local adapter checks.
Authenticated human review, durable workflow state in NovaDB, and real-model predictions require separate integration and evaluation. Do not describe the synthetic workflow as deployed clinical automation.
See LICENSE.