Skip to content

fix(planning): interview page batch for eleven page issues - #7182

Draft
kyle-sexton wants to merge 12 commits into
mainfrom
feat/planning-interview-page-batch
Draft

kyle-sexton wants to merge 12 commits into
mainfrom
feat/planning-interview-page-batch

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

Requested by Kyle · project thread

Closes #5801
Closes #5815
Closes #5916
Closes #5914
Closes #5922
Closes #5917
Closes #5908
Closes #5910
Closes #5909
Closes #5817
Closes #5913
Refs: #5911 (not started: work stopped before it)

Summary

This is a batch of /planning:interview page fixes. There is one commit per issue, and each commit subject names its issue. All changes are in plugins/planning and share one changelog fragment (bump: minor).

Fix

Overlap with draft PR #7036 (fix/6946-interview-yes-accepts-rec): none. That PR only touches plugins/planning/skills/interview/SKILL.md and its own .changes fragment, and this PR changes neither file.

Verification

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR


Generated by Claude Code

claude added 12 commits October 11, 2026 07:02
…viewed (#5801)

A reply or revise that changes the recommendation now needs the revised
alternatives or keepAlternatives (CLI --keep-alternatives), and is refused
with neither. reply takes alternatives with rec, so an answer and a full
revision land in one op. The history line records whether the alternatives
were rewritten or kept.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
The Decide list's Rec row carried only the recommendation's first
sentence, with the rest in a hover tooltip. It now shows the full text,
unclamped, at desktop and phone widths; the Accept all list keeps its
one-sentence preview. Adds the ui_page browser suite, which later page
fixes extend.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…seen (#5916)

A rec change with no why stored the fallback sentence as its reason, so
the banner printed the phrase twice. It now stores revised: true (and the
page reads old fallback data the same way). The full banner shows on the
first open after the latest revision; later visits show a Revised chip
with Previous kept, until the next revision.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…roup-order (#5914)

revise takes group (CLI --group) to move a question between existing
groups in place, logging a history line and warning on stale group
summaries. A new group-order op reorders the groups; every id once.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
The Rec option now shows the whole recommendation, so the medium-width
check that an option title clamps to two lines reads the first option
that is not the Rec one.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…stion (#5922)

The server returns upstreamStale, every stale ancestor nearest first
with ties by id, derived per response and never written. The rail chip
and the banner name those ids instead of the direct prerequisites; the
banner links them and says what clears the state, and the dimmed row
reads as waiting rather than locked.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…xt (#5917)

The rail's "needs Qn" chips now sit in one wrapped row under the title,
and a met prerequisite carries a check mark with an "answered" accessible
label, so met and unmet differ by more than colour.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…nd count reviews (#5908)

The stale banner words each prerequisite for its own case: "was decided
after you answered this" when it had no decision before this answer,
"changed" when an earlier decision was replaced. The header meter adds
"N to review", the Review filter's own count, and opens that filter.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…endation is unchanged (#5910)

A kept accept gets no Reconfirm row once the question's own
recommendation was revised after it (a history line with pageSeq at or
after the accept's seq, or a newer rev for a terminal record), so the
user picks Rec with the revised text or another choice. The shortcut
help and the page protocol say so.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…stale (#5909)

A decision save compares the stale and upstream-pending sets before and
after its refresh. When it made questions stale, the toast names them and
counts what waits on them, the page selects the first in dependency
order (switching Show to Review when the filter hides it), and n visits
the others before the usual next-needing order.

The ui_page phases 4 and 5 added here also cover #5908, #5910 and the
two-level case of #5922.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…#5817)

The Thread no longer drops the entry shown in the latest-reply box, so
every Claude reply stays in time order next to the event it answers, and
a reply in the same second as that event sorts after it. ui_page phases
6 and 7 ask, reply from the shell, ask again and reload.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR
…ct box grows (#5913)

The detail pane's body row has a 45% minimum and the answer panel
scrolls inside the rest; grow() caps the note against the pane. ui_page
phase 8 checks a 600-word note and an open conflict box at 1280x800 and
fails on the previous layout (body share 0.25 and 0.06). The skipped
browser check count is updated for the new ui_page phases.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8KdG7fWg2YrErVYWtohmR

Copy link
Copy Markdown
Contributor Author

ci-status is red because this PR is a draft, not because of the change. On a draft every lint and test lane skips (lint-repo, test-bash, test-node, test-python, check-skills, check-plugins), and the aggregate counts a skip as not passing. See .github/workflows/pr-require-checks.yml:507-513.

The lanes run once the PR is marked ready. That flip waits for Kyle, because it also starts the review lanes. Until then, the local runs listed under Verification in the PR body are the signal.


Generated by Claude Code

This branch has not been deployed

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