os-me: bin/os-me-report renders prediction statistics #1077
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1077
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
On 2026-10-17 four views were computed by hand. They are the daily hit table, hit rate per trigger id, reliability by confidence bucket, and accept rate by origin. Jared wants them at his fingertips.
Reproduce
n/a: feature work. No report command exists today.
Approach
Required work:
class PredictionReportinplugins/os-me/lib/os_me/prediction_report.rbbin/os-me-report [--since DATE] [--format table|json]. It prints Markdown tables on stdout. It prints JSON on request. — check: presentos-me-reportinplugins/os-me/bin/os-me-reportAcceptance criteria
Owner sketch
Non-goals
Blocked by #1074
Origin
Also blocked by #1081: records must carry origin/autopilot (1075) and triggers/verdict (1077) first.
Takedown relevance: not relevant
Harm: Jared has to hand-compute the prediction statistics (daily hit table, per-trigger hit rate, per-bucket reliability, per-origin accept rate) because no tool reads plugins/os-me's prediction log and prints them.
Protects: Calibrated self-prediction: Jared can see how often os-me's predictions hit and whether confidence means anything, without manual tallying that is slow and error-prone.
Harm path: The ticket's new entry point, plugins/os-me/bin/os-me-report, which a person would run to print the four tables. The only bin script in the plugin is os-me-eval, and nothing registers or calls an os-me-report command. (live: false)
Evidence:
b8460ae9: Commit records predictions on Stop with origin and autopilot, so the log the report would read is written, but no reader for it exists.Close candidate for Jared's batch ruling. The ticket stays open.
Work started on branch ticket-1077 (os-sdlc poodr-ticket-implementation). The takedown relevance step judged this feature ticket not relevant (run 1077-20261017-093602: the new entry point does not exist yet), so the ticket's own Approach drives the build.
Resolution
Done: OsMe::PredictionReport builds the per-day, per-trigger, per-confidence-bucket and per-origin/autopilot tables; bin/os-me-report prints Markdown or --format json, with --since DATE.
Evidence: Implementation 56 (poodr-ticket-implementation, 15 dispatches, 2 retries): all 6 acceptance criteria verified, suite and contract audit pass; Runner commit on ticket-1077. Smoke run on the live Store prints four empty tables because predictions.jsonl does not exist yet (#1079 backfill creates it). Takedown relevance judged this feature ticket not relevant (run 1077-20261017-093602), so the ticket's own Approach drove the build.
Follow-ups: none
Skeptic DROP (no ticket): takedown is built around defect tickets (relevance, research and grader assume a defect and a cause). #1077 is a feature ticket; the misfit was routing it to takedown, not the relevance card.