@hanna84/mcp-writing 3.5.3 → 3.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,9 +4,23 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
+ #### [v3.5.5](https://github.com/hannasdev/mcp-writing/compare/v3.5.4...v3.5.5)
8
+
9
+ - fix: suppress epigraph titles and refine review replies [`#187`](https://github.com/hannasdev/mcp-writing/pull/187)
10
+
11
+ #### [v3.5.4](https://github.com/hannasdev/mcp-writing/compare/v3.5.3...v3.5.4)
12
+
13
+ > 8 May 2026
14
+
15
+ - chore(skills): add reusable post-merge cleanup skill [`#186`](https://github.com/hannasdev/mcp-writing/pull/186)
16
+ - Release 3.5.4 [`b17e35d`](https://github.com/hannasdev/mcp-writing/commit/b17e35d98d74a963bfca901e880e5d0965de7047)
17
+
7
18
  #### [v3.5.3](https://github.com/hannasdev/mcp-writing/compare/v3.5.2...v3.5.3)
8
19
 
20
+ > 8 May 2026
21
+
9
22
  - fix(review-bundles): keep epigraph prose without epigraph titles in beta exports [`#185`](https://github.com/hannasdev/mcp-writing/pull/185)
23
+ - Release 3.5.3 [`819bb0d`](https://github.com/hannasdev/mcp-writing/commit/819bb0da74dc984b6b4c0791be599174406682fa)
10
24
 
11
25
  #### [v3.5.2](https://github.com/hannasdev/mcp-writing/compare/v3.5.1...v3.5.2)
12
26
 
package/README.md CHANGED
@@ -47,6 +47,8 @@ Instead of feeding an entire manuscript to an AI and hoping it fits in the conte
47
47
  | [docs/docker.md](docs/docker.md) | Docker Compose, OpenClaw integration, SSH hardening |
48
48
  | [docs/data-ownership.md](docs/data-ownership.md) | Which tools write which files, import safety rules |
49
49
  | [docs/tools.md](docs/tools.md) | Full tool reference — auto-generated from source |
50
+ | [docs/agents/README.md](docs/agents/README.md) | Index of agent-focused guidance, examples, and boot files |
51
+ | [docs/agents/use-cases.md](docs/agents/use-cases.md) | Agent-oriented transcripts and prompt/tooling examples |
50
52
  | [docs/development.md](docs/development.md) | Running locally, tests, environment variables, troubleshooting |
51
53
 
52
54
  ## Breaking changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanna84/mcp-writing",
3
- "version": "3.5.3",
3
+ "version": "3.5.5",
4
4
  "description": "MCP service for AI-assisted reasoning and editing on long-form fiction projects",
5
5
  "homepage": "https://hannasdev.github.io/mcp-writing/",
6
6
  "type": "module",
@@ -374,6 +374,18 @@ function renderProseWithInlineEmphasis(doc, prose, {
374
374
  doc.font(bodyFont).fontSize(fontSize);
375
375
  }
376
376
 
377
+ function isEpigraphScene(scene) {
378
+ const tags = Array.isArray(scene?.tags)
379
+ ? scene.tags
380
+ .map(tag => String(tag ?? "").trim().toLowerCase())
381
+ .filter(Boolean)
382
+ : [];
383
+ if (tags.includes("epigraph")) return true;
384
+
385
+ const title = String(scene?.title ?? "").trim();
386
+ return /^epigraph(?:\b|\s|[-:])/i.test(title);
387
+ }
388
+
377
389
  function renderSceneBlock(scene, options) {
378
390
  const {
379
391
  profile,
@@ -384,7 +396,7 @@ function renderSceneBlock(scene, options) {
384
396
  } = options;
385
397
 
386
398
  const isBetaProfile = profile === "beta_reader_personalized";
387
- const isEpigraph = isBetaProfile && scene.tags?.includes("epigraph");
399
+ const isEpigraph = isBetaProfile && isEpigraphScene(scene);
388
400
 
389
401
  const parts = [];
390
402
 
@@ -733,7 +745,7 @@ export function renderReviewBundlePdfWithMetadata(dbHandle, plan, { generatedAt,
733
745
  }
734
746
 
735
747
  // Skip title rendering for epigraphs in beta profile
736
- const isEpigraph = isBetaProfile && scene.tags?.includes("epigraph");
748
+ const isEpigraph = isBetaProfile && isEpigraphScene(scene);
737
749
  if (!isEpigraph) {
738
750
  doc.fontSize(isBetaProfile ? 13 : 14).font(sceneHeadingFont);
739
751
  let heading = scene.title || scene.scene_id;