|
| 1 | +# BioSymphony Ferm DoE Public Repo Agent Guide |
| 2 | + |
| 3 | +Public workspace for BioSymphony Ferm DoE. |
| 4 | + |
| 5 | +## Mission |
| 6 | + |
| 7 | +Help users and their agents drive long-horizon, multi-agent bioprocess design campaigns from intake through Wave 2. The repo is a skill any agent harness can pick up: Symphony with Linear, Claude Code workers with Linear, Codex CLI, OpenAI Agents SDK, or a custom orchestrator, running on a laptop, in CI, or behind AWS Lambda or Modal. The agent and the human share one durable artifact (`campaign_manifest.json`), pause, resume, hand off, and converge on a fermentation campaign that is worth running. |
| 8 | + |
| 9 | +The repo ships: |
| 10 | + |
| 11 | +- profile registry (screening, optimization_rsm, mixture, split_plot_fed_batch, scale_up_bridge, scale_down_qualification, confirmation, sequential_augmentation, custom) |
| 12 | +- scale_context block (multi-criterion: kLa, P/V, tip_speed, mix_time, DO, OUR, RQ, VVM, geometric_similarity, custom) |
| 13 | +- multi-arm (`arms[]`) campaigns |
| 14 | +- per-axis readiness state (responses, factors, arms, scale_context, doe, decision_rules, evidence, feasibility) |
| 15 | +- decision_rules / stop_rules / risk_register / assumptions blocks |
| 16 | +- DoE family taxonomy with minimum-runs guidance |
| 17 | +- a curated 37-tool BO/DoE registry with documented adapter routing (`docs/TOOL_REGISTRY.md`, `docs/tool-registry.json`) |
| 18 | +- BoFire, ENTMOOT v2, OMLT, TabPFN, BoTorch, pyDOE3, SALib, scipy, PubMed MCP adapters that degrade cleanly when the optional extra is absent |
| 19 | +- a cumulative dossier pattern (per-corpus swarm plus integrator plus harvester) backed by `provenance.py` and `rocrate_retrofit.py` |
| 20 | +- a cost-model honesty stack (simulator, bulk reagent, fully-loaded COGS, CMO, range) |
| 21 | +- JSON Schema for the manifest plus Frictionless table contracts for CSV inputs |
| 22 | +- issue-pack and task-request contracts that let an orchestrator fan work across parallel sub-agents and converge results |
| 23 | +- AWS Lambda and Modal scaffolds so the same commands run from a laptop, from CI, or behind a stateless cloud endpoint |
| 24 | +- public-safety audit and validators |
| 25 | + |
| 26 | +## Public Safety Rules |
| 27 | + |
| 28 | +Do not add: |
| 29 | + |
| 30 | +- private strain details |
| 31 | +- unpublished sequences |
| 32 | +- customer batch records |
| 33 | +- confidential media formulations |
| 34 | +- API keys or provider credentials |
| 35 | +- private workstation paths |
| 36 | +- private issue-tracker / team / project identifiers |
| 37 | +- raw private campaign artifacts |
| 38 | + |
| 39 | +Use synthetic or public-source examples only, label synthetic data clearly. |
| 40 | + |
| 41 | +## Current State |
| 42 | + |
| 43 | +- README plus workflow images |
| 44 | +- public-safe `SKILL.md` with long-agent loop |
| 45 | +- canonical `NON_CLAIMS.md` |
| 46 | +- profile registry (9 profiles), scale_bridge framework, DoE family taxonomy (14 families), JSON Schema, table contracts |
| 47 | +- adapters for BoFire, ENTMOOT v2, OMLT, TabPFN, BoTorch, pyDOE3, SALib, scipy, PubMed MCP |
| 48 | +- public demos: twelve campaign-shaped demos covering screening (xylanase, PB screening, warnings-walkthrough), scale_down_qualification (scale-bridge), split_plot_fed_batch, BoFire routes (media cost, shakeflask-to-2L), ENTMOOT NChooseK smoke, multi-arm scale transfer, reference DOE custom design, public-paper starter (xylanase-wxz1-2012), and product-class starter (yeast-isoprenoid-2L-fedbatch); plus the `adaptive-backend-eval` and `starter-studies` auxiliary fixtures |
| 49 | +- reference docs: GLOSSARY, CLI_REFERENCE, ADAPTER_MAP, DOE_FAMILY_RECIPES, WAVE2_BOTORCH, ISSUE_PACK_GENERATION, BACKEND_EVAL_FINDINGS, ADAPTER_DESIGN_NOTES |
| 50 | +- Python package scaffold (stdlib-only at runtime; optional extras route through adapters) |
| 51 | +- AWS Lambda and Modal deploy scaffolds in `deploy/` |
| 52 | +- public-safety tests, per-validator tests, adapter tests, dossier provenance tests; 455 tests pass with 38 expected skips |
| 53 | + |
| 54 | +## Long-Agent Loop |
| 55 | + |
| 56 | +See `skills/biosymphony-ferm-doe/SKILL.md`. Summary: intake, readiness gate, factor framing, scale framing, DoE selection, run packet, Wave 2 review. Refuse on missing required blocks for declared profiles, missing assayed-response contracts, and public-safety violations. Warn on profile-advised gaps and DoE family minimum-runs shortfalls. |
| 57 | + |
| 58 | +## Key Pattern And Convention |
| 59 | + |
| 60 | +- Treat public examples as synthetic contract fixtures, not campaign records. |
| 61 | +- Keep campaign routing explicit through `task_request` contracts; do not activate heavy campaign workflows for ordinary validation or docs tasks. |
| 62 | +- Keep issue packs tracker-neutral until a private campaign maps pack-local IDs to a tracker. |
| 63 | +- Preserve arm scope in DOE artifacts: per-arm executable CSVs are authoritative; horizontal DOE tables are review surfaces. |
| 64 | +- Prefer stdlib/offline code paths in the public package; optional scientific dependencies must degrade cleanly. |
| 65 | +- Bounded workers (parallel sub-agents, swarm corpora, integrator and harvester roles) are coordinated through `task_request` contracts and the cumulative-dossier pattern, not ad-hoc dispatch. |
| 66 | +- One coherent dossier per campaign (`CITATIONS.json`, `NOTES.md`, `SOURCES.bib`, per-corpus `EVIDENCE.csv`), not N isolated reports. |
| 67 | + |
| 68 | +## Risks To Watch |
| 69 | + |
| 70 | +- Do not turn public demos into implied lab-validation or production-readiness claims. |
| 71 | +- Watch for accidental private paths, provider IDs, issue-tracker IDs, private biological details, or copied article tables before release. |
| 72 | +- Keep scale-transfer wording at planning or qualification status unless executed bridge evidence is present. |
| 73 | +- Keep warnings deterministic so public demos remain useful regression fixtures. |
| 74 | +- When BoFire's `SoboStrategy` plus `NChooseK` is requested, route to ENTMOOT v2 or enforce cardinality post-hoc; upstream issue #450 stalls indefinitely. |
| 75 | +- When the simulator drives the planner, declare `simulator.fidelity_level` on the manifest and run the literature pressure-test template before sealing a campaign. |
| 76 | + |
| 77 | +## Next Best Work |
| 78 | + |
| 79 | +1. Keep all demos complete, deterministic, and clearly synthetic; the diagnostic walkthrough should continue to surface intentional guidance warnings. |
| 80 | +2. Extend validators only with public-safe logic and fixtures. |
| 81 | +3. Keep `make release-check` passing before any public push. |
| 82 | +4. Add new demos under public-safe artifact folders when more profiles see use. |
| 83 | +5. Re-run history and tree scans before first remote publication. |
| 84 | +6. When new DoE adapters land, label their claim level and route reason in the tool registry. |
| 85 | + |
| 86 | +## Claim Boundaries |
| 87 | + |
| 88 | +This repo validates measurement readiness, manifest structure, and profile fit before lab work. It does not validate actual lab measurements unless result rows are ingested with provenance and QC evidence. |
| 89 | + |
| 90 | +Do not claim optimized, validated, production-ready, or GxP-ready behavior. |
0 commit comments