Repository navigation
fix(planning): decide-pane layout and accessibility papercuts on the interview page #7970
Copy link
Copy link
Closed
Copy link
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
This was generated by AI during attend-queue.
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 askedthread 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 sessionuses 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.pinnedinitial 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.shwith 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), andscripts/check-changelog-fragments.sh --checkpasses.
Out of scope:
- The header listening state (sibling item this follows, both edit the page).
- fix(planning): interview page visual audit follow-ups to #5569 #5795 and planning: show the whole recommendation in the interview page's Accept choice #5815 beyond the overlap named here.
- Narrow-viewport (820 px breakpoint) redesign and keyboard-navigation changes.
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Bug.
Activity
github-actions commentedon Oct 25, 2026
The triage sweep dispatched intake triage for this issue (attempt 1 of 2).
github-actions commentedon Oct 25, 2026
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.
melodic-automation-lanes commentedon Oct 26, 2026
The token broker refused the work-resolve-issue run that
agent-readystarted because the lanes kill switch was on, so it did no work. work-unblock removed and addedagent-readyback 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 addedagent-readyor a run last reported, work-unblock waits longer before each one, up to 24 hours.