Skip to content

feat(frontend): executive view on the redesign layout #903

Closed

Description

@alex-dembele

Problem

The executive view is what a risk committee looks at. The design makes it a one-page summary with the decisions the committee owes.

Design: https://claude.ai/artifact/HLqrbeYqvv4a6RVnBz9Vei (screen "executive"). Parent: #899. The rules in the epic apply.

Acceptance criteria

  1. Eyebrow with committee and quarter, title, "Copier le lien" and "Exporter le rapport" actions.
  2. Four KPI tiles with quarter-on-quarter deltas (score, ALE, critical risks, average compliance).
  3. "Cinq premières expositions" with inherent and targeted residual bars.
  4. "Conformité par référentiel" bars with the counting footnote.
  5. "Décisions attendues du comité" list with Reporter / Approuver, wired to real pending approvals (risk acceptances, mitigation budgets, exceptions). Backend added if the list does not exist.

Definition of done

  • The screen matches the design at 1440×900 in dark and light, checked side by side in a real browser; the comparison and any deliberate difference are written on this issue.
  • Loading skeleton, error with retry, and empty state exist for every block.
  • FR and EN strings, no hard-coded copy.
  • npx tsc -b --noEmit, npx vitest run on the touched features, and npx eslint on the touched files pass.
  • Backend changes, if any, come with TestXxx_Success, TestXxx_NotFound, TestXxx_Unauthorized, filter by tenant_id, and go test ./... passes.
  • PR opened with Closes #<this issue>; parent epic epic(frontend): rebuild every console screen on the October 2026 redesign #899.

Activity

  1. added
    type:featureNew user-facing capability
    status:readyMeets the ready definition
    tier:4-uxUX: polish on top of a working engine
    and removed
    status:readyMeets the ready definition
    on Oct 8, 2026
  2. alex-dembele commented on Oct 9, 2026

    @alex-dembele
    MemberAuthor

    executive view redesign — 2026-10-09

    Done — PR #928 on feat/903-executive, stacked on #927. Backend: defer endpoint + deferrals (migration 0071, application/governance/approval_engine_usecases.go), snapshot ALE / critical / compliance and quarter_baseline (migration 0072), ale_after on top risks, fix in repository/gorm_governance_repository.go (deferrals were never saved). Frontend: features/analytics/ExecutiveDashboard.tsx rewritten, old executive service removed, __tests__/committeeDecisions.test.tsx.
    Verified — go test ./... all ok · npx tsc -b --noEmit clean · eslint clean on touched files · npx vitest run 1013/1013 (twice) · live on Postgres at 1440×900, dark and light, side by side with the design: defer persisted across reload, approve, maker-checker refusal sent once, copy link, export → /reports/board.
    Criteria — 1 ✅ · 2 ✅ (deltas vs last snapshot before the quarter; "pas encore de relevé" when none) · 3 ✅ · 4 ✅ (footnote states the real counting rule, not "partiel compté pour moitié") · 5 ✅ (pending approvals, Reporter backend added)
    Next — merge #925 → #926 → #927 → #928 in order. Then #904.
    Blocked on — nothing. Not done: 414 px check (headed browser floor is 517 px, no overflow there); GET /analytics/executive now has no frontend caller, separate cleanup; risk ids show #xxxxxxxx until risks get a human reference.

  3. added a commit that references this issue on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions