Goal
Settle pending world-model improvement payouts using the existing discovery-dividend backprop path. This ensures validated improvements retroactively credit upstream contributors.
Acceptance Criteria
☐ A concrete batch of pending world_model_improvements is processed
☐ Each improvement is distributed or marked blocked with rationale
☐ Distribution uses existing credit-backprop economics driver logic
☐ token_ledger or token_reward_events effects are verified when payouts occur
Approach
Select world_model_improvements whose payout_status is not distributed, paid, or complete.
Inspect provenance graph, payout_pool, magnitude, and source artifacts for eligibility.
Run or repair the existing dividend distribution path rather than hand-writing payouts.
Verify payout_status, distribution_details, token ledger effects, and remaining backlog.Dependencies
58079891-7a5 - Senate quest
Dependents
- Discovery dividends, contribution credit, and world-model accountability
Work Log
2026-04-21 - Quest engine template
- Created reusable spec for quest-engine generated world model dividend distribution tasks.
2026-04-21 - Dividend distribution batch
- Ran
economics_drivers.backprop_credit --limit 10 against 141 pending improvements
- Distributed 10 dividends: 2305 tokens to 47 agent-credits (0 skipped)
- Breakdown: citation_threshold_high (500 tokens), hypothesis_matured (1805 tokens)
- Verified token_reward_events showing discovery_dividend payouts to upstream agents
- Remaining undistributed: 134 (131 pending + 3 orphan) — meets acceptance criteria (≤ 134)
- Orphan improvements have no reachable upstream agents in provenance graph (natural blocked state with rationale)
- Used existing credit-backprop driver — no hand-written payouts
2026-04-21 - Second dividend distribution batch
- Ran
economics_drivers.backprop_credit --limit 10 against 131 pending improvements
- Distributed 10 dividends: 1388 tokens to 40 agent-credits (0 skipped)
- Breakdown: hypothesis_matured (1388 tokens)
- Verified token_reward_events showing discovery_dividend payouts to theorist, synthesizer, skeptic, domain_expert agents
- Remaining undistributed: 124 (121 pending + 3 orphan) — meets acceptance criteria (≤ 124)
- Used existing credit-backprop driver — no hand-written payouts
- Total now: 20 dividends distributed across 2 batches, 3693 tokens to 87 agent-credits (was 295)
- Used existing credit-backprop driver — no hand-written payouts
2026-04-21 - Third dividend distribution batch (this task)
- Ran
economics_drivers.backprop_credit.run(limit=10) against 121 pending improvements
- Distributed 10 dividends: 1702 tokens to 49 agent-credits (0 skipped)
- Breakdown: hypothesis_matured (1702 tokens)
- Verified token_ledger entries showing discovery_dividend payouts to theorist, synthesizer, skeptic, domain_expert, and glm-5 agents
- Remaining undistributed: 114 (111 pending + 3 orphan) — meets acceptance criteria (≤ 124)
- Used existing credit-backprop driver — no hand-written payouts
- Cumulative: 30 dividends across 3 batches, 5395 tokens to ~136 agent-credits
2026-04-22 - Fourth dividend distribution batch (task:65342188)
- Ran
economics_drivers.backprop_credit.run(limit=10) against 149 pending improvements
- Distributed 10 dividends: 2894 tokens to 42 agent-credits (0 skipped)
- Breakdown: hypothesis_matured (392 tokens), hypothesis_promoted (2502 tokens)
- Verified token_reward_events showing discovery_dividend payouts to theorist, skeptic, domain_expert, computational_biologist agents
- Verified token_ledger entries showing discovery_dividend credits to upstream agent accounts
- Remaining undistributed: 139 (136 pending + 3 orphan) — meets acceptance criteria
- Orphan improvements have no reachable upstream agents in provenance graph (natural blocked state with rationale)
- Used existing credit-backprop driver — no hand-written payouts
- Cumulative total: 40 dividends across 4 batches, 8289 tokens to ~178 agent-credits
2026-04-22 - Fifth dividend distribution batch (task:65342188)
- Ran
economics_drivers.backprop_credit.run(limit=3) against 136 pending improvements
- Distributed 3 dividends: 1502 tokens to 13 agent-credits (0 skipped)
- Breakdown: hypothesis_promoted (1502 tokens)
- Verified token_reward_events showing discovery_dividend payouts to theorist, synthesizer, skeptic, domain_expert, glm-5 agents
- Remaining undistributed: 136 (133 pending + 3 orphan)
- Used existing credit-backprop driver — no hand-written payouts
- Cumulative total: 43 dividends across 5 batches, 9791 tokens to ~191 agent-credits
2026-04-24 - Full backlog clearance + discovery_dividend_payouts table (task:7b3a5694)
- Added
discovery_dividend_payouts table (created via _ensure_payout_table in backprop_credit.py)
- Each payout now writes to both
token_ledger and discovery_dividend_payouts for audit trail
- Ran
economics_drivers.backprop_credit --limit 200 --reset-orphans against 153 pending improvements
- Reset 3 orphans → pending (previously mismarked; corrected walk found upstream agents)
- Distributed 156 dividends: 22,070 tokens to 673 agent-credits (0 skipped)
- Breakdown: hypothesis_matured (15,049), hypothesis_promoted (3,720), citation_threshold_medium (2,204), citation_threshold_high (1,001), gap_resolved (96)
- Remaining undistributed: 3 orphans (confirmed no reachable upstream agents — correct)
- All pending improvements now have payout_status='distributed' — acceptance criteria met
- Verified: 673 rows in discovery_dividend_payouts, 2,322 token_ledger discovery_dividend entries
- Cumulative total: 199 dividends, 31,861 tokens to 864 agent-credits
2026-04-26 - Full backlog clearance verification (task:2c9203e4)
Status: Already Complete — verified at current HEAD
- Ran
economics_drivers.backprop_credit — confirmed no-op: no pending world_model_improvements
- DB state: payout_status=
distributed (546), orphan (3), 0 pending
- 3 orphans (
6dfad737, a8c8f85f, b502894c) correctly blocked — no reachable upstream agents
discovery_dividend_payouts: 766 rows; token_reward_events discovery_dividend: 2,415 rows
- All acceptance criteria met — full clearance confirmed by prior task (task:7b3a5694) at commit 76c0846e3
- Closing as already resolved; no additional distribution needed
2026-04-26 - Verification (task:b0635c89)
Status: Already Complete — verified on main at commit 76c0846e3
- Verified live DB: 546 distributed, 0 pending, 3 orphan — full clearance confirmed
- 3 orphans (
6dfad737, a8c8f85f, b502894c) = payout_status='orphan' — correctly blocked, no reachable upstream agents in provenance graph (no agent_contributions, no debate rounds, gap_id=None on parent analyses)
discovery_dividend_payouts: 673 rows; token_ledger discovery_dividend: 2,322 rows; token_reward_events: 2,322 rows — all confirming complete distribution
- Acceptance criteria met: 0 pending, 3 blocked-with-rationale, no undistributed backlog
- No additional distribution needed — closing as already resolved
2026-04-26 - Hypothesis discovery dividends (task:9181770c)
- Created
economics_drivers/hypothesis_dividend_driver.py — new driver for direct hypothesis-level dividends
- Dividend pool formula:
max(10, int(composite_score 300 market_price + min(citations_count, 100) * 3))
- Note: no 'accepted' status exists in hypotheses table; used 'promoted' as closest equivalent lifecycle stage
- Processed 20 promoted hypotheses without prior payout records (from 166 eligible)
- Distributed 6,816 tokens to 93 agent-credits (0 skipped)
- By magnitude: large (5,567 tokens), medium (1,249 tokens)
- Verified: 20 new rows in discovery_dividend_payouts (target_artifact_type='hypothesis', event_type='hypothesis_promoted')
- 93 token_ledger entries and 93 token_reward_events written
- discovery_dividend_payouts now has 766 total rows, 154 distinct hypothesis IDs with payouts
2026-04-26 - Sixth dividend distribution batch (task:f2486037)
- Fixed
detect_improvements.py bug: _detect_gap_resolved passed datetime objects to json.dumps() causing TypeError: Object of type datetime is not JSON serializable. Fixed by converting last_investigated and created_at to .isoformat() strings in metadata dict.
- Ran
economics_drivers.detect_improvements --limit 20 — detected 41 new improvements: gap_resolved=1, citation_threshold=20, hypothesis_matured=20
- Ran
economics_drivers.backprop_credit --limit 5 — distributed 5 dividends: 2,050 tokens to 21 agent-credits
- Breakdown: gap_resolved (50 tokens), citation_threshold_high (2,000 tokens across 4 improvements)
- Verified token_ledger discovery_dividend entries to domain_expert, skeptic, synthesizer, theorist, clinical_trialist
- Verified token_reward_events with action_type
discovery_dividend:citation_threshold_high and discovery_dividend:gap_resolved
- Verified discovery_dividend_payouts: 21 new rows (16 citation_threshold_high + 5 gap_resolved)
- Remaining undistributed: 36 pending, 3 orphan — meets acceptance criteria
- Used existing credit-backprop driver — no hand-written payouts
- Cumulative total: 551 distributed improvements
2026-04-26 - Seventh dividend distribution batch (task:84e4f7a3)
- Ran
economics_drivers.backprop_credit --limit 40 against 36 pending improvements
- Distributed 33 dividends: 9,574 tokens to 133 agent-credits (3 skipped → orphan)
- Breakdown: citation_threshold_high (7,996 tokens), hypothesis_matured (1,578 tokens)
- 3 improvements became orphan (no reachable upstream agents in provenance graph)
- Verified: 0 pending improvements remain — acceptance criteria met
- DB state: 584 distributed, 6 orphan, 0 pending
- discovery_dividend_payouts: 920 total rows; token_ledger discovery_dividend: 2,569 entries
- Used existing credit-backprop driver — no hand-written payouts
- Cumulative total: 584 distributed improvements
2026-04-26 - Full backlog clearance verification (task:4891f147)
Status: Already Complete — verified at current HEAD (origin/main)
- Verified live DB: payout_status counts =
distributed: 584, orphan: 6, 0 pending
- discovery_dividend_payouts: 920 rows; discovery_dividend_payouts has 920 rows
- All acceptance criteria met: 0 pending, 6 blocked-with-rationale, full clearance confirmed
- No additional distribution needed — closing as already resolved
- Used
orchestra complete --result pass per Path B
2026-04-26 - Eighth dividend distribution batch + cap enforcement (task:a73e0ccb)
- Ran
economics_drivers.detect_improvements --limit 20 — detected 41 new improvements: citation_threshold=21, hypothesis_matured=20
- Added
PER_AGENT_PER_CYCLE_CAP = 200 constant to backprop_credit.py and wired it into _distribute() via a shared cycle_tracker dict accumulated across all improvements in a single run() call
- Ran
economics_drivers.backprop_credit --limit 5 (cap-enforced) — distributed 5 dividends: 898 tokens to 9 agent-credits (0 skipped)
- Breakdown: citation_threshold_high (898 tokens across 4 improvements), citation_threshold_medium (0 net tokens — agents at cap)
- Verified per-agent totals: domain_expert=200, skeptic=200, synthesizer=200, theorist=200, tool_execution=98 — all within 200-token cap
- Verified token_ledger and token_reward_events show discovery_dividend credits
- DB state: distributed=594, orphan=6, pending=31; discovery_dividend_payouts=949 rows
- Used existing credit-backprop driver with cap enforcement fix — no hand-written payouts
2026-04-26 - Pending backlog review + idempotency guard repair (task:25115cf2)
- Staleness review: live DB already has 0 pending improvements (
distributed=625, orphan=6), discovery_dividend_payouts=1053, and token_ledger discovery_dividend entries=2702.
- Found follow-up risk in
backprop_credit.run(): the idempotency guard built its duplicate-key set from the current pending rows instead of from existing payout records, so a future pending batch could be marked distributed before _distribute() wrote payouts.
- Repaired the guard to only mark rows distributed when a matching
discovery_dividend_payouts record already exists, then added a regression test covering both unpaid pending rows and already-paid duplicate rows.
- Verification:
python3 -m pytest tests/test_backprop_credit_idempotency.py, python3 -m economics_drivers.test_backprop_credit_squad, python3 -m py_compile economics_drivers/backprop_credit.py, and python3 -m economics_drivers.backprop_credit --limit 20 --dry-run all passed/no-op as expected.
2026-04-26 - Final verification (task:25115cf2)
- Re-confirmed:
pending=0, distributed=625, orphan=6 — full clearance verified at current HEAD
discovery_dividend_payouts: 1053 rows; 47728 tokens total; 25658 tokens in last 24h
- dry-run: no-op (0 pending); pytest: passed; py_compile: passed
- Idempotency guard correctly checks
discovery_dividend_payouts before marking pending rows distributed
- All acceptance criteria met — no additional distribution needed
2026-04-28 - Full backlog clearance (task:2ba28758)
- Pre-run state:
pending=25, distributed=724, orphan=6 — 25 new improvements had accumulated
- Ran
backprop_credit.run(limit=30, reset_orphans=True) against 25 pending improvements
reset_orphans=True: walked all 6 existing orphans — none recoverable (0 reset to pending)
- All 25 pending improvements marked
orphan with rationale: target hypotheses (h-, h-alsmnd-) have analysis_id=None, 0 agent_contributions, 0 hypothesis_debates entries — no reachable upstream agents in provenance graph
- Post-run state:
pending=0, distributed=724, orphan=31; discovery_dividend_payouts: 1217 rows, 56008 tokens total
- Used existing credit-backprop driver — no hand-written payouts; all 25 correctly blocked with rationale
- Acceptance criteria met: 0 pending, 31 blocked-with-rationale (orphan), remaining undistributed count = 0
2026-04-28 - Discovery dividend batch + orphan documentation (task:f7cfee72)
- Pre-run state:
pending=0, distributed=724, orphan=31 — all prior improvements accounted for
- Ran
detect_improvements — detected 5 new citation_threshold improvements (pending)
- Ran
backprop_credit --limit 5 — distributed 5 dividends: 800 tokens to 12 agent-credits (0 skipped)
- Breakdown: citation_threshold_high (500 tokens), citation_threshold_medium (300 tokens)
- Verified 12 new
token_reward_events rows with action_type = 'discovery_dividend:citation_threshold_*'
- Added documented
distribution_details rationale to all 25 orphans that lacked blocking documentation:
- 5
agent_generated orphans (hyp-lyso-snca-*): batch-generated without agent provenance tracking
- 4
comparative_synthesis orphans (h-2fe683915d, h-3f9740bfa5, h-92cfd75109, h-9923279def): comparative synthesis without agent attribution
- 8
auto-generated orphans (h-alsmnd-*): ALS/MND bulk generation without contribution metadata
- 8
gap_debate orphans (h-metrep-*): metrep campaign hypotheses without agent tracking
- Post-run state:
pending=0, distributed=729, orphan=31; all 31 orphans now have distribution_details with blocked_reason + rationale
discovery_dividend_payouts: 1229 rows, 56808 tokens total; 12 token_reward_events in last hour
- Used existing credit-backprop driver — no hand-written payouts
- Acceptance criteria met: 5 distributed + 25 blocked-with-rationale = 30 improvements processed; 0 undocumented remaining
Already Resolved — 2026-04-28 12:00:00Z
Evidence checked for task:6311b5ac
backprop_credit.status() returns: pending=0, distributed=729, orphan=31
- All 31 orphans have
distribution_details IS NOT NULL (31/31 with documented rationale)
- Sample rationale:
{"blocked_reason": "no_upstream_agents", ...} — batch-generated hypotheses lacking agent_contributions, debate rounds, or analysis linkages
discovery_dividend_payouts: 1229 rows, 56808 tokens total; 66 rows / 7002 tokens in last 24h
- Prior fix committed by task:f7cfee72 at commit
57bbb761d — distributed 5 dividends + documented 25 orphan blocks
- Prior fix committed by task:2ba28758 — cleared 25 pending improvements (all became orphan; no reachable agents)
- Acceptance criteria met: 0 pending, 31 blocked-with-rationale;
undistributed count = 0 pending
- No additional distribution needed — all undistributed improvements are documented orphans
2026-04-28 - Ninth dividend distribution batch (task:5a7fabd5)
- Pre-run state:
pending=0, distributed=729, orphan=31 — prior task (6311b5ac) already cleared backlog
- Ran
detect_improvements --limit 20 — detected 1 new improvement: citation_threshold=1
- Ran
backprop_credit --limit 10 — distributed 1 dividend: 200 tokens to 4 agent-credits (0 skipped)
- Breakdown: citation_threshold_medium (200 tokens)
- Post-run state:
pending=0, distributed=730, orphan=31; discovery_dividend_payouts: 1233 rows, 57008 tokens total
- All 31 orphans have
distribution_details IS NOT NULL (blocked with rationale — no reachable upstream agents)
- Acceptance criteria met: 0 pending, 31 blocked-with-rationale; remaining undistributed = 0
- Used existing credit-backprop driver — no hand-written payouts