Skip to content

fix(planning): decide-pane layout and accessibility papercuts on the interview page #7970

Closed

Description

@kyle-sexton

This was generated by AI during attend-queue.

Refs: #6053
Depends on: #7967

Agent Brief

Type: Bug
Summary: The question pane shows the recommendation once, expanding Why does not move Details, side panels default to pinned on wide screens, Finish is secondary while questions are open, and every button has an accessible name.

Current behavior:

  • The recommendation appears twice (green card and the Rec row), plus an auto Claude asked thread line repeating the label; the header repeats stage and group when they match.
  • Expanding Why shifts the Details disclosure under the next click.
  • Side panels overlay the decide and Talk controls by default (pinned defaults false).
  • The summary's Finish: export and end the session uses the primary style while questions are open.
  • One button has no text, aria-label or title.
  • Q5 (decide list cap) was fixed by fix(planning): rebalance the interview page layout and add a someone-else-decides deferral #7278, verified at 1440x900 only.

Desired behavior:

  • The full recommendation text appears once in the question pane; the auto thread line that repeats the label is gone; stage and group collapse to one when equal.
  • Expanding Why leaves the Details control where it was (space reserved, or Why and Details rendered so one does not push the other).
  • At a viewport 1200 px wide or wider, with no stored preference, panels open pinned; Pin is labelled visibly; a stored pin choice still wins.
  • While the outstanding count is above 0, Finish uses a secondary style and stays enabled (rule R4); at 0 it is primary.
  • Every button has an accessible name; label text colors meet WCAG AA (4.5:1) in both themes.
  • At 1568x744 the full Rec text and every alternative are visible in the decide list without inner scroll.

Key interfaces:

  • Page render functions for the question pane, the summary's Finish button and the fly-out panel default (S.pinned initial value).
  • Theme color tokens for label text.

Acceptance criteria:

  • Playwright UI cases in the surface suites cover: recommendation text occurs once; the Details bounding box is unchanged after expanding Why; panels are pinned by default at 1280 px with no stored choice; Finish is not primary and stays enabled with open questions; no button lacks an accessible name; the decide list has no inner scroll at 1568x744. Check: the PR's CI runs plugins/planning/surface/surface.test.sh with the browser suites and it passes. A local SKIP without playwright-cli is not a failure.
  • The PR body names each changed label color with its contrast ratio, computed from the token hex values (WCAG relative-luminance formula), and each ratio is at least 4.5:1 in both themes. Check: the reviewer recomputes one.
  • A planning fragment exists (scripts/new-changelog-fragment.sh planning patch), and scripts/check-changelog-fragments.sh --check passes.

Out of scope:


This was generated by AI during backlog shaping. Split from #6053; the owner approved filing it in an attended backlog-shaping session on 2026-10-18.

Activity

  1. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    on Oct 18, 2026
  2. added theissue type on Oct 18, 2026
  3. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 22, 2026
  4. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor

    The triage sweep dispatched intake triage for this issue (attempt 1 of 2).

  5. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: a set of fixes to the planning interview page's decide pane. They cover a single recommendation display, a stable Details position when Why expands, panels pinned by default at 1200 px or wider, Finish styled as secondary while questions are open, accessible button names, and AA label contrast. Acceptance criteria are concrete (Playwright cases, contrast ratios in the PR body, a changelog fragment). The issue says it depends on #7967, which isn't in the open-issue list I was given, so I treated it as not blocking. No likely duplicates found.

    Automated triage, applied by the lanes App.

  6. melodic-automation-lanes commented on Oct 26, 2026

    @melodic-automation-lanes
    Contributor

    The token broker refused the work-resolve-issue run that agent-ready started because the lanes kill switch was on, so it did no work. work-unblock removed and added agent-ready back to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last added agent-ready or a run last reported, work-unblock waits longer before each one, up to 24 hours.

  7. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 26, 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

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions