Skip to content

feat: add Writers Room Guide page (length targets + craft rules)#488

Merged
atomantic merged 4 commits into
mainfrom
cos/task-mpludt5o/agent-b32fba36
May 25, 2026
Merged

feat: add Writers Room Guide page (length targets + craft rules)#488
atomantic merged 4 commits into
mainfrom
cos/task-mpludt5o/agent-b32fba36

Conversation

@atomantic
Copy link
Copy Markdown
Owner

Summary

Adds a Writers Room Guide — a deep-linkable documentation page at /writers-room/guide covering writing length targets, craft principles, and the analyses the editor will apply to your prose.

Reachable via a new Guide link in the Writers Room header (both the full and slim/editing header bars) and from ⌘K / voice navigation.

What's on the page

  • Length Targets by Form — the literary length ladder with word and character bands:
    • Microfiction (≤500 words / ≤2,500–3,000 chars)
    • Flash Fiction (750–1,000 / 3,750–6,000)
    • Standard Short Story (1,500–7,500 / 7,500–45,000)
    • Novelette / Long Short Story (7,500–17,500 / 37,500–105,000)
    • Plus Novella & Novel rows for context (marked "context")
  • Book-Length Estimates — page-based table (200 pages → 50–60k words; 300 pages → 75–90k words) with the ~250–300 words/page assumption documented.
  • Craft Principles — grouped advice (Structure & Pacing, Character & Voice, Prose & Clarity, Revision Discipline).
  • Editor Analyses — the planned Emotional Roadmap evaluator (charts the reader's beat-by-beat emotional journey) and a Length & Form Fit check, both flagged planned.

Design

  • Length targets, book estimates, and principles live in one canonical data module — client/src/lib/writingGuide.js — so the forthcoming editor analyses read the same source the docs render from (no drift between docs and enforcement). Includes a classifyByWordCount() helper (gap-aware: a count between bands rounds up to the next form).
  • Page is mobile-responsive (card grids collapse to single column; book table scrolls horizontally) and owns its own vertical scroll, since /writers-room/* is a full-width route.

Wiring

  • New <Route path="writers-room/guide"> in App.jsx (lazy-loaded).
  • New nav.writers-room.guide entry in server/lib/navManifest.js⌘K + voice ui_navigate.
  • Module registered in the client/src/lib barrel + catalog README (enforced by index.test.js).

Tests

  • client/src/lib/writingGuide.test.js — data-shape invariants (ids, ascending ladder, core categories) + classifyByWordCount band/gap/invalid-input behavior (9 tests).
  • Existing navManifest.test.js + palette.test.js cover the new nav entry (30 passing).
  • Client build ✓; client lib tests 13/13 ✓; server nav/palette tests 30/30 ✓.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds a new deep-linkable Writers Room Guide page at /writers-room/guide, wired into the Writers Room UI header and the global navigation manifest so it’s reachable via Cmd+K / voice navigation.

Changes:

  • Added a new /writers-room/guide page rendering length targets, book-length estimates, craft principles, and planned editor analyses from a shared canonical data module.
  • Introduced client/src/lib/writingGuide.js (+ tests) as the single source of truth for length bands/principles and a classifyByWordCount() helper.
  • Wired navigation: new App route, new Writers Room header “Guide” links, and a new nav.writers-room.guide command entry (plus changelog/README/barrel export updates).

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
server/lib/navManifest.js Adds a new command palette / voice nav entry for /writers-room/guide.
client/src/pages/WritersRoomGuide.jsx New Guide page UI rendering from the canonical writing guide data.
client/src/pages/WritersRoom.jsx Adds “Guide” links to both Writers Room header variants.
client/src/lib/writingGuide.js New canonical data module for length targets, craft principles, planned analyses, and classifyByWordCount().
client/src/lib/writingGuide.test.js Adds vitest coverage for data shape invariants and word-count classification behavior.
client/src/lib/README.md Documents the new writingGuide.js module in the lib catalog.
client/src/lib/index.js Re-exports writingGuide.js from the lib barrel.
client/src/App.jsx Adds lazy-loaded route for writers-room/guide.
.changelog/NEXT.md Notes the new Writers Room Guide feature in vNEXT.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread client/src/lib/writingGuide.js Outdated
Comment thread client/src/lib/writingGuide.js
Comment thread client/src/lib/writingGuide.js
Comment thread client/src/lib/writingGuide.js
Comment thread client/src/lib/writingGuide.test.js
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Comment thread client/src/lib/writingGuide.js Outdated
Comment thread client/src/lib/writingGuide.test.js Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

@atomantic atomantic merged commit 0496258 into main May 25, 2026
3 checks passed
@atomantic atomantic deleted the cos/task-mpludt5o/agent-b32fba36 branch May 25, 2026 23:55
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