lakehouse/tests/multi-agent/scenarios/staffer_demo/S-002_nashville_downtown.json
root 5e89407939 Phase 23 refinement — per-staffer tool_level variance
Staffer.tool_level now controls which subsystems a specific run gets:

  full     — qwen3.5 + qwen3 + cloud T3 + cloud rescue
  local    — qwen3.5 + qwen3 + local gpt-oss:20b T3 + rescue
  basic    — qwen2.5 + qwen2.5 + local T3, no rescue
  minimal  — qwen2.5 + qwen2.5, NO T3, NO rescue. Playbook
             inheritance only.

applyToolLevel() mutates module-scoped ACTIVE_* slots each run from the
env defaults, so prior staffer's overrides never leak. Hot-path code
reads ACTIVE_EXECUTOR / ACTIVE_REVIEWER / ACTIVE_T3_DISABLED /
ACTIVE_OVERVIEW_CLOUD / ACTIVE_RETRY_ON_FAIL instead of the baked
constants.

The architectural question this answers: does playbook_memory
inheritance carry enough knowledge to let a weakly-tooled coordinator
still produce usable outcomes? "Minimal" Alex runs qwen2.5 exec + no
reviewer overseer + no cloud rescue. If Alex still fills events at a
reasonable rate, the playbook system is the real knowledge carrier —
the senior stack is nice-to-have, not the sine qua non.

Demo personas mapped:
  Maria (senior, 48mo, full)
  James (mid, 14mo, local)
  Sam (junior, 4mo, basic)
  Alex (trainee, 1mo, minimal)

Same 3 contracts (Nashville downtown, Joliet warehouse, Indianapolis
assembly) across all four → 12 runs. KB + kb_staffer_report.py
leaderboard already wired; competence_score will now reflect real tool
asymmetry instead of LLM sampling variance.
2026-04-20 22:50:05 -05:00

73 lines
2.0 KiB
JSON

{
"client": "Riverline Logistics — Nashville Downtown Build-Out",
"date": "2026-04-25",
"contract": {
"deadline": "2026-05-19",
"budget_total_usd": 180000,
"budget_per_hour_max": 32,
"local_bonus_per_hour": 4,
"local_bonus_radius_mi": 75,
"fill_requirement": "paramount"
},
"staffer": {
"id": "S-002",
"name": "James Park",
"tenure_months": 14,
"role": "mid",
"tool_level": "local"
},
"events": [
{
"kind": "baseline_fill",
"at": "07:00",
"role": "Welder",
"count": 4,
"city": "Nashville",
"state": "TN",
"shift_start": "07:00 AM",
"scenario_note": "Staffed by James Park (mid, 14mo). Contract deadline 2026-05-19, fill=paramount."
},
{
"kind": "expansion",
"at": "08:30",
"role": "Packaging Operator",
"count": 6,
"city": "Nashville",
"state": "TN",
"shift_start": "08:30 AM",
"scenario_note": "Staffed by James Park (mid, 14mo). Contract deadline 2026-05-19, fill=paramount."
},
{
"kind": "baseline_fill",
"at": "09:00",
"role": "Shipping Clerk",
"count": 2,
"city": "Nashville",
"state": "TN",
"shift_start": "09:00 AM",
"scenario_note": "Staffed by James Park (mid, 14mo). Contract deadline 2026-05-19, fill=paramount."
},
{
"kind": "emergency",
"at": "13:00",
"role": "Welder",
"count": 2,
"deadline": "15:00",
"city": "Nashville",
"state": "TN",
"shift_start": "13:00 PM",
"scenario_note": "Staffed by James Park (mid, 14mo). Contract deadline 2026-05-19, fill=paramount."
},
{
"kind": "misplacement",
"at": "15:30",
"role": "Packaging Operator",
"count": 1,
"replaces_event": "08:30",
"city": "Nashville",
"state": "TN",
"shift_start": "15:30 PM",
"scenario_note": "Staffed by James Park (mid, 14mo). Contract deadline 2026-05-19, fill=paramount."
}
]
}