# ORGAN_TRAFFIC_AUDIT

Honest accounting of what is registered as an organ vs what actually
fires in production (last 2262 DAG entries on `dag/runs/`).

## 1. Organs registered in code

`src/organs/organ_manager.cpp:271-338` registers **10 organ specs**:

### 0.5B organs (8 specs, all backed by `physarum05b.planck`)

| name                          | tier | verifier        | json_out | tokens | prompt template                  |
|-------------------------------|------|-----------------|----------|--------|----------------------------------|
| `phys05_json_repair`          | RAM  | json_strict     | true     | 96     | phys05_json_repair.txt           |
| `phys05_code_skeleton`        | RAM  | code_compile    | false    | 128    | phys05_code_skeleton.txt         |
| `phys05_test_writer`          | RAM  | test_runs       | false    | 160    | phys05_test_writer.txt           |
| `phys05_claim_extractor`      | RAM  | source_present  | true     | 128    | phys05_claim_extractor.txt       |
| `phys05_triz_contradiction`   | RAM  | hard_verifier   | true     | 160    | phys05_triz_contradiction.txt    |
| `phys05_renderer`             | SSD  | hard_verifier   | false    | 128    | phys05_renderer.txt              |
| `phys05_cache_matcher`        | SSD  | source_present  | false    | 16     | phys05_cache_matcher.txt         |
| `phys05_critic_lite`          | SSD  | json_strict     | true     | 96     | phys05_critic_lite.txt           |

### 7B organs (2 specs, both backed by `physarium7b_identity.q4planck`)

| name                  | use_chatml | preamble                                |
|-----------------------|------------|-----------------------------------------|
| `physarium_7b`        | true       | "GIGACHAD_NATIVE. Output JSON ..."     |
| `physarium_7b_chat`   | true       | "You are GIGACHAD_NATIVE. Top brain..." |

## 2. Production traffic — last 2262 DAG entries

| organ                          | n     | %      | last seen                  |
|--------------------------------|-------|--------|----------------------------|
| `physarium_7b_chat`            | 1966  | 86.9 % | 2026-04-30T14:10:42 Z      |
| `physarium_7b`                 | 139   | 6.1 %  | 2026-04-29T21:28:49 Z      |
| `phys05_claim_extractor`       | 57    | 2.5 %  | 2026-04-29T21:27:56 Z      |
| `phys05_code_skeleton`         | 28    | 1.2 %  | 2026-04-29T19:23:56 Z      |
| `phys05_json_repair`           | 20    | 0.9 %  | 2026-04-29T21:25:43 Z      |
| (legacy stub names)            | 52    | 2.3 %  | 2026-04-27 latest          |

**Last 500 entries** — only `physarium_7b_chat` fired (498 × code_repair, 2 × identity_fast). Pass rate: 289/500 = 57.8 %. Avg latency 1849 ms.

## 3. Per-day distribution (last 4 days)

```
2026-04-30:  physarium_7b_chat=4
2026-04-29:  physarium_7b_chat=1698  physarium_7b=62  phys05_claim_extractor=33
             phys05_code_skeleton=20  phys05_json_repair=11
2026-04-28:  physarium_7b_chat=264   physarium_7b=72  phys05_claim_extractor=24
             phys05_json_repair=9   phys05_code_skeleton=8
2026-04-27:  json_repair=36  code_skeleton=6  physarium_7b=5  ariz=3
             renderer=1  claim_extractor=1  test_writer=1
```

The trend is unambiguous: as the sprint moved through PHASE-12.CR /
.TC / .TR / .HFR, **`physarium_7b_chat` ate everything**. The 0.5B
organs that DID fire fired only on legacy non-envelope routes
(json_repair / code_skeleton / claim_extractor on raw `--task` calls).

## 4. Dead organs — registered but ZERO DAG calls

| organ                          | calls all-time | status                        |
|--------------------------------|----------------|-------------------------------|
| `phys05_test_writer`           | **0**          | DEAD                          |
| `phys05_triz_contradiction`    | **0**          | DEAD                          |
| `phys05_renderer`              | **0**          | DEAD (legacy `renderer`=1 stub) |
| `phys05_cache_matcher`         | **0**          | DEAD                          |
| `phys05_critic_lite`           | **0**          | DEAD — never wired anywhere   |

**5 of 8 0.5B organs have never run in production.** Their prompt files
exist; their specs are registered; they have token budgets; the GPU
backend supports them. But no dispatcher route, no envelope handler,
no native pipeline calls them.

## 5. Why — code-level audit of `run_chat()` dispatch

Order of route checks in `src/main.cpp:run_chat()`:

