@oh-story/dsh 0.1.2 → 0.1.4
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 +5 -3
- package/lib/client.js +27 -11
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +141 -136
- package/lib/drama/skills/short-drama/SKILL.md +55 -122
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +24 -78
- package/lib/drama/skills/short-drama/references/creator-documents.md +79 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +51 -77
- package/lib/drama/skills/short-drama/references/knowhow-index.md +2 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +29 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +13 -19
- package/lib/drama/skills/short-drama-assets/SKILL.md +40 -161
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +2 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +10 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +41 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +10 -12
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +6 -65
- package/lib/drama/skills/short-drama-produce/SKILL.md +26 -10
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +49 -240
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +8 -7
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +24 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +5 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +11 -71
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +44 -219
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +3 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +13 -23
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +13 -72
- package/lib/drama/skills/short-drama-write/SKILL.md +73 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/index.js +107 -14
- package/lib/index.js.map +4 -4
- package/lib/oh-story/manifest.json +26 -26
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +11 -11
- package/lib/oh-story/roles/story-architect.md +20 -14
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/story-import/SKILL.md +5 -1
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +1 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +11 -5
- package/lib/oh-story/skills/story-setup/SKILL.md +12 -9
- package/lib/types/client/file-activity.d.ts +5 -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/index.d.ts +2 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/package.json +3 -2
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-provider.d.ts","sourceRoot":"","sources":["../../src/skill-provider.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAqHhC,UAAU,WAAW;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAaD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAQ7D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrE;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAKhD;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAK9C;AAuDD,wBAAgB,0BAA0B,CAAC,SAAS,SAA4B,GAAG,aAAa,CAE/F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG1E;AAED,wBAAgB,wBAAwB,CAAC,SAAS,SAA0B,GAAG,aAAa,CAE3F"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-story/dsh",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "A DSH plugin for fiction and short-drama production",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
@@ -113,6 +113,7 @@
|
|
|
113
113
|
"scripts": {
|
|
114
114
|
"build": "tsx ../../scripts/build-dsh-plugin.ts && tsc -p tsconfig.build.json",
|
|
115
115
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
116
|
-
"test": "vitest run"
|
|
116
|
+
"test": "vitest run",
|
|
117
|
+
"test:contract": "vitest run contract"
|
|
117
118
|
}
|
|
118
119
|
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
# 项目命令
|
|
2
|
-
|
|
3
|
-
从 `short-drama` 技能安装目录运行,不依赖当前工作目录:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
python3 <core>/scripts/project_tool.py init <project> --title <title>
|
|
7
|
-
python3 <core>/scripts/project_tool.py status <project>
|
|
8
|
-
python3 <core>/scripts/project_tool.py publish <project> --owner short-drama-write --artifact-id EP001:script --output 剧集/EP001/screenplay.md=_work/screenplay.next.md --input 项目开发/episode-map.jsonl
|
|
9
|
-
python3 <core>/scripts/project_tool.py accept <project> --artifact-id EP001:script --decision accepted [--note <note>]
|
|
10
|
-
python3 <core>/scripts/project_tool.py review <project> --artifact-id EP001:script --verdict approve [--reviewer <label>] [--note <note>]
|
|
11
|
-
python3 <core>/scripts/project_tool.py set-authority <project> --field /creator_authority/production_profile --decision-ref 创作者决策/decisions.jsonl#CD-PROFILE-001
|
|
12
|
-
python3 <core>/scripts/project_tool.py package <project> --episode EP001 --include 剧集/EP001/screenplay.md [--omit <path>=<reason>]
|
|
13
|
-
python3 <core>/scripts/project_tool.py verify <project> --episode EP001
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## 发布
|
|
17
|
-
|
|
18
|
-
`publish --output <target>=<source>` 可重复。source 必须是项目内安全的 UTF-8 Markdown、
|
|
19
|
-
JSON 或 JSONL;命令先验证全部 source,再逐文件用临时文件和原子替换发布。每个 artifact 的
|
|
20
|
-
output 路径只能有一个 owner。
|
|
21
|
-
|
|
22
|
-
`--input <path>` 只声明该产物实际读取的直接项目文件。工具内部保存当前摘要,用于之后判断
|
|
23
|
-
`update_needed`;调用者不计算、不粘贴 hash,也不声明传递依赖。若 A 直接读 B,就声明 B;
|
|
24
|
-
B 又读 C 不会让 A 自动过期,只有 A 下次实际重建时才读取当前 B。
|
|
25
|
-
|
|
26
|
-
**失效图就是这份清单,漏一条就是一条静默的边**:产物文件首行 `sources` 声明了什么,
|
|
27
|
-
`--input` 就逐个列什么。少列一个,那个上游改了它不会变 `update_needed`,会带着过期的绑定
|
|
28
|
-
停在 `accepted`,而这与真的还是最新的看起来完全一样。身份与变体成对出现的上游尤其容易漏
|
|
29
|
-
一半(`props.jsonl` 列了、`prop-states.jsonl` 没列)。各阶段的完整清单写在自己的 SKILL.md 里。
|
|
30
|
-
|
|
31
|
-
默认只允许发布到标准阶段目录。`输入/**`、`.short-drama/**`、`交付/**` 和任何
|
|
32
|
-
`short-drama.json` 都不可作为 publish 目标;`short-drama.json` 里的 `creator_authority/*`、
|
|
33
|
-
`format/target_seconds_per_episode` 与 `format/pacing` 用 `set-authority` 写。`set-authority` 只认它所引用的那一个
|
|
34
|
-
决策文件,同一条决策的撤回要写在同一个文件里。分集目录
|
|
35
|
-
使用 `EP001` 形式。未登记的临时路径必须显式加 `--allow-unregistered-path`。
|
|
36
|
-
|
|
37
|
-
发布逐个文件原子完成:进程中断最多留下未被采用的临时文件,已完成的每个目标都是完整文件。
|
|
38
|
-
再次运行同一条发布命令即可继续。
|
|
39
|
-
|
|
40
|
-
## 接受与复核
|
|
41
|
-
|
|
42
|
-
发布后状态是 `needs_confirmation`。创作者决定当前版本:
|
|
43
|
-
|
|
44
|
-
```text
|
|
45
|
-
... accept <project> --artifact-id <id> --decision accepted
|
|
46
|
-
... accept <project> --artifact-id <id> --decision rejected --note <reason>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
接受不要求单独证据文件或 target hash。输出或直接输入已变化时命令拒绝沿用旧决定。
|
|
50
|
-
|
|
51
|
-
接受后可记录复核:
|
|
52
|
-
|
|
53
|
-
```text
|
|
54
|
-
... review <project> --artifact-id <id> --verdict approve --reviewer 同事复核
|
|
55
|
-
... review <project> --artifact-id <id> --verdict revise --note <bounded-fix>
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
`approve_with_notes` 也计为通过;`provisional` 保持未批准。reviewer 是创作质量实践,
|
|
59
|
-
不是 CLI 身份认证协议:有独立上下文时使用,没有时诚实填写自检标签。
|
|
60
|
-
|
|
61
|
-
重新 `publish` 会清除该 artifact 的旧接受与复核。`status` 在读取时检查当前输出和直接输入,
|
|
62
|
-
只报告 `update_needed`,不修改状态文件,也不传播或保存“下游闭包”。
|
|
63
|
-
|
|
64
|
-
## 写回创作者权威
|
|
65
|
-
|
|
66
|
-
创作者定下制作形态、视觉方向、播放面、集长目标或语速后,先把这条决定作为一条创作者决策记录
|
|
67
|
-
发布到 `创作者决策/` 并 `accept`,再写回 `short-drama.json`。三步都要走,缺一步 `set-authority`
|
|
68
|
-
会拒绝——决策文件必须先是**已发布且已接受**的产物:
|
|
69
|
-
|
|
70
|
-
```text
|
|
71
|
-
# 1. 写决策记录(首行 sources 声明,其后每行一条决定)
|
|
72
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"short-drama":{"owner":"short-drama","artifact":"short-drama.json"}}}
|
|
73
|
-
{"decision_id":"CD-PACING-001","status":"accepted","accepted_value":{"spoken_characters_per_second":5.0,"seconds_per_action_paragraph":2.5},"target_locators":[{"src":"short-drama","field":"/format/pacing"}],"decided_by":"creator","decided_at":"2026-01-01T00:00:00Z"}
|
|
74
|
-
|
|
75
|
-
# 2. 发布并接受
|
|
76
|
-
... publish <project> --owner short-drama --artifact-id creator:decisions --output 创作者决策/decisions.jsonl=_work/decisions.jsonl
|
|
77
|
-
... accept <project> --artifact-id creator:decisions --decision accepted
|
|
78
|
-
|
|
79
|
-
# 3. 逐个字段写回
|
|
80
|
-
... set-authority <project> --field /format/pacing --decision-ref 创作者决策/decisions.jsonl#CD-PACING-001
|
|
81
|
-
... set-authority <project> --field /creator_authority/delivery_surface --decision-ref 创作者决策/decisions.jsonl#CD-SURFACE-001
|
|
82
|
-
... set-authority <project> --field /format/target_seconds_per_episode --decision-ref 创作者决策/decisions.jsonl#CD-LENGTH-001
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
`/format/pacing` 收一个速率对象(每个速率是正数),剧本与分镜两个阶段都读它折算秒数。
|
|
86
|
-
|
|
87
|
-
`status` 的 `authority` 一节逐个回报已绑定字段的现状——`set-authority` 记下了它写进去的值,
|
|
88
|
-
所以直接改 `short-drama.json` 会在这里显示出来:
|
|
89
|
-
|
|
90
|
-
| 取值 | 含义 |
|
|
91
|
-
|---|---|
|
|
92
|
-
| `bound` | manifest 当前值仍是那条决策写进去的值 |
|
|
93
|
-
| `hand_edited` | 值被 `set-authority` 之外的东西改过 |
|
|
94
|
-
| `missing` | manifest 里已经没有这个槽位 |
|
|
95
|
-
| `not_authority_field` | 绑定记录指向一个不再属于白名单的字段 |
|
|
96
|
-
|
|
97
|
-
这一节是给 CLI 与 reviewer 看的,创作台不显示它——创作台按设计过滤掉生命周期内部信息。
|
|
98
|
-
|
|
99
|
-
对象槽位(`/format/pacing`、`creator_authority` 里带 `choices` 的块)是**并入**而不是整体替换:
|
|
100
|
-
一条只写了一半速率的决策,另一半会保持原样,因此 `set-authority` 校验的是合并之后的结果。
|
|
101
|
-
|
|
102
|
-
`--field` 只接受 `/creator_authority/*`、`/format/target_seconds_per_episode` 与 `/format/pacing`;
|
|
103
|
-
`creator_authority/decisions_artifact` 是目录布局,由 `init` 定下。被引用的记录 `status`
|
|
104
|
-
必须是 `accepted`,`target_locators` 必须含 `{"src":"short-drama","field":"<同一 field>"}`,
|
|
105
|
-
命令写入它的 `accepted_value`,并只写进 manifest 已声明的槽位、保持该槽位原有的 JSON 类型。
|
|
106
|
-
|
|
107
|
-
写到 `visual_direction`、`production_profile`、`delivery_surface` 这类带 `status` 的块时,
|
|
108
|
-
`accepted_value` 的键并入该块的 `choices`(该块没有 `choices` 就并入块本身),`status` 置为
|
|
109
|
-
`accepted`。直接写 `.../choices` 同样是并入,已记下的选择不会被这次写掉;写更深的单个选择
|
|
110
|
-
(如 `.../choices/look_development`)会把它所在的块一并置为 `accepted`。集长目标写正数秒。
|
|
111
|
-
下游读到的就是这里已 `accepted` 的值。
|
|
112
|
-
|
|
113
|
-
## 打包与复核
|
|
114
|
-
|
|
115
|
-
`package` 要求每个 `--include` 都属于本集并且当前为 `approved`。它把所选文本/JSON 复制到
|
|
116
|
-
`交付/<EP>/artifacts/`,写入 manifest 与 checksums,并记录 `--omit` 的理由。再次打包用新目录
|
|
117
|
-
原子替换旧包。
|
|
118
|
-
|
|
119
|
-
`verify` 重新计算交付文件校验和,并报告缺失、篡改或未登记新增文件。校验和只服务于准确交付,
|
|
120
|
-
不参与创作状态或依赖传播。
|
|
121
|
-
|
|
122
|
-
## Dashboard 启动
|
|
123
|
-
|
|
124
|
-
```text
|
|
125
|
-
python3 <core>/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
`--host` 只接受回环主机。服务拒绝符号链接和路径越界,使用每次启动独立的本机会话。
|
|
129
|
-
Dashboard 是展示与有限文本编辑层,不承担生成、接受、复核或打包编排。保存使用当前文件版本
|
|
130
|
-
做冲突检查;项目文件已被其他工具修改时返回冲突,不覆盖新内容。
|