Problem
We author scoped issues and contributors execute them, but nothing measures whether an
issue was well-formed. A good issue produces a clean first-attempt merge; a bad one
produces revision churn, rejection, abandonment, or a post-merge revert. That signal is
already latent in the data and is never computed, so issue-drafting quality can only be
asserted, never demonstrated or optimised.
Why it is computable today
decision_records (migrations/0179) holds one row per (PR, head sha) with the acted
action (merge | close | hold) and reason_code. Multiple rows for one PR therefore
encode revision depth directly. pull_request_reviews and check_summaries add review
and CI outcomes, and the existing github-truth outcome scan supplies merged / reopened /
reverted confirmation.
No new instrumentation is required — this is a query over history we already hold.
Sub-issues
Acceptance
Every historical scoped issue carries a quality score derived from how its PRs actually
executed, reproducible from decision_records by anyone with the published definition.
Problem
We author scoped issues and contributors execute them, but nothing measures whether an
issue was well-formed. A good issue produces a clean first-attempt merge; a bad one
produces revision churn, rejection, abandonment, or a post-merge revert. That signal is
already latent in the data and is never computed, so issue-drafting quality can only be
asserted, never demonstrated or optimised.
Why it is computable today
decision_records(migrations/0179) holds one row per (PR, head sha) with the actedaction(merge | close | hold) andreason_code. Multiple rows for one PR thereforeencode revision depth directly.
pull_request_reviewsandcheck_summariesadd reviewand CI outcomes, and the existing github-truth outcome scan supplies merged / reopened /
reverted confirmation.
No new instrumentation is required — this is a query over history we already hold.
Sub-issues
Acceptance
Every historical scoped issue carries a quality score derived from how its PRs actually
executed, reproducible from
decision_recordsby anyone with the published definition.