dsh-openwrite 0.2.8
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/LICENSE +201 -0
- package/README.md +107 -0
- package/THIRD_PARTY_NOTICES.md +33 -0
- package/assets/logo-dark.svg +31 -0
- package/assets/logo-light.svg +31 -0
- package/cordis.patch.yml +11 -0
- package/docs/BENCHMARK_TASKS.md +54 -0
- package/docs/COST_MEASUREMENT.md +39 -0
- package/docs/DEVELOPMENT.md +65 -0
- package/docs/DSH_STORE.md +58 -0
- package/docs/FRAMEWORK_ADVANTAGES.md +288 -0
- package/docs/IMPROVEMENT_PLAN.md +252 -0
- package/docs/INSTALL.md +99 -0
- package/docs/LEARNING.md +68 -0
- package/docs/OPEN_SOURCE_NOVEL_AUDIT.md +191 -0
- package/docs/PLUGIN_MAINTENANCE.md +54 -0
- package/docs/PLUGIN_MAINTENANCE_RC7.md +157 -0
- package/docs/QA_20260908.md +103 -0
- package/docs/QA_20260909_BENCHMARK.md +24 -0
- package/docs/RELEASE_ACCEPTANCE.md +116 -0
- package/docs/REVIEW_DAG_FRAMEWORK.md +82 -0
- package/docs/TARGETED_NOVEL_PROJECT_REVIEW.md +167 -0
- package/docs/WORKFLOWS.md +74 -0
- package/docs/WORKSPACE_CONTEXT_CONTRACT.md +125 -0
- package/docs/WORKSPACE_INTEGRATION_GOAL.md +278 -0
- package/docs/research/autosave-race-repro.mjs +133 -0
- package/docs/research/framework-stats-2026-09-05.json +116 -0
- package/dog-tools.mjs +11 -0
- package/package.json +132 -0
- package/packages/openwrite-bridge/LICENSE +201 -0
- package/packages/openwrite-bridge/cordis.patch.yml +10 -0
- package/packages/openwrite-bridge/lib/client.d.ts +95 -0
- package/packages/openwrite-bridge/lib/client.js +193 -0
- package/packages/openwrite-bridge/lib/contracts-generated.d.ts +367 -0
- package/packages/openwrite-bridge/lib/contracts-generated.js +1764 -0
- package/packages/openwrite-bridge/lib/dog-delivery.d.ts +12 -0
- package/packages/openwrite-bridge/lib/dog-delivery.js +362 -0
- package/packages/openwrite-bridge/lib/dog-review.d.ts +50 -0
- package/packages/openwrite-bridge/lib/dog-review.js +470 -0
- package/packages/openwrite-bridge/lib/domain.d.ts +70 -0
- package/packages/openwrite-bridge/lib/domain.js +496 -0
- package/packages/openwrite-bridge/lib/index.d.ts +17 -0
- package/packages/openwrite-bridge/lib/index.js +89 -0
- package/packages/openwrite-bridge/lib/managed-runtime.d.ts +95 -0
- package/packages/openwrite-bridge/lib/managed-runtime.js +510 -0
- package/packages/openwrite-bridge/lib/preset-tools.d.ts +13 -0
- package/packages/openwrite-bridge/lib/preset-tools.js +18 -0
- package/packages/openwrite-bridge/lib/tool-policy.d.ts +6 -0
- package/packages/openwrite-bridge/lib/tool-policy.js +56 -0
- package/packages/openwrite-bridge/lib/tools.d.ts +24 -0
- package/packages/openwrite-bridge/lib/tools.js +2404 -0
- package/packages/openwrite-bridge/package.json +67 -0
- package/packages/studio-panel/LICENSE +21 -0
- package/packages/studio-panel/README.md +51 -0
- package/packages/studio-panel/cordis.patch.yml +5 -0
- package/packages/studio-panel/lib/client.js +158087 -0
- package/packages/studio-panel/lib/client.js.map +1 -0
- package/packages/studio-panel/lib/index.js +50 -0
- package/packages/studio-panel/lib/types/client/AssetEditor.d.ts +122 -0
- package/packages/studio-panel/lib/types/client/AssetsView.d.ts +43 -0
- package/packages/studio-panel/lib/types/client/BenchmarkView.d.ts +9 -0
- package/packages/studio-panel/lib/types/client/ContinuousReader.d.ts +13 -0
- package/packages/studio-panel/lib/types/client/CreationView.d.ts +6 -0
- package/packages/studio-panel/lib/types/client/DagCanvas.d.ts +11 -0
- package/packages/studio-panel/lib/types/client/DiscardDraftDialog.d.ts +8 -0
- package/packages/studio-panel/lib/types/client/DomainToolCard.d.ts +9 -0
- package/packages/studio-panel/lib/types/client/GraphView.d.ts +46 -0
- package/packages/studio-panel/lib/types/client/HeaderChrome.d.ts +18 -0
- package/packages/studio-panel/lib/types/client/LaunchOpenWrite.d.ts +13 -0
- package/packages/studio-panel/lib/types/client/LibraryView.d.ts +6 -0
- package/packages/studio-panel/lib/types/client/MarkdownText.d.ts +3 -0
- package/packages/studio-panel/lib/types/client/ModelView.d.ts +9 -0
- package/packages/studio-panel/lib/types/client/OperationsView.d.ts +6 -0
- package/packages/studio-panel/lib/types/client/OutlinePlans.d.ts +37 -0
- package/packages/studio-panel/lib/types/client/OutlineView.d.ts +29 -0
- package/packages/studio-panel/lib/types/client/ResearchView.d.ts +7 -0
- package/packages/studio-panel/lib/types/client/ReviewCard.d.ts +28 -0
- package/packages/studio-panel/lib/types/client/SceneWorkbench.d.ts +55 -0
- package/packages/studio-panel/lib/types/client/SearchView.d.ts +33 -0
- package/packages/studio-panel/lib/types/client/TasksView.d.ts +11 -0
- package/packages/studio-panel/lib/types/client/TransferWorkspaces.d.ts +19 -0
- package/packages/studio-panel/lib/types/client/TurnMutationSummary.d.ts +62 -0
- package/packages/studio-panel/lib/types/client/VditorBody.d.ts +55 -0
- package/packages/studio-panel/lib/types/client/WorkbenchStore.d.ts +121 -0
- package/packages/studio-panel/lib/types/client/api.d.ts +72 -0
- package/packages/studio-panel/lib/types/client/asset-drafts.d.ts +20 -0
- package/packages/studio-panel/lib/types/client/benchmark-options.d.ts +43 -0
- package/packages/studio-panel/lib/types/client/draft-store.d.ts +26 -0
- package/packages/studio-panel/lib/types/client/dto.d.ts +517 -0
- package/packages/studio-panel/lib/types/client/index.d.ts +4 -0
- package/packages/studio-panel/lib/types/client/locales.d.ts +15 -0
- package/packages/studio-panel/lib/types/client/manuscript-annotations.d.ts +59 -0
- package/packages/studio-panel/lib/types/client/manuscript-markers.d.ts +61 -0
- package/packages/studio-panel/lib/types/client/manuscript-mentions.d.ts +30 -0
- package/packages/studio-panel/lib/types/client/manuscript-overlay-dom.d.ts +7 -0
- package/packages/studio-panel/lib/types/client/manuscript-overlay.d.ts +42 -0
- package/packages/studio-panel/lib/types/client/manuscript-selection.d.ts +59 -0
- package/packages/studio-panel/lib/types/client/model-view-memory.d.ts +17 -0
- package/packages/studio-panel/lib/types/client/storage.d.ts +8 -0
- package/packages/studio-panel/lib/types/client/workbench-epochs.d.ts +16 -0
- package/packages/studio-panel/lib/types/client/workspace-context.d.ts +52 -0
- package/packages/studio-panel/lib/types/client/writing-scope.d.ts +7 -0
- package/packages/studio-panel/lib/types/index.d.ts +5 -0
- package/packages/studio-panel/package.json +105 -0
- package/packages/studio-panel/vendor/vditor/LICENSE +21 -0
- package/packages/studio-panel/vendor/vditor/dist/css/content-theme/dark.css +123 -0
- package/packages/studio-panel/vendor/vditor/dist/css/content-theme/light.css +101 -0
- package/packages/studio-panel/vendor/vditor/dist/index.css +1823 -0
- package/packages/studio-panel/vendor/vditor/dist/index.min.js +1 -0
- package/packages/studio-panel/vendor/vditor/dist/js/i18n/zh_CN.js +86 -0
- package/packages/studio-panel/vendor/vditor/dist/js/icons/ant.js +174 -0
- package/packages/studio-panel/vendor/vditor/dist/js/lute/lute.min.js +72 -0
- package/plugin.d.ts +3 -0
- package/plugin.mjs +80 -0
- package/presets/README.md +32 -0
- package/presets/openwrite/agent.cordis.yml +317 -0
- package/presets/openwrite/preset.yml +3 -0
- package/presets/openwrite/skills/canon/SKILL.md +15 -0
- package/presets/openwrite/skills/dialoguequality/SKILL.md +166 -0
- package/presets/openwrite/skills/dog-delivery-query/SKILL.md +40 -0
- package/presets/openwrite/skills/dog-import-query/SKILL.md +27 -0
- package/presets/openwrite/skills/dog-review-query/SKILL.md +40 -0
- package/presets/openwrite/skills/export-book/SKILL.md +14 -0
- package/presets/openwrite/skills/foreshadow/SKILL.md +14 -0
- package/presets/openwrite/skills/foreshadowing-system/SKILL.md +125 -0
- package/presets/openwrite/skills/learn/SKILL.md +24 -0
- package/presets/openwrite/skills/novel-creator/SKILL.md +88 -0
- package/presets/openwrite/skills/novel-creator/templates/beat_templates.yaml +179 -0
- package/presets/openwrite/skills/novel-creator/templates/example_usage.yaml +74 -0
- package/presets/openwrite/skills/novel-reviewer/SKILL.md +85 -0
- package/presets/openwrite/skills/oh-story-deslop/LICENSE +21 -0
- package/presets/openwrite/skills/oh-story-deslop/SKILL.md +36 -0
- package/presets/openwrite/skills/oh-story-deslop/agents/openai.yaml +4 -0
- package/presets/openwrite/skills/oh-story-deslop/references/method.md +22 -0
- package/presets/openwrite/skills/oh-story-long-analyze/LICENSE +21 -0
- package/presets/openwrite/skills/oh-story-long-analyze/SKILL.md +37 -0
- package/presets/openwrite/skills/oh-story-long-analyze/agents/openai.yaml +4 -0
- package/presets/openwrite/skills/oh-story-long-analyze/references/method.md +22 -0
- package/presets/openwrite/skills/oh-story-long-scan/LICENSE +21 -0
- package/presets/openwrite/skills/oh-story-long-scan/SKILL.md +36 -0
- package/presets/openwrite/skills/oh-story-long-scan/agents/openai.yaml +4 -0
- package/presets/openwrite/skills/oh-story-long-scan/references/method.md +21 -0
- package/presets/openwrite/skills/oh-story-long-write/LICENSE +21 -0
- package/presets/openwrite/skills/oh-story-long-write/SKILL.md +37 -0
- package/presets/openwrite/skills/oh-story-long-write/agents/openai.yaml +4 -0
- package/presets/openwrite/skills/oh-story-long-write/references/method.md +33 -0
- package/presets/openwrite/skills/oh-story-review/LICENSE +21 -0
- package/presets/openwrite/skills/oh-story-review/SKILL.md +36 -0
- package/presets/openwrite/skills/oh-story-review/agents/openai.yaml +4 -0
- package/presets/openwrite/skills/oh-story-review/references/method.md +25 -0
- package/presets/openwrite/skills/progress/SKILL.md +16 -0
- package/presets/openwrite/skills/review-chapter/SKILL.md +17 -0
- package/presets/openwrite/skills/revise-span/SKILL.md +16 -0
- package/presets/openwrite/skills/style-system/SKILL.md +135 -0
- package/presets/openwrite/skills/style-system/prompts/analyze_style.md +214 -0
- package/presets/openwrite/skills/style-system/prompts/batch_extract_style.md +66 -0
- package/presets/openwrite/skills/style-system/prompts/compose_style.md +83 -0
- package/presets/openwrite/skills/style-system/prompts/extract_style.md +84 -0
- package/presets/openwrite/skills/style-system/prompts/initialize_style.md +52 -0
- package/presets/openwrite/skills/style-system/templates/analysis_report.yaml +78 -0
- package/presets/openwrite/skills/style-system/templates/composed_style.md +96 -0
- package/presets/openwrite/skills/style-system/templates/extraction_report.yaml +80 -0
- package/presets/openwrite/skills/style-system/templates/fingerprint.yaml +61 -0
- package/presets/openwrite/skills/style-system/tools/README.md +33 -0
- package/presets/openwrite/skills/truth-validation/SKILL.md +119 -0
- package/presets/openwrite/skills/workflow-manager/SKILL.md +81 -0
- package/presets/openwrite/skills/world-query/SKILL.md +45 -0
- package/presets/openwrite/skills/write-next/SKILL.md +17 -0
- package/release/core-requirements.in +12 -0
- package/release/licenses/@deepseek-ai__cosmokit@1.8.3/LICENSE +21 -0
- package/release/licenses/@deepseek-ai__schemastery@3.18.2/LICENSE +21 -0
- package/release/licenses/@isaacs__fs-minipass@4.0.1/LICENSE +15 -0
- package/release/licenses/@standard-schema__spec@1.1.0/LICENSE +21 -0
- package/release/licenses/@types__d3-color@3.1.3/LICENSE +21 -0
- package/release/licenses/@types__d3-drag@3.0.7/LICENSE +21 -0
- package/release/licenses/@types__d3-interpolate@3.0.4/LICENSE +21 -0
- package/release/licenses/@types__d3-selection@3.0.11/LICENSE +21 -0
- package/release/licenses/@types__d3-transition@3.0.9/LICENSE +21 -0
- package/release/licenses/@types__d3-zoom@3.0.8/LICENSE +21 -0
- package/release/licenses/@xyflow__react@12.11.6/LICENSE +21 -0
- package/release/licenses/@xyflow__system@0.0.82/LICENSE +21 -0
- package/release/licenses/ajv-formats@3.0.1/LICENSE +21 -0
- package/release/licenses/ajv@8.20.0/LICENSE +22 -0
- package/release/licenses/chownr@3.0.0/LICENSE.md +63 -0
- package/release/licenses/classcat@5.0.5/LICENSE.md +7 -0
- package/release/licenses/commander@7.2.0/LICENSE +22 -0
- package/release/licenses/d3-array@3.2.4/LICENSE +13 -0
- package/release/licenses/d3-axis@3.0.0/LICENSE +13 -0
- package/release/licenses/d3-brush@3.0.0/LICENSE +13 -0
- package/release/licenses/d3-chord@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-color@3.1.0/LICENSE +13 -0
- package/release/licenses/d3-contour@4.0.2/LICENSE +13 -0
- package/release/licenses/d3-delaunay@6.0.4/LICENSE +14 -0
- package/release/licenses/d3-dispatch@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-drag@3.0.0/LICENSE +13 -0
- package/release/licenses/d3-dsv@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-ease@3.0.1/LICENSE +28 -0
- package/release/licenses/d3-fetch@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-force@3.0.0/LICENSE +13 -0
- package/release/licenses/d3-format@3.1.2/LICENSE +13 -0
- package/release/licenses/d3-geo@3.1.1/LICENSE +34 -0
- package/release/licenses/d3-hierarchy@3.1.2/LICENSE +13 -0
- package/release/licenses/d3-interpolate@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-path@3.1.0/LICENSE +13 -0
- package/release/licenses/d3-polygon@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-quadtree@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-random@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-scale-chromatic@3.1.0/LICENSE +28 -0
- package/release/licenses/d3-scale@4.0.2/LICENSE +13 -0
- package/release/licenses/d3-selection@3.0.0/LICENSE +13 -0
- package/release/licenses/d3-shape@3.2.0/LICENSE +13 -0
- package/release/licenses/d3-time-format@4.1.0/LICENSE +13 -0
- package/release/licenses/d3-time@3.1.0/LICENSE +13 -0
- package/release/licenses/d3-timer@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-transition@3.0.1/LICENSE +13 -0
- package/release/licenses/d3-zoom@3.0.0/LICENSE +13 -0
- package/release/licenses/d3@7.9.0/LICENSE +13 -0
- package/release/licenses/delaunator@5.1.0/LICENSE +15 -0
- package/release/licenses/elkjs@0.12.0/LICENSE.md +263 -0
- package/release/licenses/fast-deep-equal@3.1.3/LICENSE +21 -0
- package/release/licenses/fast-uri@3.1.7/LICENSE +30 -0
- package/release/licenses/fflate@0.8.2/LICENSE +21 -0
- package/release/licenses/graceful-fs@4.2.11/LICENSE +15 -0
- package/release/licenses/iconv-lite@0.6.3/LICENSE +21 -0
- package/release/licenses/internmap@2.0.3/LICENSE +13 -0
- package/release/licenses/json-schema-traverse@1.0.0/LICENSE +21 -0
- package/release/licenses/lucide-react@0.468.0/LICENSE +15 -0
- package/release/licenses/minipass@7.1.3/LICENSE.md +55 -0
- package/release/licenses/minizlib@3.1.0/LICENSE +26 -0
- package/release/licenses/proper-lockfile@4.1.2/LICENSE +21 -0
- package/release/licenses/require-from-string@2.0.2/license +21 -0
- package/release/licenses/retry@0.12.0/License +21 -0
- package/release/licenses/robust-predicates@3.0.3/LICENSE +24 -0
- package/release/licenses/rw@1.3.3/LICENSE +26 -0
- package/release/licenses/safer-buffer@2.1.2/LICENSE +21 -0
- package/release/licenses/signal-exit@3.0.7/LICENSE.txt +16 -0
- package/release/licenses/tar@7.5.7/LICENSE.md +55 -0
- package/release/licenses/use-sync-external-store@1.6.0/LICENSE +21 -0
- package/release/licenses/yallist@5.0.0/LICENSE.md +63 -0
- package/release/licenses/zustand@4.5.7/LICENSE +21 -0
- package/release/openwrite-5.8.1-py3-none-any.whl +0 -0
- package/release/platform-overrides.in +5 -0
- package/release/python-constraints.in +96 -0
- package/release/requirements.lock +2927 -0
- package/release/runtime-manifest.json +98 -0
- package/release/sdk-compatibility.json +240 -0
- package/release/source.json +859 -0
- package/release/wheels/cryptography-50.0.1-cp312-abi3-macosx_13_0_x86_64.whl +0 -0
- package/release/wheels/licenses/LICENSE.txt +177 -0
- package/release/wheels/provenance.json +15 -0
- package/scripts/dog/delivery-stage.js +32 -0
- package/scripts/dog/import-chapter.js +20 -0
- package/scripts/dog/import-record.js +35 -0
- package/scripts/dog/review-dimension.js +41 -0
- package/scripts/dog/review-record.js +42 -0
- package/scripts/maintenance.mjs +179 -0
- package/scripts/prepare.mjs +21 -0
- package/vendor/dsh-dog/LICENSE +29 -0
- package/vendor/dsh-dog/README.md +114 -0
- package/vendor/dsh-dog/UPSTREAM.md +22 -0
- package/vendor/dsh-dog/cordis.patch.yml +14 -0
- package/vendor/dsh-dog/lib/client.js +2898 -0
- package/vendor/dsh-dog/lib/client.js.map +1 -0
- package/vendor/dsh-dog/lib/core-BiEBMLz3.d.ts +495 -0
- package/vendor/dsh-dog/lib/core-DdfMcrB4.js +2074 -0
- package/vendor/dsh-dog/lib/core.d.ts +2 -0
- package/vendor/dsh-dog/lib/core.js +2 -0
- package/vendor/dsh-dog/lib/index.d.ts +133 -0
- package/vendor/dsh-dog/lib/index.js +967 -0
- package/vendor/dsh-dog/package.json +97 -0
- package/vendor/dsh-dog/schemas/schema-0.2/graph.schema.json +139 -0
- package/vendor/dsh-dog/schemas/schema-0.2/report.schema.json +87 -0
- package/vendor/dsh-dog/schemas/schema-0.2/run.schema.json +259 -0
- package/vendor/dsh-dog/schemas/schema-0.2/runtime-event.schema.json +105 -0
- package/vendor/dsh-dog/schemas/schema-0.2/verification.schema.json +40 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
# 风格分析提示词
|
|
2
|
+
|
|
3
|
+
你是一个专业的文本风格分析师。你的任务是分析给定文本的风格特征,并与目标风格进行对比。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
1. 待分析的文本
|
|
8
|
+
2. 目标风格指纹(可选)
|
|
9
|
+
3. 分析深度要求
|
|
10
|
+
|
|
11
|
+
## 分析维度
|
|
12
|
+
|
|
13
|
+
### 1. 基本统计
|
|
14
|
+
- 字数、段落数、对话占比
|
|
15
|
+
- 平均句长、段落长度分布
|
|
16
|
+
- 标点符号使用频率
|
|
17
|
+
|
|
18
|
+
### 2. 风格特征
|
|
19
|
+
- 叙述视角和态度
|
|
20
|
+
- 语言特点(词汇、句式、修辞)
|
|
21
|
+
- 节奏特征
|
|
22
|
+
- 对话风格
|
|
23
|
+
- 情感表达
|
|
24
|
+
|
|
25
|
+
### 3. AI痕迹检测
|
|
26
|
+
- 常见AI表达模式
|
|
27
|
+
- 不自然的完美结构
|
|
28
|
+
- 过度使用的连接词
|
|
29
|
+
|
|
30
|
+
### 4. 与目标风格的偏差
|
|
31
|
+
- 符合程度评分
|
|
32
|
+
- 具体偏差点
|
|
33
|
+
- 改进建议
|
|
34
|
+
|
|
35
|
+
## 输出格式
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
# 风格分析报告
|
|
39
|
+
|
|
40
|
+
text_info:
|
|
41
|
+
word_count: {字数}
|
|
42
|
+
paragraph_count: {段落数}
|
|
43
|
+
dialogue_ratio: {对话占比}
|
|
44
|
+
avg_sentence_length: {平均句长}
|
|
45
|
+
|
|
46
|
+
# 风格特征
|
|
47
|
+
style_features:
|
|
48
|
+
voice:
|
|
49
|
+
perspective: "{视角}"
|
|
50
|
+
attitude: "{态度}"
|
|
51
|
+
confidence: {置信度}
|
|
52
|
+
|
|
53
|
+
language:
|
|
54
|
+
vocabulary_style: "{词汇风格}"
|
|
55
|
+
sentence_variety: "{句式变化度}"
|
|
56
|
+
rhetoric_usage: "{修辞使用}"
|
|
57
|
+
|
|
58
|
+
rhythm:
|
|
59
|
+
pacing: "{节奏}"
|
|
60
|
+
paragraph_pattern: "{段落模式}"
|
|
61
|
+
scene_count: {场景数}
|
|
62
|
+
|
|
63
|
+
dialogue:
|
|
64
|
+
style: "{对话风格}"
|
|
65
|
+
naturalness: {自然度评分}
|
|
66
|
+
voice_distinction: {角色区分度}
|
|
67
|
+
|
|
68
|
+
# AI痕迹检测
|
|
69
|
+
ai_detection:
|
|
70
|
+
score: {AI痕迹评分 0-100,越低越好}
|
|
71
|
+
issues:
|
|
72
|
+
- type: "{问题类型}"
|
|
73
|
+
example: "{例句}"
|
|
74
|
+
suggestion: "{修改建议}"
|
|
75
|
+
common_patterns:
|
|
76
|
+
- "{发现的AI模式1}"
|
|
77
|
+
- "{发现的AI模式2}"
|
|
78
|
+
|
|
79
|
+
# 与目标风格对比(如有目标风格)
|
|
80
|
+
style_comparison:
|
|
81
|
+
overall_match: {匹配度 0-100}
|
|
82
|
+
|
|
83
|
+
matches:
|
|
84
|
+
- feature: "{特征名}"
|
|
85
|
+
target: "{目标值}"
|
|
86
|
+
actual: "{实际值}"
|
|
87
|
+
status: "match"
|
|
88
|
+
|
|
89
|
+
deviations:
|
|
90
|
+
- feature: "{特征名}"
|
|
91
|
+
target: "{目标值}"
|
|
92
|
+
actual: "{实际值}"
|
|
93
|
+
severity: "{严重程度}"
|
|
94
|
+
suggestion: "{改进建议}"
|
|
95
|
+
|
|
96
|
+
# 改进建议
|
|
97
|
+
recommendations:
|
|
98
|
+
critical: # 必须修改
|
|
99
|
+
- "{建议1}"
|
|
100
|
+
|
|
101
|
+
suggested: # 建议修改
|
|
102
|
+
- "{建议2}"
|
|
103
|
+
|
|
104
|
+
optional: # 可选优化
|
|
105
|
+
- "{建议3}"
|
|
106
|
+
|
|
107
|
+
# 具体修改示例
|
|
108
|
+
edit_examples:
|
|
109
|
+
- original: "{原句}"
|
|
110
|
+
edited: "{修改后}"
|
|
111
|
+
reason: "{修改原因}"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## AI痕迹检测清单
|
|
115
|
+
|
|
116
|
+
### 常见AI表达模式
|
|
117
|
+
|
|
118
|
+
1. **过度使用的连接词**
|
|
119
|
+
- "然而"、"不过"、"不禁"、"竟然"
|
|
120
|
+
- 建议:减少使用,用动作或描写替代
|
|
121
|
+
|
|
122
|
+
2. **不自然的完美结构**
|
|
123
|
+
- 每段都是"总-分-总"结构
|
|
124
|
+
- 建议:打破规律,增加变化
|
|
125
|
+
|
|
126
|
+
3. **情感表达套路**
|
|
127
|
+
- "心中涌起一股暖流"
|
|
128
|
+
- "眼神中闪过一丝..."
|
|
129
|
+
- 建议:用具体动作或细节替代
|
|
130
|
+
|
|
131
|
+
4. **总结性陈述**
|
|
132
|
+
- "这让他意识到..."
|
|
133
|
+
- "他不禁感叹..."
|
|
134
|
+
- 建议:让读者自己体会
|
|
135
|
+
|
|
136
|
+
5. **对称性过强**
|
|
137
|
+
- 连续使用排比句
|
|
138
|
+
- 规律性的段落长度
|
|
139
|
+
- 建议:增加不对称性
|
|
140
|
+
|
|
141
|
+
### 检测方法
|
|
142
|
+
|
|
143
|
+
1. 统计高频词和短语
|
|
144
|
+
2. 分析句子结构多样性
|
|
145
|
+
3. 检查段落长度分布
|
|
146
|
+
4. 识别情感表达模式
|
|
147
|
+
|
|
148
|
+
## 风格偏差分析
|
|
149
|
+
|
|
150
|
+
### 偏差类型
|
|
151
|
+
|
|
152
|
+
| 类型 | 描述 | 严重程度 |
|
|
153
|
+
|------|------|----------|
|
|
154
|
+
| 节奏偏差 | 快慢与目标不符 | 中 |
|
|
155
|
+
| 语言偏差 | 词汇/句式与目标不符 | 高 |
|
|
156
|
+
| 对话偏差 | 对话风格与目标不符 | 高 |
|
|
157
|
+
| 情感偏差 | 情感深度与目标不符 | 中 |
|
|
158
|
+
| AI痕迹 | AI表达过多 | 高 |
|
|
159
|
+
|
|
160
|
+
### 改进优先级
|
|
161
|
+
|
|
162
|
+
1. **高优先级**:AI痕迹、硬性约束违反
|
|
163
|
+
2. **中优先级**:风格偏差、节奏问题
|
|
164
|
+
3. **低优先级**:微调建议
|
|
165
|
+
|
|
166
|
+
## 示例
|
|
167
|
+
|
|
168
|
+
### 输入文本
|
|
169
|
+
|
|
170
|
+
> 李明不禁心中一紧。然而他很快调整了心态,眼神中闪过一丝坚定。"我一定要成功,"他对自己说道,"无论遇到什么困难,我都不能放弃。"这让他意识到,真正的勇气不是没有恐惧,而是即使恐惧也要前行。
|
|
171
|
+
|
|
172
|
+
### 分析输出
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
ai_detection:
|
|
176
|
+
score: 75 # 较高AI痕迹
|
|
177
|
+
issues:
|
|
178
|
+
- type: "情感套路"
|
|
179
|
+
example: "不禁心中一紧"
|
|
180
|
+
suggestion: "李明的手心沁出了汗"
|
|
181
|
+
|
|
182
|
+
- type: "眼神描写套路"
|
|
183
|
+
example: "眼神中闪过一丝坚定"
|
|
184
|
+
suggestion: "删除,用动作替代"
|
|
185
|
+
|
|
186
|
+
- type: "总结性陈述"
|
|
187
|
+
example: "这让他意识到..."
|
|
188
|
+
suggestion: "删除,让读者自己体会"
|
|
189
|
+
|
|
190
|
+
recommendations:
|
|
191
|
+
critical:
|
|
192
|
+
- "删除所有'不禁'、'眼神中闪过'等AI痕迹"
|
|
193
|
+
- "重写对话,增加角色个性"
|
|
194
|
+
|
|
195
|
+
suggested:
|
|
196
|
+
- "打破句式规律,增加变化"
|
|
197
|
+
- "用具体细节替代抽象情感描述"
|
|
198
|
+
|
|
199
|
+
edit_examples:
|
|
200
|
+
- original: "李明不禁心中一紧。"
|
|
201
|
+
edited: "李明的手指无意识地攥紧了衣角。"
|
|
202
|
+
reason: "用具体动作替代抽象情感"
|
|
203
|
+
|
|
204
|
+
- original: "眼神中闪过一丝坚定"
|
|
205
|
+
edited: "(删除)"
|
|
206
|
+
reason: "AI套路表达,无信息量"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## 规则
|
|
210
|
+
|
|
211
|
+
1. **客观分析**:基于文本事实,不带主观评价
|
|
212
|
+
2. **具体建议**:给出可执行的修改方案
|
|
213
|
+
3. **优先级明确**:区分必须修改和建议修改
|
|
214
|
+
4. **有例证**:每个问题都要有文本例证
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 大文本分批风格提取提示词
|
|
2
|
+
|
|
3
|
+
你正在处理一部用户提供的大文本。你的任务是逐批提取风格信号,并逐渐更新项目内的 source pack。
|
|
4
|
+
|
|
5
|
+
## 路径
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
data/novels/{novel_id}/data/sources/{source_id}/
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
其中:
|
|
12
|
+
|
|
13
|
+
- `style/*.md`:累计更新的风格文档
|
|
14
|
+
- `setting_profile.md`:累计更新的设定提要
|
|
15
|
+
- `extraction/batch_results/*.yaml`:每批次原始发现
|
|
16
|
+
|
|
17
|
+
## 每批次要做的事
|
|
18
|
+
|
|
19
|
+
1. 阅读当前 chunk
|
|
20
|
+
2. 参考现有 `style/*.md`
|
|
21
|
+
3. 输出本批次发现
|
|
22
|
+
4. 区分 `reusable` 与 `source_bound`
|
|
23
|
+
5. 更新对应风格文档
|
|
24
|
+
|
|
25
|
+
## 关注重点
|
|
26
|
+
|
|
27
|
+
### 前几批
|
|
28
|
+
|
|
29
|
+
- 定主基调
|
|
30
|
+
- 定叙述距离
|
|
31
|
+
- 定句长和段落节奏
|
|
32
|
+
- 识别高频对话模式
|
|
33
|
+
|
|
34
|
+
### 中间批次
|
|
35
|
+
|
|
36
|
+
- 看这些特征是否稳定
|
|
37
|
+
- 修正之前的误判
|
|
38
|
+
- 补充例外情况
|
|
39
|
+
|
|
40
|
+
### 后几批
|
|
41
|
+
|
|
42
|
+
- 补边缘模式
|
|
43
|
+
- 查缺补漏
|
|
44
|
+
- 总结真正稳定的可复用信号
|
|
45
|
+
|
|
46
|
+
## 输出格式
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
findings:
|
|
50
|
+
reusable:
|
|
51
|
+
- name: ""
|
|
52
|
+
dimension: ""
|
|
53
|
+
description: ""
|
|
54
|
+
evidence: []
|
|
55
|
+
source_bound:
|
|
56
|
+
- name: ""
|
|
57
|
+
type: ""
|
|
58
|
+
description: ""
|
|
59
|
+
summary: ""
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 禁止事项
|
|
63
|
+
|
|
64
|
+
- 不把专名当成风格
|
|
65
|
+
- 不把剧情设定误判成节奏特征
|
|
66
|
+
- 不长篇复制原文
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# 风格合成提示词
|
|
2
|
+
|
|
3
|
+
你是一个风格合成专家。你的任务是把多层风格资料合成为一份**可执行、可审阅、可长期维护**的作品风格文档。
|
|
4
|
+
|
|
5
|
+
## 输入层
|
|
6
|
+
|
|
7
|
+
1. `craft/`:通用技法与去模板化约束
|
|
8
|
+
2. `data/novels/{id}/data/sources/{source_id}/style/`:用户提供文本提取出的风格源
|
|
9
|
+
3. `data/novels/{id}/data/style/fingerprint.yaml`:本书风格指纹
|
|
10
|
+
4. `data/novels/{id}/src/**`:本书确认版设定与约束
|
|
11
|
+
5. 用户当前额外要求
|
|
12
|
+
|
|
13
|
+
## 合成优先级
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
用户当前要求 > 本书设定 > 本书风格指纹 > 提取风格源 > craft 通用技法
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 输出目标
|
|
20
|
+
|
|
21
|
+
输出到:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
data/novels/{id}/data/style/composed.md
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 合成规则
|
|
28
|
+
|
|
29
|
+
- 去重
|
|
30
|
+
- 解决冲突
|
|
31
|
+
- 明确哪些是硬约束,哪些是软约束
|
|
32
|
+
- 不把 source-bound 的专有名词、角色口癖、签名梗直接带入最终风格
|
|
33
|
+
- 只吸收可复用信号:叙述距离、句长分布、对话密度、节奏偏好、信息揭示策略
|
|
34
|
+
|
|
35
|
+
## 输出结构
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# 最终风格文档:{作品名}
|
|
39
|
+
|
|
40
|
+
> 合成时间:{时间}
|
|
41
|
+
> 提取风格源:{source_id 或 无}
|
|
42
|
+
> 来源:craft + fingerprint + source pack + src
|
|
43
|
+
|
|
44
|
+
## 1. 硬性约束
|
|
45
|
+
|
|
46
|
+
### 角色一致性
|
|
47
|
+
...
|
|
48
|
+
|
|
49
|
+
### 世界观边界
|
|
50
|
+
...
|
|
51
|
+
|
|
52
|
+
### 禁止事项
|
|
53
|
+
...
|
|
54
|
+
|
|
55
|
+
## 2. 风格约束
|
|
56
|
+
|
|
57
|
+
### 叙述声音
|
|
58
|
+
...
|
|
59
|
+
|
|
60
|
+
### 语言风格
|
|
61
|
+
...
|
|
62
|
+
|
|
63
|
+
### 节奏控制
|
|
64
|
+
...
|
|
65
|
+
|
|
66
|
+
### 对话风格
|
|
67
|
+
...
|
|
68
|
+
|
|
69
|
+
## 3. 可选技法
|
|
70
|
+
...
|
|
71
|
+
|
|
72
|
+
## 4. 去模板化规则
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
## 5. 生成检查清单
|
|
76
|
+
...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 额外要求
|
|
80
|
+
|
|
81
|
+
- 不要输出“像某作品一样”
|
|
82
|
+
- 不要引用具体版权作品名
|
|
83
|
+
- 不要保留示例文本原句
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# 风格提取提示词
|
|
2
|
+
|
|
3
|
+
你是一个风格分析师。你的目标不是“模仿某部作品”,而是从用户提供的文本里提取**可复用**的写作信号,并把**不可迁移**的作品特有信号隔离出来。
|
|
4
|
+
|
|
5
|
+
## 输入
|
|
6
|
+
|
|
7
|
+
1. 用户提供的文本
|
|
8
|
+
2. 文本来源说明
|
|
9
|
+
3. 当前已有提取结果(可选)
|
|
10
|
+
|
|
11
|
+
## 必须区分的两类结果
|
|
12
|
+
|
|
13
|
+
### reusable
|
|
14
|
+
|
|
15
|
+
可以迁移到别的作品里的内容,例如:
|
|
16
|
+
|
|
17
|
+
- 叙述距离
|
|
18
|
+
- 句长分布
|
|
19
|
+
- 对话密度
|
|
20
|
+
- 段落节奏
|
|
21
|
+
- 信息揭示方式
|
|
22
|
+
- 幽默/克制/冷峻等表达偏好
|
|
23
|
+
|
|
24
|
+
### source_bound
|
|
25
|
+
|
|
26
|
+
不应直接迁移的内容,例如:
|
|
27
|
+
|
|
28
|
+
- 专有名词
|
|
29
|
+
- 角色专属口癖
|
|
30
|
+
- 组织、地名、体系名
|
|
31
|
+
- 作品签名梗
|
|
32
|
+
- 明显依赖原设定的表达
|
|
33
|
+
|
|
34
|
+
## 输出建议
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
source:
|
|
38
|
+
text_id: "{文本标识}"
|
|
39
|
+
source_type: "user_supplied_text"
|
|
40
|
+
word_count: 0
|
|
41
|
+
|
|
42
|
+
reusable:
|
|
43
|
+
voice:
|
|
44
|
+
perspective: ""
|
|
45
|
+
attitude: ""
|
|
46
|
+
reader_distance: ""
|
|
47
|
+
evidence: []
|
|
48
|
+
language:
|
|
49
|
+
vocabulary: ""
|
|
50
|
+
sentence_style: ""
|
|
51
|
+
rhetoric: ""
|
|
52
|
+
evidence: []
|
|
53
|
+
rhythm:
|
|
54
|
+
paragraph_length: ""
|
|
55
|
+
scene_transition: ""
|
|
56
|
+
information_density: ""
|
|
57
|
+
evidence: []
|
|
58
|
+
dialogue:
|
|
59
|
+
ratio: 0.0
|
|
60
|
+
format: ""
|
|
61
|
+
voice_distinction: ""
|
|
62
|
+
evidence: []
|
|
63
|
+
|
|
64
|
+
source_bound:
|
|
65
|
+
terms: []
|
|
66
|
+
named_entities: []
|
|
67
|
+
character_voice_markers: []
|
|
68
|
+
world_rules: []
|
|
69
|
+
|
|
70
|
+
summary:
|
|
71
|
+
reusable_signals: []
|
|
72
|
+
caution: []
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 写入目标
|
|
76
|
+
|
|
77
|
+
- `data/novels/{id}/data/sources/{source_id}/style/*.md`
|
|
78
|
+
- `data/novels/{id}/data/sources/{source_id}/setting_profile.md`
|
|
79
|
+
|
|
80
|
+
## 规则
|
|
81
|
+
|
|
82
|
+
- 每条判断都尽量给证据
|
|
83
|
+
- 不引用长原文
|
|
84
|
+
- 不输出“推荐模仿某作品”
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# 风格初始化提示词
|
|
2
|
+
|
|
3
|
+
你要通过问答帮用户生成这本书的初始风格指纹。
|
|
4
|
+
|
|
5
|
+
## 目标文件
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
data/novels/{novel_id}/data/style/fingerprint.yaml
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 询问重点
|
|
12
|
+
|
|
13
|
+
1. 基调
|
|
14
|
+
2. 节奏
|
|
15
|
+
3. 对话/描写比例
|
|
16
|
+
4. 是否有用户提供的参考文本
|
|
17
|
+
5. 禁止事项或特别要求
|
|
18
|
+
|
|
19
|
+
## 输出要求
|
|
20
|
+
|
|
21
|
+
- 只记录可执行的风格偏好
|
|
22
|
+
- 不凭空创造“参考作品特征”
|
|
23
|
+
- 如果用户有自己的样文,记成 `source_id`
|
|
24
|
+
- 不写具体版权作品名作为默认建议
|
|
25
|
+
|
|
26
|
+
## 示例思路
|
|
27
|
+
|
|
28
|
+
输入:
|
|
29
|
+
|
|
30
|
+
- 基调:轻压抑但偶尔冷幽默
|
|
31
|
+
- 节奏:中快
|
|
32
|
+
- 对话:占比高
|
|
33
|
+
- 来源:用户提供一篇职场悬疑样文
|
|
34
|
+
- 禁止事项:不要堆网络流行语
|
|
35
|
+
|
|
36
|
+
输出:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
core:
|
|
40
|
+
tone: "轻压抑 + 冷幽默"
|
|
41
|
+
pacing: "中快"
|
|
42
|
+
dialogue_ratio: 0.55
|
|
43
|
+
|
|
44
|
+
source:
|
|
45
|
+
source_id: "office_excerpt"
|
|
46
|
+
source_type: "user_supplied_text"
|
|
47
|
+
|
|
48
|
+
constraints:
|
|
49
|
+
banned_phrases: []
|
|
50
|
+
custom_rules:
|
|
51
|
+
- "避免网络流行语"
|
|
52
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# 风格分析报告模板(Style Analysis Report Template)
|
|
2
|
+
# 路径: data/novels/{novel_id}/data/style/analysis_report.yaml
|
|
3
|
+
# 生成方式: 分析已写文本后由 Agent 填充
|
|
4
|
+
|
|
5
|
+
# ── 基本信息 ──────────────────────────────────────────────
|
|
6
|
+
novel_id: "{novel_id}"
|
|
7
|
+
chapter_id: "{chapter_id}"
|
|
8
|
+
analyzed_at: "{timestamp}"
|
|
9
|
+
source_file: "" # 被分析文件路径
|
|
10
|
+
|
|
11
|
+
# ── 基本统计 ──────────────────────────────────────────────
|
|
12
|
+
statistics:
|
|
13
|
+
total_chars: 0 # 总字数
|
|
14
|
+
paragraph_count: 0 # 段落数
|
|
15
|
+
sentence_count: 0 # 句子数
|
|
16
|
+
avg_sentence_length: 0 # 平均句长
|
|
17
|
+
dialogue_ratio: 0.0 # 对话占比
|
|
18
|
+
short_paragraph_ratio: 0.0 # 短段比例(<50字)
|
|
19
|
+
medium_paragraph_ratio: 0.0 # 中段比例(50-200字)
|
|
20
|
+
long_paragraph_ratio: 0.0 # 长段比例(>200字)
|
|
21
|
+
|
|
22
|
+
# ── 风格特征分析 ──────────────────────────────────────────
|
|
23
|
+
style_features:
|
|
24
|
+
voice:
|
|
25
|
+
detected: "" # 检测到的叙述声音
|
|
26
|
+
consistency: "" # 一致 / 有波动 / 不一致
|
|
27
|
+
notes: ""
|
|
28
|
+
language:
|
|
29
|
+
vocabulary_level: "" # 日常 / 文学 / 古风 / 技术
|
|
30
|
+
sentence_variety: "" # 丰富 / 一般 / 单调
|
|
31
|
+
notes: ""
|
|
32
|
+
rhythm:
|
|
33
|
+
pacing: "" # 快 / 中 / 慢
|
|
34
|
+
variation: "" # 好 / 一般 / 平淡
|
|
35
|
+
notes: ""
|
|
36
|
+
dialogue:
|
|
37
|
+
ratio: 0.0
|
|
38
|
+
quality: "" # 角色分化度
|
|
39
|
+
notes: ""
|
|
40
|
+
|
|
41
|
+
# ── AI痕迹检测 ────────────────────────────────────────────
|
|
42
|
+
ai_detection:
|
|
43
|
+
score: 0 # 人化评分 0-100,越高越好
|
|
44
|
+
total_issues: 0 # 发现的AI痕迹总数
|
|
45
|
+
high_severity: [] # 高严重度问题
|
|
46
|
+
# - location: "第X段"
|
|
47
|
+
# text: "原文片段"
|
|
48
|
+
# pattern: "匹配到的AI模式"
|
|
49
|
+
# suggestion: "替换建议"
|
|
50
|
+
medium_severity: [] # 中严重度问题
|
|
51
|
+
low_severity: [] # 低严重度提示
|
|
52
|
+
|
|
53
|
+
# ── 目标风格偏差 ──────────────────────────────────────────
|
|
54
|
+
# 与 fingerprint.yaml 中目标风格的对比
|
|
55
|
+
deviation:
|
|
56
|
+
tone_match: true # 基调是否匹配
|
|
57
|
+
tone_notes: ""
|
|
58
|
+
rhythm_match: true # 节奏是否匹配
|
|
59
|
+
rhythm_notes: ""
|
|
60
|
+
dialogue_ratio_diff: 0.0 # 对话占比偏差(实际 - 目标)
|
|
61
|
+
dialogue_notes: ""
|
|
62
|
+
overall_alignment: "" # 高 / 中 / 低
|
|
63
|
+
|
|
64
|
+
# ── 改进建议 ──────────────────────────────────────────────
|
|
65
|
+
suggestions:
|
|
66
|
+
must_fix: [] # 必须修改
|
|
67
|
+
# - "删除X处AI痕迹"
|
|
68
|
+
should_fix: [] # 建议修改
|
|
69
|
+
# - "增加对话比例到55%"
|
|
70
|
+
optional: [] # 可选优化
|
|
71
|
+
# - "打破长段落,增加节奏变化"
|
|
72
|
+
|
|
73
|
+
# ── 评分汇总 ──────────────────────────────────────────────
|
|
74
|
+
scores:
|
|
75
|
+
humanization: 0 # 人化评分 0-100
|
|
76
|
+
style_adherence: 0 # 风格遵循度 0-100
|
|
77
|
+
readability: 0 # 可读性 0-100
|
|
78
|
+
overall: 0 # 综合评分 0-100
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# 风格合成文档模板
|
|
2
|
+
|
|
3
|
+
> 本模板用于生成最终的写作风格指令。Agent 合成风格时按此结构输出到
|
|
4
|
+
> `data/novels/{novel_id}/data/style/composed.md`
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# {novel_id} — 合成风格指令
|
|
9
|
+
|
|
10
|
+
生成时间: {timestamp}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 一、硬性约束(不可违反)
|
|
15
|
+
|
|
16
|
+
> 来源: 作品设定(Layer 3)+ 用户覆盖
|
|
17
|
+
|
|
18
|
+
### 禁止事项
|
|
19
|
+
- [ ] (列出禁用表达、禁用情节元素等)
|
|
20
|
+
|
|
21
|
+
### 必须遵守
|
|
22
|
+
- [ ] (列出必须遵循的世界观规则、角色一致性要求等)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 二、风格约束(应当遵循)
|
|
27
|
+
|
|
28
|
+
> 来源: 作品风格指纹(Layer 2)
|
|
29
|
+
|
|
30
|
+
### 叙述声音
|
|
31
|
+
- **视角**: (第一人称/第三人称限知/全知等)
|
|
32
|
+
- **基调**: (轻松幽默/严肃/悬疑等)
|
|
33
|
+
- **叙述者态度**: (同情/旁观/讽刺等)
|
|
34
|
+
|
|
35
|
+
### 语言风格
|
|
36
|
+
- **词汇层级**: (日常/文学/古风/技术)
|
|
37
|
+
- **推荐句式**:
|
|
38
|
+
- (句式1)
|
|
39
|
+
- (句式2)
|
|
40
|
+
- **比喻风格**: (描述)
|
|
41
|
+
|
|
42
|
+
### 节奏控制
|
|
43
|
+
- **整体节奏**: (快/中/慢)
|
|
44
|
+
- **段落比例**: 短段 X% / 中段 Y% / 长段 Z%
|
|
45
|
+
- **场景切换**: (描述方式)
|
|
46
|
+
|
|
47
|
+
### 对话
|
|
48
|
+
- **对话占比**: X%
|
|
49
|
+
- **标签风格**: (最简/标准/描述性)
|
|
50
|
+
- **潜台词**: (高/中/低)
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 三、可选技法(按需使用)
|
|
55
|
+
|
|
56
|
+
> 来源: 通用技法层(Layer 1: craft/)
|
|
57
|
+
|
|
58
|
+
### 去AI味规则
|
|
59
|
+
参考 `craft/humanization.yaml`,核心要点:
|
|
60
|
+
- 避免高频 AI 词汇("然而""不禁""缓缓"等)
|
|
61
|
+
- 允许自然的不完美(片段句、口语化)
|
|
62
|
+
- 长短句参差变化
|
|
63
|
+
|
|
64
|
+
### 对话技法
|
|
65
|
+
参考 `craft/dialogue_craft.md`,核心要点:
|
|
66
|
+
- (列出适用的对话技法)
|
|
67
|
+
|
|
68
|
+
### AI痕迹检测
|
|
69
|
+
参考 `craft/ai_patterns.yaml`,写作后自查:
|
|
70
|
+
- 高严重度词汇(必须替换)
|
|
71
|
+
- 中严重度词汇(建议替换)
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 四、生成检查清单
|
|
76
|
+
|
|
77
|
+
写作完成后,用以下清单自检:
|
|
78
|
+
|
|
79
|
+
- [ ] 无禁用词/表达
|
|
80
|
+
- [ ] 对话占比在目标范围内(±5%)
|
|
81
|
+
- [ ] 段落长短有变化,无连续3个以上等长段落
|
|
82
|
+
- [ ] 叙述基调一致
|
|
83
|
+
- [ ] 无明显AI套路(参见 `craft/ai_patterns.yaml`)
|
|
84
|
+
- [ ] 角色声音有区分度
|
|
85
|
+
- [ ] 场景切换自然
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## 合成来源
|
|
90
|
+
|
|
91
|
+
| 层级 | 文件 | 优先级 |
|
|
92
|
+
|------|------|--------|
|
|
93
|
+
| Layer 3 | `data/novels/{novel_id}/...` | 最高(硬性约束) |
|
|
94
|
+
| Layer 2 | `data/novels/{novel_id}/data/style/fingerprint.yaml` | 高(风格约束) |
|
|
95
|
+
| Layer 1 | `craft/humanization.yaml` 等 | 参考(可选技法) |
|
|
96
|
+
| 覆盖 | 用户实时指令 | 最高 |
|