v7next F1: wave-3 integration seam - ten llm leaves mapped, llm.py split rows retired

domains.toml: the ten D02 leaves enter [modules]; llm.py leaves both
split_pending sections (D05 carried its own toml rows in-lane). Quotient
report regenerated. D19 contributed a zero-work classification (7
byte-identical + 4 pure-drift contracts, no commit - sha256 evidence in its
lane report), nothing to merge.
This commit is contained in:
Ouroboros 2026-08-30 19:31:04 +00:00
parent 86244943b9
commit 92238298c7
2 changed files with 114 additions and 73 deletions

View file

@ -1,26 +1,26 @@
# Domain quotient report — v7next (report-only)
Generated by `scripts/v7next_domain_report.py` on 2026-08-30 18:57 UTC. Do not edit.
Generated by `scripts/v7next_domain_report.py` on 2026-08-30 19:30 UTC. Do not edit.
- generated from the WORKING TREE based on HEAD `0859b6811ac2867faf3055b933768b5e7f964dfd` (the report is typically written pre-commit, so this HEAD is the parent of the commit that carries it, not that commit itself)
- analyzed-inputs content fingerprint: sha256 `4d3251a9902a56b2459e5173dd25358656cdb1711698dbd764032f2b9ac0e2a1` (sorted tracked runtime files, path+bytes; regenerate on any tree and compare to verify freshness)
- manifest: `scripts/v7next_domains.toml` sha256 `ddf5268c41ef29dcc19e70a6b19ee5e7a50d159e630e9ad4030ff9523dd2c60a`
- generated from the WORKING TREE based on HEAD `86244943b901a520b2d6d5cc21ca5e705b08a97b` (the report is typically written pre-commit, so this HEAD is the parent of the commit that carries it, not that commit itself)
- analyzed-inputs content fingerprint: sha256 `e46d590d3152dbecea624899c103b7a71f47bae430d97da0e7680cbf602999a6` (sorted tracked runtime files, path+bytes; regenerate on any tree and compare to verify freshness)
- manifest: `scripts/v7next_domains.toml` sha256 `0cb944d21c82f6dae52b0778e4e6cad2012b1df4ec6752459467032530c7b9cc`
- reference (domain vocabulary): ouroboros_v7_wip @ 9f691656e7e756c483f72ef549418c0e7a1b8054 (frozen)
- discipline: plan §7.1 / roast F17 — this is a REPORT; cycles are owner-batch
items (regroup vs split vs allowed-edge), the checker never dictates.
## Population
- modules mapped: **387** across **20** domains (80 rows are `classification=proposed`)
- modules mapped: **402** across **20** domains (80 rows are `classification=proposed`)
- manifest drift: none (manifest == tracked population)
| domain | modules | proposed |
|---|---:|---:|
| D01 — Agent core & main loop | 18 | 2 |
| D02 — LLM client, routing & providers | 23 | 13 |
| D02 — LLM client, routing & providers | 33 | 13 |
| D03 — Context assembly, fit & compaction | 11 | 1 |
| D04 — Tool execution: registry, access & typed results | 17 | 0 |
| D05 — Tool surfaces: files, code, shell, media, external | 18 | 1 |
| D05 — Tool surfaces: files, code, shell, media, external | 23 | 1 |
| D06 — Review stack | 48 | 17 |
| D07 — Delegation, subagents & Claudexor | 37 | 17 |
| D08 — Supervisor: queue, workers, events & runtime control | 18 | 4 |
@ -39,8 +39,8 @@ Generated by `scripts/v7next_domain_report.py` on 2026-08-30 18:57 UTC. Do not e
## Strict import graph
- module-level import edges (unconditional): **1123** unique, 3400 statements
- cross-domain module edges: **728**
- module-level import edges (unconditional): **1198** unique, 3656 statements
- cross-domain module edges: **761**
- domain-level edges (quotient): **163**
- quotient cycles (SCCs with >1 domain): **1**
@ -50,7 +50,7 @@ Generated by `scripts/v7next_domain_report.py` on 2026-08-30 18:57 UTC. Do not e
20 domains form one strongly connected component. Every edge below
needs an owner disposition (regroup / split / allowed-edge).
253 of the 728 module-edge witnesses touch a `[split_pending]`
228 of the 761 module-edge witnesses touch a `[split_pending]`
monolith (marked †): those edges are expected to move or dissolve when the
ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
@ -59,7 +59,7 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/loop.py` → `ouroboros/llm.py` (line 17) †
- `ouroboros/loop.py` → `ouroboros/pricing.py` (line 71) †
- `ouroboros/loop_llm_call.py` → `ouroboros/anthropic_native_custody.py` (line 22)
- `ouroboros/loop_llm_call.py` → `ouroboros/llm.py` (line 29) †
- `ouroboros/loop_llm_call.py` → `ouroboros/llm.py` (line 29)
- `ouroboros/loop_llm_call.py` → `ouroboros/model_concurrency.py` (line 21)
- `ouroboros/loop_llm_call.py` → `ouroboros/pricing.py` (line 31)
- `ouroboros/loop_llm_call.py` → `ouroboros/provider_models.py` (line 32)
@ -161,20 +161,28 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/request_wire_contract.py` → `ouroboros/deadline_utils.py` (line 22)
- `ouroboros/request_wire_resolution.py` → `ouroboros/deadline_utils.py` (line 8)
- `ouroboros/vision_routing.py` → `ouroboros/deadline_utils.py` (line 12)
- **D02 → D03** (1 module edges)
- `ouroboros/llm.py` → `ouroboros/context_budget.py` (line 66) †
- **D02 → D12** (2 module edges)
- `ouroboros/provider_models.py` → `ouroboros/settings_defaults.py` (line 10)
- **D02 → D03** (3 module edges)
- `ouroboros/llm.py` → `ouroboros/context_budget.py` (line 26)
- `ouroboros/llm_attempt.py` → `ouroboros/context_budget.py` (line 24)
- `ouroboros/llm_local.py` → `ouroboros/context_budget.py` (line 16)
- **D02 → D12** (3 module edges)
- `ouroboros/provider_models.py` → `ouroboros/model_slots.py` (line 10)
- `ouroboros/provider_models.py` → `ouroboros/settings_defaults.py` (line 11)
- `ouroboros/vision_routing.py` → `ouroboros/config.py` (line 11)
- **D02 → D16** (5 module edges)
- `ouroboros/llm.py` → `ouroboros/usage_accounting.py` (line 37) †
- **D02 → D16** (9 module edges)
- `ouroboros/llm.py` → `ouroboros/usage_accounting.py` (line 112)
- `ouroboros/llm_anthropic.py` → `ouroboros/usage_accounting.py` (line 38)
- `ouroboros/llm_attempt.py` → `ouroboros/usage_accounting.py` (line 26)
- `ouroboros/llm_fallback.py` → `ouroboros/usage_accounting.py` (line 38)
- `ouroboros/llm_local.py` → `ouroboros/usage_accounting.py` (line 24)
- `ouroboros/llm_observability.py` → `ouroboros/observability.py` (line 8)
- `ouroboros/llm_probe.py` → `ouroboros/usage_accounting.py` (line 14)
- `ouroboros/request_wire_recovery.py` → `ouroboros/usage_accounting.py` (line 40)
- `ouroboros/vision_routing.py` → `ouroboros/observability.py` (line 13)
- **D02 → D18** (7 module edges)
- `ouroboros/llm.py` → `ouroboros/utils.py` (line 54) †
- **D02 → D18** (8 module edges)
- `ouroboros/llm.py` → `ouroboros/utils.py` (line 128)
- `ouroboros/llm_observability.py` → `ouroboros/utils.py` (line 10)
- `ouroboros/llm_openai_compatible.py` → `ouroboros/utils.py` (line 29)
- `ouroboros/local_model.py` → `ouroboros/platform_layer.py` (line 14)
- `ouroboros/pricing.py` → `ouroboros/utils.py` (line 19)
- `ouroboros/request_wire_contract.py` → `ouroboros/utils.py` (line 23)
@ -222,23 +230,28 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/tools/registry.py` → `ouroboros/contracts/skill_payload_policy.py` (line 86) †
- `ouroboros/tools/registry.py` → `ouroboros/contracts/task_constraint.py` (line 85) †
- `ouroboros/tools/registry_guard_process.py` → `ouroboros/contracts/skill_payload_policy.py` (line 15)
- **D05 → D01** (7 module edges)
- **D05 → D01** (8 module edges)
- `ouroboros/artifacts.py` → `ouroboros/outcome_receipt_store.py` (line 21)
- `ouroboros/tools/recent_tasks.py` → `ouroboros/outcomes.py` (line 11)
- `ouroboros/tools/shell.py` → `ouroboros/deadline_utils.py` (line 64) †
- `ouroboros/tools/shell.py` → `ouroboros/deadline_utils.py` (line 109)
- `ouroboros/tools/shell_process.py` → `ouroboros/deadline_utils.py` (line 25)
- `ouroboros/tools/verify.py` → `ouroboros/_outcome_receipts.py` (line 19)
- `ouroboros/tools/verify.py` → `ouroboros/outcome_receipt_store.py` (line 23)
- `ouroboros/tools/verify.py` → `ouroboros/outcomes.py` (line 24)
- `ouroboros/tools/vision.py` → `ouroboros/deadline_utils.py` (line 19)
- **D05 → D02** (1 module edges)
- `ouroboros/tools/search.py` → `ouroboros/pricing.py` (line 13)
- **D05 → D04** (23 module edges)
- **D05 → D04** (33 module edges)
- `ouroboros/python_interpreter.py` → `ouroboros/tool_access.py` (line 23)
- `ouroboros/tools/browser.py` → `ouroboros/tool_access.py` (line 26) †
- `ouroboros/tools/browser.py` → `ouroboros/tool_access.py` (line 26)
- `ouroboros/tools/browser.py` → `ouroboros/tools/registry.py` (line 27) †
- `ouroboros/tools/core.py` → `ouroboros/protected_artifacts.py` (line 19) †
- `ouroboros/tools/core.py` → `ouroboros/tool_access.py` (line 21) †
- `ouroboros/tools/core.py` → `ouroboros/protected_artifacts.py` (line 19)
- `ouroboros/tools/core.py` → `ouroboros/tool_access.py` (line 21)
- `ouroboros/tools/core.py` → `ouroboros/tools/registry.py` (line 20) †
- `ouroboros/tools/core_artifacts.py` → `ouroboros/tools/registry.py` (line 7) †
- `ouroboros/tools/core_file_tools.py` → `ouroboros/protected_artifacts.py` (line 20)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/tool_access.py` (line 21)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/tools/registry.py` (line 31) †
- `ouroboros/tools/edit_ops.py` → `ouroboros/tool_access.py` (line 64)
- `ouroboros/tools/edit_ops.py` → `ouroboros/tools/registry.py` (line 69) †
- `ouroboros/tools/health.py` → `ouroboros/tools/registry.py` (line 6) †
@ -250,65 +263,85 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/tools/search.py` → `ouroboros/tools/registry.py` (line 14) †
- `ouroboros/tools/services.py` → `ouroboros/tool_access.py` (line 24)
- `ouroboros/tools/services.py` → `ouroboros/tools/registry.py` (line 23) †
- `ouroboros/tools/shell.py` → `ouroboros/tool_access.py` (line 51) †
- `ouroboros/tools/shell.py` → `ouroboros/tool_access.py` (line 96)
- `ouroboros/tools/shell.py` → `ouroboros/tools/registry.py` (line 29) †
- `ouroboros/tools/shell_audit.py` → `ouroboros/tool_access.py` (line 17)
- `ouroboros/tools/shell_effects.py` → `ouroboros/tool_access.py` (line 29)
- `ouroboros/tools/shell_effects.py` → `ouroboros/tools/registry.py` (line 26) †
- `ouroboros/tools/shell_outputs.py` → `ouroboros/tool_access.py` (line 34)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/tools/registry.py` (line 26) †
- `ouroboros/tools/shell_process.py` → `ouroboros/tool_access.py` (line 24)
- `ouroboros/tools/shell_process.py` → `ouroboros/tools/registry.py` (line 23) †
- `ouroboros/tools/verify.py` → `ouroboros/tool_access.py` (line 27)
- `ouroboros/tools/verify.py` → `ouroboros/tools/registry.py` (line 33) †
- `ouroboros/tools/vision.py` → `ouroboros/tools/registry.py` (line 20) †
- **D05 → D10** (1 module edges)
- `ouroboros/tools/shell.py` → `ouroboros/tools/commit_gate.py` (line 27) †
- `ouroboros/tools/shell.py` → `ouroboros/tools/commit_gate.py` (line 27)
- **D05 → D11** (1 module edges)
- `ouroboros/tools/browser.py` → `ouroboros/server_auth.py` (line 25) †
- **D05 → D12** (5 module edges)
- `ouroboros/tools/browser.py` → `ouroboros/server_auth.py` (line 25)
- **D05 → D12** (6 module edges)
- `ouroboros/mcp_client.py` → `ouroboros/secret_masking.py` (line 26)
- `ouroboros/tools/browser.py` → `ouroboros/config.py` (line 24) †
- `ouroboros/tools/browser.py` → `ouroboros/config.py` (line 24)
- `ouroboros/tools/edit_ops.py` → `ouroboros/config.py` (line 55)
- `ouroboros/tools/shell.py` → `ouroboros/config.py` (line 23) †
- `ouroboros/tools/shell.py` → `ouroboros/config.py` (line 23)
- `ouroboros/tools/shell_process.py` → `ouroboros/config.py` (line 22)
- `ouroboros/tools/vision.py` → `ouroboros/config.py` (line 14)
- **D05 → D13** (9 module edges)
- **D05 → D13** (13 module edges)
- `ouroboros/python_interpreter.py` → `ouroboros/shell_parse.py` (line 22)
- `ouroboros/tools/edit_ops.py` → `ouroboros/runtime_mode_policy.py` (line 56)
- `ouroboros/tools/shell.py` → `ouroboros/runtime_mode_policy.py` (line 24) †
- `ouroboros/tools/shell.py` → `ouroboros/shell_parse.py` (line 28) †
- `ouroboros/tools/shell.py` → `ouroboros/tools/deliverables_shell.py` (line 34) †
- `ouroboros/tools/shell.py` → `ouroboros/runtime_mode_policy.py` (line 24)
- `ouroboros/tools/shell.py` → `ouroboros/shell_parse.py` (line 28)
- `ouroboros/tools/shell.py` → `ouroboros/tools/deliverables_shell.py` (line 34)
- `ouroboros/tools/shell_audit.py` → `ouroboros/shell_parse.py` (line 9)
- `ouroboros/tools/shell_audit.py` → `ouroboros/tools/deliverables_shell.py` (line 31)
- `ouroboros/tools/shell_audit.py` → `ouroboros/tools/shell_guards.py` (line 30)
- `ouroboros/tools/shell_effects.py` → `ouroboros/runtime_mode_policy.py` (line 23)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/runtime_mode_policy.py` (line 22)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/shell_parse.py` (line 25)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/tools/deliverables_shell.py` (line 29)
- `ouroboros/tools/verify.py` → `ouroboros/shell_parse.py` (line 26)
- **D05 → D15** (1 module edges)
- `ouroboros/tools/core.py` → `ouroboros/project_facts.py` (line 17,18) †
- **D05 → D15** (2 module edges)
- `ouroboros/tools/core.py` → `ouroboros/project_facts.py` (line 17,18)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/project_facts.py` (line 18,19)
- **D05 → D16** (4 module edges)
- `ouroboros/tools/search.py` → `ouroboros/usage_accounting.py` (line 15)
- `ouroboros/tools/services.py` → `ouroboros/observability.py` (line 16)
- `ouroboros/tools/vision.py` → `ouroboros/observability.py` (line 23)
- `ouroboros/tools/vision.py` → `ouroboros/usage_accounting.py` (line 21)
- **D05 → D17** (6 module edges)
- **D05 → D17** (8 module edges)
- `ouroboros/artifacts.py` → `ouroboros/headless.py` (line 20)
- `ouroboros/artifacts.py` → `ouroboros/task_results.py` (line 22)
- `ouroboros/tools/recent_tasks.py` → `ouroboros/task_status.py` (line 12)
- `ouroboros/tools/services.py` → `ouroboros/workspace_executor.py` (line 32,33,34,35)
- `ouroboros/tools/shell.py` → `ouroboros/workspace_executor.py` (line 65,66,67,68) †
- `ouroboros/tools/shell.py` → `ouroboros/workspace_executor.py` (line 110,111,112,113)
- `ouroboros/tools/shell_audit.py` → `ouroboros/workspace_executor.py` (line 32)
- **D05 → D18** (14 module edges)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/workspace_executor.py` (line 45,46,47)
- `ouroboros/tools/shell_process.py` → `ouroboros/workspace_executor.py` (line 26,27)
- **D05 → D18** (18 module edges)
- `ouroboros/artifacts.py` → `ouroboros/utils.py` (line 19)
- `ouroboros/code_intelligence.py` → `ouroboros/utils.py` (line 22)
- `ouroboros/python_interpreter.py` → `ouroboros/platform_layer.py` (line 21)
- `ouroboros/python_interpreter.py` → `ouroboros/utils.py` (line 28)
- `ouroboros/tools/core.py` → `ouroboros/utils.py` (line 32) †
- `ouroboros/tools/core.py` → `ouroboros/utils.py` (line 32)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/utils.py` (line 32)
- `ouroboros/tools/edit_ops.py` → `ouroboros/utils.py` (line 70)
- `ouroboros/tools/search.py` → `ouroboros/utils.py` (line 28)
- `ouroboros/tools/services.py` → `ouroboros/platform_layer.py` (line 17)
- `ouroboros/tools/services.py` → `ouroboros/utils.py` (line 31)
- `ouroboros/tools/shell.py` → `ouroboros/platform_layer.py` (line 22) †
- `ouroboros/tools/shell.py` → `ouroboros/utils.py` (line 63) †
- `ouroboros/tools/shell.py` → `ouroboros/platform_layer.py` (line 22)
- `ouroboros/tools/shell.py` → `ouroboros/utils.py` (line 108)
- `ouroboros/tools/shell_effects.py` → `ouroboros/utils.py` (line 32)
- `ouroboros/tools/shell_outputs.py` → `ouroboros/utils.py` (line 44)
- `ouroboros/tools/shell_process.py` → `ouroboros/platform_layer.py` (line 21)
- `ouroboros/tools/verify.py` → `ouroboros/platform_layer.py` (line 25)
- `ouroboros/tools/verify.py` → `ouroboros/utils.py` (line 34)
- `ouroboros/tools/vision.py` → `ouroboros/utils.py` (line 22)
- **D05 → D19** (3 module edges)
- **D05 → D19** (5 module edges)
- `ouroboros/python_interpreter.py` → `ouroboros/contracts/task_constraint.py` (line 17)
- `ouroboros/tools/core.py` → `ouroboros/contracts/skill_payload_policy.py` (line 34) †
- `ouroboros/tools/core.py` → `ouroboros/contracts/task_constraint.py` (line 33) †
- `ouroboros/tools/core.py` → `ouroboros/contracts/skill_payload_policy.py` (line 34)
- `ouroboros/tools/core.py` → `ouroboros/contracts/task_constraint.py` (line 33)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/contracts/skill_payload_policy.py` (line 12)
- `ouroboros/tools/core_file_tools.py` → `ouroboros/contracts/task_constraint.py` (line 17)
- **D06 → D01** (10 module edges)
- `ouroboros/review_custody.py` → `ouroboros/deadline_utils.py` (line 22)
- `ouroboros/review_cycles.py` → `ouroboros/outcomes.py` (line 65)
@ -325,7 +358,7 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/review_substrate.py` → `ouroboros/llm.py` (line 22) †
- `ouroboros/review_substrate.py` → `ouroboros/provider_models.py` (line 24) †
- `ouroboros/reviewer_slot_config.py` → `ouroboros/route_spec.py` (line 57)
- `ouroboros/tools/plan_review_runtime.py` → `ouroboros/llm.py` (line 24) †
- `ouroboros/tools/plan_review_runtime.py` → `ouroboros/llm.py` (line 24)
- `ouroboros/tools/review.py` → `ouroboros/llm.py` (line 10) †
- `ouroboros/tools/scope_review.py` → `ouroboros/llm.py` (line 21) †
- **D06 → D03** (1 module edges)
@ -725,7 +758,7 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- **D13 → D01** (1 module edges)
- `ouroboros/safety.py` → `ouroboros/loop_llm_call.py` (line 22)
- **D13 → D02** (2 module edges)
- `ouroboros/safety.py` → `ouroboros/llm.py` (line 21) †
- `ouroboros/safety.py` → `ouroboros/llm.py` (line 21)
- `ouroboros/safety.py` → `ouroboros/pricing.py` (line 23)
- **D13 → D04** (2 module edges)
- `ouroboros/tools/deliverables_shell.py` → `ouroboros/tool_access.py` (line 10)
@ -744,7 +777,7 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/extension_loader.py` → `ouroboros/provider_models.py` (line 52) †
- `ouroboros/extension_process_runner.py` → `ouroboros/provider_models.py` (line 30)
- `ouroboros/tools/skill_exec.py` → `ouroboros/provider_models.py` (line 18)
- `ouroboros/tools/skill_publish.py` → `ouroboros/llm.py` (line 24) †
- `ouroboros/tools/skill_publish.py` → `ouroboros/llm.py` (line 24)
- **D14 → D04** (12 module edges)
- `ouroboros/extension_process_runner.py` → `ouroboros/tools/registry.py` (line 33) †
- `ouroboros/skill_owner_attestation.py` → `ouroboros/tool_access.py` (line 31)
@ -759,9 +792,9 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/tools/skill_publish.py` → `ouroboros/tool_access.py` (line 54)
- `ouroboros/tools/skill_publish.py` → `ouroboros/tools/registry.py` (line 61) †
- **D14 → D05** (3 module edges)
- `ouroboros/extension_process_runner.py` → `ouroboros/tools/shell.py` (line 34) †
- `ouroboros/tools/skill_exec.py` → `ouroboros/tools/shell.py` (line 39) †
- `ouroboros/tools/skill_preflight.py` → `ouroboros/tools/shell.py` (line 25) †
- `ouroboros/extension_process_runner.py` → `ouroboros/tools/shell.py` (line 34)
- `ouroboros/tools/skill_exec.py` → `ouroboros/tools/shell.py` (line 39)
- `ouroboros/tools/skill_preflight.py` → `ouroboros/tools/shell.py` (line 25)
- **D14 → D06** (5 module edges)
- `ouroboros/skill_review.py` → `ouroboros/reviewer_slot_config.py` (line 17) †
- `ouroboros/skill_review.py` → `ouroboros/tools/review_helpers.py` (line 46) †
@ -836,7 +869,7 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
- `ouroboros/evolution_checkpoints.py` → `ouroboros/outcomes.py` (line 10)
- `supervisor/evolution_lifecycle.py` → `ouroboros/outcomes.py` (line 19)
- **D15 → D02** (2 module edges)
- `ouroboros/consciousness.py` → `ouroboros/llm.py` (line 36) †
- `ouroboros/consciousness.py` → `ouroboros/llm.py` (line 36)
- `ouroboros/consciousness.py` → `ouroboros/pricing.py` (line 40)
- **D15 → D03** (3 module edges)
- `ouroboros/consciousness.py` → `ouroboros/context.py` (line 22)
@ -967,10 +1000,10 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
| D01 | D19 | 4 | yes |
| D01 | D20 | 1 | yes |
| D02 | D01 | 3 | yes |
| D02 | D03 | 1 | yes |
| D02 | D12 | 2 | yes |
| D02 | D16 | 5 | yes |
| D02 | D18 | 7 | yes |
| D02 | D03 | 3 | yes |
| D02 | D12 | 3 | yes |
| D02 | D16 | 9 | yes |
| D02 | D18 | 8 | yes |
| D03 | D01 | 1 | yes |
| D03 | D02 | 1 | yes |
| D03 | D04 | 1 | yes |
@ -983,18 +1016,18 @@ ledger-derived leaves are transplanted (Ф1 recipe, plan §5.3).
| D04 | D17 | 2 | yes |
| D04 | D18 | 2 | yes |
| D04 | D19 | 4 | yes |
| D05 | D01 | 7 | yes |
| D05 | D01 | 8 | yes |
| D05 | D02 | 1 | yes |
| D05 | D04 | 23 | yes |
| D05 | D04 | 33 | yes |
| D05 | D10 | 1 | yes |
| D05 | D11 | 1 | yes |
| D05 | D12 | 5 | yes |
| D05 | D13 | 9 | yes |
| D05 | D15 | 1 | yes |
| D05 | D12 | 6 | yes |
| D05 | D13 | 13 | yes |
| D05 | D15 | 2 | yes |
| D05 | D16 | 4 | yes |
| D05 | D17 | 6 | yes |
| D05 | D18 | 14 | yes |
| D05 | D19 | 3 | yes |
| D05 | D17 | 8 | yes |
| D05 | D18 | 18 | yes |
| D05 | D19 | 5 | yes |
| D06 | D01 | 10 | yes |
| D06 | D02 | 7 | yes |
| D06 | D03 | 1 | yes |
@ -1121,10 +1154,10 @@ Rows import columns (module-edge counts, strict graph).
| ↓ imports → | D01 | D02 | D03 | D04 | D05 | D06 | D07 | D08 | D09 | D10 | D11 | D12 | D13 | D14 | D15 | D16 | D17 | D18 | D19 | D20 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| **D01** | · | 9 | 5 | 7 | 1 | 3 | 9 | · | 1 | · | · | 6 | 1 | 1 | 2 | 11 | 10 | 16 | 4 | 1 |
| **D02** | 3 | · | 1 | · | · | · | · | · | · | · | · | 2 | · | · | · | 5 | · | 7 | · | · |
| **D02** | 3 | · | 3 | · | · | · | · | · | · | · | · | 3 | · | · | · | 9 | · | 8 | · | · |
| **D03** | 1 | 1 | · | 1 | · | · | · | · | · | · | · | 1 | · | · | 1 | · | · | 5 | 1 | · |
| **D04** | · | · | · | · | 3 | · | · | · | · | · | · | · | 8 | · | · | · | 2 | 2 | 4 | · |
| **D05** | 7 | 1 | · | 23 | · | · | · | · | · | 1 | 1 | 5 | 9 | · | 1 | 4 | 6 | 14 | 3 | · |
| **D05** | 8 | 1 | · | 33 | · | · | · | · | · | 1 | 1 | 6 | 13 | · | 2 | 4 | 8 | 18 | 5 | · |
| **D06** | 10 | 7 | 1 | 8 | · | · | · | · | · | 1 | · | 11 | 1 | 1 | · | 10 | 3 | 23 | 1 | · |
| **D07** | 1 | 2 | · | 13 | 1 | 1 | · | · | · | · | · | 8 | 1 | · | · | 1 | 6 | 17 | 3 | · |
| **D08** | 7 | · | · | 5 | 1 | 1 | 11 | · | 3 | · | · | 5 | · | 2 | 1 | 1 | 6 | 10 | 5 | · |
@ -1143,7 +1176,7 @@ Rows import columns (module-edge counts, strict graph).
## Lazy imports (function-level) — excluded from the strict graph
1515 module edges, 229 cross-domain pairs.
1524 module edges, 229 cross-domain pairs.
| from | to | module edges | pair also strict? |
|---|---|---:|:---:|
@ -1166,7 +1199,7 @@ Rows import columns (module-edge counts, strict graph).
| D01 | D19 | 2 | yes |
| D02 | D03 | 3 | yes |
| D02 | D09 | 1 | **lazy-only** |
| D02 | D12 | 12 | yes |
| D02 | D12 | 13 | yes |
| D02 | D16 | 6 | yes |
| D02 | D18 | 3 | yes |
| D03 | D01 | 2 | yes |
@ -1448,9 +1481,9 @@ Cross-domain pairs reachable ONLY through lazy imports (hidden coupling):
- `ouroboros/tools/registry.py` → `ouroboros/presence_authority.py`
- **D05 → D06**:
- `ouroboros/tools/health.py` → `ouroboros/review.py`
- `ouroboros/tools/shell.py` → `ouroboros/review_state.py`
- `ouroboros/tools/shell_effects.py` → `ouroboros/review_state.py`
- **D05 → D07**:
- `ouroboros/tools/core.py` → `ouroboros/tools/delegate.py`
- `ouroboros/tools/core_file_tools.py` → `ouroboros/tools/delegate.py`
- `ouroboros/tools/verify.py` → `ouroboros/delegate_custody.py`
- `ouroboros/tools/verify.py` → `ouroboros/delegate_recovery.py`
- `ouroboros/tools/verify.py` → `ouroboros/subagent_bootstrap.py`

View file

@ -170,6 +170,16 @@ D20 = "Presence (PROPOSED new domain, owner decision pending; alternative: fold
"ouroboros/launcher_onboarding.py" = "D12"
"ouroboros/launcher_server_reaper.py" = "D18"
"ouroboros/llm.py" = "D02"
"ouroboros/llm_anthropic.py" = "D02"
"ouroboros/llm_attempt.py" = "D02"
"ouroboros/llm_capability_policy.py" = "D02"
"ouroboros/llm_fallback.py" = "D02"
"ouroboros/llm_gigachat.py" = "D02"
"ouroboros/llm_local.py" = "D02"
"ouroboros/llm_messages.py" = "D02"
"ouroboros/llm_openai_compatible.py" = "D02"
"ouroboros/llm_pricing.py" = "D02"
"ouroboros/llm_routing.py" = "D02"
"ouroboros/llm_observability.py" = "D02"
"ouroboros/llm_probe.py" = "D02"
"ouroboros/local_model.py" = "D02"
@ -529,7 +539,6 @@ proposed = [
"ouroboros/agent_task_pipeline.py" = ["D01"]
"ouroboros/delegate_custody.py" = ["D07"]
"ouroboros/extension_loader.py" = ["D14"]
"ouroboros/llm.py" = ["D02"]
"ouroboros/loop.py" = ["D01"]
"ouroboros/loop_tool_execution.py" = ["D01", "D04"]
"ouroboros/review_evidence.py" = ["D06"]
@ -563,7 +572,6 @@ proposed = [
"ouroboros/agent_task_pipeline.py" = ["ouroboros/post_task_synthesis.py"]
"ouroboros/delegate_custody.py" = ["ouroboros/delegate_custody_reconcile.py"]
"ouroboros/extension_loader.py" = ["ouroboros/extension_child_catalog.py", "ouroboros/extension_import_staging.py", "ouroboros/extension_liveness.py", "ouroboros/extension_plugin_api.py", "ouroboros/extension_registry_state.py", "ouroboros/extension_surface_names.py"]
"ouroboros/llm.py" = ["ouroboros/llm_anthropic.py", "ouroboros/llm_attempt.py", "ouroboros/llm_capability_policy.py", "ouroboros/llm_fallback.py", "ouroboros/llm_gigachat.py", "ouroboros/llm_local.py", "ouroboros/llm_messages.py", "ouroboros/llm_openai_compatible.py", "ouroboros/llm_pricing.py", "ouroboros/llm_routing.py"]
"ouroboros/loop.py" = ["ouroboros/loop_acceptance.py", "ouroboros/loop_acceptance_review.py", "ouroboros/loop_budget.py", "ouroboros/loop_delivery.py", "ouroboros/loop_forced_finalization.py", "ouroboros/loop_messages.py", "ouroboros/loop_model_call.py", "ouroboros/loop_nudges.py", "ouroboros/loop_round_limits.py"]
"ouroboros/loop_tool_execution.py" = ["ouroboros/tools/tool_result.py"]
"ouroboros/review_evidence.py" = ["ouroboros/review_evidence_sections.py"]