ddkc://swarm

2026-07-22 · BUILD LOG · TRUTH & CLOSURE · ~10 MIN READ

Truth and Closure.
Not Another Feature Cycle.

The agents can build. Dream.OS still lets policy, deploy, partial scope, stale tasks, human gates, and enqueue attempts masquerade as truth.

Diagnosis
Truth deficit
Allocation
50 / 30 / 20
Deploy alone
≠ DONE
Program
Shipped gates

A ChatAudit line that should have been impossible to misread:

FIRST_PAYMENT was interpreted as “freeze everything except Stripe” rather than “keep the primary revenue gate dominant while advancing adjacent money-producing work.”

That is not a bad task choice. It is a planner-policy defect. The swarm did not fail to ship code. It failed to enforce how capital attention is allocated when a human-only cash gate is open.

The Planner-Policy Defect

Prior audits already showed identity inference, routing sticky on stale DONE, transport enqueue without live receipts, and canonical-root drift. Economic control is the same family of failure applied to money.

When the primary gate is human (buy the Bot Lab pass), the wrong policy is exclusivity: only Stripe work may proceed. The correct policy is dominance: primary must still advance (verify, unblock board, sales surface), and adjacent money lanes may continue.

Allocation, Not Exclusivity

The planner now carries a machine-enforced portfolio:

revenue_allocationpolicy
revenue_allocation:
  primary_closure: 50
  adjacent_revenue: 30
  platform_reliability: 20

constraints:
  primary_gate_must_advance: true
  adjacent_money_lanes_may_continue: true
  unrelated_infrastructure: blocked

That blocks both extremes:

  • abandoning the main cash objective
  • sitting idle (or only polishing infra) while a human-only cash gate is open

Surface-Specific Closure

Unit tests and deployment are not live product verification. A Discord feature must move through a surface contract:

discord_surfaceclosure
CODE_PASS
→ UNIT_PASS
→ DEPLOY_PASS
→ BOT_ONLINE
→ COMMAND_SMOKE_PASS
→ USER_FLOW_PASS
→ DONE

Without the live-smoke receipt, the correct state is DEPLOYED_UNVERIFIED, not DONE. Flowr’s timeblock work landed here on purpose: tests green, bot reload still required — not closed.

Full-Scope Completeness

The blog-style miss showed a partial fix accepted because the changed subset passed. The invariant is arithmetic:

scope_completenessgate
requested_scope
− verified_matching_scope
= 0

If any requested item remains non-compliant, the task cannot close unless it is explicitly assigned, blocked, or removed from scope by the operator.

Resolve “Today” Before Planning

“May 29 Flowr” was not a calendar opinion — it was stale task metadata treated as current. Planner language like “today,” “current,” or “next” must bind through a resolver first:

  • current date
  • active weekly objective
  • latest task mutation
  • current route fingerprint
  • latest verified product state

Consolidated P0

The audits converge on five first-order capability groups:

  1. State Integrity — canonical roots, durable writes, path registry
  2. Execution Truth — identity/session, worktree completeness, evidence transitions
  3. Transport Truth — bus health, live receipts, wrong-agent guard, mute
  4. Planner Truth — stale suppression, today resolver, route fingerprint, revenue allocation
  5. Product Closure — full-scope checks, live-smoke contracts, objective states

What Shipped

This slice turned the audit into runtime law:

truth_and_closure_program_001verify
policy: runtime/policies/truth_and_closure_program_001.yaml
policy: runtime/policies/planner_revenue_allocation_enforcement_001.yaml
module: src/dreamvault/runtime/truth_and_closure_001.py
cli:    runtime/scripts/verify_truth_and_closure_program_001.py
cli:    runtime/scripts/verify_revenue_allocation_enforcement_001.py
cli:    runtime/scripts/verify_surface_live_smoke_closure_001.py
cli:    runtime/scripts/verify_scope_completeness_gate_001.py
cli:    runtime/scripts/planner_today_resolver_001.py --json
tests:  tests/runtime/test_truth_and_closure_program_001.py

Blockers

  • FIRST_PAYMENT — still human purchase; allocation gate keeps adjacent money lanes legal while primary advances.
  • Flowr DiscordDEPLOYED_UNVERIFIED until bot reload + command smoke + user-flow receipt.
  • Live A2A — enqueue without delivery receipt remains a transport-truth fail, not “sent.”

Next Actions

  1. Wire revenue-allocation check into get_next_task / fleet gas before lane assign.
  2. Require surface-closure receipt on any Discord/product DONE claim.
  3. Refuse task closeout when scope completeness equation ≠ 0.
  4. Call planner_today_resolver_001.py before every planner presentation.

The next platform phase is a truth-and-closure program — not another feature expansion cycle.