```
1. holo_cache_lookup            → emit_holo_hit_envelope_v2     (NO ORGAN)
2. form_pattern_match           → run_form_replay                (NO ORGAN — pure regex+capsule)
3. looks_like_identity          → run_chat_identity              (physarium_7b_chat direct)
4. looks_like_self_query        → run_chat_identity              (physarium_7b_chat direct)
5. native_retry+terminal task   → run_native_terminal_task       (physarium_7b_chat × k=3)
6. native_retry+tool call       → run_native_tool_call           (physarium_7b_chat × k=4 parallel)
7. looks_like_humaneval+native  → run_native_code_repair         (physarium_7b_chat × k=5 parallel)
8. dispatcher.dispatch:
   ├── json_repair       → run_chat_json_repair         (phys05_json_repair → 7B fallback)
   ├── code_skeleton     → run_chat_organ_route("phys05_code_skeleton", ...)  → 7B fallback
   ├── test_writer       → run_chat_organ_route("phys05_test_writer", ...)
   ├── claim_extractor   → run_chat_organ_route("phys05_claim_extractor", ...)
   └── unsupported       → run_chat_identity            (physarium_7b_chat)
```

**Routes that 0.5B SHOULD reach but never do under current benches:**

- `Route::renderer` — handled in legacy `--task`, NOT in `--chat`
- `Route::ariz` — handled in `--task`, NOT in `--chat`. ARIZ pipeline runs
  in `run_ariz_e2e` (different entry).
- `Route::cache_matcher` — handled in `--task`, NOT in `--chat`
- `phys05_critic_lite` — not referenced by any dispatcher.dispatch case
  in either `--task` or `--chat`. Pure dead code.

**Routes that bypass 0.5B entirely under MONSTER_NATIVE_RETRY=1:**

- HumanEval/MBPP shape (every code bench currently runs in this mode)
  → `run_native_code_repair` calls `physarium_7b_chat` k=1 sync + k=4
  in parallel. The `phys05_code_skeleton` organ never sees the prompt.
- Terminal envelopes (`TERMINAL_TASK_V1`) → `run_native_terminal_task`
  drives k=3 retries against `physarium_7b_chat`. No 0.5B at any step.
- Tool-call envelopes → `run_native_tool_call` same shape, all 7B.

## 6. organs_used field — what ships in the envelope

For every recent DAG entry (last 500), `organs_used` is exactly
`["physarium_7b_chat"]`. Never multi-organ. The field exists but
carries no chain information today.

## 7. Direct findings

1. **5 of 8 0.5B organs are dead.** Zero production calls all-time.
2. **3 of 8 0.5B organs are alive but degraded.** They serve only the
   legacy `--task` non-envelope path and the `Route::json_repair / code_skeleton / claim_extractor`
   branches of `run_chat()`. Recent benches don't touch those branches.
3. **Every recent x100/Terminal/MBPP bench was `physarium_7b_chat`-only**,
   despite the user-facing narrative of "5 organs + top brain".
4. **MONSTER_NATIVE_RETRY=1 is the regression source.** It owns the loop
   and skips 0.5B organs on the routes that matter (code repair,
   terminal, tool-call).
5. **`organs_used` is a single-element array in every shipped DAG.**
   No multi-organ chain has ever been recorded.

## 8. Required next steps (handoff to ORGAN_CANONICAL_MAP + REWIRE)

a. The user-facing names (`physarium-flow / crit / render / triz / wound`)
   do NOT match code-side names. Real names are
   `phys05_{json_repair, code_skeleton, test_writer, claim_extractor,
            triz_contradiction, renderer, cache_matcher, critic_lite}`.
   The canonical map document must reconcile these or the docs are
   lying.

b. `wound` (repair organ) does NOT exist in code. There is no
   `phys05_wound` or equivalent. The retry loop currently lives inline
   in `run_native_terminal_task` / `run_native_code_repair` instead of
   in a real organ.

c. The rewire must:
   - Make `run_native_*` paths call `phys05_renderer` to draft commands,
     `phys05_critic_lite` to explain failures, then a `wound` organ
     (new) to propose patches, BEFORE calling `physarium_7b_chat`.
   - Make `--chat` route ARIZ/renderer/cache_matcher prompts to the
     corresponding 0.5B organ instead of failing back to identity_fast.

d. Two organs registered with SSD tier (`phys05_renderer`,
   `phys05_cache_matcher`) — verify they are actually loadable on this
   hardware before plumbing routes to them.

## 9. Conclusion

The architecture diagram says 7B + 5×0.5B. The DAG says
**physarium_7b_chat = 86.9 %, single-organ chains = 100 %, dead 0.5B
organs = 5/8**. The recent x100 GREEN claims do not exonerate this —
they ride entirely on regex+capsule (form_replay) or the exact-input
cache, both of which intentionally skip the model layer, so they say
nothing about whether the organ farm is alive.

This audit blocks any new benchmark/cache/replay work until the
canonical map is honest and the rewire actually puts 0.5B organs in
the path of `--chat` traffic.

Authoritative artefacts:
- `reports/ORGAN_TRAFFIC_AUDIT.md` (this file)
- `reports/organ_traffic_audit.json`
