How we decide what to build and what to run it on: the eight-step intake, the loop/swarm/harness vocabulary, and the full harness menu with production status and lock-in cost.
Every capability gets these eight decisions, in this order. Skipping to "which framework" is how you end up with a LangGraph deployment for a task that was a single structured completion.
| # | Decision | Default |
|---|---|---|
| 1 | Processor — one-shot, loop, or agent? | one-shot |
| 2 | Harness — what environment runs it? | Pydantic AI / brain-api pattern |
| 3 | Shape — loop-shape × swarm-shape | one-shot × single |
| 4 | Skills — which of the 219 does it load? | the fewest that close the task |
| 5 | Context — what must it know, per tenant? | MCS spine, projected |
| 6 | Memory — what may it write back, and how? | propose-then-confirm |
| 7 | Eval — how do we know it worked? | a stated floor, never "looks right" |
| 8 | Trigger — what starts it? | manual until it earns a schedule |
one-shot needs codified
breakers before it runs: max_turns, a per-run dollar cap, duplicate-call
detection, a wall-clock timeout, and an explicit "I'm stuck" exit. Measured cost of skipping
them: one self-prompting run exceeded 1M tokens; one managed-agent run burned ~$12 in 28 minutes
and still failed its rubric.Patterns you can build on — deliberately not BC's own products. What BioCreative actually shipped and where it runs lives in the Agent Fleet Registry. Lock-in is scored 1–5: how hard it would be to leave.