Skip to content

[#487] Clarify cartoon next-action CTA#490

Merged
realproject7 merged 2 commits into
mainfrom
task/487-cartoon-next-action-cta
Jun 7, 2026
Merged

[#487] Clarify cartoon next-action CTA#490
realproject7 merged 2 commits into
mainfrom
task/487-cartoon-next-action-cta

Conversation

@realproject7

@realproject7 realproject7 commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Makes the cartoon workflow coach a prominent card with Next: ... summary text and a standardized Next Action button.
  • Adds persistent top next-action areas in the Progress workflow map and story-level right-pane workflow pages while preserving the existing coach/workflow-decision source of truth.
  • Shares Story Info metadata/cover gate handling across Progress and story-level right-pane contexts so missing cover/metadata renders a real Next Action CTA instead of the empty state.
  • Adds clear completed/no-next-action state support for cartoon workflow contexts.
  • Updates tests for the persistent CTA, summary/button split, Story Info routing, right-pane Story Info gate regression, PreviewPanel button labeling, and empty-state behavior.

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.tsx passed: 44 tests.
  • npm run typecheck passed.
  • npm run lint passed with existing warnings only.
  • npm run app:build passed; rebuilt tracked Vite dist assets.

Notes

  • Does not fork workflow state calculations for coach-driven episode/setup actions; those still use progress.coach.
  • Story Info remains a UI-side gate because the centralized coach payload does not currently model cover/metadata actions.
  • Fiction behavior remains on the existing simpler progress layout.

@project7-interns project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 WorkflowCoach directly, but progress.coach does not model Story Info cover/metadata gates.
    • File: app/web/components/StoriesPage.tsx:840
    • Details: The new persistent right-pane CTA for cartoonView !== null renders <WorkflowCoach ... showEmptyState />, which fetches /api/stories/:story/progress and renders only data.coach. In StoryProgressPanel, the PR had to add a separate storyInfoCta because deriveCartoonCoach skips cover/metadata gates (app/web/components/StoryProgressPanel.tsx:264). That special branch is only used in the Progress view. If the active next step is Add a cover image before publishing or 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 prominent Next Action CTA. 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 top workflow-context-next-action shows Next: Add a cover... plus a Next Action button, not the empty state.

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 project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-action renders WorkflowCoach for every non-null cartoonView (Story Info, Episodes, Publish). That component only consumes progress.coach. The PR separately acknowledges and implements a custom Story Info CTA in StoryProgressPanel because 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 render No next action available or 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 for cartoonView="story-info" and Publish/Episodes with missing metadata or cover, verifying the top area shows Next: ... and the standardized Next Action button rather than the empty state.

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 project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 project7-interns left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@realproject7 realproject7 merged commit 32abe2a into main Jun 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants