dsh-ai-studio 0.0.0-stage → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Studio contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,273 @@
1
- # Temporary Holding Version
1
+ # dsh-ai-studio
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > 即装即用的 DeepSeek Harness AI Studio:**工作室仪表盘、Agent 派单、token 预算、决策台、支线/契约冲突、worktree 代码执行、项目、角色、任务、验收、合并治理**,一个独立页面。
4
+
5
+ 当前版本 **3.12.0**,已在 **DSH 0.2.1-rc.2** 上完成端到端验证(Web/桌面安装、页面渲染、任务创建、验收门禁、合并治理、工作室仪表盘、Agent 派单与结构化回执、token 计量、决策台、支线/契约冲突自动升级、git worktree 代码编辑与自动提交、Host 独立验证、独立 AI 评审、自动集成分期、文档同步与不可逆决策门禁、ADR 草稿与写入、人工触发的 Git merge 与合并后回归、合并失败升级与回滚、改修票诊断/计划门禁、失败 2 次自动升级与重拆、合并前验证门禁、项目知识/模块契约、契约越界护栏、集成/playtest ticket、真实项目 dogfood、数据导出/导入恢复、Claude Code / Codex CLI 执行器、项目包导出/导入、切换 DSH 页面后保持 Studio 导航位置)。
6
+
7
+
8
+
9
+ ## 它是什么
10
+
11
+ Studio 把 DSH 从「一个会话」扩展成「一间工作室」:
12
+
13
+ - **公司仪表盘**:跨项目的项目组合、老板收件箱、角色负载、风险雷达和交付流;token 消耗来自 DSH meter,金额成本等报价接入后再显示。
14
+ - **Agent 分析派单**:在 Task Room 把任务派给负责人角色,DSH Agent 读取任务/契约后返回 `summary / evidence / artifacts / decisions / contract_deltas / rejected_options / blockers` 结构化回执。
15
+ - **决策台**:Agent 的项目级决策建议自动进入待裁决;Owner 在独立页面批准/拒绝并记录结论与理由。Agent 不能替 Owner 拍板。
16
+ - **支线/契约冲突**:每次派单自动登记支线;Agent 回执里的 `contractDeltas` 写入契约变更。两条支线改同一契约且内容不同时,自动升级为待裁决决策。
17
+ - **worktree 代码执行**:项目绑定 git 仓库后,每个任务自动创建 `.worktrees/<taskId>` 和 `studio/<taskId>` 分支;Agent 在 worktree 内改代码,Run 记录 diff;主工作区不被直接修改。
18
+ - **Host 独立验证**:Task Room 的验证命令由 Studio Host 在 worktree 内执行,记录退出码/输出并写 evidence;不依赖 Agent 会话,也不会自动通过验收。
19
+ - **工作流护栏**:Task 记录模块/契约/票类型;连续失败 2 次自动 blocked 并升级决策;代码项目没有通过的验证时不能提交合并提案。
20
+ - **项目知识层**:绑定 PRD / INVARIANTS / MODULES 路径,只读查看仓库原文;Module 契约卡记录职责、接口摘要、允许/禁止路径与依赖,派单时自动加载对应模块契约。
21
+ - **契约护栏**:代码 Run 改动模块契约文件、禁止路径,或越出允许的 `src/`/`test/` 路径时,任务自动 blocked 并生成「契约越界」决策,不静默接受。
22
+ - **集成/重拆闭环**:Task 可标记为集成/playtest ticket;连续失败 2 次自动生成 Architect 重拆 ticket(backlog),而不是只留一个决策。
23
+ - **独立 AI 评审**:验收人角色另开 Agent 会话,只读 diff 和 Host 验证输出,给出 pass/fail 与具体发现;代码任务没有通过的评审不能 done。
24
+ - **自动集成分期**:每完成 3 个任务自动生成一张 backlog 集成/playtest ticket(打包可玩 + 人玩 10 分钟),不会自动派单。
25
+ - **文档同步门禁**:项目绑定 PRD/INVARIANTS/MODULES 时,任务 done 前必须勾选“文档已同步”。
26
+ - **不可逆决策**:Decision 可标记不可逆;批准时必须写结论和理由。
27
+ - **ADR 草稿**:不可逆决策批准后自动生成 Markdown ADR 草稿(标题/背景/决策/理由/建议),保存于决策记录,不自动写文件。
28
+ - **评审同族提示**:评审模型与实现模型相同时,Task Room 显示共享盲点警告。
29
+ - **人工触发 Git merge**:已批准提案可在 Task Room 执行真实 `git merge --no-ff`;要求当前在 base、工作区干净、分支存在;冲突自动 abort,不自动 push。
30
+ - **合并后回归**:merge 成功后自动在 repo 执行任务验证命令,记录 pass/fail 和输出;失败不会自动回滚。
31
+ - **合并失败升级**:post-merge 回归失败时自动生成「合并后回归失败」决策,附 merge commit、回滚命令和修复选项。
32
+ - **ADR 落盘**:人工确认后将 ADR 草稿写入 `docs/adr/`,自动取下一个四位编号;幂等,不覆盖已有路径。
33
+ - **合并回滚**:回归失败的 merge 可人工触发 `git revert --no-edit <mergeCommit>`,记录 rollback commit;不 reset、不 push。
34
+ - **改修票工序**:`kind=fix` 的任务必须有 diagnosis 和 plan 才能派单;新建型不受影响。
35
+ - **1.9.1 修复**:回滚改用 `git revert -m 1` 处理 merge commit;新增真实 merge 失败 → 回滚 E2E 测试。
36
+ - **2.0 自动提交**:Agent 成功后,Host 自动把 worktree 内所有改动(含未跟踪文件)提交到任务分支。
37
+ - **2.0 Git 身份预检**:merge 前检查 repo 的 `user.name`/`user.email`,缺失时给出明确错误。
38
+ - **2.0 真实 dogfood**:在外部真实仓库完成派单、Host 验证(5/5)、独立评审 pass、merge 和 post-merge 回归(5/5)。
39
+ - **2.1 数据导出**:右上角「导出」下载完整 `studio.json` 备份(含 schema/版本/时间);`/studio-api/export` 需要 Bearer token。
40
+ - **2.2 数据导入**:右上角「导入」选择导出文件恢复;Host 先把原文件备份为 `studio.json.pre-import-*`,校验 schema 后替换。
41
+ - **2.4 外部执行器**:角色可以选择 DSH Agent、Claude Code 或 Codex CLI;Claude/Codex 必须在对应机器上先登录,Host 在 worktree 内以 headless 模式运行并归一化回执。
42
+ - **2.5 项目包**:设置页「导出项目包」生成 tar.gz(`studio.json` + `project.bundle` + `manifest.json` + 迁移说明 + SHA-256),「导入项目包」校验后 clone 并重绑;不含 API Key。
43
+ - **2.5.1 导航保持**:切到 DSH 对话再回 Studio,保留上次的页签和打开的任务,不再跳回初始页。
44
+ - **2.6 阶段门禁**:新项目从 `discovery` 开始,Owner 完成检查项/产物后依次进入 `architecture → prototype → development`;已有项目保持 `development`。代码项目未进入持续开发不能派单。
45
+ - **2.7 触发收件箱**:外部事件先进入 Trigger Inbox;同一 `threadKey` 归入 Thread,后续事件可关联到已有任务;由人确认转任务,不自动派单或合并。
46
+ - **2.8 研讨会**:记录各角色的独立意见、反对、风险和推荐;2.8.1 增加「AI 独立评审」,每个参与角色独立调用 DSH Agent,形成汇总与 Owner 决策;不自动合并。
47
+ - **2.9 原型 Demo 门禁**:从原型验证进入持续开发前,必须登记 `demo` 产物(路径、URL 或 playtest 记录),或写 Owner 豁免理由。
48
+ - **2.10 Provider Profiles**:角色可以绑定命名执行配置(DSH / Claude Code / Codex + provider + model),派单、独立评审和 Workshop 共用同一解析。
49
+ - **2.11 Provider 健康度**:按 Profile 聚合成功/失败、token、最近错误;运行失败会把状态标为 `degraded`,不自动切换。
50
+ - **2.12 Provider 诊断**:显示失败率、失败原因分布、最近 5 次运行;对 `degraded` Profile 给出备用建议,不自动切换。
51
+ - **2.13 人工备用切换**:确认后把绑定降级 Profile 的角色改绑到建议 Profile;不自动 failover,改绑留审计事件。
52
+ - **2.14 Run 执行快照**:每次 Run 记录 providerProfileId / executor / provider / model;后续改绑不会改变历史归属。
53
+ - **2.15 Provider 实时探测**:检查 DSH provider/model 是否存在、外部 CLI 是否可执行;结果只展示,不自动切换。
54
+ - **2.16 Trigger Webhook**:GitHub/CI/IM 通过 HMAC 签名进入收件箱;repo/label/author/mention 规则过滤,人工确认转任务。
55
+ - **2.17 手动 Demo 记录**:记录入口、启动命令、验证步骤、结果、截图和备注;不执行命令,不自动截图。
56
+ - **2.18 Workshop AI 汇总草稿**:生成共识、分歧、未决问题、候选方案;不覆盖原始意见,不写 Owner 决策。
57
+ - **2.19 入门引导与项目模板**:新手清单;Web / 游戏 / CLI 工具模板自动创建角色和首批任务;PWA 暂缓。
58
+ - **3.0 公司级组合治理**:组合预算、跨项目优先级、角色覆盖聚合;只从项目状态派生。
59
+ - **3.0.1 客户端拆分(一)**:抽出 `lib/format`、`components/ui`、`views/Company|Boardroom|Knowledge|Team`。
60
+ - **3.0.2 客户端拆分(二)**:抽出 `views/MissionView`、`components/TaskPanels`、`components/Forms`、`components/RecentEvents`;`StudioPage` 降到 2,186 行。
61
+ - **3.0.3 Store 拆分(一)**:抽出 `store/read-model`、`store/validation`、`store/migration`;`store.ts` 降到 4,797 行。
62
+ - **3.0.4 Store 拆分(二)**:抽出 `store/inputs`、`store/seed`、`store/errors`,并拆出 Tasks/Merge/Settings/States;`store.ts` 4,272 行,`StudioPage` 1,528 行。
63
+ - **3.0.5 Store 拆分(三)**:抽出 `store/templates`、`store/lookups`;`store.ts` 降到 3,993 行。
64
+ - **3.0.6 有状态域拆分(一)**:Provider Profile 域抽成 service;`store.ts` 降到 3,878 行。
65
+ - **3.0.7 有状态域拆分(二)**:Merge 域抽成 service;`store.ts` 降到 3,598 行。
66
+ - **3.0.8 有状态域拆分(三)**:Trigger / Webhook / Thread 域抽成 service;`store.ts` 降到 3,277 行。
67
+ - **3.0.9 有状态域拆分(四)**:Task 域抽成 service;`store.ts` 降到 2,969 行。
68
+ - **3.1.0 质量门禁拆分**:评审与 Host 验证抽成 service;`store.ts` 降到 2,815 行。
69
+ - **3.1.1 Run 生命周期拆分**:Run / 失败升级 / 契约护栏抽成 service;`store.ts` 降到 2,112 行。
70
+ - **3.1.2 Workshop / Demo 拆分**:Workshop 与手动 Demo 抽成 service;`store.ts` 降到 1,817 行。
71
+ - **3.1.3 微型文件收敛**:context / errors / ids 合并为 `store/core.ts`;Store 文件数 18 → 16。
72
+ - **3.1.4 Mission 视图拆分**:Trigger / Stage / Workshop / Demo 独立;MissionView 1,740 → 568 行。
73
+ - **3.1.5 任务组件拆分**:TaskPanels 拆成 Board / Drawer / RunPanels / MergePanel。
74
+ - **3.1.6 表单拆分**:Forms 拆成 Task / Role / Project / Decision 和 ModalShell。
75
+ - **3.1.7 决策域拆分**:Decision / ADR / 合并后决策抽成 service;`store.ts` 降到 1,577 行。
76
+ - **3.1.8 项目/阶段/目录域拆分**:Project、Stage Gate、Role、Module 抽成 service;`store.ts` 降到 1,017 行。
77
+ - **3.2.0 客户端动作拆分**:52 个 API handler 抽成 `studio-actions.ts`;`StudioPage` 降到 888 行。
78
+ - **3.2.1 收尾整理**:RecentEvents 并入 Mission;项目介绍与文档校对。
79
+ - **3.3.0 执行层绑定**:boot nonce、项目包按项目、taskId 校验、提交绑定、schema 27、local Git 身份。
80
+ - **3.4.0 运行隔离**:worker/review 显式挂载 `standard`;worker 限制 creator/子代理工具;评审/研讨会只读;Run 记录预设/审批/沙箱。
81
+ - **3.5.0 反馈修复**:可选字段接受 `null`;`/verify` 只跑任务保存的命令;Bearer timing-safe;boot/verify 限流;CI 校验 lib。
82
+ - **3.6.0 评审证据**:Run 保存真实 patch;评审注入 patch + base/branch;契约越界在提交前拦截。
83
+ - **3.7.0 运行数据**:Run 输出外置到 `runs/<id>.txt`;state 留 2KB 预览;回执 JSON 多块解析。
84
+ - **3.8.0 超时与风险分级**:任务可设超时;超时状态保留 worktree;`riskTier` 的 trivial 任务有 Host 验证时可跳独立评审。
85
+ - **3.9.0 PRD/架构冻结**:Owner 主动冻结、版本 Hash、漂移检测、StageGate 绑定、领域模型、需求决策记录。
86
+ - **3.10.0 冻结变更单**:关联冻结版本、原因、影响、Owner 接受/拒绝。
87
+ - **3.11.0 结构整理**:router/styles 拆分、CHANGELOG、check-docs、README 首屏重写。
88
+ - **3.12.0 文档路径修复**:换仓库自动迁移绝对路径,文档路径强制相对根目录。
89
+ - **角色薪资与预算**:角色可配置模型和单任务/每日 token 预算;项目可配置总 token 预算。
90
+ - **项目**:一个项目边界,下面有角色和任务。
91
+ - **角色**:持久的职责契约(使命、职责、决策权),不是人设卡。
92
+ - **任务**:目标 + 负责人 + 验收人 + 可验证的验收标准 + 证据。
93
+ - **验收门禁**:Agent 不能自己把任务标记为完成;必须勾完验收项,并至少记录一条证据。
94
+ - **合并治理**:验收通过后可提交合并提案,记录摘要、风险、回滚、评审备注和合并提交;批准、打回、标记已合并都有审计事件。
95
+ - **独立页面**:DSH 侧栏出现「工作台」,主区域是一整套 Mission Control,不占用聊天会话。
96
+ - **本地持久化**:数据自动写到 `$DSH_HOME/studio/studio.json`,重启不丢;首次运行自动生成演示项目。
97
+ - **版本适配**:`engines.dsh >= 0.2.1-rc.2`;宿主只依赖 Web Server 路由、client slots 和 React,不依赖私有 Remote 生成器。
98
+
99
+ ## DSH 生态发现
100
+
101
+ - GitHub topic:`dsh-plugin`
102
+ - npm keywords:`dsh-plugin`、`deepseek-harness`、`dsh`
103
+ - package.json 包含 `dsh.bundle.patch` 和 `dsh.client.platform`
104
+ - `cordis.patch.yml` 插入的包名必须与 `package.json` 的 `name` 完全一致
105
+
106
+ 如果侧栏没有出现「AI 工作室」,优先检查这三处是否一致。
107
+
108
+ 完整工作流、开发用法和术语注释见:
109
+
110
+ - [项目介绍与开发指南](https://github.com/mjw0531/dsh-ai-studio/blob/main/docs/06-项目介绍.md)
111
+
112
+ ## 安装
113
+
114
+ ### 方式 A:桌面端(推荐)
115
+
116
+ 1. 打开 DSH 的 **Plugins** 页面。
117
+ 2. **Add plugin** → 选择 **本地目录**,填入:
118
+
119
+ ```text
120
+ D:\dsh-ai-studio
121
+ ```
122
+
123
+ 3. 安装完成后点 **Enable now**。
124
+ 4. 刷新页面;左侧栏出现 **工作台**。
125
+ 5. 如果打开工作台显示「没有返回启动参数」,请**完全退出并重新打开 DSH**。桌面端的 Host 启动参数表是在应用启动时收集的,热安装后需要重启一次 Host;0.2.1 的 Boot 回退路径会让后续刷新不再依赖这次重启。
126
+
127
+ > 如果 DSH 不让你直接选目录,先在终端打包,再在 Add plugin 里填 tarball 路径:
128
+ >
129
+ > ```powershell
130
+ > cd D:\dsh-ai-studio\packages\dsh-studio
131
+ > pnpm pack
132
+ > ```
133
+
134
+ ### 方式 B:Web profile
135
+
136
+ ```powershell
137
+ dsh plugin --profile web add "D:\dsh-ai-studio\packages\dsh-studio"
138
+ dsh --profile web
139
+ ```
140
+
141
+ 打开启动时打印的 URL,左侧栏出现 **工作台**。
142
+
143
+ ### 方式 C:打包分发给别人
144
+
145
+ ```powershell
146
+ cd D:\dsh-ai-studio\packages\dsh-studio
147
+ pnpm pack
148
+ ```
149
+
150
+ 把生成的 `dsh-ai-studio-3.12.0.tgz` 发给对方,在 **Add plugin** 里填 tarball 路径即可。
151
+
152
+ ## 使用
153
+
154
+ 首次打开会自动生成一个「示例项目」、4 个角色和 5 个任务。
155
+
156
+ 1. **公司**:老板视角的项目组合、老板收件箱、角色负载、风险雷达和交付流。
157
+ 2. **决策台**:Agent 提出的项目级决策、人工提出的决策、跨支线契约冲突;批准/拒绝并记录结论与理由。
158
+ 3. **项目**:看当前项目的支线、契约变更、任务板、验收、团队和最近事件。
159
+ 4. **任务**:点卡片打开 Task Room;勾验收项、写证据、推进状态;未绑定仓库时点「派单分析」,绑定仓库后点「派单执行」,Agent 在 worktree 内工作并把 diff 写入 Run;再用「独立验证」跑测试命令。
160
+ 5. **合并**:查看合并队列;批准、打回、记录合并提交。
161
+ 6. **团队**:新增角色,写使命/职责/决策权,并配置模型与 token 预算。
162
+ 7. **设置**:绑定/更换代码仓库,查看 DSH 版本、兼容状态、数据目录和能力边界。
163
+
164
+
165
+ Task Room 里,验收项、证据和状态推进是同一份事实:没勾完、没证据,就无法验收通过。
166
+
167
+
168
+ 合并队列把「验收通过」和「合入主干」分开:提案先评审,批准后才记录合并;打回会把任务退回执行中。
169
+
170
+ 核心规则:
171
+
172
+ - 新建任务必须至少有一条验收标准。
173
+ - 任务进入「已完成」前,所有验收项必须勾选,且至少有一条证据。
174
+ - 任务验收通过后才能提交合并提案;合并提案必须有摘要、风险和回滚方案。
175
+ - 合并提案被打回时,任务退回执行中;需要重新验收后才能再提交。
176
+ - 合并命令由人或 Integrator 执行,Studio 记录治理状态和审计事件,不自动改 Git。
177
+
178
+ ## 数据与安全
179
+
180
+ - 数据文件:`$DSH_HOME/studio/studio.json`(默认 `C:\Users\<你>\.dsh\studio\studio.json`)。
181
+ - 每次进程启动生成随机 Bearer token,只注入当前 DSH 页面;数据接口同源、`Cache-Control: no-store`,桌面 Boot 回退使用受控 CORS。
182
+ - 不存储模型密钥;不要手动把 token 贴到聊天/日志里。
183
+ - 数据损坏时会备份为 `studio.json.corrupt-<timestamp>`,并重建演示数据。
184
+ - 旧 schema(v1-v15)会自动迁移到 v16:增加 `mergeProposals`、`runs`、`branches`、`contractChanges`、`decisions`、`verifications`、`reviews`、`modules`、项目仓库/worktree/知识文档路径、任务模块/契约/票类型/诊断/计划/集成标记/重拆来源/文档同步标记、决策不可逆标记/ADR 草稿/ADR 路径、合并后回归/回滚字段、角色模型/预算字段和项目预算;已有项目/角色/任务不丢失。
185
+ - 桌面渲染器运行在 `dsh-app://` 上,因此 `/studio-api/boot` 会对 `dsh-app://` / `null` origin 反射 CORS 并发放进程级 token;数据接口仍然只认这个 token。Web 端的 Boot 路由继续走 DSH 会话认证。
186
+
187
+ ## 版本兼容策略
188
+
189
+ - `package.json` 的 `engines.dsh` 写成 `>=0.2.1-rc.2`,未来版本不会被硬拒绝。
190
+ - Host 使用 `ctx.webServer.register()`、结构化 `webserver/index-inject`、`ctx.connection.admit()`;Client 使用 `ctx.slots`、`ctx.layout` 和平台 React。
191
+ - 启动参数有三条路径:页面注入 → 已认证的 `/studio-api/boot` → 桌面自定义 origin 的 Boot 回退(只发放进程级 token,数据接口仍需 token)。
192
+ - DSH 版本读取顺序:`@deepseek-ai/dsh-app-boot` → 安装包清单 → 环境变量 → `unknown`。
193
+ - 页面会显示兼容状态;能力缺失时显示错误提示,不白屏。
194
+ - 如果未来 DSH 改掉 `webServer`、index injection 或 slots,只需替换 `src/host` / `src/client` 的少量适配代码,领域逻辑不动。
195
+
196
+ ## 开发
197
+
198
+ ```powershell
199
+ pnpm install
200
+ pnpm typecheck
201
+ pnpm build
202
+ pnpm test
203
+ ```
204
+
205
+ > 仓库已带 `lib/` 构建产物,所以可以直接安装;改完 `src/` 后运行 `pnpm build` 重新生成。
206
+
207
+ 构建产物:
208
+
209
+ - `lib/index.js`:Host 插件(ESM)。
210
+ - `lib/client.js`:浏览器模块(DSH module-loader 格式,React 外置)。
211
+ - `lib/store.js`:仅供 Node 测试使用的内部构建。
212
+
213
+ 目录:
214
+
215
+ ```text
216
+ packages/dsh-studio/
217
+ src/host/ # Cordis 插件、HTTP API、文件存储、版本适配
218
+ src/client/ # React 独立页面、API client、样式
219
+ src/shared/ # 跨端类型、状态机、标签
220
+ tests/ # 存储层单测
221
+ cordis.patch.yml
222
+ ```
223
+
224
+ ## 当前边界(v2.5)
225
+
226
+ - ✅ 项目/角色/任务/验收/证据/事件持久化。
227
+ - ✅ 独立页面、侧栏入口、主题、响应式。
228
+ - ✅ 验收门禁和状态机。
229
+ - ✅ 合并提案、批准、打回、合并记录和审计事件。
230
+ - ✅ 公司级 Owner Dashboard:项目组合、老板收件箱、角色负载、风险雷达、交付流。
231
+ - ✅ Agent 派单与结构化回执;回执缺 `summary`/`evidence` 时任务退回可开始,不能进入验收。
232
+ - ✅ 角色模型/token 预算、项目 token 预算、DSH token meter 消耗。
233
+ - ✅ 决策台:项目级决策持久化、待裁决列表、批准/拒绝、结论与理由、Agent 决策自动入会。
234
+ - ✅ 支线自动登记、Agent 契约变更记录、跨支线同契约冲突自动升级为待裁决决策。
235
+ - ✅ 项目绑定 git 仓库;每 Task 独立 worktree/branch;Agent 在 worktree 内改代码,Run 记录 branch/workspace/diff。
236
+ - ✅ Host 独立验证:验证命令在 worktree 内执行,记录 exit code/输出,通过时写 evidence;不自动通过验收。
237
+ - ✅ 工作流护栏:Task 模块/契约/票类型;连续失败 2 次 blocked + 决策升级;代码项目合并前必须有通过的验证。
238
+ - ✅ 知识层:PRD/INVARIANTS/MODULES 路径与只读查看;Module 契约卡(职责、契约、允许/禁止路径、依赖)。
239
+ - ✅ 契约护栏:代码改动契约文件/禁止路径/越出允许的 src/test 时自动 blocked + 决策。
240
+ - ✅ 工作流闭环:集成/playtest ticket 标记;连续失败 2 次自动生成 Architect 重拆 ticket。
241
+ - ✅ 独立评审:验收人 Agent 只读 diff/Host 验证,pass/fail + findings;代码任务 done 前必须有通过评审。
242
+ - ✅ 自动集成分期:每 3 个完成任务生成一张 backlog 集成票;不自动派单、不替代单任务验收。
243
+ - ✅ 文档同步门禁:项目有知识文档时 done 前必须勾选“文档已同步”。
244
+ - ✅ 不可逆决策:Decision 标记不可逆后,批准必须写结论和理由。
245
+ - ✅ 人工触发 Git merge:已批准提案 + 干净 repo + 当前 base + 分支存在;冲突自动 abort;不自动 push。
246
+ - ✅ ADR 草稿:不可逆决策批准后生成 Markdown 草稿,保存在决策记录。
247
+ - ✅ 评审同族提示:评审模型与实现模型相同时显示共享盲点警告。
248
+ - ✅ 合并后回归:merge 成功后自动执行任务验证命令并记录结果;失败只警告,不自动回滚。
249
+ - ✅ 合并失败升级:回归失败自动生成决策台决策,附回滚命令和修复选项。
250
+ - ✅ ADR 落盘:人工触发,写入 `docs/adr/`,自动编号且幂等。
251
+ - ✅ 合并回滚:回归失败后可人工触发 `git revert`,记录 rollback commit;不 reset/push。
252
+ - ✅ 改修票流程:diagnosis + plan 必填,缺一不可派单;UI 有诊断/计划字段与校验。
253
+ - ✅ 真实项目 dogfood:外部仓库完成一次真实派单→验证→评审→merge→回归;仍不是完整垂直切片。
254
+ - ✅ Agent 改动自动提交到任务分支(含未跟踪文件)。
255
+ - ✅ Git 身份预检:repo 缺 `user.name/email` 时明确报错。
256
+ - ✅ 数据导出/导入:页面「导出」「导入」;导入前自动备份,schema 不支持时拒绝。
257
+ - ✅ Claude Code / Codex CLI:角色可选外部执行器;Host 在 worktree 内以 headless 模式运行,回执仍走同一套证据门禁。
258
+ - ✅ 项目包导出/导入:状态 + git bundle + manifest + SHA-256;导入前备份,目标目录必须为空。
259
+ - ⏳ 项目包自动选择目录(当前用路径输入)。
260
+ - ⏳ 直接填写 GPT/Claude/GLM/Kimi API Key;当前外部执行器依赖对应 CLI 的登录态。
261
+ - ⏳ Cursor 执行器(Cursor CLI 目前是 IDE 启动器,不是 headless Agent)。
262
+ - ⏳ 项目模板/初始化向导、自动回滚策略、项目级阈值/跨厂商配置。
263
+ - ⏳ 运行中 token 硬停、金额报价。
264
+ - ⏳ 新建型 red→green 强制、完整垂直切片 dogfood。
265
+ - ⏳ Project Book 检索、角色/Scope 强隔离。
266
+ - ⚠️ Windows 沙箱在部分 worktree 上可能报 `SetNamedSecurityInfoW grantWrite`,导致 Agent 能改文件但无法启动 shell 跑测试;这属于环境 ACL 限制,Run 会如实记录 blocker。
267
+ - ✅ v0.6.1 的 Host 独立验证可以绕过 Agent 会话的 shell 限制,由 Studio 直接执行验证命令;仍不会自动合并或自动通过验收。
268
+
269
+ v0.6.1 的 Agent 已经能**在独立 worktree 内写代码并产生 diff**,Verifier 可以用 Host 独立验证拿机器证据;但仍不会 merge/push,验收由人决定。
270
+
271
+ ## License
272
+
273
+ MIT
@@ -0,0 +1,8 @@
1
+ # Studio 的 DSH 运行时层。
2
+ #
3
+ # 这个 bundle 只插入一个 host 插件。浏览器半由 dsh-client-modules 根据
4
+ # package.json 的 dsh.client 自动发现,不需要单独一行 Loader entry。
5
+
6
+ - insert:
7
+ - id: studio
8
+ name: "dsh-ai-studio"