novelws 3.1.0 → 4.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 +74 -0
- package/README.md +47 -49
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -33
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +63 -6
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/core/config.d.ts +22 -15
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +28 -16
- package/dist/core/config.js.map +1 -1
- package/dist/utils/diagnostics.d.ts.map +1 -1
- package/dist/utils/diagnostics.js +6 -5
- package/dist/utils/diagnostics.js.map +1 -1
- package/package.json +1 -1
- package/templates/commands/analyze.md +10 -10
- package/templates/commands/character.md +10 -10
- package/templates/commands/checklist.md +27 -27
- package/templates/commands/clarify.md +2 -2
- package/templates/commands/constitution.md +8 -8
- package/templates/commands/expert.md +3 -3
- package/templates/commands/facts.md +9 -9
- package/templates/commands/guide.md +25 -25
- package/templates/commands/help-me.md +2 -2
- package/templates/commands/plan.md +26 -26
- package/templates/commands/recap.md +16 -16
- package/templates/commands/relations.md +13 -13
- package/templates/commands/revise.md +15 -15
- package/templates/commands/search.md +10 -10
- package/templates/commands/specify.md +4 -4
- package/templates/commands/tasks.md +9 -9
- package/templates/commands/timeline.md +13 -13
- package/templates/commands/track-init.md +8 -8
- package/templates/commands/track.md +22 -22
- package/templates/commands/volume-summary.md +6 -6
- package/templates/commands/write.md +125 -38
- package/templates/dot-claude/CLAUDE.md +5 -5
- package/templates/{config → resources/config}/keyword-mappings.json +19 -19
- package/templates/{scripts → resources/scripts}/README.md +8 -8
- package/templates/{scripts → resources/scripts}/bash/analyze-story.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/check-consistency.sh +7 -7
- package/templates/{scripts → resources/scripts}/bash/check-facts.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/check-plot.sh +2 -2
- package/templates/{scripts → resources/scripts}/bash/check-timeline.sh +3 -3
- package/templates/{scripts → resources/scripts}/bash/check-world.sh +5 -5
- package/templates/{scripts → resources/scripts}/bash/check-writing-state.sh +26 -26
- package/templates/{scripts → resources/scripts}/bash/common.sh +3 -3
- package/templates/{scripts → resources/scripts}/bash/constitution.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/init-tracking.sh +13 -13
- package/templates/{scripts → resources/scripts}/bash/manage-relations.sh +10 -10
- package/templates/{scripts → resources/scripts}/bash/migrate-tracking.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/plan-story.sh +2 -2
- package/templates/{scripts → resources/scripts}/bash/specify-story.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/tasks-story.sh +2 -2
- package/templates/{scripts → resources/scripts}/bash/tests/bench-preload-cache.sh +3 -3
- package/templates/{scripts → resources/scripts}/bash/tests/test-cross-platform.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/tests/test-preload-cache.sh +1 -1
- package/templates/{scripts → resources/scripts}/bash/tests/test-regex-precompile.sh +4 -4
- package/templates/{scripts → resources/scripts}/bash/text-audit.sh +3 -3
- package/templates/{scripts → resources/scripts}/bash/track-progress.sh +5 -5
- package/templates/{scripts → resources/scripts}/powershell/analyze-story.ps1 +1 -1
- package/templates/{scripts → resources/scripts}/powershell/check-consistency.ps1 +8 -8
- package/templates/{scripts → resources/scripts}/powershell/check-plot.ps1 +2 -2
- package/templates/{scripts → resources/scripts}/powershell/check-timeline.ps1 +2 -2
- package/templates/{scripts → resources/scripts}/powershell/check-writing-state.ps1 +31 -31
- package/templates/{scripts → resources/scripts}/powershell/common.ps1 +2 -2
- package/templates/{scripts → resources/scripts}/powershell/constitution.ps1 +1 -1
- package/templates/{scripts → resources/scripts}/powershell/init-tracking.ps1 +5 -5
- package/templates/{scripts → resources/scripts}/powershell/manage-relations.ps1 +6 -6
- package/templates/{scripts → resources/scripts}/powershell/migrate-tracking.ps1 +1 -1
- package/templates/{scripts → resources/scripts}/powershell/plan-story.ps1 +2 -2
- package/templates/{scripts → resources/scripts}/powershell/specify-story.ps1 +1 -1
- package/templates/{scripts → resources/scripts}/powershell/tests/bench-ps-cache.ps1 +10 -10
- package/templates/{scripts → resources/scripts}/powershell/tests/test-ps-cache.ps1 +4 -4
- package/templates/{scripts → resources/scripts}/powershell/text-audit.ps1 +2 -2
- package/templates/{scripts → resources/scripts}/powershell/track-progress.ps1 +2 -2
- package/templates/skills/analysis/character-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/foreshadow-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/hook-analysis/SKILL.md +2 -2
- package/templates/skills/analysis/logic-analysis/SKILL.md +2 -2
- package/templates/skills/analysis/opening-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/pacing-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/power-analysis/SKILL.md +3 -3
- package/templates/skills/analysis/reader-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/style-analysis/SKILL.md +1 -1
- package/templates/skills/analysis/voice-analysis/SKILL.md +1 -1
- package/templates/skills/auto-tracking/SKILL.md +1 -1
- package/templates/skills/quality-assurance/consistency-checker/SKILL.md +1 -1
- package/templates/skills/quality-assurance/facts-checker/SKILL.md +2 -2
- package/templates/skills/quality-assurance/hook-checker/SKILL.md +2 -2
- package/templates/skills/quality-assurance/long-series-continuity/SKILL.md +7 -7
- package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +22 -22
- package/templates/skills/quality-assurance/setting-detector/SKILL.md +15 -15
- package/templates/skills/quality-assurance/voice-consistency-checker/SKILL.md +1 -1
- package/templates/skills/writing-techniques/character-arc/SKILL.md +1 -1
- package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +1 -1
- package/templates/skills/writing-techniques/reader-expectation/SKILL.md +1 -1
- package/templates/skills/writing-techniques/revision-polish/SKILL.md +1 -1
- package/templates/skills/writing-techniques/style-learning/SKILL.md +2 -2
- package/templates/skills/writing-techniques/writing-balance/SKILL.md +1 -1
- package/templates/knowledge-base/README.md +0 -285
- /package/templates/{knowledge-base → resources}/character-archetypes/01-hero.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/02-mentor.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/03-shadow.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/04-ally.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/05-shapeshifter.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/06-trickster.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/07-threshold-guardian.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/08-herald.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/09-father.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/10-mother.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/11-child.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/12-sage.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/README.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/application-guide.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/archetype-combinations.md +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/config.yaml +0 -0
- /package/templates/{knowledge-base → resources}/character-archetypes/examples-analysis.md +0 -0
- /package/templates/{specification-example.md → resources/config/specification-example.md} +0 -0
- /package/templates/{knowledge-base → resources}/craft/character-arc.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/dialogue.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/hook-design.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/pacing.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/power-system.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/scene-structure.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/show-not-tell.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/story-structures.md +0 -0
- /package/templates/{knowledge-base → resources}/craft/tension-management.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/01-first-meeting.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/02-bonding-moment.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/03-declaration.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/04-triumph.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/05-reunion.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/06-forgiveness.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/07-betrayal.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/08-loss.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/09-rejection.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/10-failure.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/11-misunderstanding.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/12-farewell.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/13-revelation.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/14-point-of-no-return.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/15-dark-night.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/16-sacrifice.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/17-awakening.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/18-confrontation.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/19-bittersweet-goodbye.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/20-moral-dilemma.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/21-temptation.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/22-redemption.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/README.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/beat-sequences.md +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/config.yaml +0 -0
- /package/templates/{knowledge-base → resources}/emotional-beats/pacing-guide.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/game-lit.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/historical.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/horror.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/military.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/mystery.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/rebirth.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/revenge.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/romance.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/sci-fi.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/sports.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/thriller.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/urban.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/workplace.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/wuxia.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/xuanhuan.md +0 -0
- /package/templates/{knowledge-base → resources}/genres/youth.md +0 -0
- /package/templates/{memory → resources/memory}/constitution.md +0 -0
- /package/templates/{memory → resources/memory}/personal-voice.md +0 -0
- /package/templates/{knowledge-base → resources}/references/README.md +0 -0
- /package/templates/{knowledge-base → resources}/references/china-1920s/culture.md +0 -0
- /package/templates/{knowledge-base → resources}/references/china-1920s/daily-life.md +0 -0
- /package/templates/{knowledge-base → resources}/references/china-1920s/overview.md +0 -0
- /package/templates/{knowledge-base → resources}/references/china-1920s/society.md +0 -0
- /package/templates/{knowledge-base → resources}/references/china-1920s/warlords.md +0 -0
- /package/templates/{knowledge-base → resources}/references/cultivation-world/daily-life.md +0 -0
- /package/templates/{knowledge-base → resources}/references/cultivation-world/overview.md +0 -0
- /package/templates/{knowledge-base → resources}/references/cultivation-world/power-system.md +0 -0
- /package/templates/{knowledge-base → resources}/references/cultivation-world/sects.md +0 -0
- /package/templates/{knowledge-base → resources}/references/cultivation-world/world-setting.md +0 -0
- /package/templates/{knowledge-base → resources}/references/modern-workplace/corporate.md +0 -0
- /package/templates/{knowledge-base → resources}/references/modern-workplace/daily-life.md +0 -0
- /package/templates/{knowledge-base → resources}/references/modern-workplace/overview.md +0 -0
- /package/templates/{knowledge-base → resources}/references/modern-workplace/relationships.md +0 -0
- /package/templates/{knowledge-base → resources}/references/modern-workplace/tech-industry.md +0 -0
- /package/templates/{knowledge-base → resources}/references/tang-dynasty/culture.md +0 -0
- /package/templates/{knowledge-base → resources}/references/tang-dynasty/daily-life.md +0 -0
- /package/templates/{knowledge-base → resources}/references/tang-dynasty/overview.md +0 -0
- /package/templates/{knowledge-base → resources}/references/tang-dynasty/politics.md +0 -0
- /package/templates/{knowledge-base → resources}/references/tang-dynasty/society.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/README.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/anti-ai-v3.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/anti-ai-v4-deprecated.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/anti-ai-v5-balanced.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/concretization.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/fast-paced.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/no-poison.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/romance-angst.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/romance-sweet.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/serious-literature.md +0 -0
- /package/templates/{knowledge-base → resources}/requirements/strong-emotion.md +0 -0
- /package/templates/{scripts → resources/scripts}/bash/check-analyze-stage.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/clarify-story.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/generate-tasks.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/test-word-count.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/run-all-benchmarks.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/test-cache-semantics.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/test-edge-cases-bash.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/test-phase1-bash.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/test-regression-bash.sh +0 -0
- /package/templates/{scripts → resources/scripts}/bash/tests/test-task6-verification.sh +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/check-analyze-stage.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/check-facts.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/clarify-story.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/generate-tasks.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/tests/test-cross-platform.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/tests/test-edge-cases-ps.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/tests/test-phase1-ps.ps1 +0 -0
- /package/templates/{scripts → resources/scripts}/powershell/tests/test-regression-ps.ps1 +0 -0
- /package/templates/{knowledge-base → resources}/styles/README.md +0 -0
- /package/templates/{knowledge-base → resources}/styles/ancient-style.md +0 -0
- /package/templates/{knowledge-base → resources}/styles/literary.md +0 -0
- /package/templates/{knowledge-base → resources}/styles/minimal.md +0 -0
- /package/templates/{knowledge-base → resources}/styles/natural-voice.md +0 -0
- /package/templates/{knowledge-base → resources}/styles/web-novel.md +0 -0
package/dist/core/config.js
CHANGED
|
@@ -60,6 +60,8 @@ export const DIRS = {
|
|
|
60
60
|
SCRIPTS: 'scripts',
|
|
61
61
|
SUMMARY: 'summary',
|
|
62
62
|
VOLUMES: 'volumes',
|
|
63
|
+
RESOURCES: 'resources',
|
|
64
|
+
CACHE: '.cache',
|
|
63
65
|
};
|
|
64
66
|
/** 文件名常量 */
|
|
65
67
|
export const FILES = {
|
|
@@ -67,6 +69,9 @@ export const FILES = {
|
|
|
67
69
|
PLUGIN_REGISTRY: 'plugins.json',
|
|
68
70
|
PLUGIN_CONFIG: 'config.yaml',
|
|
69
71
|
GITIGNORE: '.gitignore',
|
|
72
|
+
MCP_SERVERS: 'mcp-servers.json',
|
|
73
|
+
RESOURCE_DIGEST: 'resource-digest.json',
|
|
74
|
+
WRITE_CONTEXT: 'write-context.json',
|
|
70
75
|
};
|
|
71
76
|
/** 默认 .gitignore 内容 */
|
|
72
77
|
export const DEFAULT_GITIGNORE = `# 临时文件
|
|
@@ -105,24 +110,33 @@ export function getBuiltinPluginsDir() {
|
|
|
105
110
|
export function getProjectPaths(projectRoot) {
|
|
106
111
|
return {
|
|
107
112
|
root: projectRoot,
|
|
108
|
-
|
|
109
|
-
specifyConfig: path.join(projectRoot, DIRS.SPECIFY, FILES.CONFIG),
|
|
110
|
-
specifyMemory: path.join(projectRoot, DIRS.SPECIFY, DIRS.MEMORY),
|
|
111
|
-
specifyTemplates: path.join(projectRoot, DIRS.SPECIFY, DIRS.TEMPLATES),
|
|
112
|
-
pluginRegistry: path.join(projectRoot, DIRS.SPECIFY, FILES.PLUGIN_REGISTRY),
|
|
113
|
+
// .claude/ 区域
|
|
113
114
|
claude: path.join(projectRoot, DIRS.CLAUDE),
|
|
114
115
|
claudeMd: path.join(projectRoot, DIRS.CLAUDE, 'CLAUDE.md'),
|
|
115
116
|
commands: path.join(projectRoot, DIRS.CLAUDE, DIRS.COMMANDS),
|
|
116
117
|
skills: path.join(projectRoot, DIRS.CLAUDE, DIRS.SKILLS),
|
|
118
|
+
mcpServers: path.join(projectRoot, DIRS.CLAUDE, FILES.MCP_SERVERS),
|
|
119
|
+
cache: path.join(projectRoot, DIRS.CLAUDE, DIRS.CACHE),
|
|
120
|
+
resourceDigest: path.join(projectRoot, DIRS.CLAUDE, DIRS.CACHE, FILES.RESOURCE_DIGEST),
|
|
121
|
+
writeContext: path.join(projectRoot, DIRS.CLAUDE, DIRS.CACHE, FILES.WRITE_CONTEXT),
|
|
122
|
+
// resources/ 区域
|
|
123
|
+
resources: path.join(projectRoot, DIRS.RESOURCES),
|
|
124
|
+
resourcesConfig: path.join(projectRoot, DIRS.RESOURCES, 'config', FILES.CONFIG),
|
|
125
|
+
resourcesMemory: path.join(projectRoot, DIRS.RESOURCES, DIRS.MEMORY),
|
|
126
|
+
resourcesScripts: path.join(projectRoot, DIRS.RESOURCES, DIRS.SCRIPTS),
|
|
127
|
+
resourcesKnowledge: path.join(projectRoot, DIRS.RESOURCES, DIRS.KNOWLEDGE),
|
|
128
|
+
pluginRegistry: path.join(projectRoot, DIRS.RESOURCES, 'config', FILES.PLUGIN_REGISTRY),
|
|
129
|
+
// tracking/ 区域(顶层)
|
|
130
|
+
tracking: path.join(projectRoot, DIRS.TRACKING),
|
|
131
|
+
trackingSummary: path.join(projectRoot, DIRS.TRACKING, DIRS.SUMMARY),
|
|
132
|
+
trackingVolumes: path.join(projectRoot, DIRS.TRACKING, DIRS.VOLUMES),
|
|
133
|
+
trackingDb: path.join(projectRoot, DIRS.TRACKING, 'novel-tracking.db'),
|
|
134
|
+
// 不变
|
|
117
135
|
stories: path.join(projectRoot, DIRS.STORIES),
|
|
118
|
-
spec: path.join(projectRoot, DIRS.SPEC),
|
|
119
|
-
tracking: path.join(projectRoot, DIRS.SPEC, DIRS.TRACKING),
|
|
120
|
-
knowledge: path.join(projectRoot, DIRS.SPEC, DIRS.KNOWLEDGE),
|
|
121
136
|
plugins: path.join(projectRoot, DIRS.PLUGINS),
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
trackingVolumes: path.join(projectRoot, DIRS.SPEC, DIRS.TRACKING, DIRS.VOLUMES),
|
|
137
|
+
// 旧路径(保留用于 upgrade 迁移检测)
|
|
138
|
+
_legacy_specify: path.join(projectRoot, '.specify'),
|
|
139
|
+
_legacy_spec: path.join(projectRoot, 'spec'),
|
|
126
140
|
};
|
|
127
141
|
}
|
|
128
142
|
/**
|
|
@@ -133,12 +147,10 @@ export function getTemplateSourcePaths() {
|
|
|
133
147
|
return {
|
|
134
148
|
commands: path.join(templatesDir, DIRS.COMMANDS),
|
|
135
149
|
skills: path.join(templatesDir, DIRS.SKILLS),
|
|
136
|
-
|
|
150
|
+
dotClaude: path.join(templatesDir, 'dot-claude'),
|
|
151
|
+
resources: path.join(templatesDir, DIRS.RESOURCES),
|
|
137
152
|
tracking: path.join(templatesDir, DIRS.TRACKING),
|
|
138
153
|
knowledge: path.join(templatesDir, DIRS.KNOWLEDGE),
|
|
139
|
-
knowledgeBase: path.join(templatesDir, DIRS.KNOWLEDGE_BASE),
|
|
140
|
-
scripts: path.join(templatesDir, DIRS.SCRIPTS),
|
|
141
|
-
dotClaude: path.join(templatesDir, 'dot-claude'),
|
|
142
154
|
trackingSummary: path.join(templatesDir, DIRS.TRACKING, DIRS.SUMMARY),
|
|
143
155
|
all: templatesDir,
|
|
144
156
|
};
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,mBAAmB;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,eAAe;IACf,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mBAAmB;IACnB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,kBAAkB;AAClB,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;AAEtD,YAAY;AACZ,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,mBAAmB;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,eAAe;IACf,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mBAAmB;IACnB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,kBAAkB;AAClB,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;AAEtD,YAAY;AACZ,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,cAAc,EAAE,gBAAgB;IAChC,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,QAAQ;CACP,CAAC;AAEX,YAAY;AACZ,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,MAAM,EAAE,aAAa;IACrB,eAAe,EAAE,cAAc;IAC/B,aAAa,EAAE,aAAa;IAC5B,SAAS,EAAE,YAAY;IACvB,WAAW,EAAE,kBAAkB;IAC/B,eAAe,EAAE,sBAAsB;IACvC,aAAa,EAAE,oBAAoB;CAC3B,CAAC;AAEX,uBAAuB;AACvB,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;CAchC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,eAAe;AACf,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC;AAED,iBAAiB;AACjB,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,cAAc;QACd,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC;QAC3C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QAC1D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC5D,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACxD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC;QAClE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC;QACtD,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC;QACtF,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;QAElF,gBAAgB;QAChB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC;QACjD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;QAC/E,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;QACpE,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;QACtE,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC;QAC1E,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,eAAe,CAAC;QAEvF,mBAAmB;QACnB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC;QAC/C,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACpE,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACpE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QAEtE,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAC7C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAE7C,yBAAyB;QACzB,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;QACnD,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;KAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;QAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;QAClD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;QAClD,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC;QACrE,GAAG,EAAE,YAAY;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,WAAW;AACX,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAExE,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBrF;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BtE;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsCnE;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBjE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/utils/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,WAAW;AACX,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,YAAY;AACZ,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,WAAW;AACX,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;AAExE,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBrF;;OAEG;IACG,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA2BtE;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsCnE;;OAEG;IACG,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBjE;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4B/D;;OAEG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuCnE;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBlE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IAuB9C,OAAO,CAAC,eAAe;CAWxB"}
|
|
@@ -35,7 +35,7 @@ export class ProjectDiagnostics {
|
|
|
35
35
|
async checkProjectStructure(projectRoot) {
|
|
36
36
|
const paths = getProjectPaths(projectRoot);
|
|
37
37
|
const requiredDirs = [
|
|
38
|
-
{ path: paths.
|
|
38
|
+
{ path: paths.resources, label: 'resources' },
|
|
39
39
|
{ path: paths.claude, label: '.claude' },
|
|
40
40
|
{ path: paths.commands, label: '.claude/commands' },
|
|
41
41
|
];
|
|
@@ -64,7 +64,7 @@ export class ProjectDiagnostics {
|
|
|
64
64
|
return {
|
|
65
65
|
name: 'Tracking 文件',
|
|
66
66
|
passed: false,
|
|
67
|
-
message: '
|
|
67
|
+
message: 'tracking 目录不存在',
|
|
68
68
|
fix: '/track --sync',
|
|
69
69
|
};
|
|
70
70
|
}
|
|
@@ -113,8 +113,9 @@ export class ProjectDiagnostics {
|
|
|
113
113
|
* 检查 4: MCP 服务器状态
|
|
114
114
|
*/
|
|
115
115
|
async checkMCPStatus(projectRoot) {
|
|
116
|
-
const
|
|
117
|
-
const
|
|
116
|
+
const paths = getProjectPaths(projectRoot);
|
|
117
|
+
const dbPath = paths.trackingDb;
|
|
118
|
+
const mcpConfigPath = paths.mcpServers;
|
|
118
119
|
const hasDb = await fs.pathExists(dbPath);
|
|
119
120
|
const hasMcpConfig = await fs.pathExists(mcpConfigPath);
|
|
120
121
|
if (!hasMcpConfig) {
|
|
@@ -176,7 +177,7 @@ export class ProjectDiagnostics {
|
|
|
176
177
|
*/
|
|
177
178
|
async detectProjectMode(projectRoot) {
|
|
178
179
|
const paths = getProjectPaths(projectRoot);
|
|
179
|
-
const dbPath =
|
|
180
|
+
const dbPath = paths.trackingDb;
|
|
180
181
|
if (await fs.pathExists(dbPath)) {
|
|
181
182
|
return 'mcp';
|
|
182
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/utils/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/utils/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,8 +4,8 @@ argument-hint: [--type=framework|content] [--range ch-XXX-YYY | --volume vol-XX
|
|
|
4
4
|
recommended-model: claude-sonnet-4-5-20250929 # 分析任务,质量与速度平衡;深度分析可用 opus
|
|
5
5
|
allowed-tools: Bash(find:*), Bash(wc:*), Bash(grep:*), Read(//**), Read(//plugins/**), Read(//plugins/**), Write(//stories/**/analysis-report.md), Bash(*)
|
|
6
6
|
scripts:
|
|
7
|
-
sh:
|
|
8
|
-
ps:
|
|
7
|
+
sh: resources/scripts/bash/check-analyze-stage.sh --json
|
|
8
|
+
ps: resources/scripts/powershell/check-analyze-stage.ps1 -Json
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
对小说项目进行智能化综合分析。根据当前创作阶段,自动选择执行**框架一致性分析**(write 之前)或**内容质量分析**(write 之后)。
|
|
@@ -32,8 +32,8 @@ scripts:
|
|
|
32
32
|
`--range` / `--volume` 分析时,按优先级加载:
|
|
33
33
|
|
|
34
34
|
1. **Layer 1: MCP 查询**:`query_characters`、`query_plot`、`query_timeline`、`stats_volume`(均传 `--volume=vol-XX`)
|
|
35
|
-
2. **Layer 2: 分片 JSON**:`
|
|
36
|
-
3. **Layer 3: 单文件 JSON**:`
|
|
35
|
+
2. **Layer 2: 分片 JSON**:`tracking/volumes/vol-XX/` 下 4 个分片 + `summary/volume-summaries.json`
|
|
36
|
+
3. **Layer 3: 单文件 JSON**:`tracking/` 下单文件,按章节范围手动过滤
|
|
37
37
|
|
|
38
38
|
### 5. --volume-report 综合报告
|
|
39
39
|
|
|
@@ -43,9 +43,9 @@ scripts:
|
|
|
43
43
|
|
|
44
44
|
### 6. 资源加载
|
|
45
45
|
|
|
46
|
-
**基准文档**(参考 CLAUDE.md
|
|
46
|
+
**基准文档**(参考 CLAUDE.md 资源加载规则):`resources/memory/constitution.md`、`stories/*/specification.md`、`stories/*/creative-plan.md`、`stories/*/tasks.md`
|
|
47
47
|
|
|
48
|
-
**分析专用**:`
|
|
48
|
+
**分析专用**:`resources/craft/` 全部 + `templates/skills/quality-assurance/` QA skills
|
|
49
49
|
|
|
50
50
|
**覆盖与触发**:`specification.md` 的 `resource-loading.analysis` 配置覆盖默认加载;`keyword-triggers.enabled` 扫描 `--check` 参数动态加载 skills。会话级资源复用,不重复读取。
|
|
51
51
|
|
|
@@ -202,15 +202,15 @@ scripts:
|
|
|
202
202
|
应用后追加更新记录到 `tracking-log.md`。
|
|
203
203
|
|
|
204
204
|
**分片模式写入协议**:
|
|
205
|
-
- 如果检测到 `
|
|
206
|
-
- 更新该卷的分片文件(如 `
|
|
207
|
-
- 同步更新全局摘要文件(如 `
|
|
205
|
+
- 如果检测到 `tracking/volumes/` 存在,确定章节所属卷
|
|
206
|
+
- 更新该卷的分片文件(如 `tracking/volumes/vol-03/character-state.json`)
|
|
207
|
+
- 同步更新全局摘要文件(如 `tracking/summary/characters-summary.json`)
|
|
208
208
|
- 如果 MCP 可用,调用 `sync_from_json` 同步到 SQLite
|
|
209
209
|
|
|
210
210
|
**错误处理**:
|
|
211
211
|
- tracking 文件不存在 → 建议运行 `/track --init`
|
|
212
212
|
- JSON 格式错误 → 提示手动修复
|
|
213
|
-
- tracking 目录不存在 → 建议创建 `
|
|
213
|
+
- tracking 目录不存在 → 建议创建 `tracking/`
|
|
214
214
|
|
|
215
215
|
---
|
|
216
216
|
|
|
@@ -10,12 +10,12 @@ allowed-tools: Read, Write, Glob, Grep, Edit
|
|
|
10
10
|
|
|
11
11
|
## 概述
|
|
12
12
|
|
|
13
|
-
统一管理故事中所有角色的档案、状态、关系和对话风格。所有角色数据存储在 `
|
|
13
|
+
统一管理故事中所有角色的档案、状态、关系和对话风格。所有角色数据存储在 `tracking/` 目录下。
|
|
14
14
|
|
|
15
15
|
## 前置条件
|
|
16
16
|
|
|
17
17
|
1. 确认当前故事目录存在:`stories/*/`
|
|
18
|
-
2. 确认 `
|
|
18
|
+
2. 确认 `tracking/` 目录存在,不存在则创建
|
|
19
19
|
3. 按三层 Fallback 加载角色数据:
|
|
20
20
|
|
|
21
21
|
**Layer 1: MCP 查询(优先)**
|
|
@@ -23,13 +23,13 @@ allowed-tools: Read, Write, Glob, Grep, Edit
|
|
|
23
23
|
- `query_relationships` → 关系网络
|
|
24
24
|
- `search_content --query=[角色名]` → 角色出场章节
|
|
25
25
|
|
|
26
|
-
**Layer 2: 分片 JSON(次优,检测
|
|
27
|
-
- 无 --volume:读取 `
|
|
28
|
-
- 有 --volume:读取 `
|
|
26
|
+
**Layer 2: 分片 JSON(次优,检测 tracking/volumes/ 是否存在)**
|
|
27
|
+
- 无 --volume:读取 `tracking/summary/characters-summary.json`(活跃角色概览)
|
|
28
|
+
- 有 --volume:读取 `tracking/volumes/vol-XX/character-state.json` 和 `relationships.json`
|
|
29
29
|
|
|
30
30
|
**Layer 3: 单文件 JSON(兜底)**
|
|
31
|
-
- `
|
|
32
|
-
- `
|
|
31
|
+
- `tracking/character-state.json`
|
|
32
|
+
- `tracking/relationships.json`
|
|
33
33
|
|
|
34
34
|
## 子命令决策
|
|
35
35
|
|
|
@@ -253,14 +253,14 @@ allowed-tools: Read, Write, Glob, Grep, Edit
|
|
|
253
253
|
|
|
254
254
|
当 `/character` 更新角色数据时:
|
|
255
255
|
|
|
256
|
-
**分片模式(检测到
|
|
256
|
+
**分片模式(检测到 tracking/volumes/ 存在)**:
|
|
257
257
|
1. 确定角色最后出场章节所属的卷
|
|
258
258
|
2. 更新该卷的 `character-state.json` 或 `relationships.json`
|
|
259
|
-
3. 同步更新全局摘要:`
|
|
259
|
+
3. 同步更新全局摘要:`tracking/summary/characters-summary.json`
|
|
260
260
|
4. 如果 MCP 可用,调用 `sync_from_json` 同步到 SQLite
|
|
261
261
|
|
|
262
262
|
**单文件模式**:
|
|
263
|
-
- 直接更新 `
|
|
263
|
+
- 直接更新 `tracking/character-state.json` 和 `relationships.json`
|
|
264
264
|
|
|
265
265
|
### 数据校验
|
|
266
266
|
|
|
@@ -4,8 +4,8 @@ description: 生成或执行质量检查清单(规格验证 + 内容扫描)
|
|
|
4
4
|
argument-hint: [检查类型] [--volume vol-XX | --pre-write | --post-write | --volume-end]
|
|
5
5
|
allowed-tools: Read, Bash, Write, Edit, Glob, Grep
|
|
6
6
|
scripts:
|
|
7
|
-
sh:
|
|
8
|
-
ps:
|
|
7
|
+
sh: resources/scripts/bash/common.sh
|
|
8
|
+
ps: resources/scripts/powershell/common.ps1
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# 质量检查清单(Checklist)
|
|
@@ -18,10 +18,10 @@ scripts:
|
|
|
18
18
|
验证规划文档本身的质量(类似"需求的单元测试"):
|
|
19
19
|
|
|
20
20
|
- `大纲质量` - 检查 creative-plan.md 的完整性、清晰度、一致性
|
|
21
|
-
- `角色设定` - 检查
|
|
22
|
-
- `世界观` - 检查
|
|
21
|
+
- `角色设定` - 检查 resources/knowledge/characters.md
|
|
22
|
+
- `世界观` - 检查 resources/knowledge/world-setting.md 及相关文档
|
|
23
23
|
- `创作计划` - 检查 creative-plan.md / specification.md
|
|
24
|
-
- `伏笔管理` - 检查
|
|
24
|
+
- `伏笔管理` - 检查 tracking/plot-tracker.json 的伏笔定义
|
|
25
25
|
|
|
26
26
|
### 第二类:内容验证检查(结果报告式)
|
|
27
27
|
扫描已写章节,验证实际内容:
|
|
@@ -47,11 +47,11 @@ $ARGUMENTS
|
|
|
47
47
|
### 默认加载
|
|
48
48
|
|
|
49
49
|
自动加载以下资源用于生成检查清单:
|
|
50
|
-
-
|
|
50
|
+
- `resources/memory/constitution.md`(创作宪法)
|
|
51
51
|
- `stories/*/specification.md`(故事规格)
|
|
52
52
|
- `stories/*/tasks.md`(当前任务)
|
|
53
|
-
- `
|
|
54
|
-
- `
|
|
53
|
+
- `tracking/plot-tracker.json`(情节追踪)
|
|
54
|
+
- `tracking/character-state.json`(角色状态)
|
|
55
55
|
|
|
56
56
|
### 可选加载
|
|
57
57
|
|
|
@@ -118,8 +118,8 @@ const plotData = await mcp.call('novelws-mcp/query_plot', {
|
|
|
118
118
|
### Layer 2: 分片 JSON(次优)
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
# 当
|
|
122
|
-
for volume_dir in
|
|
121
|
+
# 当 tracking/volumes/ 存在时
|
|
122
|
+
for volume_dir in tracking/volumes/vol-*; do
|
|
123
123
|
if [[ -n "$VOLUME_FILTER" ]] && [[ "$volume_dir" != *"$VOLUME_FILTER"* ]]; then
|
|
124
124
|
continue
|
|
125
125
|
fi
|
|
@@ -139,8 +139,8 @@ done
|
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
# 传统模式,加载完整文件
|
|
142
|
-
cat
|
|
143
|
-
cat
|
|
142
|
+
cat tracking/plot-tracker.json
|
|
143
|
+
cat tracking/character-state.json
|
|
144
144
|
# ...
|
|
145
145
|
```
|
|
146
146
|
|
|
@@ -183,7 +183,7 @@ cat spec/tracking/character-state.json
|
|
|
183
183
|
|
|
184
184
|
**读取文件**:
|
|
185
185
|
- `creative-plan.md` 或 `stories/*/creative-plan.md`
|
|
186
|
-
- `
|
|
186
|
+
- `tracking/plot-tracker.json`(如果存在)
|
|
187
187
|
|
|
188
188
|
**生成检查项维度**:
|
|
189
189
|
|
|
@@ -258,9 +258,9 @@ cat spec/tracking/character-state.json
|
|
|
258
258
|
##### 2.2 角色设定检查
|
|
259
259
|
|
|
260
260
|
**读取文件**:
|
|
261
|
-
- `
|
|
262
|
-
- `
|
|
263
|
-
- `
|
|
261
|
+
- `resources/knowledge/characters.md`
|
|
262
|
+
- `tracking/character-state.json`
|
|
263
|
+
- `tracking/relationships.json`
|
|
264
264
|
|
|
265
265
|
**生成检查项维度**:
|
|
266
266
|
|
|
@@ -288,10 +288,10 @@ cat spec/tracking/character-state.json
|
|
|
288
288
|
##### 2.3 世界观检查
|
|
289
289
|
|
|
290
290
|
**读取文件**:
|
|
291
|
-
- `
|
|
292
|
-
- `
|
|
293
|
-
- `
|
|
294
|
-
- `
|
|
291
|
+
- `resources/knowledge/world-setting.md`
|
|
292
|
+
- `resources/knowledge/locations.md`
|
|
293
|
+
- `resources/knowledge/culture.md`
|
|
294
|
+
- `resources/knowledge/rules.md`
|
|
295
295
|
|
|
296
296
|
**生成检查项维度**:
|
|
297
297
|
|
|
@@ -340,7 +340,7 @@ cat spec/tracking/character-state.json
|
|
|
340
340
|
##### 2.5 伏笔管理检查
|
|
341
341
|
|
|
342
342
|
**读取文件**:
|
|
343
|
-
- `
|
|
343
|
+
- `tracking/plot-tracker.json`
|
|
344
344
|
- `creative-plan.md`
|
|
345
345
|
|
|
346
346
|
**生成检查项维度**:
|
|
@@ -370,7 +370,7 @@ cat spec/tracking/character-state.json
|
|
|
370
370
|
|
|
371
371
|
执行命令:
|
|
372
372
|
```bash
|
|
373
|
-
bash
|
|
373
|
+
bash resources/scripts/bash/check-world.sh --checklist
|
|
374
374
|
```
|
|
375
375
|
|
|
376
376
|
如果脚本不存在,提示用户该功能正在开发中。
|
|
@@ -379,21 +379,21 @@ bash .specify/scripts/bash/check-world.sh --checklist
|
|
|
379
379
|
|
|
380
380
|
执行命令:
|
|
381
381
|
```bash
|
|
382
|
-
bash
|
|
382
|
+
bash resources/scripts/bash/check-plot.sh --checklist
|
|
383
383
|
```
|
|
384
384
|
|
|
385
385
|
##### 2.7 数据同步检查
|
|
386
386
|
|
|
387
387
|
执行命令:
|
|
388
388
|
```bash
|
|
389
|
-
bash
|
|
389
|
+
bash resources/scripts/bash/check-consistency.sh --checklist
|
|
390
390
|
```
|
|
391
391
|
|
|
392
392
|
##### 2.8 时间线检查
|
|
393
393
|
|
|
394
394
|
执行命令:
|
|
395
395
|
```bash
|
|
396
|
-
bash
|
|
396
|
+
bash resources/scripts/bash/check-timeline.sh check --checklist
|
|
397
397
|
```
|
|
398
398
|
|
|
399
399
|
##### 2.9 写作状态检查
|
|
@@ -426,7 +426,7 @@ bash .specify/scripts/bash/check-timeline.sh check --checklist
|
|
|
426
426
|
|
|
427
427
|
如果存在脚本,执行:
|
|
428
428
|
```bash
|
|
429
|
-
bash
|
|
429
|
+
bash resources/scripts/bash/check-writing-state.sh --checklist
|
|
430
430
|
```
|
|
431
431
|
|
|
432
432
|
否则,手动检查上述项目并生成报告。
|
|
@@ -446,7 +446,7 @@ bash .specify/scripts/bash/check-writing-state.sh --checklist
|
|
|
446
446
|
/style-learning
|
|
447
447
|
|
|
448
448
|
或手动创建:
|
|
449
|
-
|
|
449
|
+
resources/memory/personal-voice.md
|
|
450
450
|
```
|
|
451
451
|
|
|
452
452
|
### 3. 输出 Checklist
|
|
@@ -4,8 +4,8 @@ argument-hint: [关键词或焦点领域]
|
|
|
4
4
|
allowed-tools: Read(//stories/**), Read(//stories/**), Read(//plugins/**), Read(plugins/**), Write(//stories/*/specification.md), Write(//stories/*/specification.md), Bash(ls:*), Bash(find:*), Bash(*)
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
scripts:
|
|
7
|
-
sh:
|
|
8
|
-
ps:
|
|
7
|
+
sh: resources/scripts/bash/clarify-story.sh --json --paths-only
|
|
8
|
+
ps: resources/scripts/powershell/clarify-story.ps1 -Json -PathsOnly
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
焦点区域(可选):$ARGUMENTS
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 创建或更新小说创作宪法,定义不可妥协的创作原则
|
|
3
3
|
argument-hint: [创作原则描述]
|
|
4
|
-
allowed-tools: Write(
|
|
4
|
+
allowed-tools: Write(//resources/memory/constitution.md), Write(//resources/memory/constitution.md), Read(//resources/memory/**), Read(//resources/memory/**), Bash(find:*), Bash(*)
|
|
5
5
|
scripts:
|
|
6
|
-
sh:
|
|
7
|
-
ps:
|
|
6
|
+
sh: resources/scripts/bash/constitution.sh
|
|
7
|
+
ps: resources/scripts/powershell/constitution.ps1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
用户输入:$ARGUMENTS
|
|
@@ -39,18 +39,18 @@ resource-loading:
|
|
|
39
39
|
|
|
40
40
|
**首先检查是否存在风格参考文档**(来自 `/book-internalize`):
|
|
41
41
|
```bash
|
|
42
|
-
test -f
|
|
42
|
+
test -f resources/memory/style-reference.md && echo "exists" || echo "not-found"
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
- 如果存在,使用 Read 工具读取
|
|
45
|
+
- 如果存在,使用 Read 工具读取 `resources/memory/style-reference.md`
|
|
46
46
|
- 然后告诉用户:"检测到您已完成对标作品分析,我将参考该风格帮您起草宪法。"
|
|
47
47
|
|
|
48
48
|
**然后检查现有宪法**:
|
|
49
49
|
```bash
|
|
50
|
-
test -f
|
|
50
|
+
test -f resources/memory/constitution.md && echo "exists" || echo "not-found"
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
-
- 如果存在(输出 "exists"),使用 Read 工具读取
|
|
53
|
+
- 如果存在(输出 "exists"),使用 Read 工具读取 `resources/memory/constitution.md` 并准备更新
|
|
54
54
|
- 如果不存在(输出 "not-found"),跳过读取步骤,直接准备创建新宪法
|
|
55
55
|
|
|
56
56
|
### 2. 收集创作原则
|
|
@@ -212,7 +212,7 @@ test -f .specify/memory/constitution.md && echo "exists" || echo "not-found"
|
|
|
212
212
|
|
|
213
213
|
### 7. 输出和保存
|
|
214
214
|
|
|
215
|
-
- 将宪法保存到
|
|
215
|
+
- 将宪法保存到 `resources/memory/constitution.md`
|
|
216
216
|
- 输出创建/更新成功消息
|
|
217
217
|
- 提示下一步:`/specify` 定义故事规格
|
|
218
218
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 专家模式 - 获取专业写作指导
|
|
3
3
|
argument-hint: [plot | character | world | style]
|
|
4
|
-
allowed-tools: Read(
|
|
4
|
+
allowed-tools: Read(//resources/experts/**), Read(//resources/experts/**), Read(//plugins/**/experts/**), Read(//plugins/**/experts/**), Bash(find:*), Bash(ls:*), Bash(*)
|
|
5
5
|
scripts:
|
|
6
6
|
sh: echo ""
|
|
7
7
|
ps: Write-Output ""
|
|
@@ -75,7 +75,7 @@ resource-loading:
|
|
|
75
75
|
|
|
76
76
|
### 执行步骤:
|
|
77
77
|
1. **确认专家类型**
|
|
78
|
-
- 核心专家:读取
|
|
78
|
+
- 核心专家:读取 `resources/experts/core/<type>.md`
|
|
79
79
|
- 插件专家:读取对应插件的专家文件
|
|
80
80
|
|
|
81
81
|
2. **加载专家配置**
|
|
@@ -131,7 +131,7 @@ resource-loading:
|
|
|
131
131
|
- 如果专家文件读取失败:
|
|
132
132
|
```
|
|
133
133
|
专家配置加载失败,请检查文件是否存在:
|
|
134
|
-
|
|
134
|
+
resources/experts/core/<type>.md
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
---
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: 管理和校验故事设定事实的一致性
|
|
3
3
|
argument-hint: [check | update <fact-id> | add | remove <fact-id>] [--volume vol-XX | --range ch-XXX-YYY]
|
|
4
|
-
allowed-tools: Read(//
|
|
4
|
+
allowed-tools: Read(//tracking/**), Read(//stories/**/content/**), Write(//tracking/story-facts.json), Bash(bash:*), Bash(powershell:*)
|
|
5
5
|
scripts:
|
|
6
|
-
sh:
|
|
7
|
-
ps:
|
|
6
|
+
sh: resources/scripts/bash/check-facts.sh
|
|
7
|
+
ps: resources/scripts/powershell/check-facts.ps1
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# /facts - 故事设定事实管理
|
|
@@ -15,7 +15,7 @@ scripts:
|
|
|
15
15
|
|
|
16
16
|
## 数据源:story-facts.json
|
|
17
17
|
|
|
18
|
-
**单一数据源原则**:所有可量化的设定事实都应注册在 `
|
|
18
|
+
**单一数据源原则**:所有可量化的设定事实都应注册在 `tracking/story-facts.json` 中,作为唯一可信来源(Single Source of Truth)。
|
|
19
19
|
|
|
20
20
|
### 数据结构示例
|
|
21
21
|
|
|
@@ -125,12 +125,12 @@ scripts:
|
|
|
125
125
|
- 支持 `--range ch-XXX-YYY` 过滤:`query_facts --chapter_from=XXX --chapter_to=YYY`
|
|
126
126
|
|
|
127
127
|
**Layer 2: 分片 JSON(次优)**
|
|
128
|
-
- 检测 `
|
|
129
|
-
- 无 --volume 参数:读取 `
|
|
128
|
+
- 检测 `tracking/volumes/` 是否存在
|
|
129
|
+
- 无 --volume 参数:读取 `tracking/story-facts.json`(全局事实文件,不按卷分片)
|
|
130
130
|
- 有 --volume 参数:读取全局事实文件,按 `source` 字段过滤属于该卷的事实
|
|
131
131
|
|
|
132
132
|
**Layer 3: 单文件 JSON(兜底)**
|
|
133
|
-
- 读取 `
|
|
133
|
+
- 读取 `tracking/story-facts.json`
|
|
134
134
|
|
|
135
135
|
### 章节扫描范围
|
|
136
136
|
|
|
@@ -148,7 +148,7 @@ scripts:
|
|
|
148
148
|
|
|
149
149
|
#### 执行步骤
|
|
150
150
|
|
|
151
|
-
1. 读取 `
|
|
151
|
+
1. 读取 `tracking/story-facts.json`
|
|
152
152
|
2. 按 category 分组展示所有已注册事实
|
|
153
153
|
3. 展示 rules 列表及当前校验状态(算术是否成立)
|
|
154
154
|
4. 提示用户可用操作:add / remove / update
|
|
@@ -418,7 +418,7 @@ scripts:
|
|
|
418
418
|
当前: "每月收入仅有五百灵石"
|
|
419
419
|
修改为: "每月收入仅有八百灵石"
|
|
420
420
|
|
|
421
|
-
3.
|
|
421
|
+
3. tracking/plot-tracker.json
|
|
422
422
|
当前: "finance-monthly-income": 500
|
|
423
423
|
修改为: "finance-monthly-income": 800
|
|
424
424
|
```
|