Skip to content

Board: correct existing-data truth, hierarchy, and attention semantics #947

Description

@jeffhuber

Part of #945 and roadmap #900.

Problem

The current Board presentation can overstate evidence: unrecorded values render as zero, unknown posture can look successful, one PR can inflate owner counts through several reasons, stale campaigns appear active, and a successful gate-publisher workflow can be confused with the actual gate verdict. Current work also appears below long historical sections.

Scope

Correct truth and hierarchy using the existing Board payload. Put a short current-work summary and actionable work items before aggregate metrics and release history. Group attention reasons by work item, separate routine builder/orchestrator work from explicit owner decisions, render missing measurements as not recorded, render unknown/stale/unavailable states with neutral or warning treatment, separate gate publisher execution from code-mower/gate, and label old nonterminal campaigns as last reported/unverified when no recent liveness exists.

This is a presentation-only increment against existing data. Do not add lifecycle producers, session correlation, cloud fields, Slack mappings, mutating controls, or inferred agent activity.

Dependencies and parallelism

May proceed beside #945's B0 contract with a separate presentation writer. The later work-first UI must reconcile this behavior with the accepted B0 fixtures.

Acceptance criteria

  • Current actionable work and one deterministic next-step summary appear in the first desktop viewport before completed release history.
  • Several reasons for one PR render once as one work item with grouped reasons and one primary responsible role.
  • Rebase/fix/re-review actions default to builder/orchestrator; owner action requires explicit permission, budget, policy, product-decision, or owner-request evidence.
  • Null time/cost/quality/productivity displays as not recorded; unknown never renders green or as pass.
  • A successful publish Code Mower gate status workflow cannot make a pending/blocked/unknown code-mower/gate verdict appear passing.
  • Stale snapshots and old running campaigns show observation age and suppress current-running claims.
  • Fresh GitHub data remains useful when session/agent data is absent and says that session activity is unavailable.
  • Existing Board API and cloud schemas remain unchanged; snapshot/privacy tests prove no new private fields.

Initial ownership

Presentation track. Planned builder: Code Mower Claude.

Code Mower delivery

Produce one independently reviewable PR for this issue. Record the named Code Mower builder, keep one writer on the branch, obtain an independent audit against the exact current head, resolve every P0/P1/P2 finding, and pass focused tests, relevant full tests, privacy checks, normal CI, and code-mower/gate. Upload only allowlisted metadata. No umbrella PR.

Existing PR and refreshed completion gate

Continue existing PR #957; do not create a duplicate implementation PR. It is draft and behind main. Refresh #956 first, then #957, preserving one writer per source area. Re-run the independent exact-head audit, focused/relevant tests, CI, and authoritative gate on every changed head; historical passing evidence is retained only for its original head. Contract/fixture implementation may merge after those checks without waiting for the Graphify tag. Board release #952 remains ordered after #915's release or explicit deferral.

#935 is complete through #973 and its resolver must be reused. Role/contributor/evidence integrations remain #975/#963/#976 and their consuming children; no new provider state machine or cloud fields are added here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparallel-okCan be implemented in parallel once shared contracts are stable

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions