@oh-story/dsh 0.1.15 → 0.1.17
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 +17 -15
- package/lib/client.js +26 -15
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +284 -364
- package/lib/drama/package.json +4 -0
- package/lib/drama/skills/short-drama/SKILL.md +13 -14
- package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
- package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
- package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
- package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
- package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +5 -5
- package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +5 -6
- package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
- package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
- package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +6 -7
- package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
- package/lib/drama/skills/short-drama/references/look-development.md +5 -7
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
- package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
- package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
- package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
- package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
- package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
- package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
- package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
- package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
- package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +4 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +2 -2
- 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//345/256/266/345/272/255/345/205/263/347/263/273.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +4 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +2 -2
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
- package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
- package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
- package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
- package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
- package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
- package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
- package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
- package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
- package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
- package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
- package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
- package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
- package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
- package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
- package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
- package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
- package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
- package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
- package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
- package/lib/index.js +120 -31
- package/lib/index.js.map +3 -3
- package/lib/novel-to-game/README.md +10 -11
- package/lib/novel-to-game/README_ZH.md +14 -15
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/manifest.json +34 -29
- package/lib/novel-to-game/package.json +4 -0
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +9 -1
- package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
- package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
- package/lib/oh-story/manifest.json +628 -803
- package/lib/oh-story/package.json +4 -0
- package/lib/oh-story/roles/chapter-extractor.md +13 -12
- package/lib/oh-story/roles/character-designer.md +20 -101
- package/lib/oh-story/roles/consistency-checker.md +7 -9
- package/lib/oh-story/roles/narrative-writer.md +22 -22
- package/lib/oh-story/roles/story-architect.md +22 -32
- package/lib/oh-story/roles/story-explorer.md +11 -14
- package/lib/oh-story/roles/story-researcher.md +13 -14
- package/lib/oh-story/skills/browser-cdp/SKILL.md +38 -26
- package/lib/oh-story/skills/story/SKILL.md +98 -63
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story-cover/SKILL.md +46 -234
- package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -93
- package/lib/oh-story/skills/story-deslop/SKILL.md +75 -212
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-deslop/references/expression.md +83 -0
- package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-import/SKILL.md +18 -22
- package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -9
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +7 -8
- package/lib/oh-story/skills/story-import/references/import-report.md +9 -8
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +7 -17
- package/lib/oh-story/skills/story-import/references/import-tracking.md +6 -6
- package/lib/oh-story/skills/story-import/references/length-routing.md +10 -60
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +10 -10
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +3 -3
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +120 -132
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -92
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +41 -78
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +28 -30
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +9 -17
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +23 -10
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +13 -20
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +28 -29
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -164
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -13
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +114 -35
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +16 -6
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
- package/lib/oh-story/skills/story-long-scan/SKILL.md +54 -82
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -181
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +24 -7
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +26 -16
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -34
- package/lib/oh-story/skills/story-long-write/SKILL.md +12 -13
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +53 -26
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +9 -7
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +6 -6
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +120 -270
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +9 -9
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +33 -73
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +42 -89
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +99 -172
- package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +40 -120
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
- package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +82 -311
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-long-write/references/long-reversal.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/long-suspense.md +11 -13
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-long-write/references/project-files.md +12 -16
- 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 +29 -84
- package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +15 -22
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +4 -172
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +10 -8
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +10 -10
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +5 -10
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +77 -132
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
- package/lib/oh-story/skills/story-review/SKILL.md +41 -54
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +20 -18
- package/lib/oh-story/skills/story-review/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
- package/lib/oh-story/skills/story-review/references/expression.md +83 -0
- package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +11 -11
- package/lib/oh-story/skills/story-review/references/review-tracking.md +6 -5
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +10 -10
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +10 -11
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +12 -12
- package/lib/oh-story/skills/story-review/references/solo.md +8 -7
- package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
- package/lib/oh-story/skills/story-setup/SKILL.md +29 -36
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +14 -16
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +10 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +120 -270
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +9 -9
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
- package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +83 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +99 -172
- package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +40 -120
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +34 -74
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +82 -311
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +11 -13
- package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
- package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +64 -192
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +15 -69
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +46 -58
- package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +23 -48
- package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +15 -22
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +4 -172
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +77 -132
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +44 -103
- package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
- package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +22 -21
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +7 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +6 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +6 -6
- package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +38 -50
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +24 -175
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +53 -38
- package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +54 -83
- package/lib/oh-story/skills/story-short-scan/SKILL.md +56 -73
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +36 -75
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +35 -15
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -26
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +9 -7
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +61 -151
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
- package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +26 -29
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +15 -69
- package/lib/oh-story/skills/story-short-write/references/expression.md +83 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +12 -12
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +21 -21
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +19 -19
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +16 -16
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +17 -16
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +17 -17
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +11 -11
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +22 -22
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +46 -58
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +64 -192
- package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +14 -16
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +22 -43
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
- package/lib/oh-story/skills/story-short-write/references/short-format.md +19 -43
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +23 -48
- package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +23 -30
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +69 -26
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +19 -20
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +52 -70
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
- package/lib/types/client/file-activity.d.ts +10 -0
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +42 -2
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +8 -0
- package/lib/video-recap/README.en.md +8 -10
- package/lib/video-recap/README.md +8 -8
- package/lib/video-recap/manifest.json +48 -48
- package/lib/video-recap/package.json +4 -0
- package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
- package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
- package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
- package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
- package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
- package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
- package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
- package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
- package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
- package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
- package/lib/video-recap/skills/video-script/SKILL.md +4 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
- package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
- package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
- package/package.json +25 -24
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
- package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
- package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
- package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
- package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
- package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
- package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
- package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -43
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -114
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -105
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -502
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -171
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -273
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -711
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -622
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -327
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
- package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
- package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -288
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
- package/lib/oh-story/skills/story-review/references/review-quality.md +0 -246
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1638
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
- package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -146
- package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -453
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -438
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -395
- package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -146
- package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -245
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -477
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -90
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -146
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -127
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -224
- package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
|
@@ -4,14 +4,11 @@ description: |
|
|
|
4
4
|
故事项目结构化查询 agent(只读)。响应关于角色状态、伏笔进度、设定出现位置、
|
|
5
5
|
时间线节点、写作进度的查询。使用 grep + read 从项目文件系统中检索信息,
|
|
6
6
|
返回结构化 JSON 摘要。
|
|
7
|
-
|
|
8
|
-
story 路由(用户自然提问时)调用。
|
|
7
|
+
写前对标召回、日更查旧信息、审稿查设定和作者直接提问时被调用。
|
|
9
8
|
不做任何创作判断或修改。
|
|
10
9
|
tools: [Read, Glob, Grep]
|
|
11
10
|
disallowedTools: [Write, Edit, Bash]
|
|
12
11
|
model: haiku
|
|
13
|
-
# 注:故意不设 memory: project。本 agent 是纯只读查询器,每次查询都是独立的,
|
|
14
|
-
# 不需要跨会话持久状态。memory: project 会隐性启用 Write/Edit,与 disallowedTools 矛盾。
|
|
15
12
|
maxTurns: 15
|
|
16
13
|
---
|
|
17
14
|
|
|
@@ -20,8 +17,6 @@ maxTurns: 15
|
|
|
20
17
|
你是故事资料查询员,负责从项目文件系统中检索故事相关信息并返回结构化结果。
|
|
21
18
|
**你只做查询,不做创作,不做检查,不做修改。**
|
|
22
19
|
|
|
23
|
-
**重要:你是只读的。不修改任何文件。不做任何文学质量或创作方向的判断。**
|
|
24
|
-
|
|
25
20
|
---
|
|
26
21
|
|
|
27
22
|
## 参考文件路径规则
|
|
@@ -95,6 +90,8 @@ maxTurns: 15
|
|
|
95
90
|
└── {topic}.md # 研究资料
|
|
96
91
|
```
|
|
97
92
|
|
|
93
|
+
短篇书目录只有 `设定.md`(人设、关系、规则都在里面)、`小节大纲.md`、`正文.md`:角色、设定、关系查 `设定.md`,进度看 `正文.md` 写到第几节;伏笔、时间线和修订号这类追踪查询在 `gaps` 写明短篇没有追踪,不报缺失错误。
|
|
94
|
+
|
|
98
95
|
---
|
|
99
96
|
|
|
100
97
|
## 查询流程
|
|
@@ -108,7 +105,7 @@ maxTurns: 15
|
|
|
108
105
|
|
|
109
106
|
### character_status 流程
|
|
110
107
|
|
|
111
|
-
1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check
|
|
108
|
+
1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`),与 `追踪/上下文.md` 头部修订号比对;修订号不符或所需状态字段缺失时,在 `gaps` 返回 `tracking_state_invalid`,不把派生视图当成已确认状态。prompt 缺值时只取头部修订号作参考,不自行读取 `_tracking-state.json`(完整 state 不进 prompt)。
|
|
112
109
|
2. `Read 追踪/角色状态/{角色名}.md`,直接取得截至最后提交章的身份、位置、目标、状态、能力资源、关键关系、已知信息和未结事项。
|
|
113
110
|
3. `Read 设定/角色/{角色名}.md` 取得静态人设;静态设定不得覆盖动态快照。
|
|
114
111
|
4. 只有查询明确要求“为什么变成这样/哪章变化”时,才 `Grep "{角色名}" 追踪/逐章记录/` 并读取命中小文件;当前状态查询不扫描全历史。
|
|
@@ -116,10 +113,10 @@ maxTurns: 15
|
|
|
116
113
|
|
|
117
114
|
### character_appearances 流程
|
|
118
115
|
|
|
119
|
-
1. `Grep 正文/ "{角色名}"` ->
|
|
120
|
-
2.
|
|
121
|
-
3.
|
|
122
|
-
4.
|
|
116
|
+
1. `Grep 正文/ "{角色名}"` -> 列出候选章节
|
|
117
|
+
2. 回查命中段,区分实际出场与仅被提及,再按章节号排序
|
|
118
|
+
3. 如需每章一句话摘要,读取命中段及必要上下文,不用开头几段代替
|
|
119
|
+
4. 返回已核实的出场列表
|
|
123
120
|
|
|
124
121
|
### foreshadow_status / foreshadow_list 流程
|
|
125
122
|
|
|
@@ -150,7 +147,7 @@ maxTurns: 15
|
|
|
150
147
|
|
|
151
148
|
### progress 流程
|
|
152
149
|
|
|
153
|
-
1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`);prompt 里没有这两个值时不自行读取 `_tracking-state.json`(完整 state 不进 prompt
|
|
150
|
+
1. 用调用方随 prompt 传入的 `last_committed_chapter` / `state_revision`(主会话已跑过 `tracking_commit.py check`);prompt 里没有这两个值时不自行读取 `_tracking-state.json`(完整 state 不进 prompt,读取量不随章数增长),读 `追踪/上下文.md` 的头部修订号与「当前位置」当前章,取得最后提交章和状态修订号。
|
|
154
151
|
2. `Read 追踪/上下文.md` 获取当前位置、下一章承诺和连贯性风险。
|
|
155
152
|
3. 任一文件缺失或章号不一致时返回 blocking gap,不扫描正文猜测进度。
|
|
156
153
|
|
|
@@ -170,7 +167,7 @@ maxTurns: 15
|
|
|
170
167
|
|
|
171
168
|
## 输出格式
|
|
172
169
|
|
|
173
|
-
所有查询返回结构化 JSON。**必须输出可被 JSON.parse 解析的纯 JSON**:不要包 Markdown 代码围栏。输出前逐字段做 JSON 字符串安全化:字符串里的英文双引号必须写成 `\"`,换行写成 `\n`;尤其是 `anchor_excerpts[].text`
|
|
170
|
+
所有查询返回结构化 JSON。**必须输出可被 JSON.parse 解析的纯 JSON**:不要包 Markdown 代码围栏。输出前逐字段做 JSON 字符串安全化:字符串里的英文双引号必须写成 `\"`,换行写成 `\n`;尤其是 `anchor_excerpts[].text` 原文片段。原文片段只做 JSON 转义,不替换原文引号;仍无法合法返回时,在 `gaps` 说明该摘录未返回。禁止输出会破坏 JSON 的裸双引号。最终答案前自检一遍:任一字符串包含未转义 `"` 时先修正再返回。
|
|
174
171
|
|
|
175
172
|
```json
|
|
176
173
|
{
|
|
@@ -245,7 +242,7 @@ maxTurns: 15
|
|
|
245
242
|
|
|
246
243
|
- **拥有**:项目文件系统的结构化查询和信息检索
|
|
247
244
|
- **不拥有**:创作方向(story-architect)、角色设计(character-designer)、文字质量(narrative-writer)、冲突检测(consistency-checker)、外部研究(story-researcher)
|
|
248
|
-
-
|
|
245
|
+
- 查询结果涉及创作决策时,在 `gaps` 写明待主会话裁决,不在本 agent 内做决策
|
|
249
246
|
|
|
250
247
|
---
|
|
251
248
|
|
|
@@ -3,7 +3,7 @@ name: story-researcher
|
|
|
3
3
|
description: |
|
|
4
4
|
小说写作资料研究 agent。接收研究查询,优先使用 CDP (agent-browser) 搜索并提取完整正文,
|
|
5
5
|
WebSearch/webReader 作为兜底。输出带来源引用的结构化 Markdown 参考文件。
|
|
6
|
-
|
|
6
|
+
写章前查外部事实、审稿事实核查和作者直接让查资料时被调用。
|
|
7
7
|
tools: [Read, Glob, Grep, Bash, Write]
|
|
8
8
|
disallowedTools: [Edit]
|
|
9
9
|
model: sonnet
|
|
@@ -15,7 +15,7 @@ maxTurns: 20
|
|
|
15
15
|
|
|
16
16
|
你是小说写作的资料研究员,负责为创作提供准确、有据可查的外部事实和细节。
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
**只输出带来源的参考资料,不代写故事。**
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -56,7 +56,7 @@ maxTurns: 20
|
|
|
56
56
|
|
|
57
57
|
**核心原则:CDP 优先,WebSearch 兜底。**
|
|
58
58
|
|
|
59
|
-
CDP
|
|
59
|
+
CDP 可打开实际页面提取正文,搜索摘要用于定位来源;下方示例只截取前 8000 字符,不能把截取结果当成已读全文。
|
|
60
60
|
|
|
61
61
|
```
|
|
62
62
|
1. CDP (agent-browser) → Google 搜索 → 从 DOM 提取链接 → 导航到目标页 → 提取正文
|
|
@@ -91,13 +91,14 @@ CDP 能打开真实页面拿到完整正文;WebSearch 只返回摘要节选,
|
|
|
91
91
|
|
|
92
92
|
### 第二步:检查 CDP 可用性
|
|
93
93
|
|
|
94
|
+
探测浏览器调试端口用 node(各系统都能跑,不用 `lsof` 这类只在部分系统上有的命令);`{cdp_port}` 换成调用方给的端口,没给用 9222,后续命令同一端口:
|
|
95
|
+
|
|
94
96
|
```bash
|
|
95
|
-
|
|
96
|
-
lsof -i :9222 -sTCP:LISTEN 2>/dev/null | grep -q LISTEN && echo "CDP_AVAILABLE" || echo "CDP_UNAVAILABLE"
|
|
97
|
+
node -e "require('http').get('http://127.0.0.1:'+process.argv[1]+'/json/version',{timeout:3000},r=>console.log(r.statusCode===200?'CDP_AVAILABLE':'CDP_UNAVAILABLE')).on('timeout',function(){this.destroy()}).on('error',()=>console.log('CDP_UNAVAILABLE'))" {cdp_port}
|
|
97
98
|
```
|
|
98
99
|
|
|
99
100
|
- `CDP_AVAILABLE` → 使用 CDP 主链路
|
|
100
|
-
- `CDP_UNAVAILABLE` →
|
|
101
|
+
- `CDP_UNAVAILABLE` → 不自己启动或重启浏览器(会关掉作者正在用的 Chrome,须作者同意);直接降级到 WebSearch/webReader
|
|
101
102
|
|
|
102
103
|
### 第三步:CDP 研究(主链路)
|
|
103
104
|
|
|
@@ -123,7 +124,7 @@ agent-browser --cdp {cdp_port} eval "window.location.replace('https://www.google
|
|
|
123
124
|
agent-browser --cdp {cdp_port} wait 5000
|
|
124
125
|
```
|
|
125
126
|
|
|
126
|
-
>
|
|
127
|
+
> eval 表达式整体用引号包裹,查询参数用 `URLSearchParams` 组装,避免 `&` 被 shell 拆开。
|
|
127
128
|
|
|
128
129
|
#### 3.3 验证页面加载并获取搜索结果
|
|
129
130
|
|
|
@@ -138,7 +139,7 @@ agent-browser --cdp {cdp_port} snapshot 2>&1
|
|
|
138
139
|
|
|
139
140
|
#### 3.4 从搜索结果中提取链接
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
用 DOM 查询提取真实 URL,再导航到选定来源,避免猜测目标地址:
|
|
142
143
|
|
|
143
144
|
```bash
|
|
144
145
|
# 从搜索结果 DOM 中提取所有链接的 href
|
|
@@ -174,7 +175,7 @@ agent-browser --cdp {cdp_port} eval 'document.body.innerText.substring(0,8000)'
|
|
|
174
175
|
|
|
175
176
|
### 第四步:WebSearch/webReader(兜底)
|
|
176
177
|
|
|
177
|
-
CDP
|
|
178
|
+
CDP 不可用且宿主实际提供 WebSearch/webReader 时使用;当前工具权限未授予它们时不直接调用,按下方失败协议回报主会话处理:
|
|
178
179
|
|
|
179
180
|
```
|
|
180
181
|
1. WebSearch 搜索关键词
|
|
@@ -184,12 +185,10 @@ CDP 不可用时使用:
|
|
|
184
185
|
5. 输出文件中标注 "工具路径:WebSearch 兜底",置信度上限为 medium
|
|
185
186
|
```
|
|
186
187
|
|
|
187
|
-
> **注意**:WebSearch 返回的是搜索摘要片段,信息量低于 CDP 全文提取。使用 WebSearch 路径时,应在输出中明确标注工具路径,置信度不高于 medium。
|
|
188
|
-
|
|
189
188
|
#### 全链路不可用时的降级
|
|
190
189
|
|
|
191
190
|
如果 CDP 和 WebSearch 均不可用(如 WebSearch 配额耗尽、webReader 返回错误):
|
|
192
|
-
1. 返回 `status: "failed"`,在 `gaps`
|
|
191
|
+
1. 返回 `status: "failed"`,在 `gaps` 中说明失败原因;浏览器调试端口没开时写 `cdp_unavailable`,由主会话征得作者同意后启动浏览器再派你,或主会话自己检索
|
|
193
192
|
2. 给出下一步动作:`"当前无法获取外部资料({原因})。下一步:稍后重试 / 将手动搜索结果放入参考资料/目录"`
|
|
194
193
|
3. 不要编造任何内容作为替代
|
|
195
194
|
|
|
@@ -205,7 +204,7 @@ CDP 不可用时使用:
|
|
|
205
204
|
|------|---------|------|
|
|
206
205
|
| A(高) | 学术论文、官方文献、百科全书 | 知网、维基百科、政府网站 |
|
|
207
206
|
| B(中) | 专业媒体、行业网站、从业者分享 | 专业论坛精华帖、行业媒体 |
|
|
208
|
-
| C(低) |
|
|
207
|
+
| C(低) | 个人博客、自媒体 | 需交叉验证,不可单独引用 |
|
|
209
208
|
| D(不可用) | 小说、影视剧、无来源表述 | 仅可作为灵感参考,不作为事实依据 |
|
|
210
209
|
|
|
211
210
|
**关键规则:**
|
|
@@ -266,7 +265,7 @@ CDP 不可用时使用:
|
|
|
266
265
|
|
|
267
266
|
- **拥有**:外部资料搜索、来源评估、结构化参考文件输出
|
|
268
267
|
- **不拥有**:创作方向(story-architect)、角色对话(character-designer)、文字质量(narrative-writer)、内部一致性(consistency-checker)
|
|
269
|
-
-
|
|
268
|
+
- **超出本职的问题**(世界观设定决策、角色背景取舍)写进 `gaps` 待主会话裁决,不自己转交
|
|
270
269
|
|
|
271
270
|
**与 consistency-checker 的关系:**
|
|
272
271
|
- 你负责外部事实收集(Web),可写文件
|
|
@@ -5,19 +5,21 @@ metadata: {"openclaw":{"requires":{"bins":["agent-browser"]},"source":"https://g
|
|
|
5
5
|
---
|
|
6
6
|
# Browser CDP 操作工具
|
|
7
7
|
|
|
8
|
-
通过 CDP
|
|
8
|
+
通过 CDP(Chrome DevTools Protocol)连接 Chrome,复用登录态并执行浏览器操作。
|
|
9
9
|
|
|
10
10
|
## 前置条件
|
|
11
11
|
|
|
12
|
-
- macOS / Linux / Windows
|
|
12
|
+
- macOS / Linux / Windows(实验性),已安装并使用过 Google Chrome,来源 profile 已存在
|
|
13
13
|
- Node.js 20+
|
|
14
14
|
- `agent-browser` 已安装:`npm install -g agent-browser`
|
|
15
15
|
|
|
16
|
-
>
|
|
16
|
+
> 启动或重建时,若需结束 Chrome 进程,先按下方流程征得同意;未保存的标签页或草稿可能丢失。
|
|
17
17
|
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## 启动流程(每次都按这个顺序)
|
|
21
|
+
|
|
22
|
+
下文 `{SKILL_DIR}` 指本 skill(browser-cdp)的目录。
|
|
21
23
|
|
|
22
24
|
**第一步:探测当前状态(无副作用)**
|
|
23
25
|
|
|
@@ -43,14 +45,24 @@ CHROME_PID_COUNT=3
|
|
|
43
45
|
|
|
44
46
|
**第二步:根据探测结果分支**
|
|
45
47
|
|
|
46
|
-
- `CDP_STATUS=
|
|
48
|
+
- `CDP_STATUS=needs-setup` 且 `CHROME_INSTALLED=no` → 本机没找到 Chrome,告诉用户先安装并用它登录一次需要的网站,不要运行 setup。
|
|
49
|
+
- `CDP_STATUS=ready` 且本次只需连接 → 直接使用 `agent-browser --cdp 9222 ...`,**不要运行 setup**。
|
|
50
|
+
- 明确请求 `--reset` / `--profile` → 即使 ready 也走重建,按下方「需要结束 Chrome 时」处理。
|
|
47
51
|
- `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=no` → 安全启动:
|
|
48
52
|
```bash
|
|
49
53
|
node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --yes
|
|
50
54
|
```
|
|
51
|
-
- `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=yes` →
|
|
55
|
+
- `CDP_STATUS=needs-setup` 且 `CHROME_RUNNING=yes` → 按下方「需要结束 Chrome 时」处理。
|
|
56
|
+
|
|
57
|
+
**需要结束 Chrome 时(同意流程)**:凡是会结束正在运行的 Chrome 的命令(Chrome 在运行时启动、`--reset`、显式 `--profile`),都按这三步走:
|
|
58
|
+
|
|
59
|
+
1. 带上原定选项加 `--dry-run` 跑一次,看会结束几个 Chrome 进程;
|
|
60
|
+
2. 告诉用户会结束 N 个 Chrome 进程、未保存的标签页或草稿可能丢失,问是否继续;
|
|
61
|
+
3. 用户同意后,去掉 `--dry-run`、加 `--yes` 重跑;用户拒绝就放弃这次自动化。
|
|
52
62
|
|
|
53
|
-
|
|
63
|
+
非 TTY 调用中,Chrome 在运行且未传 `--yes` 时,脚本以退出码 3 报 `NEEDS_CONSENT: ...` 并中止。取得同意后再重跑,不自动补 `--yes`。
|
|
64
|
+
|
|
65
|
+
**换端口**:9222 被别的程序占用时可以换一个端口(如 9333),之后所有 `agent-browser --cdp` 命令用同一个端口,扫榜脚本加 `--port 9333`,查资料助手传 `cdp_port: 9333`。
|
|
54
66
|
|
|
55
67
|
---
|
|
56
68
|
|
|
@@ -58,10 +70,10 @@ CHROME_PID_COUNT=3
|
|
|
58
70
|
|
|
59
71
|
| 选项 | 说明 |
|
|
60
72
|
|------|------|
|
|
61
|
-
| `--detect-only` |
|
|
73
|
+
| `--detect-only` | 只探测,不修改任何状态 |
|
|
62
74
|
| `--yes` | 已征得同意,跳过交互提示 |
|
|
63
75
|
| `--reset` | 启动前清空 `~/chrome-debug-profile`(登录失效时用) |
|
|
64
|
-
| `--profile <name>` |
|
|
76
|
+
| `--profile <name>` | 指定来源 profile(默认 `Default`,如 `"Profile 1"`);显式传入即重建 |
|
|
65
77
|
| `--dry-run` | 打印将执行的步骤,不执行 |
|
|
66
78
|
|
|
67
79
|
退出码:`0` 成功 / `1` 通用错误 / `2` 用户拒绝(TTY)/ `3` 需同意但缺 `--yes`。
|
|
@@ -85,13 +97,15 @@ agent-browser --cdp 9222 eval 'document.body.innerText.substring(0, 8000)'
|
|
|
85
97
|
|
|
86
98
|
### 提取 Auth Token
|
|
87
99
|
|
|
100
|
+
示例读取 localStorage 的 `token` 项或 JavaScript 可读的 Cookie;实际存放位置按站点确认。
|
|
101
|
+
|
|
88
102
|
```bash
|
|
89
103
|
agent-browser --cdp 9222 eval 'localStorage.getItem("token") || document.cookie'
|
|
90
104
|
```
|
|
91
105
|
|
|
92
106
|
### 复杂 JS(含引号 / `$` / 反引号)
|
|
93
107
|
|
|
94
|
-
shell
|
|
108
|
+
用 base64 或标准输入传入脚本,避免 shell 转义错误:
|
|
95
109
|
|
|
96
110
|
```bash
|
|
97
111
|
# 1) base64 包裹
|
|
@@ -118,20 +132,19 @@ agent-browser --cdp 9222 type "<sel>" "<text>"
|
|
|
118
132
|
|
|
119
133
|
- 关掉 debug Chrome 窗口即可。若窗口无响应,先按 `--user-data-dir` 核验出 debug 实例的 PID 再只结束它:
|
|
120
134
|
- macOS / Linux:`pgrep -af chrome-debug-profile`
|
|
121
|
-
- Windows
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
- 登录态失效:`node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --reset --yes`(注意 `--yes` 同样需要先问用户)。
|
|
135
|
+
- Windows(PowerShell):`Get-CimInstance Win32_Process | Where-Object CommandLine -like '*chrome-debug-profile*' | Select-Object ProcessId,CommandLine`;没有 PowerShell 的旧系统才用 `wmic process get ProcessId,CommandLine | findstr chrome-debug-profile`
|
|
136
|
+
核验 PID 后用 `kill -9 {PID}` / `taskkill /F /PID {PID}`,无法核验则停止。**手工清理不得按 Chrome 可执行文件名批量结束进程**;启动脚本仍走上述同意流程。
|
|
137
|
+
- 登录态失效:用 `node {SKILL_DIR}/scripts/setup-cdp-chrome.js 9222 --reset` 重新复制来源 profile,按上方「需要结束 Chrome 时」先 dry-run、征得同意再加 `--yes`。
|
|
125
138
|
|
|
126
139
|
---
|
|
127
140
|
|
|
128
|
-
##
|
|
141
|
+
## 长命令加超时
|
|
129
142
|
|
|
130
|
-
|
|
143
|
+
在前台执行耗时的 CDP 命令时,为页面加载和批量采集设置超时,避免单次调用长时间占住会话。
|
|
131
144
|
|
|
132
145
|
### 超时包装
|
|
133
146
|
|
|
134
|
-
Windows
|
|
147
|
+
Windows 用 PowerShell Job 设置超时:
|
|
135
148
|
|
|
136
149
|
```powershell
|
|
137
150
|
$job = Start-Job { agent-browser --cdp 9222 eval "window.location.replace('https://www.qidian.com/rank/')" }
|
|
@@ -141,7 +154,7 @@ else { Receive-Job $job }
|
|
|
141
154
|
Remove-Job $job -Force
|
|
142
155
|
```
|
|
143
156
|
|
|
144
|
-
macOS / Linux
|
|
157
|
+
macOS / Linux 有 `timeout` 时:
|
|
145
158
|
|
|
146
159
|
```bash
|
|
147
160
|
timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.qidian.com/rank/')" || echo "⏱ CDP 操作超时(30s),请重试或手动打断"
|
|
@@ -149,8 +162,6 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
|
|
|
149
162
|
|
|
150
163
|
### 已知限制
|
|
151
164
|
|
|
152
|
-
即使加了超时包装,以下场景仍可能出现问题:
|
|
153
|
-
|
|
154
165
|
| 场景 | 风险 | 缓解 |
|
|
155
166
|
|------|------|------|
|
|
156
167
|
| 页面加载超时 | eval 命令等待永不返回 | 设置 30s 超时,超时后重试 |
|
|
@@ -158,7 +169,7 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
|
|
|
158
169
|
| Chrome 进程僵死 | CDP 连接断开但进程未退出 | 先核验 debug profile 对应 PID,只结束该 debug 实例后重连;不得连带普通 Chrome |
|
|
159
170
|
| 网络波动 | 请求挂起无超时 | 超时后自动重试一次 |
|
|
160
171
|
|
|
161
|
-
|
|
172
|
+
持续卡死时,请用户在宿主里手动打断(如 OpenCode、Claude Code 按 `ESC`)。
|
|
162
173
|
|
|
163
174
|
---
|
|
164
175
|
|
|
@@ -166,10 +177,11 @@ timeout 30 agent-browser --cdp 9222 eval "window.location.replace('https://www.q
|
|
|
166
177
|
|
|
167
178
|
| 问题 | 解决方案 |
|
|
168
179
|
|------|----------|
|
|
169
|
-
| `NEEDS_CONSENT` + 退出码 3 |
|
|
170
|
-
|
|
|
180
|
+
| `NEEDS_CONSENT` + 退出码 3 | 按「需要结束 Chrome 时」:先 dry-run 说清会结束几个进程,同意后加 `--yes` 重跑 |
|
|
181
|
+
| `CHROME_INSTALLED=no` 或来源 profile 不存在 | 安装并使用 Chrome 一次;已有其他 profile 时用 `--profile` 指定(会重建,按同意流程) |
|
|
182
|
+
| CDP 端口未监听 | `--detect-only` 再确认;端口被占用就换端口,下游命令一起改(见「换端口」) |
|
|
171
183
|
| 页面跳转到登录页 | `snapshot -i` 找登录按钮并操作 |
|
|
172
184
|
| `eval` 返回 `null` | 检查 localStorage key 名;含引号的 JS 用 `eval -b` 或 `--stdin` |
|
|
173
|
-
| 登录态过期 | `setup-cdp-chrome.js 9222 --reset
|
|
174
|
-
| 有多个 Chrome profile | `--profile "Profile 1"`
|
|
175
|
-
| Chrome 不会启动(30s 超时) |
|
|
185
|
+
| 登录态过期 | `setup-cdp-chrome.js 9222 --reset`,按同意流程先 dry-run、同意后加 `--yes` |
|
|
186
|
+
| 有多个 Chrome profile | `--profile "Profile 1"` 指定;显式传 `--profile` 会重建,按同意流程 |
|
|
187
|
+
| Chrome 不会启动(30s 超时) | 检查端口冲突;查看 `~/chrome-debug-profile/` 是否损坏;仍不行再按同意流程试 `--reset` |
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: story
|
|
3
|
-
description: "网络小说工具箱主入口。根据用户需求自动路由到对应 skill
|
|
3
|
+
description: "网络小说工具箱主入口。根据用户需求自动路由到对应 skill,并可启动本地 Dashboard。触发方式:/story、$story、/story dashboard、/网文、「我想写小说」「记住我的写作习惯」「打开工作台」「检查更新」。"
|
|
4
4
|
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
|
|
5
5
|
---
|
|
6
6
|
# story:网文工具箱路由
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
识别用户的写作需求,并路由到对应 skill。
|
|
9
9
|
|
|
10
10
|
## 路由表
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
各宿主的调用写法:Claude Code、OpenCode 用 `/story-*`(Claude 插件安装时为 `/oh-story:story-*`),也可 `Skill("story-*")`;Codex、ZCode 用 `$story-*`(Codex 也可 `/skills`);OpenClaw 用 `/skill story-*`;Antigravity、Reasonix 在 skill 入口选择或用自然语言点名。下表按 `/story-*` 写,其他宿主照此替换,本文件其余地方同理。
|
|
13
13
|
|
|
14
14
|
| 用户意图 | 关键词示例 | 路由到 |
|
|
15
15
|
|---|---|---|
|
|
@@ -18,8 +18,8 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
18
18
|
| 长篇拆文 | 拆文、分析这本书、黄金三章、灵感库、跨书灵感聚合 | `/story-long-analyze` |
|
|
19
19
|
| 短篇拆文 | 拆短篇、分析这个故事 | `/story-short-analyze` |
|
|
20
20
|
| 长篇扫榜 | 长篇排行、什么火、新书在冒什么、起点/番茄/晋江/七猫长篇 | `/story-long-scan` |
|
|
21
|
-
| 选题决策 | 写什么能爆、帮我选题、选题方向 | `/story-long-scan` |
|
|
22
21
|
| 短篇扫榜 | 短篇排行、知乎盐言排行 | `/story-short-scan` |
|
|
22
|
+
| 选题决策 | 写什么能爆、帮我选题、选题方向 | 长篇 `/story-long-scan`,短篇 `/story-short-scan`;没说篇幅先问一句 |
|
|
23
23
|
| 去 AI 味 | 去 AI 味、太 AI、去味 | `/story-deslop` |
|
|
24
24
|
| 审查稿件 | 审查、审稿、帮我审一下、一致性检查、看看有没有问题 | `/story-review` |
|
|
25
25
|
| 封面 | 封面、封面图 | `/story-cover` |
|
|
@@ -29,28 +29,98 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
29
29
|
| 工作台 | dashboard、工作台、看拆文库、浏览项目文件、打开项目面板 | 见下方「Dashboard 工作台」 |
|
|
30
30
|
| 检查/更新版本 | 检查更新、有新版本吗、升级、更新工具箱 | 见下方「版本更新检查」 |
|
|
31
31
|
| 切换/列出书目 | 切书、换书、列出我的书、我在写哪几本、切换项目 | 见下方「多书切换」 |
|
|
32
|
-
| 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 |
|
|
33
|
-
| 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 |
|
|
34
|
-
| 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 |
|
|
32
|
+
| 管理作者习惯 | 记住我的写作习惯、作者画像、待确认偏好、忘掉这个偏好 | 见下方「作者习惯管理」 |
|
|
33
|
+
| 查故事资料 | 查角色、查伏笔、查进度、查设定、什么状态、写到哪了 | 见下方「查询」 |
|
|
34
|
+
| 查资料 | 查资料、帮我查资料、调研、搜索一下、搜一下 | 见下方「查询」 |
|
|
35
|
+
|
|
36
|
+
能明确匹配就直接调用对应 skill;匹配不上时只问缺的那一项。用户说"我想写小说"但没说长篇还是短篇,先问篇幅再路由。
|
|
35
37
|
|
|
36
38
|
### 裸调用与新手
|
|
37
39
|
|
|
38
|
-
只说 `/story`、看不出意图时,不贴路由表,给四个白话选项:「开一本长篇或接着写」→ `/story-long-write`;「写一篇短篇」→ `/story-short-write`;「把一章改得不那么 AI」→ `/story-deslop`;「更多(拆书、扫榜、导入旧稿、审稿、封面)」→ 再列进阶项。还没部署过(项目根没有 `.story-deployed`)时先建议 `/story-setup
|
|
40
|
+
只说 `/story`、看不出意图时,不贴路由表,给四个白话选项:「开一本长篇或接着写」→ `/story-long-write`;「写一篇短篇」→ `/story-short-write`;「把一章改得不那么 AI」→ `/story-deslop`;「更多(拆书、扫榜、导入旧稿、审稿、封面)」→ 再列进阶项。还没部署过(项目根没有 `.story-deployed`)时先建议 `/story-setup`,并说明部署完要新开一个会话再开始,写作助手才会生效。
|
|
39
41
|
|
|
40
42
|
### 导入续写顺序
|
|
41
43
|
|
|
42
|
-
用户问"导入续写先 setup 还是 import"时,直接回答:**推荐先 `/story-setup
|
|
44
|
+
用户问"导入续写先 setup 还是 import"时,直接回答:**推荐先 `/story-setup`,新开会话后 `/story-import`;导完长篇说 `/story-long-write 写第N章`(N 是导入后的下一章),短篇用 `/story-short-write` 先补完构思**。如果用户已经直接触发 `/story-import`,按 story-import 自带环境检测继续:未 setup 时让用户选择先去 setup 或继续串行导入。
|
|
45
|
+
|
|
46
|
+
## 书目录判定
|
|
47
|
+
|
|
48
|
+
本文件的"书目录""当前书"均按此查找:
|
|
49
|
+
|
|
50
|
+
1. 项目根有 `.active-book` 且指向项目内一个存在的目录 → 就是它。
|
|
51
|
+
2. 否则在项目根往下最多 4 层找,跳过以 `.` 开头的目录、`node_modules`、`拆文库/`、`对标/`:
|
|
52
|
+
- 含 `追踪/`、`正文/` 子目录或 `正文.md` 文件的目录(与写作 hook 同一口径);
|
|
53
|
+
- 刚定完方向、还没有正文的长篇:含 `设定/题材定位.md` 的目录;
|
|
54
|
+
- 构思中、还没有正文的短篇:同时有 `设定.md` 与 `小节大纲.md` 的目录。
|
|
55
|
+
找到多本又没有 `.active-book` 时,需要"当前书"就问作者是哪本(做法同「多书切换」)。
|
|
56
|
+
3. 篇幅:有 `正文/` 或 `设定/` 子目录的是长篇,有 `正文.md` 或 `设定.md` 文件的是短篇。
|
|
57
|
+
|
|
58
|
+
没找到任何书目录:创建写作项目时先运行 `/story-setup`;只讨论结构、选题,或要扫榜、拆文时直接路由。找到了:按目标 skill 自己的环境检查继续,需要初始化或补部署时运行 `/story-setup`。
|
|
59
|
+
|
|
60
|
+
## 作者习惯管理
|
|
61
|
+
|
|
62
|
+
按用户明确指定的长篇/短篇选写作 skill;没指定时按当前书的篇幅。没有当前书的通用习惯交 `/story-long-write` 管理;只针对某本书却定位不到时问是哪本,不要求先建书。路由层只转交,不读写作者记忆文件。
|
|
63
|
+
|
|
64
|
+
## 查询
|
|
65
|
+
|
|
66
|
+
### 交给哪个助手、传什么
|
|
67
|
+
|
|
68
|
+
「查故事资料」交 `story-explorer`,prompt 三行:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
项目目录:{书目录的绝对路径}
|
|
72
|
+
查询类型:{按下表选}
|
|
73
|
+
查询参数:{用户问到的角色名、伏笔、设定关键词或章节范围}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
| 用户在问 | 查询类型 |
|
|
77
|
+
|---|---|
|
|
78
|
+
| 某角色现在什么状态 | `character_status` |
|
|
79
|
+
| 某角色在哪几章出场 | `character_appearances` |
|
|
80
|
+
| 某条伏笔的情况 | `foreshadow_status` |
|
|
81
|
+
| 还有哪些伏笔、哪些没收 | `foreshadow_list` |
|
|
82
|
+
| 某个设定怎么定的 | `setting_detail` |
|
|
83
|
+
| 某个设定在哪些章出现过 | `setting_appearances` |
|
|
84
|
+
| 第 X 到 Y 章发生了什么 | `timeline`(查询参数默认带 `perspective: reader`;作者明确问幕后真相时用 `author`) |
|
|
85
|
+
| 写到哪了 | `progress` |
|
|
86
|
+
| 两个角色现在什么关系 | `relationship` |
|
|
87
|
+
|
|
88
|
+
一句话含多类查询时,分次调用或只选最主要的一类;问的是创作建议而不是查已有内容时,不交给它,主会话直接答。
|
|
89
|
+
|
|
90
|
+
「查资料」交 `story-researcher`,prompt 按下面写,没有的可选项整行省略:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
query:{要查的主题}
|
|
94
|
+
type:{可选:历史考证、地理/环境、职业知识、文化习俗、器物/服饰、描写参考、命名参考、体系构建、诗词典故、视觉参考、真实案例、读者偏好}
|
|
95
|
+
context:{可选:为什么要查,如正在写哪一段}
|
|
96
|
+
project_dir:{书目录的绝对路径;没有书目录时用项目根}
|
|
97
|
+
cdp_port:{可选:Chrome 调试端口不是 9222 时写}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 能不能用助手
|
|
101
|
+
|
|
102
|
+
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 36` 不一致时(标记缺失、字段缺失/非整数、小于或大于 36)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时用一句白话提示作者「查资料助手是旧版,运行 /story-setup 后新开会话」,`Notice: agents bundle 版本不匹配(项目 {N},本版 36)` 原文写进回答最末一行「技术备注:」;大于 36 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,`Fallback: ... -> solo` 同样只进技术备注行。
|
|
103
|
+
|
|
104
|
+
走助手前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 `invoke_subagent` 工具可用,且对应部署文件存在(Claude `.claude/agents/*.md`、OpenCode `.opencode/agents/*.md`、Codex `.codex/agents/*.toml`、Antigravity `.agents/agents/agent-name/agent.md`,其中 `agent-name` 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 `invoke_subagent` + 同名 `TypeName`,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级处理:
|
|
105
|
+
|
|
106
|
+
- `story-explorer` 不可用 → 主会话直接用 Read/Grep 从书目录检索(角色状态、伏笔、进度、设定),回答前说一句「查资料助手没启用,这次我直接翻项目文件」;项目尚未部署时提示先 `/story-setup`。
|
|
107
|
+
- `story-researcher` 不可用 → 主会话用当前可用的搜索能力回答,回答前说一句「查资料助手没启用,这次我直接搜」;搜不到就如实说明。
|
|
43
108
|
|
|
44
|
-
|
|
109
|
+
### 怎么回答作者
|
|
45
110
|
|
|
46
|
-
|
|
111
|
+
讲故事里的事(谁、在哪章、发生了什么);文件字段名、伏笔/事件编号不单独出现,编号必须跟着故事描述。助手返回的英文字段和缺口说明由主会话翻成白话再说。
|
|
47
112
|
|
|
48
|
-
|
|
113
|
+
## 多书切换
|
|
114
|
+
|
|
115
|
+
用户想切换或查看在写的书时(一个项目可同时有多本):
|
|
116
|
+
|
|
117
|
+
1. 按「书目录判定」第 2 条列出所有书目录,标出当前 `.active-book` 指向的那本。
|
|
118
|
+
2. 让用户选择,把所选书的相对路径写入项目根 `.active-book`(覆盖原内容)。
|
|
119
|
+
3. 只发现一本时直接确认为活跃书,无需询问。
|
|
49
120
|
|
|
50
121
|
## Dashboard 工作台
|
|
51
122
|
|
|
52
|
-
用户执行 `/story dashboard
|
|
53
|
-
文件”时,直接启动随本 skill 分发的本地 Dashboard,不再转发到其他 skill:
|
|
123
|
+
用户执行 `/story dashboard`,或明确要求打开工作台、查看项目文件时,启动本 skill 的本地 Dashboard:
|
|
54
124
|
|
|
55
125
|
1. 把**当前工作目录**作为默认工作区;用户明确给出目录时改用该目录。目录必须存在。
|
|
56
126
|
2. 从当前已加载的 `story` skill 目录定位 `scripts/dashboard-server.mjs`,不要硬编码仓库路径、
|
|
@@ -66,64 +136,29 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
66
136
|
5. Dashboard 默认只监听 `127.0.0.1`。不要主动增加 `--allow-network`,不要把工作区暴露到
|
|
67
137
|
局域网或公网。
|
|
68
138
|
|
|
69
|
-
|
|
139
|
+
工作台按自己的规则识别目录,与上方「书目录判定」不同:识别标准 `拆文库/{书名}/`,兼容存量 `拆文库-{书名}/`;写作项目识别同时支持:
|
|
70
140
|
|
|
71
141
|
- 长篇目录结构:目录内含 `正文/`、`大纲/`、`设定/` 或 `追踪/` 任一普通子目录。
|
|
72
142
|
- 短篇单文件结构:目录内含普通文件 `正文.md`,并同时含 `小节大纲.md` 或 `设定.md`。
|
|
73
143
|
|
|
74
|
-
符号链接不作为项目标记,只有单个 `正文.md`
|
|
75
|
-
`.md`、`.txt`、`.json`、`.yaml`、`.yml`、`.toml`,保存或确认删除前用修改时间防止
|
|
76
|
-
误操作外部更新。
|
|
77
|
-
|
|
78
|
-
停止服务时终止对应的 Node 长运行进程即可。若用户只问用法,不要替他启动;给出
|
|
79
|
-
`/story dashboard` / `$story dashboard` 两种平台对应入口。
|
|
80
|
-
|
|
81
|
-
## 路由流程
|
|
82
|
-
|
|
83
|
-
1. 分析用户请求,提取意图关键词
|
|
84
|
-
2. 匹配上表,找到对应的 skill
|
|
85
|
-
3. 如果能明确匹配,直接调用对应 skill(Claude/OpenCode 可用 `Skill("skill-name")` 或 slash command;Codex 用 `$skill-name` / `/skills`;Antigravity 用 `/skills` 或自然语言点名;OpenClaw 用 `/skill skill-name` 或自然语言点名)
|
|
86
|
-
4. 如果无法匹配,询问用户想做什么(从上表中选择)
|
|
87
|
-
5. 如果用户说"我想写小说"但未指定长篇/短篇,询问篇幅类型后再路由
|
|
88
|
-
|
|
89
|
-
## 查询降级
|
|
90
|
-
|
|
91
|
-
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时(标记缺失、字段缺失/非整数、小于或大于 34)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 34)` 并提示重新运行 `/story-setup` 后新开会话;大于 34 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。
|
|
92
|
-
|
|
93
|
-
「查故事资料」「查资料」走 agent 前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 `invoke_subagent` 工具可用,且对应部署文件存在(Claude `.claude/agents/*.md`、OpenCode `.opencode/agents/*.md`、Codex `.codex/agents/*.toml`、Antigravity `.agents/agents/agent-name/agent.md`,其中 `agent-name` 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 `invoke_subagent` + 同名 `TypeName`,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级,不硬失败:
|
|
94
|
-
|
|
95
|
-
- `story-explorer` 不可用 → 主会话直接用 Read/Grep 从项目文件检索(角色状态/伏笔/进度/设定),回答前说一句「查资料助手没启用,这次我直接翻项目文件」;项目尚未部署时提示先 `/story-setup`(Codex 中用 `$story-setup`)。
|
|
96
|
-
- `story-researcher` 不可用 → 主会话用现有检索/回答能力完成,或提示用户改用 `/browser-cdp` 采集,同样用一句白话说明。
|
|
97
|
-
|
|
98
|
-
回答作者时讲故事里的事(谁、在哪章、发生了什么);文件字段名、伏笔/事件编号不单独出现,编号必须跟着故事描述。
|
|
99
|
-
|
|
100
|
-
## 项目状态感知
|
|
101
|
-
|
|
102
|
-
路由前先检查当前项目状态:
|
|
103
|
-
|
|
104
|
-
- **无项目目录**(没有包含 `追踪/` 或 `设定/` 的书名目录,也没有同时有 `正文.md` 与 `小节大纲.md`(或 `设定.md`)的短篇目录):
|
|
105
|
-
- 如果用户要写作,下一步是先运行 `/story-setup` 初始化环境(Codex 中用 `$story-setup`)
|
|
106
|
-
- 如果用户要扫榜/拆文,直接路由
|
|
107
|
-
- **已有项目**:检查 `.story-deployed` 标记,如未部署则先运行 `/story-setup`(Codex 中用 `$story-setup`)
|
|
108
|
-
|
|
109
|
-
## 多书切换
|
|
110
|
-
|
|
111
|
-
用户想切换或查看在写的书时(一个项目可同时有多本):
|
|
144
|
+
符号链接不作为项目标记,只有单个 `正文.md` 的资料目录不识别为写作项目。浏览器可编辑 `.md`、`.txt`、`.json`、`.yaml`、`.yml`、`.toml`;保存或确认删除时核对文件内容版本,避免覆盖外部修改。
|
|
112
145
|
|
|
113
|
-
|
|
114
|
-
2. 列出书名,并标出当前 `.active-book` 指向的那本。
|
|
115
|
-
3. 让用户选择,把所选书的相对路径写入项目根 `.active-book`(覆盖原内容)。
|
|
116
|
-
4. 只发现一本时直接确认为活跃书,无需询问。
|
|
146
|
+
停止服务时终止对应的 Node 长运行进程即可。若用户只问用法,不要替他启动;告诉用户用 `/story dashboard`(按上方宿主写法替换)。
|
|
117
147
|
|
|
118
148
|
## 版本更新检查
|
|
119
149
|
|
|
120
|
-
|
|
150
|
+
用户问“有没有新版本”“检查更新”“升级”时执行。**先报告版本,是否安装由用户决定。**
|
|
121
151
|
|
|
122
|
-
1. **当前版本**:读本 skill 同目录的 `VERSION`
|
|
152
|
+
1. **当前版本**:读本 skill 同目录的 `VERSION` 文件;缺失则视为未知。本 skill 在写作项目里(如项目下的 `skills/`、`.agents/skills/`、`.zcode/skills/`)时,读到的是项目副本的版本。
|
|
123
153
|
2. **最新版本**:优先 `gh release view --json tagName,name,url -R zenstory-ai/oh-story-claudecode` 取 `tagName`;无 gh 用 `curl -fsS --max-time 5 https://api.github.com/repos/zenstory-ai/oh-story-claudecode/releases/latest` 取 `.tag_name`(jq 或 grep)。查不到 → 告知"暂时拉不到最新版本,可手动看 [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)",不报错。
|
|
124
|
-
3.
|
|
154
|
+
3. **比较**:当前版本已知时,去掉 `v` 前缀按语义版本比较(major.minor.patch);未知时只展示最新稳定版,不判定是否已最新。`gh release` 默认取 latest 稳定版,不含 pre-release。
|
|
125
155
|
4. **告知**:
|
|
126
156
|
- 已最新 → 「已是最新版 vX.Y.Z」。
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
157
|
+
- 有新版或当前版本未知 → 展示已知版本与 [Releases](https://github.com/zenstory-ai/oh-story-claudecode/releases)/[CHANGELOG](https://github.com/zenstory-ai/oh-story-claudecode/blob/main/CHANGELOG.md),有 release notes 时附更新要点,再用宿主可用的提问方式问「现在更新吗?」。选先不 → 不动,告知随时可再来。
|
|
158
|
+
5. **更新**(用户同意后):按本 skill 目录的位置判断安装方式。
|
|
159
|
+
- 在插件目录里(路径含 `plugins/`):Claude Code 跑 `claude plugin marketplace update oh-story-skills` 再跑 `claude plugin update oh-story@oh-story-skills`,重启后生效;ZCode 在 Plugin Management 里刷新市场后更新 `oh-story`。
|
|
160
|
+
- 用 `npx skills` 装在全局或当前目录:重跑 `npx skills add zenstory-ai/oh-story-claudecode -y -g`(原来装在当前目录的去掉 `-g`)。
|
|
161
|
+
- 其他安装方式(如 ClawHub):按原来的方式重装最新版。
|
|
162
|
+
- 本 skill 在写作项目里:先用上面对应的方式更新安装包,再用新装的包在项目根运行 `/story-setup`,项目里的副本才会换成新版;OpenClaw、Reasonix 和通用文件模式下项目里跑的就是这份旧副本,要用新包手动覆盖项目 `skills/` 下的 13 个 skill 目录。
|
|
163
|
+
|
|
164
|
+
更新完提示:已部署过的项目在项目根重跑 `/story-setup` 同步 hooks、agents 和参考资料,然后**新开一个会话**,写作助手才会重新加载。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.9.0
|