@oh-story/dsh 0.1.10 → 0.1.12
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/README.md +11 -11
- package/lib/client.js +7 -3
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +212 -142
- package/lib/drama/skills/short-drama/SKILL.md +14 -2
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
- package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
- package/lib/drama/skills/short-drama-edit/SKILL.md +43 -20
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +4 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +3 -1
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +6 -2
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +12 -6
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +13 -8
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1153 -121
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +49 -9
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -2
- package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -0
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +13 -5
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +82 -14
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +5 -3
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +12 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +40 -1
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +20 -14
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +8 -7
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
- package/lib/drama/skills/short-drama-write/SKILL.md +8 -3
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
- package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
- package/lib/index.js +71 -21
- package/lib/index.js.map +3 -3
- package/lib/oh-story/manifest.json +545 -310
- package/lib/oh-story/roles/chapter-extractor.md +11 -11
- package/lib/oh-story/roles/character-designer.md +1 -2
- package/lib/oh-story/roles/consistency-checker.md +11 -9
- package/lib/oh-story/roles/narrative-writer.md +24 -25
- package/lib/oh-story/roles/story-architect.md +9 -61
- package/lib/oh-story/roles/story-explorer.md +20 -125
- package/lib/oh-story/roles/story-researcher.md +0 -1
- package/lib/oh-story/skills/story/SKILL.md +6 -6
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-deslop/SKILL.md +24 -25
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +21 -4
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-import/SKILL.md +63 -579
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
- package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +95 -91
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +101 -14
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +28 -50
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +12 -5
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +1 -1
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +21 -55
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +17 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +1 -1
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +47 -8
- package/lib/oh-story/skills/story-long-scan/SKILL.md +41 -193
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
- package/lib/oh-story/skills/story-long-write/SKILL.md +32 -73
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +18 -201
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +6 -10
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +3 -2
- package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -6
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +33 -44
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +18 -51
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +53 -67
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -251
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +5 -3
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +18 -56
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +96 -16
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +101 -14
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +2 -1
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +250 -50
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-review/SKILL.md +19 -273
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-review/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-review/references/review-quality.md +2 -1
- package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
- package/lib/oh-story/skills/story-review/references/solo.md +52 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-setup/SKILL.md +69 -458
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +21 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +18 -56
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +3 -3
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +37 -110
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
- package/lib/oh-story/skills/story-short-analyze/references/{material-decomposition.md → stage4-6-reversal-summary.md} +303 -374
- package/lib/oh-story/skills/story-short-scan/SKILL.md +30 -64
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -34
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -49
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +19 -12
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +22 -32
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +84 -17
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +2 -2
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +60 -1
- package/lib/video-recap/README.en.md +348 -137
- package/lib/video-recap/README.md +340 -136
- package/lib/video-recap/manifest.json +406 -251
- package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
- package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
- package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
- package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
- package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
- package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
- package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
- package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
- package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
- package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
- package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
- package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
- package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
- package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
- package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
- package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
- package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
- package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
- package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
- package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
- package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
- package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
- package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
- package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
- package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
- package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
- package/lib/video-recap/skills/video-script/SKILL.md +16 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
- package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
- package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
- package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
- package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
- package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
- package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
- package/lib/video-recap/skills/video-understanding/scripts/{agent_brief.py → briefing/builder.py} +38 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_context.py → video-understanding/scripts/briefing/context.py} +4 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
- package/lib/video-recap/skills/video-understanding/scripts/{brief_timeline.py → briefing/timeline.py} +5 -6
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
- package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
- package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
- package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
- package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
- package/package.json +41 -41
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -538
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -603
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
- package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +0 -399
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +0 -327
- package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +0 -348
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
- /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
- /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
- /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
|
@@ -150,7 +150,7 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
|
|
|
150
150
|
|
|
151
151
|
#### 矛盾和冲突的区别
|
|
152
152
|
|
|
153
|
-
- "矛盾"
|
|
153
|
+
- "矛盾"在全书/全卷层面,"冲突"在具体场景层面。
|
|
154
154
|
- 矛盾决定主线方向,冲突是具体表现。
|
|
155
155
|
|
|
156
156
|
#### 第一幕陷阱
|
|
@@ -309,11 +309,11 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
|
|
|
309
309
|
|
|
310
310
|
| 类型 | 运行方式 | 适用 |
|
|
311
311
|
|------|----------|------|
|
|
312
|
-
| 可重复型 |
|
|
312
|
+
| 可重复型 | 每个剧情单元中重复运行 | 升级文、系统文、文抄娱乐 |
|
|
313
313
|
| 不可重复型 | 贯穿全文但只在最高潮爆发一次 | 追妻、掉马、禁忌之恋 |
|
|
314
314
|
| 长期铺垫型 | 以期待点形式贯穿 | 悬疑、复仇、解谜 |
|
|
315
315
|
|
|
316
|
-
|
|
316
|
+
运行节奏:第一个剧情单元中必须运行一次或完成首次铺垫。连续多个剧情单元不运行 = 读者弃书。
|
|
317
317
|
|
|
318
318
|
双线构思法:布两条线--一条重复运行核心梗,另一条不重复,交替推进。
|
|
319
319
|
|
|
@@ -450,7 +450,7 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
|
|
|
450
450
|
- [ ] 感情线(如有)是否按四阶段推进,试探阶段占30-50%
|
|
451
451
|
- [ ] 金手指是否通过合格五问,能力是否碎片化融入剧情
|
|
452
452
|
- [ ] 显性身份/隐性身份/显性金手指/隐性金手指四点是否统一
|
|
453
|
-
- [ ]
|
|
453
|
+
- [ ] 核心梗是否在第一个剧情单元中运行一次或完成首次铺垫
|
|
454
454
|
- [ ] 循环核心是否匹配题材,是否偏离核心卖点
|
|
455
455
|
- [ ] 每个事件是否有至少一个价值改变,能推进主线
|
|
456
456
|
- [ ] 信息传达顺序是否匹配场景类型(基础/铺垫/反转/高潮)
|
|
@@ -16,8 +16,8 @@ Phase 3 建大纲时加载。包含大纲创建法、结构分级、节点设计
|
|
|
16
16
|
|
|
17
17
|
| 级别 | 特征 | 适用 |
|
|
18
18
|
|------|------|------|
|
|
19
|
-
| 一级 |
|
|
20
|
-
| 1.5 级 |
|
|
19
|
+
| 一级 | 剧情单元松散连接,靠时间串联,最后大高潮 | 入门 |
|
|
20
|
+
| 1.5 级 | 剧情单元间有逻辑线索串联,指向核心目标 | 进阶 |
|
|
21
21
|
| 二级 | 小高潮→意外下行→上行转折→大高潮链 | 高阶 |
|
|
22
22
|
|
|
23
23
|
## 五步大纲创建法
|
|
@@ -32,14 +32,14 @@ Phase 3 建大纲时加载。包含大纲创建法、结构分级、节点设计
|
|
|
32
32
|
- [ ] 是否与阶段目标高度一致?
|
|
33
33
|
- [ ] 读者情绪波动是否最大?
|
|
34
34
|
|
|
35
|
-
### 第2
|
|
35
|
+
### 第2步:确定剧情单元
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
每个剧情单元 = 主角用金手指优势获得爽点。同类型重复 = 剧情套路,有逻辑关系的成组出现 = 剧情套路链路。
|
|
38
38
|
|
|
39
39
|
操作要求:
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
40
|
+
- 每个剧情单元必须展示金手指不同用法
|
|
41
|
+
- 相邻剧情单元禁止使用相同金手指逻辑
|
|
42
|
+
- 剧情单元之间必须建立因果关系
|
|
43
43
|
|
|
44
44
|
### 第3步:故事线组织与信息点预埋
|
|
45
45
|
|
|
@@ -246,7 +246,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
|
|
|
246
246
|
|
|
247
247
|
### 开头精简法
|
|
248
248
|
|
|
249
|
-
1.
|
|
249
|
+
1. 整理开头第一个剧情单元的矛盾
|
|
250
250
|
2. 把介绍性、抒情性文字逐条向上连——尝试与矛盾直接关联
|
|
251
251
|
3. 隔了好几层逻辑才能连上的 → **无效信息,删除**
|
|
252
252
|
4. 后文没戏份的配角不给名字
|
|
@@ -257,7 +257,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
|
|
|
257
257
|
|------|------|
|
|
258
258
|
| 爽点/期待点出现 | 1000字内必须看到 |
|
|
259
259
|
| 打斗 | 第一章不能上来就打 |
|
|
260
|
-
| 爱情线对象 |
|
|
260
|
+
| 爱情线对象 | 第一个剧情单元内必须出场 |
|
|
261
261
|
| 金手指展示 | 第一个冲突由金手指解决,主角主动选择使用 |
|
|
262
262
|
|
|
263
263
|
---
|
|
@@ -353,7 +353,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
|
|
|
353
353
|
|
|
354
354
|
1. 确定目标矛盾类型,在剧情原型库中检索
|
|
355
355
|
2. 将匹配剧情拆为细纲放左边,自己的情况放右边,逐点改编
|
|
356
|
-
3.
|
|
356
|
+
3. 验证改编后是否满足目标情绪、与主线衔接、无逻辑漏洞
|
|
357
357
|
|
|
358
358
|
### 同人衍生型大纲法
|
|
359
359
|
|
package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md
CHANGED
|
@@ -152,7 +152,7 @@
|
|
|
152
152
|
| **太赶** | 重大转折只用了 1 节铺垫 | 给转折至少 3 节铺垫 |
|
|
153
153
|
| **假虐** | 读者不心疼,只是看着难受 | 检查羁绊铺设是否具体 |
|
|
154
154
|
| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |
|
|
155
|
-
| **烂尾** |
|
|
155
|
+
| **烂尾** | 反转后还在补交代、新开事件 | 篇幅按小节大纲分配;反转后只写兑现与余韵 |
|
|
156
156
|
| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设,确保行为逻辑一致 |
|
|
157
157
|
|
|
158
158
|
---
|
|
@@ -415,18 +415,3 @@
|
|
|
415
415
|
| 情感/虐心 | 中强 | 情感、反差、余韵 |
|
|
416
416
|
| 古言/宫斗 | 中强 | 底牌、打脸、代价 |
|
|
417
417
|
| 年代/亲情 | 中 | 情感、反差、余韵 |
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
## 质量检查清单
|
|
422
|
-
|
|
423
|
-
> 写完每个公式后逐项核对。全部通过才算合格。
|
|
424
|
-
|
|
425
|
-
- [ ] **公式对位**:所用公式与题材标签匹配,没有混用不相关公式
|
|
426
|
-
- [ ] **情绪节拍完整**:情绪曲线与公式要求的节拍一致,没有跳过或乱序
|
|
427
|
-
- [ ] **必选场景齐全**:每个"必选场景"都在文中出现,没有遗漏
|
|
428
|
-
- [ ] **核心规则遵守**:公式"规则"部分的每一条都已落实
|
|
429
|
-
- [ ] **篇幅合规**:章/节数量在公式规定范围内
|
|
430
|
-
- [ ] **女频/男频区分**:如果是复仇打脸类,已按公式十四的核心差异调整写法
|
|
431
|
-
- [ ] **牵引不断线**:钩子落在预期、行动方向或关系判断变化处,没有连续多个小节只提问不兑现
|
|
432
|
-
- [ ] **开头3秒抓人**:第一段/第一句已建立核心冲突或信息炸弹,没有慢热铺垫
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 装逼打脸与爽点释放
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 写装逼打脸与战斗场景用。规则都是必须执行的操作规范:爽点释放法则 > 装逼框架 > 具体描写技巧;该爽不爽,比毒点还毒。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,18 +13,11 @@
|
|
|
13
13
|
| 设计战斗/打斗场景 | 打斗/智斗写作 -> 战斗描写三板斧 |
|
|
14
14
|
| 写无敌文主角 | 无敌文核心要领 |
|
|
15
15
|
| 设计打脸节奏和情绪调动 | 打脸节奏与脑洞创意 -> 情绪调动三阶法 |
|
|
16
|
-
| 设计后宫/爱情线 | 后宫文女主人设设计法 / 男频极简爱情线构型 |
|
|
17
16
|
| 写新媒体/短平快装逼 | 新媒体写作与题材套路 |
|
|
18
17
|
| 搭建装逼舞台 | 舞台搭建法 |
|
|
19
18
|
| 打脸写了但不爽 | 检查:爽点释放到位法则 + 前置小无敌准备了吗 + 对手层级够不够 |
|
|
20
19
|
| 战斗场景枯燥/流水账 | 检查:战斗描写三板斧 + 情绪调动三阶法 + 攻防选择、伤势和动作后果是否清楚 |
|
|
21
20
|
|
|
22
|
-
## 指令语气
|
|
23
|
-
|
|
24
|
-
本文件以"战术指令"语气书写。装逼打脸和战斗描写是网文核心商业价值所在,所有规则都是**必须执行**的操作规范。爽点释放法则 > 装逼框架 > 具体描写技巧。核心铁律:**该爽不爽,比毒点还毒**。
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
21
|
## 爽点释放到位法则
|
|
29
22
|
|
|
30
23
|
### 核心问题
|
|
@@ -130,56 +123,6 @@
|
|
|
130
123
|
|
|
131
124
|
---
|
|
132
125
|
|
|
133
|
-
## 后宫文女主人设设计法
|
|
134
|
-
|
|
135
|
-
### 核心思路
|
|
136
|
-
后宫文的关键是弱化男主"主动渣"的感觉,让女主自身设定成为推动后宫的主力。
|
|
137
|
-
|
|
138
|
-
### 设计原则
|
|
139
|
-
1. **女主人设要预设方向**:开书前就设计好每个女主的核心特质
|
|
140
|
-
2. **差异化设计**:不同女主有完全不同的价值观和背景
|
|
141
|
-
3. **同居培养感情**:开局让女主们同住一个屋檐下,彼此成为朋友
|
|
142
|
-
|
|
143
|
-
### 温水煮青蛙法
|
|
144
|
-
以三个女主为例:
|
|
145
|
-
|
|
146
|
-
| 角色 | 人设设计 | 在后宫中的作用 |
|
|
147
|
-
|------|----------|---------------|
|
|
148
|
-
| 青梅(正宫) | 传统价值观,占据防守位 | 从小一起长大,天然正宫 |
|
|
149
|
-
| 女主B | 家庭圆满家教开明,理性看待感情 | 不在意名分,只在意快乐 |
|
|
150
|
-
| 女主C | 缺少父爱和社交,爱情观模糊 | 不存在一夫一妻制思想束缚 |
|
|
151
|
-
|
|
152
|
-
核心逻辑:
|
|
153
|
-
- 青梅占据正宫与防守位
|
|
154
|
-
- 另两个女主不在意后宫,只在意跟主角在一起
|
|
155
|
-
- 把"主角脚踏多条船"的问题转化为"青梅防守 vs 另两人共享"的问题
|
|
156
|
-
- 一点一点突破青梅的防守底线,等反应过来时已经是既成事实
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## 男频极简爱情线构型
|
|
161
|
-
|
|
162
|
-
### 核心原则
|
|
163
|
-
男频爱情线不需要复杂的情感博弈,核心是"英雄救美 + 事业舞台 + 对手衬托"三要素。
|
|
164
|
-
|
|
165
|
-
### 极简构型
|
|
166
|
-
1. **英雄救美**:女主陷入困境 -> 主角用金手指/实力解决 -> 建立初始好感
|
|
167
|
-
2. **事业舞台**:主角在事业上展示金手指 -> 女主在场作为重要观众 -> 好感随事业成就升级
|
|
168
|
-
3. **对手衬托**:情敌/对手同时是事业对手 -> 打败对手既是事业胜利也是感情胜利
|
|
169
|
-
|
|
170
|
-
### 关键操作
|
|
171
|
-
- 女主的每一次好感升级都绑定在主角的事业成就上,不单独写纯感情戏
|
|
172
|
-
- 女主有自己的事业线/目标,不是花瓶——她的事业目标与主角有交叉但独立
|
|
173
|
-
- 情敌的价值在于他同时威胁主角的事业和感情,打脸时有双重爽感
|
|
174
|
-
- 感情节奏跟着事业节奏走:事业低谷时感情拉扯,事业高峰时感情升温
|
|
175
|
-
|
|
176
|
-
### 爱情线与事业线融合检查
|
|
177
|
-
- 删掉所有爱情线段落,事业线是否还成立?如果不行 = 爱情线拖后腿了
|
|
178
|
-
- 删掉所有事业线段落,爱情线是否还有看点?如果不行 = 爱情线太弱
|
|
179
|
-
- 理想状态:两条线互相增强,拆开各自能看,合在一起更好看
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
126
|
## 打斗/智斗写作
|
|
184
127
|
|
|
185
128
|
### 打斗的本质
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
### 题材正文提示卡模板
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
项目在写第 1 章前生成 `设定/题材正文提示卡.md`。没有该文件时,Phase 4 写前先用 `设定/题材定位.md` 匹配 `genre-prose-cards.md` 索引并读取 `genre-prose-cards/{题材}.md` 单卡;仍无匹配再从本文件即时抽取一张轻量卡。卡片保持短,给 `narrative-writer` 传摘要,不把参考文件整段复制进 prompt。
|
|
41
41
|
|
|
42
42
|
```markdown
|
|
43
43
|
## 题材正文提示卡
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
|
|
13
13
|
## 加载与传递
|
|
14
14
|
|
|
15
|
-
1. 从本次正文路径确定书目录(长篇为 `正文/` 的父目录,短篇为 `正文.md` 所在目录)。读该书 `设定/文风.md`;短篇同时读 `设定.md`
|
|
16
|
-
2. `_文风摘要.md`
|
|
17
|
-
3.
|
|
18
|
-
4. 在现有 prompt 填 `style_resolution`:本次生效的表达要求及来源、被覆盖的默认条款、必须保留的事实/信息边界;只列与任务有关的冲突,无冲突可写“按本书文风”。原样传给正文、去味和文字 reviewer
|
|
15
|
+
1. 从本次正文路径确定书目录(长篇为 `正文/` 的父目录,短篇为 `正文.md` 所在目录)。读该书 `设定/文风.md`;短篇同时读 `设定.md` 的文风约定。无文件就继续,不建占位文件、不猜其他书。文风无最低字数限制,一句可执行的偏好也有效;空白、纯标题、待补充不算。
|
|
16
|
+
2. `_文风摘要.md` 只辅助定位,不替代全文。当前会话已读全文时无需反复读;摘要与全文不一致用全文,不让旧摘要压过作者的新修改。
|
|
17
|
+
3. 有作者记忆时 query,显式传当前书名、已知题材和流程以及需要的 kind,避免只取到 global;没有就跳过。只用 active;同一维度窄范围覆盖宽范围,不拼成同时满足的清单。无法判定的同范围冲突才问作者,已能按优先级解决的不询问。
|
|
18
|
+
4. 在现有 prompt 填 `style_resolution`:本次生效的表达要求及来源、被覆盖的默认条款、必须保留的事实/信息边界;只列与任务有关的冲突,无冲突可写“按本书文风”。原样传给正文、去味和文字 reviewer,并传文风全文路径。同批复用,当前请求或文风变动时更新。单独调用去味/审稿也执行本步骤,不靠上次会话的记忆。
|
|
19
19
|
|
|
20
20
|
## 检测器如何服从裁决
|
|
21
21
|
|
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
# 写作技法:可执行指令集
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
**本文件职责**(其他内容去哪看):
|
|
8
|
-
- 本文件只管「贯穿道具的三次出现编排规则」;情绪功能按任务 profile 读取 long-emotional-methods.md 或 short-emotional-methods.md
|
|
9
|
-
- 对话相关(含权力博弈的规则/模式/示例/操作指令)一律见 dialogue-mastery.md,本文件不重复
|
|
10
|
-
- 本文件只管「开头事件密度指令」,不管「开头设计」(开头设计见 opening-design.md)
|
|
11
|
-
- 长篇题材声线走 genre-prose-cards.md,短篇结构走 short-genre-formulas.md;本文件的「贯穿道具系统」提供可执行设计模板
|
|
12
|
-
- 本文件第 8 节「场景写法(三维度揉进)」是 Phase 3 的写作方法,format-and-structure.md 的「小节结构」是结构规范
|
|
13
|
-
- 本文件「贯穿道具系统」只规定物件的跨场景编排和意义翻转;初始情感含义由当前 long/short profile 的情绪方法负责
|
|
14
|
-
- 本文件第 10 节「在场者的账」只管**谁能上镜、他的动机要不要露出来、分量由谁标价**;具体的对话怎么写(长度、权力反转、句式)仍见 dialogue-mastery.md,本文件不重复
|
|
3
|
+
> 写作全程参考。对话怎么写见 dialogue-mastery.md,开篇设计见 opening-design.md,章节格式按长篇 long-format.md 或短篇 format-and-structure.md。
|
|
15
4
|
|
|
16
5
|
---
|
|
17
6
|
|
|
@@ -80,10 +69,7 @@
|
|
|
80
69
|
第3次出现:第{N}节 | {场景} | 含义:{结尾意义}
|
|
81
70
|
```
|
|
82
71
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
| 类型 | 特征 | 代表 |
|
|
86
|
-
|------|------|------|
|
|
72
|
+
------|------|------|
|
|
87
73
|
| 信物型 | 承载关系的象征物 | 金锁(姐夫捎路)、木头小马(皇弟) |
|
|
88
74
|
| 工具型 | 日常使用的功能性物件 | 打分本(准儿媳)、账本(迟来二十年) |
|
|
89
75
|
| 痕迹型 | 残留的身体/环境痕迹 | 手腕旧疤、墙上身高刻度 |
|
|
@@ -210,7 +196,7 @@
|
|
|
210
196
|
| 关键子事件读得懂吗? | 现场、因果或角色下一步缺了必要信息 | 只补真正缺失的维度;不为凑齐三项补感官或身体动作(见第8节) |
|
|
211
197
|
| 对话只有 1-2 轮? | 缺少对话交锋 | 加一轮权力博弈对话(见第3节) |
|
|
212
198
|
| 情绪信息落地了吗? | 只贴标签,或又用无功能微动作重复解释 | 优先落到选择、台词、物件和后果;必要时直写,身体细节须有功能(见第1节) |
|
|
213
|
-
|
|
|
199
|
+
| 仍偏短且关键情节点写薄? | 冲突、选择、代价或关系变化没有演到位 | 回到细纲内已有事件补交锋与后果;没有内容就补纲,不拿感官/回忆注水 |
|
|
214
200
|
|
|
215
201
|
### 子事件不够时怎么扩
|
|
216
202
|
|
|
@@ -265,8 +251,8 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
265
251
|
- 同一约束如果在「核心事件 / 内容概括 / 情节安排 / 情节点」里重复出现,生成前只合并成**一个语义点**;重复字段不是强调,更不是四次复述额度。正文不得沿用提纲里反复出现的同一措辞逐项交代。
|
|
266
252
|
- 五段式(起因/发展/转折/高潮/结尾)是给细纲作者的功能拆解,不是正文的五个自然段;正文不必逐段顺叙,也不必一段对一格。
|
|
267
253
|
- "谁做了什么"的概括句、"A→B→C"箭头链、"收束到什么状态"是规划口径,不要原样搬进叙述。
|
|
268
|
-
-
|
|
269
|
-
-
|
|
254
|
+
- 同一场戏里的几个点可以合并、互相打断,不必排成逐点清单;因果依赖或刻意的停顿分隔才串行。只改顺序不会让正文变好看(交错与否的对照实验测不出差别),密点展开、疏点带过更要紧(见「疏密分配」)。
|
|
255
|
+
- 章尾落在最后一个具体的动作、画面、台词或悬念上;细纲「结尾设定」是规划口径,不要在正文里写成"就这样……""他终于明白……"式的状态总结句(结尾去升华见 anti-ai-writing.md)。
|
|
270
256
|
|
|
271
257
|
### 视角姿态:深度限知(贴地沉浸)
|
|
272
258
|
|
|
@@ -323,23 +309,6 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
323
309
|
|
|
324
310
|
→ 这里的身体反应改变了落笔结果,承担信息;不是为了证明人物紧张而另加微动作
|
|
325
311
|
|
|
326
|
-
### 自检方法
|
|
327
|
-
|
|
328
|
-
**写法抽查(质检侧用)**
|
|
329
|
-
|
|
330
|
-
只许指出正文里**已有**的那一处,没有就答「无」,**不许为了让某一问有答案回头补内容**;只报告实际删改与保留理由,写手不另交验收说明。详写的关键场景里,遮住一处发生、感知或反应后读者什么也没损失,就删掉它;套式反应按第 1 节「套式反应删除测试」逐处过。
|
|
331
|
-
|
|
332
|
-
| # | 自问 | 不合格的样子 | 见 |
|
|
333
|
-
|---|---|---|---|
|
|
334
|
-
| 1 | 本章最大的那次状态变化,读者看见了几个中间态? | 只给了"起点"和"终点";或同一状态换十种说法说十遍 | 本节「从细纲到正文」 |
|
|
335
|
-
| 2 | 有没有一组同类并列项被平均分配了笔墨? | 三样物件、四拨人马各给同样的分辨率 | 本节「疏密分配」 |
|
|
336
|
-
| 3 | 本章的设定/能力/威胁,是被说出来的,还是被谁付了代价试出来的? | 旁白直接给出结论,读者没有自己发现的机会 | 第 1 节 |
|
|
337
|
-
| 4 | "厉害/难得/要命"这些判断,是谁给出的?他有什么立场? | 叙述者自己下的判断;结论由旁白先说出来、在场的人只负责吃惊;或标价人就在场却没标价 | 第 10 节「标价人」 |
|
|
338
|
-
| 5 | 每个给了镜头的人,此刻在为自己争取什么? | 遮住名字认不出是谁说的;所有人同向配合主角;用手部/喉部微动作代替立场;或把他的算计写成一段旁白独白 | 第 10 节「镜头准入」 |
|
|
339
|
-
| 6 | 该说出口的话,是写出来了还是被概括了? | "他吼了一声""他说了句什么""三言两语解释了缘由";本该来回几轮的交锋压成一次说完 | 第 3 节 |
|
|
340
|
-
| 7 | 本章最重的那一句,是不是最短的那一段? | 最重的一拍写成了全章最长的段落 | 本节「画面分段」 |
|
|
341
|
-
| 8 | 判为"密"的段落里,有没有量词加概括? | "一连七八下""半晌""众人纷纷"出现在密处 | 本节「疏密分配」 |
|
|
342
|
-
|
|
343
312
|
### 画面分段(防止一段到底)
|
|
344
313
|
|
|
345
314
|
三维度揉进不是把一个子事件塞进一个长段。揉进解决"同一瞬间被拆成发生/感知/反应三段"的问题;断段解决"手机阅读时一段过密"的问题。
|
|
@@ -357,7 +326,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
357
326
|
判定规则:
|
|
358
327
|
|
|
359
328
|
- 一段只承载一个镜头拍点/一个动作单元,或一条尚未结束的连续推理、氛围、情绪链。
|
|
360
|
-
-
|
|
329
|
+
- 常规叙事段可短,但句子内部不碎——叙述句不要一个动作一句号、句句断开,也不要用逗号罗列动作——用虚词把前后接成一口气(见本节「句子怎么连」);细密描写、推理判断、氛围压迫、情绪沉淀可以稍长,前提是仍在讲同一件事。
|
|
361
330
|
- 长度只是诊断,不是强制阈值:读起来拥挤、包含多个动作/信息/视线切换时才拆;完整戏剧单元未结束时不要为凑短而硬拆。
|
|
362
331
|
- 常规正文保持短段、稍长段、对话、动作段交替;高压冲突、打脸、反转段可以更碎更短。
|
|
363
332
|
- 不要连续多段同长度,也不要把一个完整推理链切成机械碎片。
|
|
@@ -386,36 +355,29 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
386
355
|
|
|
387
356
|
### 疏密分配(详略不均)
|
|
388
357
|
|
|
389
|
-
|
|
358
|
+
不要每个情节点一样长、一样细——平均用力是 AI 腔的根源,也是读起来"哪都写得满、哪都不出彩"的原因。按情节权重分配笔墨:
|
|
390
359
|
|
|
391
|
-
|
|
|
360
|
+
| 情节点类型 | 笔墨 | 写法 |
|
|
392
361
|
|---|---|---|
|
|
393
362
|
| 爽点/打脸/反转/情绪高潮 | 密(详写) | 感知、动作、对话交锋铺满,慢镜头逐拍展开 |
|
|
394
363
|
| 过场/赶路/信息交代/时间跳转 | 疏(略写) | 1-2 句带过,甚至一句概括,不展开三维度 |
|
|
395
364
|
| 铺垫/日常/关系升温 | 中 | 挑一两个有代入感的细节写实,其余略 |
|
|
396
365
|
|
|
397
|
-
|
|
366
|
+
原则:一章里详写的情节点集中在情绪节点,过场坚决压缩。读者记住的是密处的画面,疏处只是把他们快速送到下一个爽点。密度有起伏,节奏才有呼吸。
|
|
398
367
|
|
|
399
368
|
**同类并列项要递减,不要平均。** 三样物件、四拨人马、五次出手——第一个写足,第二个减半,后面的一句带过或只给一个区别点。**递减不是省略**:被压缩的那几个仍要各有一个不重复的记号,否则是漏写。
|
|
400
369
|
|
|
401
370
|
**判为"密"的地方禁止量词加概括。** "一连七八下""斗了半晌""众人纷纷点头""交手数十回合"(把过程折叠成一个数字,是疏处的手法)。密处只有一种写法:挑出其中**具体的几下**,逐拍写。
|
|
402
371
|
|
|
403
|
-
###
|
|
372
|
+
### 句子怎么连
|
|
404
373
|
|
|
405
|
-
|
|
374
|
+
子事件之间按真实关系连接(因果、接招、新信息、空间移动、角色下一步),不为过渡另补身体动作。句子内部同样要连,不要罗列:
|
|
406
375
|
|
|
407
|
-
-
|
|
408
|
-
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
| 场景类型 | 可用的感知细节 |
|
|
413
|
-
|---|---|
|
|
414
|
-
| 阅读/翻看 | 字迹深浅、纸张触感、墨水洇开、页角卷曲 |
|
|
415
|
-
| 对话场景 | 对方表情变化、语气停顿、空气里的沉默 |
|
|
416
|
-
| 回忆场景 | 画面中的某个细节突然清晰(气味/声音/触感) |
|
|
417
|
-
| 室内场景 | 光线变化、物品的位置、温度 |
|
|
418
|
-
| 移动场景 | 脚步声、地面的触感、风的方向 |
|
|
376
|
+
- **动作串分主次、带虚词**:一句里超过三个动作,用「就、才、又、便、却、倒、还、再、先……才」接出先后和因果,别写成逗号清单。❌「坛子挪到墙角,床板拿袖子擦了一遍,铺盖摊开。」✅「她先把坛子挪到墙角,拿袖子把床板擦了一遍,这才把铺盖摊开。」
|
|
377
|
+
- **少写没做的事**:「没A,也没B」「不A,也不B」一章至多一两处,写人物做了什么。❌「他没说让她住,也没说不让。」✅「他掀着帘子站了一会儿,一句话不说,进里间去了。」
|
|
378
|
+
- **对话带口气**:人物说话按身份、年纪、地方带「吧、呢、啊、嘛、哎」和口头的停顿,全章对话不能一个语气词都没有。
|
|
379
|
+
- **碎句留给重拍**:单独成行的短句只给章尾、反转、情绪峰值;盘算、过渡写成连贯的一句。
|
|
380
|
+
- **比喻用中文现成的说法**,不造「嗓门比香味还亮」这类跨感官新搭配。
|
|
419
381
|
|
|
420
382
|
### 三维度的边界
|
|
421
383
|
|
|
@@ -430,7 +392,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
430
392
|
|
|
431
393
|
### 规则
|
|
432
394
|
|
|
433
|
-
|
|
395
|
+
标点承担语气、权力关系和情绪起落,不能当装饰。写正文时先判断“这句话在场景里做什么”,再决定用句号、逗号、问号、感叹号、冒号或换行/动作;不再用省略号和破折号制造停顿。
|
|
434
396
|
|
|
435
397
|
### 标点谱系
|
|
436
398
|
|
|
@@ -445,7 +407,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
445
407
|
|
|
446
408
|
### 执行步骤
|
|
447
409
|
|
|
448
|
-
1.
|
|
410
|
+
1. 读本场景目标情绪和角色声线,给每个关键对话回合标一类语气(压迫/试探/爆发/迟疑/被打断)。
|
|
449
411
|
2. 精修时扫一遍句尾:如果一整段只剩句号,检查是否把质问、迟疑、爆点压平;如果满屏 `?`/`!`,删到只保留有功能的位置。
|
|
450
412
|
3. 正文(含对话)里的 `……`、`——`、`—`、`--` 都改成句号、逗号、短句、换行或动作断句。知乎盐言 `「」` 只是引号风格,不影响问号、感叹号的合法使用。
|
|
451
413
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 仅检查写作环境
|
|
2
2
|
|
|
3
|
-
用于 `story-setup check` 或「检查写作环境」「为什么 agent 不可用」等诊断请求。默认只读,完成报告后结束;不复制文件、修改配置、创建部署标记,也不运行部署、迁移或提交命令。用户已要求修复时,先列出发现,再按 `story-setup/SKILL.md`
|
|
3
|
+
用于 `story-setup check` 或「检查写作环境」「为什么 agent 不可用」等诊断请求。默认只读,完成报告后结束;不复制文件、修改配置、创建部署标记,也不运行部署、迁移或提交命令。用户已要求修复时,先列出发现,再按 `story-setup/SKILL.md` 的原有部署流程与对应宿主的 `references/deploy-*.md` 处理。
|
|
4
4
|
|
|
5
5
|
## 1. 确定检查对象
|
|
6
6
|
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
|
|
11
11
|
## 2. 复用部署验证
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
以每个目标端对应的 `references/deploy-{target_cli}.md` 里的「部署清单」与「验证」为准(只读目标端那几份),加上 `story-setup/SKILL.md` Phase 3 的部署标记检查,逐项读取目标文件并执行只读校验。不要维护另一份 skill 名称、数量、agent 路径或 hooks 事件清单。
|
|
14
14
|
|
|
15
15
|
- 区分安装的 skill 包和项目部署副本:Claude Code、Codex、OpenCode 的项目路径主要保存 agent、hooks 和参考资料,不要求在那里出现整套 `SKILL.md`。其他端按各自部署清单检查;skills-only 端没有原生 agents/hooks 是预期行为。
|
|
16
16
|
- 参考资料按源目录的相对文件列表逐一核对,包含子目录;只看目录非空或文件数量相同不足以证明完整。源包不可用或源与目标是同一份时,说明无法独立验证完整性,不把它判为通过。
|
|
17
|
-
- 检查 hooks
|
|
17
|
+
- 检查 hooks 的配置注册与脚本依赖,不仅检查文件存在;采用各部署文件「验证」中的语法、解析和注册校验,不主动运行可能写入项目的 hook。
|
|
18
18
|
- 文件存在只能说明部署文件就绪。当前会话是否加载了 custom agents、hooks 是否已信任,结合宿主实际暴露的能力和可见状态判断;无法确认时记为「未验证」,不要仅因文件存在就宣称可调用,也不要为体检启动写作任务。
|
|
19
19
|
|
|
20
20
|
## 3. 运行环境与追踪
|