lesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buylesson 5 of 6 · the haas shift — harness-as-a-service and what to build vs buythe haas shift — harness-as-a-service and what to build vs buy
Write recommend_harness(team) that takes a team profile and
returns the recommended runtime as a string. The team dict has:
team_size(int)latency_critical(bool)vertical_constraints(bool) — strict domain/regulatory needslanguage(str — e.g. "typescript", "python")
Decision rules (apply in order):
- Tiny solo dev with no vertical constraints
(
team_size <= 1 and not vertical_constraints) →"build-your-own"— no runtime needed at this scale. - TypeScript shop with no vertical constraints
(
language == "typescript" and not vertical_constraints) →"vercel-ai-sdk". - Python team, latency-critical or vertical-constrained →
"build-your-own"(need full control). - Python team, otherwise →
"claude-agents-sdk"(default for Anthropic-aligned Python work). - Anything else with latency-critical →
"build-your-own". - Anything else →
"openai-agents-sdk".
Four teams run for you. Expected output:
ts-startup: vercel-ai-sdk
py-mid: claude-agents-sdk
solo: build-your-own
regulated-fin: build-your-own