Skip to content

feat(dashboard): per-agent decompose-to-action ratio + prs_merged/rows_filed in metrics.json (Aaron 2026-05-26 per-agent health visibility)#5115

Merged
AceHack merged 1 commit into
mainfrom
otto-cli/dashboard-per-agent-decompose-to-action-metrics-2026-05-26
May 26, 2026
Merged

feat(dashboard): per-agent decompose-to-action ratio + prs_merged/rows_filed in metrics.json (Aaron 2026-05-26 per-agent health visibility)#5115
AceHack merged 1 commit into
mainfrom
otto-cli/dashboard-per-agent-decompose-to-action-metrics-2026-05-26

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 26, 2026

Aaron 2026-05-26: per-agent decompose-to-action visibility for the plant-metrics dashboard. New per-agent fields in demo/metrics.json: prs_merged_24h, rows_filed_24h, decompose_to_action_ratio. EMPIRICAL: Otto ratio = 0.9 (filing ~as fast as shipping; confirms Aaron's debt concern). Composes with B-0797. Dashboard HTML render = follow-on.

… + rows_filed_24h (Aaron 2026-05-26 — "per agent so we can see helath like per trajectory")

Aaron 2026-05-26 substrate-engineering concern:

> 'we need to make sure that decopose is happening an on going
> backlog log or else infinate backlog is just infnate debt'

> 'the decompose to action is what i want background to show
> with stats over time on the github page we have for plant
> metrics that and also prs, i want that per agent so we can
> see helath like per trajectory'

Extends tools/dashboard/generate-metrics.ts to surface per-agent
PR-shipping rate + decompose-to-action ratio in demo/metrics.json
(consumed by the Zeta Factory Dashboard at
lucent-financial-group.github.io/Zeta/demo/index.html).

Three new per-agent fields:

  prs_merged_24h           — PRs this agent merged in 24h window
  rows_filed_24h           — PRs whose title matches `backlog(B-NNNN`
                             (row-filing-only PRs, NOT action-on-rows)
  decompose_to_action_ratio — (prs_merged - rows_filed) / max(rows_filed, 1)
                             → impl-PRs per row-filing-PR
                             → >=1 = strong action-on-rows discipline
                             → <1  = filing rows faster than shipping
                                     them = debt-accumulation signal

Attribution via branch-prefix lookup (BRANCH_PREFIX_TO_AGENT) per
.claude/rules/agent-roster-reference-card.md lane discipline:
otto-cli/ + otto-desktop/ + otto-vscode/ + otto/ → Otto;
alexa-kiro/ + alexa/ → Alexa; riven-cursor/ + riven/ → Riven;
vera-codex/ + vera/ → Vera; lior-antigravity/ + lior-gemini/ +
lior/ → Lior. PRs from non-prefixed branches attribute to 'Unknown'
bucket (operator-auditable as missing-attribution surface).

EMPIRICAL validation 2026-05-26 (live run):

  Otto:  57 PRs / 30 row-filing → ratio = 0.9 (nearly 1:1; debt signal!)
  Lior:   6 PRs / 0 row-filing  → ratio = 6   (all action)
  Others: 0/0/0 (quiet 24h window)

Otto ratio 0.9 EMPIRICALLY VALIDATES Aaron's concern — this
session filed 6 substantive rows (B-0791..B-0794, B-0796, B-0797)
+ shipped 4 implementation PRs (#5103 iter-5.1+5.2, #5107 iter-5.2.1,
#5113 iter-5.2.2, #5110 draft) — ratio < 1. The metric now exposes
the pattern continuously.

Dashboard HTML render of these new fields is follow-on substrate
(small UI work). The data layer is the load-bearing first step;
operator + Mika can read demo/metrics.json directly until UI lands.

Substrate-honest note: the dashboard generation itself happens on
the autonomous-loop cron tick (per B-0414); per-agent stats will
update on every tick going forward. Time-series tracking (today's
metric vs 7d-ago, 30d-ago) is separate substrate (would need to
preserve historical metrics.json snapshots; deferred to follow-on
iteration).

Composes with .claude/rules/agent-roster-reference-card.md
(branch-prefix attribution), .claude/rules/holding-without-named-
dependency-is-standing-by-failure.md (decompose-to-action discipline),
B-0797 (autonomous-loop sometimes-task; same substrate-engineering
direction).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 26, 2026 06:47
@AceHack AceHack enabled auto-merge (squash) May 26, 2026 06:47
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack merged commit 4156332 into main May 26, 2026
32 of 33 checks passed
@AceHack AceHack deleted the otto-cli/dashboard-per-agent-decompose-to-action-metrics-2026-05-26 branch May 26, 2026 06:51
@AceHack AceHack review requested due to automatic review settings May 26, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant