[#487] Clarify cartoon next-action CTA#490
Conversation
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
PR #490 improves the coach card and Progress-map CTA, but the story-level right-pane pages do not handle the Story Info/metadata/cover gate. When the next action is to fix Story Info, the persistent CTA on Story Info/Episodes/Publish can render the empty state instead of a Next Action, so the CTA is not consistent across the contexts required by #487.
Findings
- [high] Story-level pages use
WorkflowCoachdirectly, butprogress.coachdoes not model Story Info cover/metadata gates.- File:
app/web/components/StoriesPage.tsx:840 - Details: The new persistent right-pane CTA for
cartoonView !== nullrenders<WorkflowCoach ... showEmptyState />, which fetches/api/stories/:story/progressand renders onlydata.coach. InStoryProgressPanel, the PR had to add a separatestoryInfoCtabecausederiveCartoonCoachskips cover/metadata gates (app/web/components/StoryProgressPanel.tsx:264). That special branch is only used in the Progress view. If the active next step isAdd a cover image before publishingor missing title/language/genre, opening Story Info, Episodes, or Publish shows the generic completed/no-next-action state (or another coach) instead of the required prominentNext ActionCTA. This violates #487 acceptance that the CTA appears consistently across workflow contexts and that no-next-action is only shown when no next action is available. - Suggestion: Reuse the same story-info-gate decision for the top right-pane context CTA, or extend the shared coach/progress payload to represent Story Info UI actions. Add a regression test that renders a cartoon story with missing cover/metadata on
cartoonView="story-info"(and ideally Publish) and verifies the topworkflow-context-next-actionshowsNext: Add a cover...plus aNext Actionbutton, not the empty state.
- File:
Decision
Requesting changes. I reviewed live PR #490 at 0810bd5980fd8c3c969781bcd4fe5d513e392030, issue #487, and live checks. CI lint-and-typecheck was still pending at review time.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The coach card and Progress-map CTA are improved, but the right-pane workflow contexts still miss the Story Info metadata/cover gate. When that is the next action, Story Info/Episodes/Publish can show the generic empty state instead of the required prominent Next Action CTA.
Findings
- [high] Story-level right-pane CTA uses only the shared WorkflowCoach, while Story Info gates are handled only inside the Progress map.
- File:
app/web/components/StoriesPage.tsx:840 - Details: The new
workflow-context-next-actionrendersWorkflowCoachfor every non-nullcartoonView(Story Info, Episodes, Publish). That component only consumesprogress.coach. The PR separately acknowledges and implements a custom Story Info CTA inStoryProgressPanelbecause the coach does not carry cover/metadata actions (app/web/components/StoryProgressPanel.tsx:264), but that branch is only available on the Progress page. With missing title/language/genre or cover, the top CTA in story-level pages can renderNo next action availableor an unrelated coach even though a Story Info next action exists. This violates #487's requirement that the CTA appear consistently across workflow/right-pane contexts and only show completed/blocked when no next action is available. - Suggestion: Reuse the same Story Info gate decision for
workflow-context-next-action, or extend the centralized coach/progress payload to represent Story Info UI actions. Add regression coverage forcartoonView="story-info"and Publish/Episodes with missing metadata or cover, verifying the top area showsNext: ...and the standardizedNext Actionbutton rather than the empty state.
- File:
Decision
Requested changes. Reviewed live PR #490 at 0810bd5980fd8c3c969781bcd4fe5d513e392030, issue #487, and live CI. CI lint-and-typecheck is green, but the context-consistency acceptance gap remains.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The requested Story Info gate fix is present at fe8fa1e11568f699e87330f4d1438f8651b326c8. The persistent cartoon next-action CTA now uses a shared CartoonNextAction path, so cover/metadata gates render a real Next Action card in right-pane Story Info/Episodes/Publish contexts instead of the empty state.
Findings
- No blocking findings.
Decision
Approved. I re-reviewed the live PR diff, issue #487, and the new shared CartoonNextAction implementation. StoryProgressPanel and StoriesPage now use the same story-info gate decision, and StoriesPage.test.tsx covers the missing-cover regression through Publish and Story Info contexts. CI lint-and-typecheck was still pending when checked for the current commit.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The requested Story Info gate fix is present at . Progress and story-level right-pane contexts now share the same cartoon next-action gate, so metadata/cover work renders the prominent CTA instead of the empty state.
Findings
- No blocking findings.
Decision
Approved. now mounts for Story Info/Episodes/Publish contexts (), and uses for the persistent Progress CTA (). The shared helper preserves the existing gate order and handles Story Info cover/metadata gaps before falling back to (). Added coverage verifies a missing-cover Publish context shows plus , and remains correct after navigating to Story Info. Live CI for the new commit was still pending when reviewed.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
Correction to the immediately preceding @re2 approval body: the requested Story Info gate fix is present at fe8fa1e11568f699e87330f4d1438f8651b326c8. Progress and story-level right-pane contexts now share the same cartoon next-action gate, so metadata/cover work renders the prominent Next Action CTA instead of the empty state.
Findings
- No blocking findings.
Decision
Approved. StoriesPage now mounts CartoonNextAction for Story Info/Episodes/Publish contexts (app/web/components/StoriesPage.tsx:840), and StoryProgressPanel uses CartoonNextActionView for the persistent Progress CTA (app/web/components/StoryProgressPanel.tsx:220). The shared helper preserves the existing gate order and handles Story Info cover/metadata gaps before falling back to progress.coach (app/web/components/CartoonNextAction.tsx:19). Added StoriesPage.test.tsx coverage verifies a missing-cover Publish context shows Next: Add a cover image before publishing. plus Next Action, and remains correct after navigating to Story Info. Live CI for the new commit was still pending when reviewed.
Summary
Next: ...summary text and a standardizedNext Actionbutton.Next ActionCTA instead of the empty state.Verification
TMPDIR=/home/quadwork/plotlink-ows-dev/.tmp/vitest npm test -- app/web/components/StoriesPage.test.tsx app/web/components/StoryProgressPanel.test.tsx app/web/components/WorkflowCoach.test.tsx app/web/components/PreviewPanel.test.tsx app/web/components/CartoonWorkflowNav.test.tsxpassed: 44 tests.npm run typecheckpassed.npm run lintpassed with existing warnings only.npm run app:buildpassed; rebuilt tracked Vite dist assets.Notes
progress.coach.