Surfaced by today's untracked-files audit. None of these are accidents —
multiple are referenced by name in CLAUDE.md and memory files but were
never added.
Categories:
- docs/PHASE_AUDIT_GUIDE.md (106 LOC) — Claude Code phase audit guidance
- ops/systemd/lakehouse-langfuse-bridge.service — Langfuse bridge unit
- package.json — top-level npm manifest
- scripts/e2e_pipeline_check.sh + production_smoke.sh — real test scripts
- reports/kimi/audit-last-week*.md — the "Two reports live" CLAUDE.md cites
- tests/multi-agent/scenarios/ — 44 staffing scenarios (cutover decision A)
- tests/multi-agent/playbooks/ — 102 playbook records
- tests/battery/, tests/agent_test/PRD.md, tests/real-world/* — real tests
- sidecar/sidecar/{lab_ui,pipeline_lab}.py — 888 LOC dev-only UIs that
remain in service post-sidecar-drop (commit ba928b1 explicitly kept them)
Sensitivity check: scenarios use synthetic company names ("Heritage Foods",
"Cornerstone Fabrication"); audit reports describe code findings only;
no PII or secrets surfaced.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56 lines
3.8 KiB
Markdown
56 lines
3.8 KiB
Markdown
# Scenario retrospective — Pioneer Assembly — Indianapolis Plant Expansion, 2026-05-03
|
||
|
||
Executor: `qwen2.5:latest` Reviewer: `qwen2.5:latest` Draft: `qwen2.5:latest` Overview(T3): `disabled`
|
||
Prior lessons loaded into executor context: **3** (from 2026-05-05, 2026-05-03, 2026-04-30)
|
||
|
||
## Events
|
||
|
||
| At | Kind | Role / Count | Pool | Fills | Turns | Dur(s) | Cites | Gaps |
|
||
|---|---|---|---|---|---|---|---|---|
|
||
| 07:30 | baseline_fill | Assembler × 6 | - | ✗ 0 | 0 | 6.9 | 0 | 1 |
|
||
| 09:30 | recurring | Quality Tech × 2 | - | ✗ 0 | 0 | 6.8 | 0 | 1 |
|
||
| 11:00 | expansion | Machine Operator × 5 | - | ✗ 0 | 0 | 8.0 | 0 | 1 |
|
||
| 14:00 | emergency | Machine Operator × 3 | - | ✗ 0 | 0 | 11.2 | 0 | 1 |
|
||
| 16:00 | misplacement | Assembler × 1 | - | ✗ 0 | 0 | 6.5 | 0 | 1 |
|
||
|
||
## Final roster
|
||
|
||
| Worker | Booked | Role | City, ST | Status |
|
||
|---|---|---|---|---|
|
||
|
||
## Gap signals
|
||
|
||
### drift_or_tool
|
||
- **07:30** — invalid JSON from executor: JSON Parse error: Expected '}' | raw: {"kind":"tool_call","tool":"hybrid_search","args":{"index_name":"workers_500k_v1","sql_filter":"role = 'Assembler' AND city = 'Indianapolis' AND state = 'IN' AND CAST(availability AS DOUBLE) > 0.5","question":"6 Assembler in Indianapolis, IN","k":30},"rationale":"Initial search for Assemblers in Ind
|
||
- **09:30** — invalid JSON from executor: JSON Parse error: Expected '}' | raw: {"kind":"tool_call","tool":"hybrid_search","args":{"index_name":"workers_500k_v1","sql_filter":"role = 'Quality Tech' AND city = 'Indianapolis' AND state = 'IN' AND CAST(availability AS DOUBLE) > 0.5","question":"recurring Quality Tech Indianapolis IN","k":40},"rationale":"Initial search for Quality
|
||
- **11:00** — invalid JSON from executor: JSON Parse error: Expected '}' | raw: {"kind":"tool_call","tool":"hybrid_search","args":{"index_name":"workers_500k_v1","sql_filter":"role = 'Machine Operator' AND city = 'Indianapolis' AND state = 'IN' AND CAST(availability AS DOUBLE) > 0.5 AND CAST(reliability AS DOUBLE) > 0.75","question":"Machine Operator in Indianapolis, IN with hi
|
||
- **14:00** — invalid JSON from executor: JSON Parse error: Expected '}' | raw: {"kind":"tool_call","tool":"hybrid_search","args":{"index_name":"workers_500k_v1","sql_filter":"role = 'Machine Operator' AND city = 'Indianapolis' AND state = 'IN' AND CAST(availability AS DOUBLE) > 0.7","question":"Machine Operator Indianapolis IN available","k":60},"rationale":"Verify the top can
|
||
- **16:00** — invalid JSON from executor: JSON Parse error: Expected '}' | raw: {"kind":"tool_call","tool":"hybrid_search","args":{"index_name":"workers_500k_v1","sql_filter":"role = 'Assembler' AND city = 'Indianapolis' AND state = 'IN' AND CAST(availability AS DOUBLE) > 0.5","question":"Assembler in Indianapolis, IN","k":20},"rationale":"Start searching for available Assemble
|
||
|
||
### write_through_audit
|
||
- _post-run_ — playbook_memory has 1788 entries (ran 5 events, expected ≥ 0 new entries from this run)
|
||
|
||
## Workers touched across the week
|
||
|
||
0 distinct workers made it through to a decision. Every one is accounted for below — no-shows flagged, rebookings noted, everyone visible.
|
||
|
||
| Worker ID | Name | Events | Outcome |
|
||
|---|---|---|---|
|
||
|
||
## Discovered patterns (meta-index)
|
||
|
||
What the system identified across semantically-similar past fills as each event ran:
|
||
|
||
- **07:30 baseline_fill** (Assembler): —
|
||
- **09:30 recurring** (Quality Tech): —
|
||
- **11:00 expansion** (Machine Operator): —
|
||
- **14:00 emergency** (Machine Operator): —
|
||
- **16:00 misplacement** (Assembler): —
|
||
|
||
## Narrative
|
||
|
||
- 0/5 events reached consensus.
|
||
- Final roster: 0 bookings across 0 distinct workers.
|
||
- Workers touched (booked, failed, or otherwise decided): 0.
|
||
- Playbook citations across the day: 0 (proof the feedback loop fired across events).
|
||
- Dropped events: 07:30 baseline_fill, 09:30 recurring, 11:00 expansion, 14:00 emergency, 16:00 misplacement. |