novelws 3.1.0 → 5.0.0
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 +115 -564
- package/README.md +81 -598
- package/dist/cli.js +1 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +18 -103
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +18 -52
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/core/config.d.ts +7 -36
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +11 -38
- package/dist/core/config.js.map +1 -1
- package/dist/core/errors.d.ts +0 -31
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +0 -58
- package/dist/core/errors.js.map +1 -1
- package/dist/utils/diagnostics.d.ts +2 -16
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +7 -73
- package/dist/utils/diagnostics.js.map +1 -1
- package/dist/utils/project.d.ts +1 -1
- package/dist/utils/project.d.ts.map +1 -1
- package/dist/utils/project.js +3 -3
- package/dist/utils/project.js.map +1 -1
- package/package.json +1 -2
- package/templates/commands/analyze.md +65 -265
- package/templates/commands/expand.md +70 -0
- package/templates/commands/plan.md +47 -452
- package/templates/commands/specify.md +43 -869
- package/templates/commands/write.md +49 -556
- package/templates/dot-claude/CLAUDE.md +38 -202
- package/templates/resources/anti-ai.md +16 -0
- package/templates/resources/style-reference.md +19 -0
- package/templates/tracking/character-state.json +1 -76
- package/templates/tracking/plot-tracker.json +3 -60
- package/templates/tracking/relationships.json +1 -68
- package/templates/tracking/timeline.json +1 -47
- package/dist/commands/plugin.d.ts +0 -6
- package/dist/commands/plugin.d.ts.map +0 -1
- package/dist/commands/plugin.js +0 -135
- package/dist/commands/plugin.js.map +0 -1
- package/dist/plugins/identifier.d.ts +0 -13
- package/dist/plugins/identifier.d.ts.map +0 -1
- package/dist/plugins/identifier.js +0 -72
- package/dist/plugins/identifier.js.map +0 -1
- package/dist/plugins/installers/base.d.ts +0 -27
- package/dist/plugins/installers/base.d.ts.map +0 -1
- package/dist/plugins/installers/base.js +0 -30
- package/dist/plugins/installers/base.js.map +0 -1
- package/dist/plugins/installers/github.d.ts +0 -22
- package/dist/plugins/installers/github.d.ts.map +0 -1
- package/dist/plugins/installers/github.js +0 -133
- package/dist/plugins/installers/github.js.map +0 -1
- package/dist/plugins/installers/local.d.ts +0 -16
- package/dist/plugins/installers/local.d.ts.map +0 -1
- package/dist/plugins/installers/local.js +0 -69
- package/dist/plugins/installers/local.js.map +0 -1
- package/dist/plugins/installers/npm.d.ts +0 -20
- package/dist/plugins/installers/npm.d.ts.map +0 -1
- package/dist/plugins/installers/npm.js +0 -99
- package/dist/plugins/installers/npm.js.map +0 -1
- package/dist/plugins/manager.d.ts +0 -77
- package/dist/plugins/manager.d.ts.map +0 -1
- package/dist/plugins/manager.js +0 -349
- package/dist/plugins/manager.js.map +0 -1
- package/dist/plugins/registry.d.ts +0 -48
- package/dist/plugins/registry.d.ts.map +0 -1
- package/dist/plugins/registry.js +0 -111
- package/dist/plugins/registry.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -66
- package/dist/plugins/types.d.ts.map +0 -1
- package/dist/plugins/types.js +0 -2
- package/dist/plugins/types.js.map +0 -1
- package/dist/plugins/validator.d.ts +0 -19
- package/dist/plugins/validator.d.ts.map +0 -1
- package/dist/plugins/validator.js +0 -164
- package/dist/plugins/validator.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -13
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -48
- package/dist/utils/logger.js.map +0 -1
- package/plugins/authentic-voice/README.md +0 -31
- package/plugins/authentic-voice/commands/authentic-voice.md +0 -73
- package/plugins/authentic-voice/commands/authenticity-audit.md +0 -37
- package/plugins/authentic-voice/config.yaml +0 -30
- package/plugins/authentic-voice/experts/authentic-editor.md +0 -27
- package/plugins/export/README.md +0 -319
- package/plugins/export/commands/export.md +0 -460
- package/plugins/export/commands/generate-cover.md +0 -256
- package/plugins/export/commands/metadata.md +0 -309
- package/plugins/export/config.yaml +0 -47
- package/plugins/export/experts/publishing-expert.md +0 -171
- package/plugins/export/templates/epub/chapter-template.html +0 -13
- package/plugins/export/templates/epub/cover-template.html +0 -14
- package/plugins/export/templates/epub/stylesheet.css +0 -200
- package/plugins/export/templates/pdf/ebook-style.css +0 -137
- package/plugins/export/templates/pdf/print-style.css +0 -179
- package/plugins/export/templates/platforms/jinjiang-format.md +0 -101
- package/plugins/export/templates/platforms/qidian-format.md +0 -108
- package/plugins/export/templates/platforms/tomato-format.md +0 -95
- package/plugins/translate/README.md +0 -265
- package/plugins/translate/commands/glossary.md +0 -731
- package/plugins/translate/commands/translate-preview.md +0 -543
- package/plugins/translate/commands/translate.md +0 -649
- package/plugins/translate/config.yaml +0 -43
- package/plugins/translate/experts/literary-translator.md +0 -605
- package/templates/commands/character.md +0 -287
- package/templates/commands/checklist.md +0 -744
- package/templates/commands/clarify.md +0 -269
- package/templates/commands/constitution.md +0 -269
- package/templates/commands/expert.md +0 -188
- package/templates/commands/facts.md +0 -552
- package/templates/commands/guide.md +0 -900
- package/templates/commands/help-me.md +0 -221
- package/templates/commands/recap.md +0 -748
- package/templates/commands/relations.md +0 -385
- package/templates/commands/revise.md +0 -450
- package/templates/commands/search.md +0 -531
- package/templates/commands/tasks.md +0 -396
- package/templates/commands/timeline.md +0 -309
- package/templates/commands/track-init.md +0 -149
- package/templates/commands/track.md +0 -704
- package/templates/commands/volume-summary.md +0 -471
- package/templates/config/keyword-mappings.json +0 -226
- package/templates/knowledge/audit-config.json +0 -26
- package/templates/knowledge/character-profiles.md +0 -152
- package/templates/knowledge/character-voices.md +0 -137
- package/templates/knowledge/locations.md +0 -184
- package/templates/knowledge/world-setting.md +0 -121
- package/templates/knowledge-base/README.md +0 -285
- package/templates/knowledge-base/character-archetypes/01-hero.md +0 -233
- package/templates/knowledge-base/character-archetypes/02-mentor.md +0 -177
- package/templates/knowledge-base/character-archetypes/03-shadow.md +0 -221
- package/templates/knowledge-base/character-archetypes/04-ally.md +0 -178
- package/templates/knowledge-base/character-archetypes/05-shapeshifter.md +0 -177
- package/templates/knowledge-base/character-archetypes/06-trickster.md +0 -181
- package/templates/knowledge-base/character-archetypes/07-threshold-guardian.md +0 -177
- package/templates/knowledge-base/character-archetypes/08-herald.md +0 -180
- package/templates/knowledge-base/character-archetypes/09-father.md +0 -249
- package/templates/knowledge-base/character-archetypes/10-mother.md +0 -202
- package/templates/knowledge-base/character-archetypes/11-child.md +0 -183
- package/templates/knowledge-base/character-archetypes/12-sage.md +0 -202
- package/templates/knowledge-base/character-archetypes/README.md +0 -60
- package/templates/knowledge-base/character-archetypes/application-guide.md +0 -222
- package/templates/knowledge-base/character-archetypes/archetype-combinations.md +0 -242
- package/templates/knowledge-base/character-archetypes/config.yaml +0 -28
- package/templates/knowledge-base/character-archetypes/examples-analysis.md +0 -223
- package/templates/knowledge-base/craft/character-arc.md +0 -1153
- package/templates/knowledge-base/craft/dialogue.md +0 -1170
- package/templates/knowledge-base/craft/hook-design.md +0 -345
- package/templates/knowledge-base/craft/pacing.md +0 -1200
- package/templates/knowledge-base/craft/power-system.md +0 -254
- package/templates/knowledge-base/craft/scene-structure.md +0 -1136
- package/templates/knowledge-base/craft/show-not-tell.md +0 -1012
- package/templates/knowledge-base/craft/story-structures.md +0 -134
- package/templates/knowledge-base/craft/tension-management.md +0 -168
- package/templates/knowledge-base/emotional-beats/01-first-meeting.md +0 -145
- package/templates/knowledge-base/emotional-beats/02-bonding-moment.md +0 -226
- package/templates/knowledge-base/emotional-beats/03-declaration.md +0 -284
- package/templates/knowledge-base/emotional-beats/04-triumph.md +0 -240
- package/templates/knowledge-base/emotional-beats/05-reunion.md +0 -396
- package/templates/knowledge-base/emotional-beats/06-forgiveness.md +0 -204
- package/templates/knowledge-base/emotional-beats/07-betrayal.md +0 -204
- package/templates/knowledge-base/emotional-beats/08-loss.md +0 -214
- package/templates/knowledge-base/emotional-beats/09-rejection.md +0 -254
- package/templates/knowledge-base/emotional-beats/10-failure.md +0 -244
- package/templates/knowledge-base/emotional-beats/11-misunderstanding.md +0 -205
- package/templates/knowledge-base/emotional-beats/12-farewell.md +0 -283
- package/templates/knowledge-base/emotional-beats/13-revelation.md +0 -242
- package/templates/knowledge-base/emotional-beats/14-point-of-no-return.md +0 -215
- package/templates/knowledge-base/emotional-beats/15-dark-night.md +0 -244
- package/templates/knowledge-base/emotional-beats/16-sacrifice.md +0 -246
- package/templates/knowledge-base/emotional-beats/17-awakening.md +0 -246
- package/templates/knowledge-base/emotional-beats/18-confrontation.md +0 -217
- package/templates/knowledge-base/emotional-beats/19-bittersweet-goodbye.md +0 -368
- package/templates/knowledge-base/emotional-beats/20-moral-dilemma.md +0 -248
- package/templates/knowledge-base/emotional-beats/21-temptation.md +0 -240
- package/templates/knowledge-base/emotional-beats/22-redemption.md +0 -210
- package/templates/knowledge-base/emotional-beats/README.md +0 -104
- package/templates/knowledge-base/emotional-beats/beat-sequences.md +0 -276
- package/templates/knowledge-base/emotional-beats/config.yaml +0 -30
- package/templates/knowledge-base/emotional-beats/pacing-guide.md +0 -390
- package/templates/knowledge-base/genres/game-lit.md +0 -174
- package/templates/knowledge-base/genres/historical.md +0 -1127
- package/templates/knowledge-base/genres/horror.md +0 -211
- package/templates/knowledge-base/genres/military.md +0 -209
- package/templates/knowledge-base/genres/mystery.md +0 -1123
- package/templates/knowledge-base/genres/rebirth.md +0 -177
- package/templates/knowledge-base/genres/revenge.md +0 -846
- package/templates/knowledge-base/genres/romance.md +0 -948
- package/templates/knowledge-base/genres/sci-fi.md +0 -156
- package/templates/knowledge-base/genres/sports.md +0 -216
- package/templates/knowledge-base/genres/thriller.md +0 -166
- package/templates/knowledge-base/genres/urban.md +0 -170
- package/templates/knowledge-base/genres/workplace.md +0 -214
- package/templates/knowledge-base/genres/wuxia.md +0 -143
- package/templates/knowledge-base/genres/xuanhuan.md +0 -234
- package/templates/knowledge-base/genres/youth.md +0 -219
- package/templates/knowledge-base/references/README.md +0 -96
- package/templates/knowledge-base/references/china-1920s/culture.md +0 -423
- package/templates/knowledge-base/references/china-1920s/daily-life.md +0 -616
- package/templates/knowledge-base/references/china-1920s/overview.md +0 -298
- package/templates/knowledge-base/references/china-1920s/society.md +0 -703
- package/templates/knowledge-base/references/china-1920s/warlords.md +0 -427
- package/templates/knowledge-base/references/cultivation-world/daily-life.md +0 -108
- package/templates/knowledge-base/references/cultivation-world/overview.md +0 -64
- package/templates/knowledge-base/references/cultivation-world/power-system.md +0 -108
- package/templates/knowledge-base/references/cultivation-world/sects.md +0 -104
- package/templates/knowledge-base/references/cultivation-world/world-setting.md +0 -108
- package/templates/knowledge-base/references/modern-workplace/corporate.md +0 -115
- package/templates/knowledge-base/references/modern-workplace/daily-life.md +0 -129
- package/templates/knowledge-base/references/modern-workplace/overview.md +0 -73
- package/templates/knowledge-base/references/modern-workplace/relationships.md +0 -107
- package/templates/knowledge-base/references/modern-workplace/tech-industry.md +0 -131
- package/templates/knowledge-base/references/tang-dynasty/culture.md +0 -135
- package/templates/knowledge-base/references/tang-dynasty/daily-life.md +0 -139
- package/templates/knowledge-base/references/tang-dynasty/overview.md +0 -76
- package/templates/knowledge-base/references/tang-dynasty/politics.md +0 -121
- package/templates/knowledge-base/references/tang-dynasty/society.md +0 -126
- package/templates/knowledge-base/requirements/README.md +0 -240
- package/templates/knowledge-base/requirements/anti-ai-v3.md +0 -46
- package/templates/knowledge-base/requirements/anti-ai-v4-deprecated.md +0 -442
- package/templates/knowledge-base/requirements/anti-ai-v5-balanced.md +0 -203
- package/templates/knowledge-base/requirements/concretization.md +0 -90
- package/templates/knowledge-base/requirements/fast-paced.md +0 -552
- package/templates/knowledge-base/requirements/no-poison.md +0 -60
- package/templates/knowledge-base/requirements/romance-angst.md +0 -102
- package/templates/knowledge-base/requirements/romance-sweet.md +0 -63
- package/templates/knowledge-base/requirements/serious-literature.md +0 -45
- package/templates/knowledge-base/requirements/strong-emotion.md +0 -60
- package/templates/knowledge-base/styles/README.md +0 -302
- package/templates/knowledge-base/styles/ancient-style.md +0 -579
- package/templates/knowledge-base/styles/literary.md +0 -439
- package/templates/knowledge-base/styles/minimal.md +0 -472
- package/templates/knowledge-base/styles/natural-voice.md +0 -930
- package/templates/knowledge-base/styles/web-novel.md +0 -525
- package/templates/memory/personal-voice.md +0 -113
- package/templates/scripts/README.md +0 -187
- package/templates/scripts/bash/analyze-story.sh +0 -170
- package/templates/scripts/bash/check-analyze-stage.sh +0 -108
- package/templates/scripts/bash/check-consistency.sh +0 -463
- package/templates/scripts/bash/check-facts.sh +0 -214
- package/templates/scripts/bash/check-plot.sh +0 -374
- package/templates/scripts/bash/check-timeline.sh +0 -346
- package/templates/scripts/bash/check-world.sh +0 -395
- package/templates/scripts/bash/check-writing-state.sh +0 -854
- package/templates/scripts/bash/clarify-story.sh +0 -117
- package/templates/scripts/bash/common.sh +0 -151
- package/templates/scripts/bash/constitution.sh +0 -114
- package/templates/scripts/bash/generate-tasks.sh +0 -65
- package/templates/scripts/bash/init-tracking.sh +0 -183
- package/templates/scripts/bash/manage-relations.sh +0 -174
- package/templates/scripts/bash/migrate-tracking.sh +0 -183
- package/templates/scripts/bash/plan-story.sh +0 -100
- package/templates/scripts/bash/specify-story.sh +0 -93
- package/templates/scripts/bash/tasks-story.sh +0 -96
- package/templates/scripts/bash/test-word-count.sh +0 -182
- package/templates/scripts/bash/tests/bench-preload-cache.sh +0 -100
- package/templates/scripts/bash/tests/run-all-benchmarks.sh +0 -16
- package/templates/scripts/bash/tests/test-cache-semantics.sh +0 -199
- package/templates/scripts/bash/tests/test-cross-platform.sh +0 -35
- package/templates/scripts/bash/tests/test-edge-cases-bash.sh +0 -60
- package/templates/scripts/bash/tests/test-phase1-bash.sh +0 -28
- package/templates/scripts/bash/tests/test-preload-cache.sh +0 -123
- package/templates/scripts/bash/tests/test-regex-precompile.sh +0 -89
- package/templates/scripts/bash/tests/test-regression-bash.sh +0 -42
- package/templates/scripts/bash/tests/test-task6-verification.sh +0 -200
- package/templates/scripts/bash/text-audit.sh +0 -144
- package/templates/scripts/bash/track-progress.sh +0 -194
- package/templates/scripts/powershell/analyze-story.ps1 +0 -174
- package/templates/scripts/powershell/check-analyze-stage.ps1 +0 -110
- package/templates/scripts/powershell/check-consistency.ps1 +0 -138
- package/templates/scripts/powershell/check-facts.ps1 +0 -195
- package/templates/scripts/powershell/check-plot.ps1 +0 -139
- package/templates/scripts/powershell/check-timeline.ps1 +0 -112
- package/templates/scripts/powershell/check-writing-state.ps1 +0 -486
- package/templates/scripts/powershell/clarify-story.ps1 +0 -107
- package/templates/scripts/powershell/common.ps1 +0 -36
- package/templates/scripts/powershell/constitution.ps1 +0 -145
- package/templates/scripts/powershell/generate-tasks.ps1 +0 -70
- package/templates/scripts/powershell/init-tracking.ps1 +0 -98
- package/templates/scripts/powershell/manage-relations.ps1 +0 -134
- package/templates/scripts/powershell/migrate-tracking.ps1 +0 -145
- package/templates/scripts/powershell/plan-story.ps1 +0 -99
- package/templates/scripts/powershell/specify-story.ps1 +0 -85
- package/templates/scripts/powershell/tests/bench-ps-cache.ps1 +0 -80
- package/templates/scripts/powershell/tests/test-cross-platform.ps1 +0 -27
- package/templates/scripts/powershell/tests/test-edge-cases-ps.ps1 +0 -29
- package/templates/scripts/powershell/tests/test-phase1-ps.ps1 +0 -28
- package/templates/scripts/powershell/tests/test-ps-cache.ps1 +0 -73
- package/templates/scripts/powershell/tests/test-regression-ps.ps1 +0 -40
- package/templates/scripts/powershell/text-audit.ps1 +0 -102
- package/templates/scripts/powershell/track-progress.ps1 +0 -105
- package/templates/skills/analysis/character-analysis/SKILL.md +0 -71
- package/templates/skills/analysis/foreshadow-analysis/SKILL.md +0 -45
- package/templates/skills/analysis/hook-analysis/SKILL.md +0 -111
- package/templates/skills/analysis/logic-analysis/SKILL.md +0 -58
- package/templates/skills/analysis/opening-analysis/SKILL.md +0 -59
- package/templates/skills/analysis/pacing-analysis/SKILL.md +0 -55
- package/templates/skills/analysis/power-analysis/SKILL.md +0 -148
- package/templates/skills/analysis/reader-analysis/SKILL.md +0 -117
- package/templates/skills/analysis/style-analysis/SKILL.md +0 -60
- package/templates/skills/analysis/voice-analysis/SKILL.md +0 -42
- package/templates/skills/auto-tracking/SKILL.md +0 -280
- package/templates/skills/genre-knowledge/fantasy/SKILL.md +0 -355
- package/templates/skills/genre-knowledge/mystery/SKILL.md +0 -337
- package/templates/skills/genre-knowledge/romance/SKILL.md +0 -228
- package/templates/skills/genre-knowledge/sci-fi/SKILL.md +0 -65
- package/templates/skills/genre-knowledge/thriller/SKILL.md +0 -95
- package/templates/skills/planning/volume-detail/SKILL.md +0 -219
- package/templates/skills/quality-assurance/consistency-checker/SKILL.md +0 -412
- package/templates/skills/quality-assurance/continuity-tracker/SKILL.md +0 -157
- package/templates/skills/quality-assurance/facts-checker/SKILL.md +0 -405
- package/templates/skills/quality-assurance/forgotten-elements/SKILL.md +0 -147
- package/templates/skills/quality-assurance/getting-started/SKILL.md +0 -224
- package/templates/skills/quality-assurance/hook-checker/SKILL.md +0 -164
- package/templates/skills/quality-assurance/hook-checker/experts/hook-analyst.md +0 -33
- package/templates/skills/quality-assurance/long-series-continuity/SKILL.md +0 -570
- package/templates/skills/quality-assurance/pacing-monitor/SKILL.md +0 -143
- package/templates/skills/quality-assurance/pov-validator/SKILL.md +0 -135
- package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +0 -583
- package/templates/skills/quality-assurance/requirement-detector/CONFLICT_RESOLUTION.md +0 -119
- package/templates/skills/quality-assurance/requirement-detector/EXAMPLES.md +0 -146
- package/templates/skills/quality-assurance/requirement-detector/KEYWORDS.md +0 -160
- package/templates/skills/quality-assurance/requirement-detector/SKILL.md +0 -149
- package/templates/skills/quality-assurance/setting-detector/SKILL.md +0 -611
- package/templates/skills/quality-assurance/style-detector/CONFLICT_RESOLUTION.md +0 -126
- package/templates/skills/quality-assurance/style-detector/EXAMPLES.md +0 -206
- package/templates/skills/quality-assurance/style-detector/KEYWORDS.md +0 -207
- package/templates/skills/quality-assurance/style-detector/SKILL.md +0 -264
- package/templates/skills/quality-assurance/voice-consistency-checker/SKILL.md +0 -103
- package/templates/skills/quality-assurance/voice-consistency-checker/experts/voice-analyst.md +0 -21
- package/templates/skills/quality-assurance/workflow-guide/SKILL.md +0 -381
- package/templates/skills/writing-techniques/character-arc/SKILL.md +0 -267
- package/templates/skills/writing-techniques/dialogue-techniques/SKILL.md +0 -366
- package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +0 -708
- package/templates/skills/writing-techniques/multi-thread-narrative/experts/thread-analyst.md +0 -226
- package/templates/skills/writing-techniques/pacing-control/SKILL.md +0 -480
- package/templates/skills/writing-techniques/reader-expectation/SKILL.md +0 -1026
- package/templates/skills/writing-techniques/reader-expectation/experts/expectation-analyst.md +0 -209
- package/templates/skills/writing-techniques/revision-polish/SKILL.md +0 -496
- package/templates/skills/writing-techniques/revision-polish/experts/revision-editor.md +0 -221
- package/templates/skills/writing-techniques/scene-structure/SKILL.md +0 -361
- package/templates/skills/writing-techniques/style-learning/SKILL.md +0 -436
- package/templates/skills/writing-techniques/writing-balance/.gitkeep +0 -0
- package/templates/skills/writing-techniques/writing-balance/SKILL.md +0 -460
- package/templates/skills/writing-techniques/writing-techniques/SKILL.md +0 -727
- package/templates/specification-example.md +0 -146
- package/templates/tracking/story-facts.json +0 -5
- package/templates/tracking/summary/characters-summary.json +0 -7
- package/templates/tracking/summary/plot-summary.json +0 -13
- package/templates/tracking/summary/timeline-summary.json +0 -8
- package/templates/tracking/summary/volume-summaries.json +0 -5
- package/templates/tracking/tracking-log.md +0 -110
- package/templates/tracking/validation-rules.json +0 -128
- /package/templates/{memory → resources}/constitution.md +0 -0
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: story-facts-checker
|
|
3
|
-
description: "Use during and after chapter writing to verify that quantifiable facts (numbers, names, settings) match the single source of truth in story-facts.json - alerts when detecting inconsistencies"
|
|
4
|
-
allowed-tools: Read, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Story Facts 校验器
|
|
8
|
-
|
|
9
|
-
## 职责范围
|
|
10
|
-
|
|
11
|
-
本 skill 负责校验故事中**可量化的设定事实**(数字、名称、枚举值)与单一数据源 `spec/tracking/story-facts.json` 的一致性。
|
|
12
|
-
|
|
13
|
-
### 与 consistency-checker 的分工
|
|
14
|
-
|
|
15
|
-
| Skill | 负责内容 | 示例 |
|
|
16
|
-
|-------|---------|------|
|
|
17
|
-
| **consistency-checker** | 定性的角色行为、世界规则、时间线逻辑 | 角色性格是否一致、魔法系统是否矛盾、事件顺序是否合理 |
|
|
18
|
-
| **facts-checker** | 定量的设定事实、数值逻辑 | 宗门月亏损是否一直是 1000 灵石、宗门名称是否统一、算术关系是否成立 |
|
|
19
|
-
|
|
20
|
-
**两者互不替代**:consistency-checker 关注"行为逻辑",facts-checker 关注"数据准确性"。
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 自动校验流程
|
|
25
|
-
|
|
26
|
-
### 触发时机
|
|
27
|
-
|
|
28
|
-
- `/write` 命令的**质量自检阶段**(自动调用)
|
|
29
|
-
- `/facts check` 命令(手动触发)
|
|
30
|
-
- 用户明确要求校验当前章节的 facts
|
|
31
|
-
|
|
32
|
-
### V1 校验范围:声明引用校验
|
|
33
|
-
|
|
34
|
-
当前版本仅校验**在章节头部显式声明**的事实引用。
|
|
35
|
-
|
|
36
|
-
#### 执行步骤
|
|
37
|
-
|
|
38
|
-
1. **读取章节注释头**
|
|
39
|
-
- 查找 `<!-- story-facts: ... -->` 注释
|
|
40
|
-
- 提取声明的 fact ID 列表
|
|
41
|
-
- 如果未找到注释,跳过校验(不报错)
|
|
42
|
-
|
|
43
|
-
2. **加载事实数据源**
|
|
44
|
-
- 读取 `spec/tracking/story-facts.json`
|
|
45
|
-
- 提取声明的 fact ID 对应的当前值
|
|
46
|
-
|
|
47
|
-
3. **扫描正文内容**
|
|
48
|
-
- 对每个声明的 fact,在正文中查找其值的出现
|
|
49
|
-
- 检查数值和单位是否与数据源一致
|
|
50
|
-
- 对于字符串类型(如名称),检查是否精确匹配
|
|
51
|
-
|
|
52
|
-
4. **验证算术规则**
|
|
53
|
-
- 遍历 `story-facts.json` 中的 `rules` 数组
|
|
54
|
-
- 筛选出涉及本章声明的 facts 的规则
|
|
55
|
-
- 验证算术表达式是否成立
|
|
56
|
-
|
|
57
|
-
5. **输出校验结果**
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## 校验报告格式
|
|
62
|
-
|
|
63
|
-
### 成功案例(无问题)
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
✅ Story Facts 校验通过
|
|
67
|
-
|
|
68
|
-
本章声明的事实 (3 个):
|
|
69
|
-
✓ finance-monthly-deficit = 1000灵石
|
|
70
|
-
✓ finance-reserve = 5000灵石
|
|
71
|
-
✓ sect-outer-disciples = 200
|
|
72
|
-
|
|
73
|
-
算术规则 (1 个):
|
|
74
|
-
✓ rule-deficit: 1500 - 500 == 1000 ✅ 成立
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### 检测到不一致
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
⚠️ Story Facts 校验警告
|
|
81
|
-
|
|
82
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
83
|
-
## 数值不一致
|
|
84
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
85
|
-
|
|
86
|
-
❌ finance-monthly-deficit
|
|
87
|
-
数据源: 1000灵石
|
|
88
|
-
正文: "宗门月亏损达到一千五百灵石"
|
|
89
|
-
位置: 第4章.md,第12段
|
|
90
|
-
|
|
91
|
-
建议:
|
|
92
|
-
1. 如果数据源正确,修改正文为 "一千灵石"
|
|
93
|
-
2. 如果剧情发展导致数值变化,使用 /facts update 更新数据源
|
|
94
|
-
|
|
95
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
96
|
-
## 算术规则失败
|
|
97
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
98
|
-
|
|
99
|
-
❌ rule-deficit
|
|
100
|
-
表达式: finance-monthly-expense - finance-monthly-income == finance-monthly-deficit
|
|
101
|
-
计算: 1500 - 500 == 1500 (实际 1000)
|
|
102
|
-
|
|
103
|
-
建议:
|
|
104
|
-
检查 finance-monthly-deficit 的值是否正确,或使用 /facts update 同步更新
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### 未声明引用(提示性)
|
|
108
|
-
|
|
109
|
-
```
|
|
110
|
-
💡 Story Facts 提示
|
|
111
|
-
|
|
112
|
-
检测到正文中可能的新事实(未注册):
|
|
113
|
-
- "外门弟子共有二百人" → 考虑注册为 sect-outer-disciples (number)
|
|
114
|
-
- "青云宗" → 考虑注册为 sect-name (string)
|
|
115
|
-
|
|
116
|
-
使用 /facts 添加这些事实以便后续追踪。
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 校验限制(V1)
|
|
122
|
-
|
|
123
|
-
### 当前支持
|
|
124
|
-
|
|
125
|
-
- ✅ 精确字符串匹配(数字 + 单位)
|
|
126
|
-
- ✅ 算术规则验证(加减乘除、比较)
|
|
127
|
-
- ✅ 字符串精确匹配(如宗门名称)
|
|
128
|
-
- ✅ 枚举值检查
|
|
129
|
-
|
|
130
|
-
### 当前不支持(后续版本)
|
|
131
|
-
|
|
132
|
-
- ❌ 中文数字识别("五百" ≠ 500)
|
|
133
|
-
- ❌ 近义表达匹配("灵石储备" vs "库存灵石")
|
|
134
|
-
- ❌ 语义约束(如 "下三品宗门弟子不超过 200")
|
|
135
|
-
- ❌ date 类型和时间线自动推算
|
|
136
|
-
|
|
137
|
-
### 误报处理
|
|
138
|
-
|
|
139
|
-
**场景**:正文写 "五百灵石",数据源是 500,工具报告不一致。
|
|
140
|
-
|
|
141
|
-
**原因**:V1 仅支持精确匹配,无法识别中文数字。
|
|
142
|
-
|
|
143
|
-
**解决**:
|
|
144
|
-
1. **短期**:建议作者统一使用阿拉伯数字("500 灵石")
|
|
145
|
-
2. **长期**:等待 V2 支持中文数字模糊匹配
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 使用示例
|
|
150
|
-
|
|
151
|
-
### 场景 1: 写作新章节
|
|
152
|
-
|
|
153
|
-
```markdown
|
|
154
|
-
# 第10章 财务困局
|
|
155
|
-
|
|
156
|
-
<!-- story-facts: finance-monthly-deficit, finance-reserve, finance-runway -->
|
|
157
|
-
|
|
158
|
-
第十天,陆衡在执事堂查看账本。
|
|
159
|
-
宗门月亏损一千灵石,而库存仅剩五千灵石,
|
|
160
|
-
按此速度,最多还能撑五个月。
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**自动校验结果**:
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
✅ Story Facts 校验通过
|
|
167
|
-
|
|
168
|
-
本章声明的事实 (3 个):
|
|
169
|
-
✓ finance-monthly-deficit = 1000灵石
|
|
170
|
-
✓ finance-reserve = 5000灵石
|
|
171
|
-
✓ finance-runway = 5月
|
|
172
|
-
|
|
173
|
-
算术规则:
|
|
174
|
-
✓ finance-reserve / finance-monthly-deficit == finance-runway
|
|
175
|
-
计算: 5000 / 1000 == 5 ✅
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### 场景 2: 检测到矛盾
|
|
179
|
-
|
|
180
|
-
```markdown
|
|
181
|
-
# 第15章 意外收入
|
|
182
|
-
|
|
183
|
-
<!-- story-facts: finance-monthly-deficit -->
|
|
184
|
-
|
|
185
|
-
经过三个月的努力,陆衡将宗门月亏损从一千五百灵石降到了五百灵石。
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
**校验结果**:
|
|
189
|
-
|
|
190
|
-
```
|
|
191
|
-
⚠️ Story Facts 校验警告
|
|
192
|
-
|
|
193
|
-
❌ finance-monthly-deficit
|
|
194
|
-
数据源: 1000灵石
|
|
195
|
-
正文出现: "一千五百灵石" 和 "五百灵石"
|
|
196
|
-
|
|
197
|
-
疑似问题:
|
|
198
|
-
1. 正文描述的是变化过程(从 1500 降到 500)
|
|
199
|
-
2. 但数据源当前值是 1000
|
|
200
|
-
|
|
201
|
-
建议:
|
|
202
|
-
- 如果 1000 是第15章前的值,正文描述的 "一千五百" 可能有误
|
|
203
|
-
- 如果剧情中确实发生了变化,考虑:
|
|
204
|
-
a) 更新数据源为新值 500
|
|
205
|
-
b) 或添加新的 fact ID: finance-monthly-deficit-ch15
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
### 场景 3: 新事实提示
|
|
209
|
-
|
|
210
|
-
写作完成后,系统检测到未注册的可量化事实:
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
💡 Story Facts 提示
|
|
214
|
-
|
|
215
|
-
检测到以下可能的新事实(正文中有明确数值但未注册):
|
|
216
|
-
|
|
217
|
-
1. "外门弟子二百人"
|
|
218
|
-
建议 ID: sect-outer-disciples
|
|
219
|
-
类型: number
|
|
220
|
-
值: 200
|
|
221
|
-
单位: 人
|
|
222
|
-
|
|
223
|
-
2. "内门长老十二位"
|
|
224
|
-
建议 ID: sect-inner-elders
|
|
225
|
-
类型: number
|
|
226
|
-
值: 12
|
|
227
|
-
单位: 位
|
|
228
|
-
|
|
229
|
-
使用 /facts 命令添加这些事实以便后续追踪。
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## 新事实检测逻辑
|
|
235
|
-
|
|
236
|
-
### 触发条件
|
|
237
|
-
|
|
238
|
-
在 `/write` 命令的**后置处理阶段**,写作完成后自动执行。
|
|
239
|
-
|
|
240
|
-
### 检测规则
|
|
241
|
-
|
|
242
|
-
扫描正文,查找符合以下模式的文本:
|
|
243
|
-
|
|
244
|
-
1. **数字 + 单位** 组合:
|
|
245
|
-
- 正则:`(\d+)(灵石|人|位|月|年|里|丈|尺|枚|颗|株)`
|
|
246
|
-
- 示例:`1000灵石`、`200人`、`5月`
|
|
247
|
-
|
|
248
|
-
2. **中文数字 + 单位** 组合(识别但提示用户确认):
|
|
249
|
-
- 正则:`(一|二|三|...|十|百|千)(灵石|人|...)`
|
|
250
|
-
- 示例:`五百灵石`、`十二位长老`
|
|
251
|
-
|
|
252
|
-
3. **专有名词** 首次出现(首字母大写或引号包围):
|
|
253
|
-
- 示例:`"青云宗"`、`《青云心法》`
|
|
254
|
-
|
|
255
|
-
### 去重逻辑
|
|
256
|
-
|
|
257
|
-
- 检查 `story-facts.json` 中是否已存在相同值的 fact
|
|
258
|
-
- 检查之前章节的 `<!-- story-facts: ... -->` 注释中是否已声明
|
|
259
|
-
|
|
260
|
-
### 输出格式
|
|
261
|
-
|
|
262
|
-
仅**提示**,不自动注册。用户需手动使用 `/facts` 命令添加。
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## 与 /write 命令的集成
|
|
267
|
-
|
|
268
|
-
### 集成点 1: 资源加载阶段
|
|
269
|
-
|
|
270
|
-
**时机**:开始写作前
|
|
271
|
-
|
|
272
|
-
**操作**:
|
|
273
|
-
1. 读取当前章节是否已有 `<!-- story-facts: ... -->` 注释
|
|
274
|
-
2. 如果有,从 `story-facts.json` 加载这些 fact 的当前值
|
|
275
|
-
3. 展示给作者作为写作参考
|
|
276
|
-
|
|
277
|
-
**输出格式**:
|
|
278
|
-
|
|
279
|
-
```
|
|
280
|
-
📋 本章引用的设定事实(来自 story-facts.json):
|
|
281
|
-
|
|
282
|
-
- finance-monthly-deficit: 宗门月亏损 = 1000灵石
|
|
283
|
-
- finance-reserve: 灵石储备 = 5000灵石
|
|
284
|
-
- finance-runway: 储备可撑月数 = 5月
|
|
285
|
-
|
|
286
|
-
⚠️ 写作时请确保上述数值与正文一致。
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### 集成点 2: 质量自检阶段
|
|
290
|
-
|
|
291
|
-
**时机**:章节写作完成,进入自检流程
|
|
292
|
-
|
|
293
|
-
**操作**:
|
|
294
|
-
1. 自动调用 facts-checker skill
|
|
295
|
-
2. 执行上述"自动校验流程"
|
|
296
|
-
3. 输出校验报告
|
|
297
|
-
|
|
298
|
-
**处理策略**:
|
|
299
|
-
- **不阻断写作流程**:即使检测到不一致,也允许写作完成
|
|
300
|
-
- 输出警告,提示用户后续修复
|
|
301
|
-
|
|
302
|
-
### 集成点 3: 后置处理阶段
|
|
303
|
-
|
|
304
|
-
**时机**:所有质量检查完成后
|
|
305
|
-
|
|
306
|
-
**操作**:
|
|
307
|
-
1. 执行新事实检测
|
|
308
|
-
2. 如果检测到未注册的可量化事实,输出提示
|
|
309
|
-
3. 询问用户是否需要注册
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
|
-
## 最佳实践
|
|
314
|
-
|
|
315
|
-
### 作者角度
|
|
316
|
-
|
|
317
|
-
1. **写作前查看引用的事实**:
|
|
318
|
-
- 如果章节已有 `<!-- story-facts: ... -->` 注释,开始写作时会自动展示
|
|
319
|
-
- 将这些数值作为写作时的快速参考
|
|
320
|
-
|
|
321
|
-
2. **写作完成后检查报告**:
|
|
322
|
-
- 如果 facts-checker 报告不一致,优先相信数据源
|
|
323
|
-
- 如果剧情确实发生变化,使用 `/facts update` 更新
|
|
324
|
-
|
|
325
|
-
3. **及时注册新事实**:
|
|
326
|
-
- 看到"新事实提示"时,评估是否需要追踪
|
|
327
|
-
- 关键数值(如经济、人员、时间)应立即注册
|
|
328
|
-
|
|
329
|
-
### 技术角度
|
|
330
|
-
|
|
331
|
-
1. **章节注释是声明性的**:
|
|
332
|
-
- 注释头只是"声明"本章引用了哪些事实
|
|
333
|
-
- 实际值永远以 `story-facts.json` 为准
|
|
334
|
-
|
|
335
|
-
2. **正文是校验目标**:
|
|
336
|
-
- facts-checker 检查正文中的值是否与数据源一致
|
|
337
|
-
- 不检查未声明的事实(避免误报)
|
|
338
|
-
|
|
339
|
-
3. **算术规则是保护网**:
|
|
340
|
-
- 如果数值之间有数学关系,应在 `rules` 中声明
|
|
341
|
-
- 校验时自动验证这些关系是否成立
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## 调试和问题排查
|
|
346
|
-
|
|
347
|
-
### 常见问题
|
|
348
|
-
|
|
349
|
-
#### 1. "章节未声明任何事实,跳过校验"
|
|
350
|
-
|
|
351
|
-
**原因**:章节头部没有 `<!-- story-facts: ... -->` 注释
|
|
352
|
-
|
|
353
|
-
**解决**:
|
|
354
|
-
- 如果本章确实引用了已注册的事实,手动添加注释
|
|
355
|
-
- 如果是新章节,写作完成后会自动添加
|
|
356
|
-
|
|
357
|
-
#### 2. "无法读取 story-facts.json"
|
|
358
|
-
|
|
359
|
-
**原因**:文件不存在或路径错误
|
|
360
|
-
|
|
361
|
-
**解决**:
|
|
362
|
-
- 执行 `/facts` 初始化数据源(会创建空文件)
|
|
363
|
-
- 确认项目是通过 `novelws init` 生成的
|
|
364
|
-
|
|
365
|
-
#### 3. "检测到不一致但我确认正文正确"
|
|
366
|
-
|
|
367
|
-
**原因**:数据源过期或初始值设置错误
|
|
368
|
-
|
|
369
|
-
**解决**:
|
|
370
|
-
- 使用 `/facts update <fact-id>` 更新数据源
|
|
371
|
-
- 或直接编辑 `story-facts.json`(不推荐,可能漏掉其他引用)
|
|
372
|
-
|
|
373
|
-
#### 4. "算术规则总是失败"
|
|
374
|
-
|
|
375
|
-
**原因**:expression 语法错误或涉及的 fact ID 不存在
|
|
376
|
-
|
|
377
|
-
**解决**:
|
|
378
|
-
- 检查 `story-facts.json` 中的 `rules[].expression`
|
|
379
|
-
- 确保使用的 fact ID 都已注册
|
|
380
|
-
- 验证表达式语法(如 `A - B == C`)
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## 版本演进路线
|
|
385
|
-
|
|
386
|
-
### V1(当前)
|
|
387
|
-
|
|
388
|
-
- 声明引用校验(基于章节注释头)
|
|
389
|
-
- 精确字符串匹配
|
|
390
|
-
- 算术规则验证
|
|
391
|
-
- 新事实检测提示
|
|
392
|
-
|
|
393
|
-
### V2(计划中)
|
|
394
|
-
|
|
395
|
-
- 中文数字识别("五百" = 500)
|
|
396
|
-
- 近义表达模糊匹配
|
|
397
|
-
- 自动推断引用(即使没有注释头)
|
|
398
|
-
- tracking 文件中的事实引用扫描
|
|
399
|
-
|
|
400
|
-
### V3(未来)
|
|
401
|
-
|
|
402
|
-
- date 类型支持
|
|
403
|
-
- 时间线自动推算(如 "三个月后" 自动计算日期)
|
|
404
|
-
- 语义约束规则(基于自然语言描述的复杂规则)
|
|
405
|
-
- 多故事事实共享(系列小说场景)
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: forgotten-elements-reminder
|
|
3
|
-
description: "Automatically reminds when important story elements (characters, plot lines, foreshadowing) haven't appeared for 10+ chapters - prevents 'disappeared character syndrome' and dropped plot threads in long-form fiction"
|
|
4
|
-
allowed-tools: Read, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# 遗忘元素提醒器
|
|
8
|
-
|
|
9
|
-
## 核心功能
|
|
10
|
-
|
|
11
|
-
**防止长篇小说常见问题**:
|
|
12
|
-
- 角色突然消失("配角A去哪了?")
|
|
13
|
-
- 情节线被遗忘("那个伏笔后来呢?")
|
|
14
|
-
- 伏笔没回收("前文说的宝藏呢?")
|
|
15
|
-
|
|
16
|
-
**解决方案**:后台监控,主动提醒已经很久未出现的元素。
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 监控内容
|
|
21
|
-
|
|
22
|
-
### 1. 角色出场频率
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
监控:character-state.json中的所有角色
|
|
26
|
-
阈值:10章未出现
|
|
27
|
-
|
|
28
|
-
提醒示例:
|
|
29
|
-
⚠️ 角色提醒:
|
|
30
|
-
"配角李明"已经10章未出现(上次:第5章)
|
|
31
|
-
- 是否应该安排他再次出场?
|
|
32
|
-
- 还是这个角色的故事已结束?
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### 2. 情节线进度
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
监控:plot-tracker.json中的活跃情节线
|
|
39
|
-
阈值:12章无进展
|
|
40
|
-
|
|
41
|
-
提醒示例:
|
|
42
|
-
⚠️ 情节线提醒:
|
|
43
|
-
"寻找父亲仇人"情节线已12章无进展
|
|
44
|
-
- 上次推进:第8章
|
|
45
|
-
- 当前状态:pending
|
|
46
|
-
- 建议:安排相关情节或标记为暂停
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 3. 伏笔回收
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
监控:在前文埋下的重要伏笔
|
|
53
|
-
阈值:20章未回收
|
|
54
|
-
|
|
55
|
-
提醒示例:
|
|
56
|
-
⚠️ 伏笔提醒:
|
|
57
|
-
第3章提到"神秘盒子",至今未揭秘(已过23章)
|
|
58
|
-
- 读者可能已经忘记
|
|
59
|
-
- 建议:尽快回收或在对话中提及
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## 提醒时机
|
|
65
|
-
|
|
66
|
-
### 写作前提醒
|
|
67
|
-
|
|
68
|
-
```
|
|
69
|
-
执行 `/write` 时,如果检测到遗忘元素:
|
|
70
|
-
|
|
71
|
-
📋 写作前检查...
|
|
72
|
-
⚠️ 发现3个被遗忘的元素:
|
|
73
|
-
|
|
74
|
-
1. 角色"张婶"已15章未出现
|
|
75
|
-
2. 情节线"寻宝"已13章无进展
|
|
76
|
-
3. 伏笔"神秘信件"已20章未揭秘
|
|
77
|
-
|
|
78
|
-
💡 本章是否考虑处理?
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### 分析时汇总
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
执行 `/analyze` 时,生成完整报告:
|
|
85
|
-
|
|
86
|
-
## 遗忘元素报告
|
|
87
|
-
|
|
88
|
-
### 失踪角色(3个)
|
|
89
|
-
1. 张婶(15章未出场)
|
|
90
|
-
2. 李老板(11章未出场)
|
|
91
|
-
3. 王医生(10章未出场)
|
|
92
|
-
|
|
93
|
-
### 停滞情节线(2个)
|
|
94
|
-
1. 寻宝线(13章无进展)
|
|
95
|
-
2. 复仇线(12章无进展)
|
|
96
|
-
|
|
97
|
-
### 未回收伏笔(1个)
|
|
98
|
-
1. 神秘信件(20章未揭秘)
|
|
99
|
-
|
|
100
|
-
建议:
|
|
101
|
-
- 优先处理失踪角色(读者可能已忘记)
|
|
102
|
-
- 推进停滞情节线或标记为"暂停"
|
|
103
|
-
- 伏笔及时回收(否则成烂尾)
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## 配置选项
|
|
109
|
-
|
|
110
|
-
### 调整阈值
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
"角色未出场提醒阈值改为15章"
|
|
114
|
-
"情节线停滞提醒阈值改为20章"
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### 排除特定元素
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
"张婶角色已完结,不再提醒"
|
|
121
|
-
"寻宝线有意暂停,30章后才推进,不提醒"
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## 最佳实践
|
|
127
|
-
|
|
128
|
-
1. **定期查看**:每10章运行一次 `/analyze` 查看报告
|
|
129
|
-
2. **及时处理**:不要让太多元素堆积
|
|
130
|
-
3. **主动标记**:已完结的角色标记为"retired"
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## 总结
|
|
135
|
-
|
|
136
|
-
forgotten-elements-reminder = 你的**记忆助手**
|
|
137
|
-
|
|
138
|
-
✓ 自动监控角色/情节/伏笔
|
|
139
|
-
✓ 超过阈值主动提醒
|
|
140
|
-
✓ 防止长篇小说烂尾
|
|
141
|
-
|
|
142
|
-
**长篇小说必备!** 📝
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
**本Skill版本**: v1.0
|
|
147
|
-
**最后更新**: 2025-10-18
|