cowork-flow 1.6.0 → 1.7.2
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/CHANGELOG.md +213 -213
- package/CONTRIBUTING.md +137 -0
- package/LICENSE +1 -1
- package/README.md +108 -369
- package/docs/architecture.md +122 -0
- package/docs/hosts.md +290 -0
- package/docs/index.md +32 -0
- package/docs/release.md +104 -0
- package/package.json +37 -7
- package/presets/claude-code/.claude-plugin/plugin.json +28 -0
- package/presets/claude-code/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/codex/.codex-plugin/plugin.json +37 -0
- package/presets/codex/assets/logo.svg +4 -0
- package/presets/codex/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/dsh/agent.cordis.yml +35 -12
- package/presets/dsh/plugins/workflow-state.js +88 -72
- package/presets/dsh/preset.yml +1 -1
- package/presets/kimi-code/.kimi-plugin/plugin.json +35 -0
- package/presets/kimi-code/hooks/cowork-flow-inject.mjs +14 -2
- package/presets/kimi-code/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/opencode/cowork-flow/plugin-core.js +1077 -0
- package/presets/opencode/cowork-flow/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/opencode/plugins/cowork-flow.js +44 -0
- package/presets/plugin-meta.json +52 -0
- package/presets/qoder/.qoder-plugin/plugin.json +29 -0
- package/presets/qoder/agents/cowork-check.md +29 -0
- package/presets/qoder/agents/cowork-implement.md +30 -0
- package/presets/qoder/agents/cowork-research.md +23 -0
- package/presets/qoder/hooks/hooks.json +50 -0
- package/presets/qoder/hooks/inject-context.mjs +150 -0
- package/presets/qoder/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/{template/.zcode → presets/zcode}/.zcode-plugin/plugin.json +4 -2
- package/{template/.zcode → presets/zcode}/agents/cowork-check.md +4 -4
- package/{template/.zcode → presets/zcode}/agents/cowork-implement.md +4 -4
- package/{template/.zcode → presets/zcode}/agents/cowork-research.md +1 -1
- package/{template/.zcode → presets/zcode}/hooks/inject-context.js +36 -19
- package/presets/zcode/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/src/cli.js +130 -130
- package/src/commands/host.js +182 -0
- package/src/commands/init.js +28 -43
- package/src/commands/install-claude-code-plugin.js +129 -0
- package/src/commands/install-codex-plugin.js +312 -0
- package/src/commands/install-dsh-hook.js +36 -43
- package/src/commands/install-dsh-preset.js +228 -49
- package/src/commands/install-kimi-code-plugin.js +142 -0
- package/src/commands/install-kimi-hook.js +142 -122
- package/src/commands/install-opencode-plugin.js +158 -0
- package/src/commands/install-qoder-plugin.js +211 -0
- package/src/commands/install-zcode-plugin.js +131 -82
- package/src/commands/mcp-state.js +7 -6
- package/src/commands/registry.js +345 -0
- package/src/commands/source-refresh.js +10 -11
- package/src/commands/sync.js +10 -13
- package/src/commands/update.js +5 -10
- package/src/lib/cli-flags.js +102 -0
- package/src/lib/copy-template.js +89 -75
- package/src/lib/host-assets.js +192 -57
- package/src/lib/install-support.js +50 -0
- package/src/lib/platforms.js +0 -15
- package/src/lib/plugin-metadata.js +187 -0
- package/src/lib/plugin-payload.js +70 -0
- package/template/.cowork-flow/.version +1 -1
- package/template/.cowork-flow/adapters/claude-code/adapter.yaml +0 -1
- package/template/.cowork-flow/adapters/dsh/adapter.yaml +0 -1
- package/template/.cowork-flow/adapters/kimi-code/adapter.yaml +0 -1
- package/template/.cowork-flow/adapters/qoder/adapter.yaml +32 -0
- package/template/.cowork-flow/adapters/zcode/adapter.yaml +2 -2
- package/template/.cowork-flow/config.yaml +6 -4
- package/template/.cowork-flow/scripts/adapters/cli/batch_mode.py +10 -12
- package/template/.cowork-flow/scripts/adapters/cli/spec_check.py +67 -35
- package/template/.cowork-flow/scripts/adapters/cli/subagent.py +84 -38
- package/template/.cowork-flow/scripts/adapters/cli/task.py +42 -0
- package/template/.cowork-flow/scripts/adapters/cli/task_create_command.py +1 -9
- package/template/.cowork-flow/scripts/adapters/cli/task_lifecycle_commands.py +6 -0
- package/template/.cowork-flow/scripts/adapters/cli/task_navigation.py +13 -10
- package/template/.cowork-flow/scripts/adapters/cli/task_next_runner.py +2 -1
- package/template/.cowork-flow/scripts/adapters/git/git_context.py +14 -82
- package/template/.cowork-flow/scripts/adapters/host/claude_code_policy.py +2 -3
- package/template/.cowork-flow/scripts/adapters/host/codex_policy.py +2 -5
- package/template/.cowork-flow/scripts/adapters/host/host_manifest.py +122 -10
- package/template/.cowork-flow/scripts/adapters/host/inject.py +49 -19
- package/template/.cowork-flow/scripts/adapters/host/kimi_code_policy.py +1 -1
- package/template/.cowork-flow/scripts/adapters/host/policy_base.py +58 -0
- package/template/.cowork-flow/scripts/adapters/host/qoder_policy.py +66 -0
- package/template/.cowork-flow/scripts/adapters/host/workflow_state_hook.py +136 -132
- package/template/.cowork-flow/scripts/adapters/host/zcode_policy.py +23 -24
- package/template/.cowork-flow/scripts/adapters/mcp/state_server.py +41 -56
- package/template/.cowork-flow/scripts/adapters/review/test_intent.py +2 -2
- package/template/.cowork-flow/scripts/infra/config.py +26 -23
- package/template/.cowork-flow/scripts/infra/developer_profile.py +4 -41
- package/template/.cowork-flow/scripts/infra/files.py +3 -7
- package/template/.cowork-flow/scripts/infra/git_snapshot.py +8 -7
- package/template/.cowork-flow/scripts/infra/paths.py +9 -69
- package/template/.cowork-flow/scripts/infra/process.py +9 -0
- package/template/.cowork-flow/scripts/infra/skill_manifest.py +262 -169
- package/template/.cowork-flow/scripts/infra/storage/operation_log.py +2 -0
- package/template/.cowork-flow/scripts/infra/storage/state_store.py +0 -2
- package/template/.cowork-flow/scripts/infra/storage/unit_of_work.py +163 -18
- package/template/.cowork-flow/scripts/kernel/workflow_route.py +6 -16
- package/template/.cowork-flow/scripts/run.py +14 -4
- package/template/.cowork-flow/scripts/runtime/host_identity.py +33 -15
- package/template/.cowork-flow/scripts/runtime/session_state.py +83 -26
- package/template/.cowork-flow/scripts/services/context_discovery.py +15 -3
- package/template/.cowork-flow/scripts/services/context_paths.py +4 -4
- package/template/.cowork-flow/scripts/services/fact_view.py +13 -10
- package/template/.cowork-flow/scripts/services/lifecycle_checks.py +47 -13
- package/template/.cowork-flow/scripts/services/lifecycle_policy.py +5 -2
- package/template/.cowork-flow/scripts/services/readiness.py +8 -3
- package/template/.cowork-flow/scripts/services/spec_check.py +23 -33
- package/template/.cowork-flow/scripts/services/task_archive.py +76 -41
- package/template/.cowork-flow/scripts/services/task_creation.py +90 -34
- package/template/.cowork-flow/scripts/services/task_lifecycle.py +210 -50
- package/template/.cowork-flow/scripts/services/task_routing.py +0 -8
- package/template/.cowork-flow/scripts/services/task_tree.py +181 -29
- package/template/.cowork-flow/scripts/services/task_utils.py +3 -20
- package/template/.cowork-flow/scripts/services/workflow_runtime.py +39 -22
- package/template/.cowork-flow/spec/contracts/context-injection.md +27 -2
- package/template/.cowork-flow/spec/contracts/fact-layer-access.md +7 -4
- package/template/.cowork-flow/spec/contracts/index.md +4 -0
- package/template/.cowork-flow/spec/contracts/spec-checks.md +13 -2
- package/template/.cowork-flow/spec/runtime/host-assets.json +155 -18
- package/template/.cowork-flow/spec/runtime/index.md +1 -1
- package/template/.cowork-flow/spec/schemas/host-assets.schema.json +69 -7
- package/template/.dsh/README.md +27 -7
- package/template/.opencode/cowork-flow/plugin-core.js +1077 -0
- package/template/.opencode/plugins/cowork-flow.js +23 -800
- package/template/skills/python-runtime-design/SKILL.md +6 -0
- package/template/skills/runtime-health/scripts/doctor.py +725 -14
- /package/{template/.zcode → presets/zcode}/hooks/hooks.json +0 -0
package/README.md
CHANGED
|
@@ -1,425 +1,164 @@
|
|
|
1
1
|
# cowork-flow
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
给 AI 编码助手加一套项目内的协作流程。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
开工前先确认目标、计划和改动范围,完成前按项目自己的规则检查。任务状态保存在仓库里,换个会话也能接着做,不用靠聊天记录回忆进度。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
支持 Codex、Claude Code、OpenCode、ZCode、Qoder、Kimi Code 和 DeepSeek Harness。
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## 它解决什么
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
| 规范挂命令 | spec 首部 frontmatter 声明 `checks:` 命令,按编辑期/收口期执行;`run spec-check` 输出三态门禁(pass / violation / unchecked)。 |
|
|
16
|
-
| 运行健康 | `doctor` 诊断 runtime、host assets、Skill replica 和任务 hygiene,不推进生命周期。 |
|
|
17
|
-
| Host 分发 | Host Asset Manifest 驱动 Codex / OpenCode / Claude Code / ZCode / Kimi Code / DeepSeek Harness 资产和 obsolete 清理。 |
|
|
18
|
-
| 批处理与讨论 | Batch 发布 Host action;Party Mode 只输出 advisory final facts。 |
|
|
19
|
-
| 发布准备 | `release:check`、`CHANGELOG.md`、`pack:check` 固定发布前证据。 |
|
|
20
|
-
|
|
21
|
-
## 阅读导航
|
|
22
|
-
|
|
23
|
-
| 想做什么 | 建议先看 |
|
|
24
|
-
|---|---|
|
|
25
|
-
| 快速安装或同步 | [快速开始](#快速开始)、[CLI 命令](#cli-命令) |
|
|
26
|
-
| 理解任务如何流转 | [任务流程](#任务流程) |
|
|
27
|
-
| 处理故障或漂移 | [支持与故障诊断](#支持与故障诊断) |
|
|
28
|
-
| 做发布前检查 | [发布](#发布)、[`CHANGELOG.md`](CHANGELOG.md) |
|
|
29
|
-
| 了解项目演进与版本内容 | [`CHANGELOG.md`](CHANGELOG.md) |
|
|
30
|
-
| 接入到自己项目 | [接入原则](#接入原则) |
|
|
31
|
-
|
|
32
|
-
## 适用 / 不适用
|
|
33
|
-
|
|
34
|
-
| ✅ 适用 | ❌ 不适用 |
|
|
35
|
-
|---|---|
|
|
36
|
-
| 新项目需要 `AGENTS.md` + 任务流 + 规格文档 | 只需要 React / Spring Boot / Rust 脚手架 |
|
|
37
|
-
| 已有项目想补轻量协作流程 | 已有成熟任务/规格/协作系统 |
|
|
38
|
-
| 需要需求澄清 → 计划 → 实现 → 验证闭环 | 只想复制某一段提示词 |
|
|
39
|
-
|
|
40
|
-
## 快速开始
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
# 初始化到新项目
|
|
44
|
-
npx cowork-flow init ./my-project --platform codex --developer <your-name>
|
|
45
|
-
|
|
46
|
-
# 预览同步计划(不写文件)
|
|
47
|
-
cowork-flow sync ./my-project --dry-run
|
|
48
|
-
|
|
49
|
-
# 同步已初始化项目
|
|
50
|
-
cowork-flow sync ./my-project
|
|
51
|
-
|
|
52
|
-
# 维护者:预览本仓库 source checkout live runtime / Skill replica 刷新
|
|
53
|
-
npm run source:refresh:dry-run
|
|
54
|
-
|
|
55
|
-
# 维护者:刷新 ignored root .cowork-flow、.agents/skills、.claude/skills
|
|
56
|
-
npm run source:refresh
|
|
57
|
-
|
|
58
|
-
# 预览 CLI 更新(不安装)
|
|
59
|
-
cowork-flow update --dry-run
|
|
60
|
-
|
|
61
|
-
# 安装 ZCode 插件(可选)
|
|
62
|
-
cowork-flow install-zcode-plugin
|
|
63
|
-
|
|
64
|
-
# 安装 DSH 预设(可选,整套 agent)
|
|
65
|
-
cowork-flow install-dsh-preset
|
|
66
|
-
|
|
67
|
-
# 机器级安装实时 workflow-state 注入(推荐:不换预设,任意 DSH 会话生效)
|
|
68
|
-
cowork-flow install-dsh-hook
|
|
69
|
-
|
|
70
|
-
# MCP 客户端接入(可选):全局注册一次,任意项目查询任务事实;
|
|
71
|
-
# 项目级 opt-in(如 claude-code 的 .mcp.json)与注册健康检测见
|
|
72
|
-
# `run doctor`;各客户端配置样例见下方「MCP 客户端接入」一节
|
|
73
|
-
cowork-flow mcp-state
|
|
74
|
-
|
|
75
|
-
# 维护者发布前检查
|
|
76
|
-
npm run release:check
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
平台选项:`codex` / `opencode` / `claude-code` / `dsh` / `zcode` / `kimi-code` / `all`(逗号分隔)
|
|
80
|
-
|
|
81
|
-
## 仓库结构
|
|
82
|
-
|
|
83
|
-
```
|
|
84
|
-
template/
|
|
85
|
-
├── AGENTS.md # 协作入口(编码原则、流程约定)
|
|
86
|
-
├── CLAUDE.md # Claude Code 入口
|
|
87
|
-
├── skills/ # ⭐ 唯一源码,init 时按平台分发
|
|
88
|
-
├── .codex/ # Codex agents / hooks / config
|
|
89
|
-
├── .claude/ # Claude Code settings / agents / hooks
|
|
90
|
-
├── .opencode/ # OpenCode agents / commands / plugins
|
|
91
|
-
├── .dsh/ # DeepSeek Harness 标记(sync 检测 + 说明)
|
|
92
|
-
├── .zcode/ # ⭐ ZCode 插件(hooks + skills + agents + scaffold instructions)
|
|
93
|
-
├── .kimi-code/ # Kimi Code fixed agents(cowork-implement / check / research)
|
|
94
|
-
└── .cowork-flow/
|
|
95
|
-
├── config.yaml # 项目配置
|
|
96
|
-
├── scripts/ # Python 运行时
|
|
97
|
-
├── spec/ # 规范文档(contracts / schemas / guides)
|
|
98
|
-
├── plans/ # 实现计划
|
|
99
|
-
├── tasks/ # 任务目录
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## 架构与扩展点
|
|
103
|
-
|
|
104
|
-
- **服务层**:任务创建、生命周期、归档、上下文、任务树和 runtime context 编排位于 `scripts/services/`;命令层只负责参数和输出适配。
|
|
105
|
-
- **状态存储层**:`scripts/infra/storage/` 提供显式 UTF-8、修订检查、操作日志和可恢复 Unit of Work;任务与会话写入不再直接散落在命令函数中。
|
|
106
|
-
- **Host Asset Manifest**:`spec/runtime/host-assets.json` 是宿主资产、平台识别、同步策略和 obsolete 迁移清单的权威来源。新增平台或资产时更新 Manifest 与 schema,不在 CLI 中新增硬编码集合。
|
|
107
|
-
- **事务式 init/sync**:CLI 先构建不可变 Asset Plan,在同文件系统 staging 中校验 hash/权限,再按备份清单提交;失败时逆序回滚,`.cowork-flow/.version` 最后更新。
|
|
108
|
-
- **共享 Hook 核心**:Codex 与 Claude Code Hook 只做宿主输入适配,工作流状态解析由 `scripts/adapters/host/workflow_state_hook.py` 统一实现。
|
|
109
|
-
- **流程内核**:公开任务入口只有 `task next`;kernel 只解析状态事实和 action,Skill 所有权由 manifest loader 注入,硬门禁由 runtime gate 执行,不再分发独立流程中枢文件或 Skill 注册控制面。
|
|
110
|
-
- **Skill 自带脚本**:只服务单个 Skill 的控制器或辅助脚本放在 `template/skills/<skill-id>/scripts/`,由 `.cowork-flow/run` 薄分发;`scripts/` 内核只保留任务导航、生命周期、gate、host/runtime、存储和分发所需代码。
|
|
111
|
-
|
|
112
|
-
## Skills 分发机制
|
|
113
|
-
|
|
114
|
-
Skills 维护在 `template/skills/` 唯一源码,`init` / `sync` 时按目录分发到对应平台;`SKILL.md`、可选的 command `manifest.json` 和 `scripts/` 一起归属该 Skill:
|
|
115
|
-
|
|
116
|
-
| 平台 | 目标目录 |
|
|
117
|
-
|---|---|
|
|
118
|
-
| `codex` / `opencode` | `.agents/skills/` |
|
|
119
|
-
| `dsh` | `.agents/skills/` |
|
|
120
|
-
| `kimi-code` | `.agents/skills/` |
|
|
121
|
-
| `claude-code` | `.claude/skills/` |
|
|
122
|
-
| `zcode` | `.cowork-flow/skills/`(内核 owner 解析用;系统提示层仍由 ZCode 插件单源提供,不重复加载) |
|
|
123
|
-
|
|
124
|
-
分发动作:`adversarial-review`、`agent-dispatch`、`batch-execution`、`brainstorming`、`cowork-flow`、`cowork-flow-maintenance`、`decision-audit`、`failure-analysis`、`game-design`、`party-mode`、`python-runtime-design`、`runtime-health`、`spec-sync`、`task-planning`、`task-review`、`test-first`
|
|
125
|
-
|
|
126
|
-
## CLI 命令
|
|
127
|
-
|
|
128
|
-
| 命令 | 说明 |
|
|
129
|
-
|---|---|
|
|
130
|
-
| `init <path>` | 初始化项目模板 |
|
|
131
|
-
| `sync <path> [--dry-run]` | 同步已初始化项目的模板和技能 |
|
|
132
|
-
| `source-refresh [path] [--dry-run]` | 维护者刷新 source checkout 的 ignored live runtime 与 Host Skill replica |
|
|
133
|
-
| `install-zcode-plugin` | 安装 ZCode 插件到全局缓存 |
|
|
134
|
-
| `install-dsh-preset` | 安装 DSH agent 预设到 `~/.dsh/.agent-presets/cowork-flow/`(整套 agent,可选) |
|
|
135
|
-
| `install-dsh-hook` | 机器级注册 workflow-state hook 组合行到 `$DSH_HOME/cordis.patch.yml`(当前 DSH 的 agent 提示不收集 host 层 section,实时注入请用预设方式) |
|
|
136
|
-
| `install-kimi-hook [--dry-run] [--force] [--uninstall]` | 机器级注册 UserPromptSubmit hook 到 `$KIMI_CODE_HOME/config.toml`(默认 `~/.kimi-code/`),向每个 Kimi Code 会话实时注入工作流上下文 |
|
|
137
|
-
| `update [--dry-run]` | 升级 CLI 本身 |
|
|
138
|
-
| `mcp-state` | 全局 MCP 事实入口:从 cwd 向上定位项目运行时并透传 `run mcp-state`(全局注册一次,所有 cowork-flow 项目通用) |
|
|
139
|
-
|
|
140
|
-
### init 选项
|
|
141
|
-
|
|
142
|
-
| 选项 | 说明 |
|
|
143
|
-
|---|---|
|
|
144
|
-
| `--platform <p>` | 平台:`codex` / `opencode` / `claude-code` / `dsh` / `zcode` / `kimi-code` / `all` |
|
|
145
|
-
| `--developer <n>` | 开发者名称 |
|
|
146
|
-
| `--force` | 覆盖已有文件 |
|
|
147
|
-
| `--dry-run` | 预览不写入 |
|
|
148
|
-
|
|
149
|
-
### sync 行为
|
|
150
|
-
|
|
151
|
-
- **自动识别**已安装 host 目录,只同步对应平台资产
|
|
152
|
-
- **Skills** 从 `template/skills/` 按平台分发
|
|
153
|
-
- **保护文件**:`config.yaml`、`.developer`、`spec/`(例外:`spec/contracts/workflow-state-templates.md` 与 `spec/contracts/spec-checks.md` 两个契约文件)、任务、计划
|
|
154
|
-
- **正式版旧资产清理**:旧脚本位置、旧 adapter 资产和已废弃文件按 Host Asset Manifest 的 `obsoleteFiles` 清理;用户保护文件保持不变
|
|
155
|
-
- **事务恢复**:上次未完成事务会在新一轮 sync 前恢复;事务元数据缺失或损坏时 fail-closed,不在未知状态上继续写入
|
|
156
|
-
- **Dry-run readiness**:`sync --dry-run` 只构建计划并输出 `readiness=<json>`,不写文件或事务状态;字段包含 `wouldCopy`、`wouldSkipProtected`、`wouldRemoveObsolete`、`hostAssetRefresh`、`pendingRecovery`、`warnings`
|
|
157
|
-
- `--force` 整文件覆盖保护文件
|
|
158
|
-
|
|
159
|
-
### source-refresh 行为
|
|
160
|
-
|
|
161
|
-
- **用途**:仅面向 cowork-flow 源码 checkout 维护者;以 `template/.cowork-flow/` 和 `template/skills/` 为唯一 tracked 分发源,刷新 ignored 的根 `.cowork-flow/`、`.agents/skills/`、`.claude/skills/` 受管副本
|
|
162
|
-
- **保护边界**:不覆盖 `.cowork-flow/tasks/`、`.cowork-flow/plans/`、`.cowork-flow/.runtime/`、`.cowork-flow/.developer`、`.cowork-flow/config.yaml` 和自定义 Skill
|
|
163
|
-
- **事务语义**:复用 Asset Plan / plan applier,失败时回滚;`.cowork-flow/.version` 保持 version-last,并复制 template 版本文件的原始内容
|
|
164
|
-
- **常用命令**:`npm run source:refresh:dry-run` 只预览;`npm run source:refresh` 应用后再运行 `./.cowork-flow/run doctor --all --json`
|
|
165
|
-
|
|
166
|
-
### update 行为
|
|
167
|
-
|
|
168
|
-
- 默认查询 npm latest,发现新版本时执行 `npm install -g cowork-flow@latest`
|
|
169
|
-
- `--dry-run` 只输出当前版本、最新版本和 `readiness=<json>`,其中 `update.wouldInstall` 表示是否会执行全局安装,不调用安装命令
|
|
170
|
-
|
|
171
|
-
## MCP 客户端接入
|
|
172
|
-
|
|
173
|
-
事实层以只读 MCP 服务(工具 `task_state` / `task_list`)提供给任意客户端。两种入口:
|
|
11
|
+
- 把需求、决定、计划和允许修改的范围留在项目里。
|
|
12
|
+
- 让助手每次工作前先读取当前任务,不凭印象继续。
|
|
13
|
+
- 把实现和检查分开,发现问题后再回到实现阶段修正。
|
|
14
|
+
- 在已有项目里保护自定义配置、规格、任务和计划。
|
|
174
15
|
|
|
175
|
-
|
|
176
|
-
- **项目级**:`<project>/.cowork-flow/run mcp-state`(不依赖全局安装,每项目一份配置)。
|
|
16
|
+
cowork-flow 不绑定技术栈,也不会用脚手架改写现有项目。它只在项目中加入一层协作约定和配套文件。
|
|
177
17
|
|
|
178
|
-
|
|
18
|
+
## 适合哪些项目
|
|
179
19
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
args = ["mcp-state"]
|
|
185
|
-
```
|
|
20
|
+
- 经常让 AI 处理需要多轮确认的功能或修复。
|
|
21
|
+
- 希望每个任务都有明确的范围、完成条件和检查记录。
|
|
22
|
+
- 需要在多个会话、多个开发成员之间继续同一项工作。
|
|
23
|
+
- 已经使用 AI 编码宿主,但任务状态主要散落在聊天记录里。
|
|
186
24
|
|
|
187
|
-
|
|
188
|
-
// OpenCode(~/.config/opencode/opencode.json)
|
|
189
|
-
{"mcp": {"cowork-flow": {"type": "local", "command": ["cowork-flow", "mcp-state"], "enabled": true}}}
|
|
190
|
-
```
|
|
25
|
+
如果只是问问题、改一两行代码,或者已经有稳定的任务系统,可以先了解再决定是否接入。
|
|
191
26
|
|
|
192
|
-
|
|
193
|
-
- **ZCode**:客户端设置的 MCP 服务器中添加同构 stdio 条目(命令 `cowork-flow`、参数 `mcp-state`)。
|
|
27
|
+
## 开始使用
|
|
194
28
|
|
|
195
|
-
|
|
29
|
+
需要 Node.js 20 或更高版本。
|
|
196
30
|
|
|
197
|
-
|
|
31
|
+
### 1. 安装命令
|
|
198
32
|
|
|
199
33
|
```bash
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
cowork-flow install-zcode-plugin --force --prune-old # 覆盖并清理旧版本缓存
|
|
34
|
+
npm install -g cowork-flow
|
|
35
|
+
cwf --version
|
|
203
36
|
```
|
|
204
37
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
安装新版本时,marketplace 中只保留一个 `cowork-flow` entry 并指向最新版本目录;旧版本缓存默认保留,避免正在运行的 ZCode session 仍引用旧插件根目录。需要清理旧版本时显式传 `--prune-old`。
|
|
38
|
+
`cwf` 和 `cowork-flow` 是同一个命令。不想全局安装时,除 `cwf self update` 外,可以把下文的 `cwf` 换成 `npx cowork-flow`。
|
|
208
39
|
|
|
209
|
-
|
|
40
|
+
### 2. 初始化项目
|
|
210
41
|
|
|
211
|
-
|
|
212
|
-
- `workflow-state` — 当前任务状态
|
|
213
|
-
- `contract-digest` — 合同摘要:SessionStart 注入完整块,后续消息仅重复 SHA256 fingerprint
|
|
214
|
-
- `delegated_subtask` — 子代理运行时上下文
|
|
215
|
-
|
|
216
|
-
**插件子代理:**
|
|
217
|
-
- `cowork-implement` — 绑定 runtime context 后执行计划内实现
|
|
218
|
-
- `cowork-check` — 绑定 runtime context 后做独立检查
|
|
219
|
-
- `cowork-research` — 绑定 runtime context 后做只读调研
|
|
220
|
-
|
|
221
|
-
## DSH 接入
|
|
42
|
+
先预览将要写入的文件:
|
|
222
43
|
|
|
223
44
|
```bash
|
|
224
|
-
|
|
225
|
-
cowork-flow install-dsh-hook # 机器级:注册 hook 组合行(实时注入见下方说明)
|
|
45
|
+
cwf project init . --platform codex --developer alice --dry-run
|
|
226
46
|
```
|
|
227
47
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
在未安装 cowork-flow 的项目里 hook 完全无感:JS 侧根目录预检直接短路——不注入内容、不启动 Python 进程。全局开关(环境变量):`COWORK_FLOW_HOOKS=0` / `COWORK_FLOW_DISABLE_HOOKS=1`。卸载:`cowork-flow install-dsh-hook --uninstall`(`--force` 同时删除插件文件)。
|
|
231
|
-
|
|
232
|
-
> 安装或更新后需要**重启 DSH**(`cordis.patch.yml` 在启动时组合,新增/变更不会被热加载)。
|
|
233
|
-
|
|
234
|
-
> 使用预设(`install-dsh-preset`)时无需再运行 `install-dsh-hook`——预设已内置同一 hook。
|
|
235
|
-
|
|
236
|
-
## DSH 预设
|
|
48
|
+
确认无误后去掉 `--dry-run`:
|
|
237
49
|
|
|
238
50
|
```bash
|
|
239
|
-
|
|
240
|
-
cowork-flow install-dsh-preset --force # 覆盖已安装
|
|
241
|
-
cowork-flow install-dsh-preset --dry-run # 预览不写入
|
|
51
|
+
cwf project init . --platform codex --developer alice
|
|
242
52
|
```
|
|
243
53
|
|
|
244
|
-
|
|
54
|
+
把 `codex` 换成你正在使用的宿主:
|
|
245
55
|
|
|
246
|
-
|
|
56
|
+
`codex`、`claude-code`、`opencode`、`zcode`、`qoder`、`kimi-code`、`dsh`。
|
|
247
57
|
|
|
248
|
-
|
|
58
|
+
新项目可以把 `.` 换成 `./my-project`,然后进入该目录。只有确实会在多个宿主中使用时,才需要 `--platform all`。
|
|
249
59
|
|
|
250
|
-
|
|
60
|
+
初始化会加入 `AGENTS.md`、`.cowork-flow/` 和对应的宿主文件,不会修改业务代码。`--developer` 可以省略;已有项目建议始终先跑 `--dry-run`。
|
|
251
61
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
cowork-flow install-kimi-hook # 安装(无条件覆盖);--force 与不带旗标同义
|
|
256
|
-
cowork-flow install-kimi-hook --dry-run # 预览将写入的托管块,不写文件
|
|
257
|
-
cowork-flow install-kimi-hook --uninstall # 卸载托管块、shim 与版本标记
|
|
258
|
-
```
|
|
62
|
+
### 3. 完成宿主设置
|
|
259
63
|
|
|
260
|
-
|
|
64
|
+
Codex、Claude Code 和 OpenCode 在当前项目中已经能使用 `project init` 交付的内容。需要全局引导入口时,再执行表中的可选命令。
|
|
261
65
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
brainstorming → read spec/guides → plan → tasks → implement → check → complete
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
`./.cowork-flow/run task next` 是唯一公开任务流程入口。它读取当前状态,输出下一步 action、激活 Skill、runtime gate、blocker,以及可执行时的 `task next --run` 命令。
|
|
66
|
+
| 宿主 | 建议命令 | 说明 |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| Codex | `cwf host add codex` | 可选,用于全局引导入口 |
|
|
69
|
+
| Claude Code | `cwf host add claude-code` | 可选,用于全局引导入口 |
|
|
70
|
+
| OpenCode | `cwf host add opencode` | 可选,用于全局引导入口 |
|
|
71
|
+
| ZCode | `cwf host add zcode` | 初始化后执行,并新开会话 |
|
|
72
|
+
| Qoder | `cwf host add qoder` | 初始化后执行;信任工作区并重启 Qoder |
|
|
73
|
+
| DeepSeek Harness | `cwf host add dsh` | 初始化后执行;新会话中选择 Cowork Flow 预设 |
|
|
74
|
+
| Kimi Code | `cwf host add kimi-code --component hook` | 初始化后执行;完成后重载配置或新开会话 |
|
|
275
75
|
|
|
276
|
-
|
|
76
|
+
不同宿主的安装位置、重启要求和特殊情况见 [宿主接入](docs/hosts.md)。
|
|
277
77
|
|
|
278
|
-
|
|
279
|
-
flowchart TD
|
|
280
|
-
A["无活动任务\nstatus: no_task"] -->|"create_task\ntask next --run --title ..."| B["规划中\nstatus: planning"]
|
|
281
|
-
B -->|"补齐 decision-anchor.md\n和 implement.jsonl"| B
|
|
282
|
-
B -->|"start_task\ntask next <dir> --run"| C["实现中\nstatus: in_progress"]
|
|
283
|
-
C -->|"request_review\ntask next <dir> --run --intent review"| D["检查/Review\nstatus: review"]
|
|
284
|
-
D -->|"apply_review_fix"| C
|
|
285
|
-
D -->|"complete_task\ntask next <dir> --run --intent review"| E["已完成\nstatus: completed"]
|
|
286
|
-
E -->|"archive_task\ntask next <dir> --run --intent archive"| F["已归档\narchive/YYYY-MM/"]
|
|
78
|
+
### 4. 在宿主里开始
|
|
287
79
|
|
|
288
|
-
|
|
289
|
-
C -.-> H["runtime-health\n诊断/命令提示\n不推进生命周期"]
|
|
290
|
-
C -.-> I["Party Mode\nadvisory final facts\n不替代 implement/check"]
|
|
291
|
-
```
|
|
80
|
+
回到 AI 编码宿主,打开项目根目录并新开会话。直接描述需求即可,例如:
|
|
292
81
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
| action | 入口 | status 结果 |
|
|
296
|
-
|---|---|---|
|
|
297
|
-
| `create_task` | `task next --run --title "<title>" --slug <name> --assignee <name>` | `planning` |
|
|
298
|
-
| `start_task` | `task next <dir> --run` | `in_progress` |
|
|
299
|
-
| `request_review` | `task next <dir> --run --intent review` | `review` |
|
|
300
|
-
| `complete_task` | `task next <dir> --run --intent review` | `completed` |
|
|
301
|
-
| `archive_task` | `task next <dir> --run --intent archive` | 归档副本保持 `completed` |
|
|
302
|
-
|
|
303
|
-
Batch 使用任务图和持久化 Host action:运行 `task next <parent-task> --run --intent batch --auto --approved` 获取 `next_action`;Host 完成真实生命周期动作后继续通过 `task next` 导航,不暴露独立 batch 子命令。
|
|
304
|
-
|
|
305
|
-
## 规范挂命令(spec-check)
|
|
306
|
-
|
|
307
|
-
`.cowork-flow/spec/` 下的规范可在文件首部 frontmatter 声明检查命令;机制只执行声明、不解析规范正文——规则随规范同文件更新,天然同步。
|
|
308
|
-
|
|
309
|
-
```markdown
|
|
310
|
-
---
|
|
311
|
-
checks:
|
|
312
|
-
- cmd: npm run lint --silent
|
|
313
|
-
files: "src/" # 可选:目录前缀或扩展名("*.ts"),逗号分隔
|
|
314
|
-
timeout: 60 # 可选:秒,默认 30,硬顶 120
|
|
315
|
-
when: both # 可选:edit | lifecycle | both(默认 both)
|
|
316
|
-
---
|
|
82
|
+
```text
|
|
83
|
+
请用 cowork-flow 完成“订单列表按状态筛选”。先把需求、计划和改动范围说清楚,确认后再改代码。
|
|
317
84
|
```
|
|
318
85
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
- **三态语义**:`pass`(退出码 0);`violation` 阻断 `task complete`;`unchecked`(命令缺失、解释器缺失、超时)同样阻断,需显式 `--allow-unchecked` 放行,豁免留痕进 `task.json`。unchecked 永不冒充 pass。
|
|
322
|
-
- **两个相位**:`when: edit` 在编辑期就地执行(超时钳制 2.5 秒,违规输出单行提示;具备编辑期 hook 的宿主均已覆盖,其中 zcode 仅主会话),是 best-effort 提示不是门禁;收口期全量执行,未过项阻断状态推进。
|
|
323
|
-
- **扫描范围**:`.cowork-flow/spec/` 下的 markdown;`contracts/`、`runtime/`、`schemas/` 三个机器自有子树不参与。
|
|
324
|
-
- **模板不带生效声明**:模板无法预知项目命令,而命令缺失会归 `unchecked` 并阻断收口;请把声明写进自建 spec 文件(如 `spec/team-xxx.md`)。
|
|
325
|
-
|
|
326
|
-
`task start` 后,绑定 spec 的章节索引(h2 标题树)随 stage-contract 注入,规范条目名常驻注意力。完整契约见 `.cowork-flow/spec/contracts/spec-checks.md`。
|
|
327
|
-
|
|
328
|
-
## 常用命令
|
|
86
|
+
需要手动查看当前进度时,在项目根目录运行:
|
|
329
87
|
|
|
330
88
|
```bash
|
|
331
|
-
# 身份
|
|
332
|
-
./.cowork-flow/run get-developer
|
|
333
|
-
./.cowork-flow/run init-developer <name>
|
|
334
|
-
|
|
335
|
-
# 上下文
|
|
336
|
-
./.cowork-flow/run get-context
|
|
337
89
|
./.cowork-flow/run task next
|
|
338
|
-
./.cowork-flow/run task next --json
|
|
339
|
-
./.cowork-flow/run task next --list
|
|
340
|
-
./.cowork-flow/run task next <dir> --validate
|
|
341
|
-
|
|
342
|
-
# 任务
|
|
343
|
-
./.cowork-flow/run task next --run --title "<title>" --slug <name> --assignee <name>
|
|
344
|
-
./.cowork-flow/run task next <dir> --run
|
|
345
|
-
./.cowork-flow/run task next <dir> --run --intent review
|
|
346
|
-
./.cowork-flow/run task next <dir> --run --intent archive
|
|
347
|
-
|
|
348
|
-
# 规范检查
|
|
349
|
-
./.cowork-flow/run spec-check
|
|
350
|
-
./.cowork-flow/run spec-check --phase lifecycle --json
|
|
351
|
-
|
|
352
|
-
# 子代理
|
|
353
|
-
./.cowork-flow/run subagent init --role implement --agent-type cowork-implement --execution-task-dir <dir> --title "<title>"
|
|
354
|
-
./.cowork-flow/run subagent bind <runtime_context_id> <host_context_key>
|
|
355
|
-
|
|
356
90
|
```
|
|
357
91
|
|
|
358
|
-
##
|
|
359
|
-
|
|
360
|
-
按症状先定位到现有入口,再根据输出中的 action 或 blocker 处理;不要把 README 当作流程权威,实际可执行下一步始终以 `./.cowork-flow/run task next --json` 为准。
|
|
361
|
-
|
|
362
|
-
| 症状 | 首选命令 | 处理路径 |
|
|
363
|
-
|---|---|---|
|
|
364
|
-
| 不知道下一步或当前状态不清楚 | `./.cowork-flow/run task next --json` | 读取 `status`、`nextAction`、`blockers`、`action.command`;只有 `action.runnable=true` 时才执行对应 `task next --run`。 |
|
|
365
|
-
| 任务上下文缺失或计划文件不完整 | `./.cowork-flow/run task next <dir> --validate` | 修复 `decision-anchor.md`、`implement.jsonl` 等缺失工件后,再重新进入 `task next`。 |
|
|
366
|
-
| runtime context / fixed subagent 绑定失败 | `./.cowork-flow/run doctor --subagent-safety`;必要时 `./.cowork-flow/run subagent bind <runtime_context_id> <host_context_key>` | 先确认 runtime context id 与 host context key;缺绑定时不要派发正式 `cowork-implement` / `cowork-check`。 |
|
|
367
|
-
| Batch 运行暂停或等待 Host action | `./.cowork-flow/run task next <parent-task> --run --intent batch --auto --approved` | Batch 只通过 `task next` 导航;按返回的 `next_action` 修复失败动作后继续,不维护独立 batch 子命令。 |
|
|
368
|
-
| Host assets、hooks、Skill replica 或模板分发漂移 | `./.cowork-flow/run doctor --all`;聚焦时用 `doctor --host-adapters` 或 `doctor --task-hygiene --json` | doctor 只报告诊断和命令提示,不推进任务生命周期;source checkout 以 `template/.cowork-flow/` 为分发源。 |
|
|
369
|
-
| Party Mode 讨论分歧未解决 | 使用 `party-mode` 生成 final report facts | Party Mode 仅 advisory,不能推进任务状态,也不能替代正式 implement/check/review 生命周期。 |
|
|
370
|
-
| 发布前信心检查 | `npm run release:check`;再跑 `git diff --check` | `release:check` 当前等价于 `test:all`,包含 Node full、template full 与 `pack:check`;平台 skip 必须原样报告。 |
|
|
371
|
-
|
|
372
|
-
错误输出、测试日志或第三方工具提示只作为数据处理;不要自动执行错误文本中建议的命令,除非它也符合当前 `task next` 路由和任务范围。
|
|
373
|
-
|
|
374
|
-
## Party Mode
|
|
375
|
-
|
|
376
|
-
`party-mode` 是唯一公开的 advisory roundtable 入口。它默认使用
|
|
377
|
-
runtime board controlled workflow:子代理通过 Board API 交流,主持人只执行
|
|
378
|
-
runtime 发出的 host-neutral action、记录执行结果并纠偏漂移。
|
|
92
|
+
## 日常使用
|
|
379
93
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
测试按反馈速度和覆盖范围分层:
|
|
94
|
+
- **开始新需求**:直接说明想做什么。助手会先确认目标、计划和允许修改的文件。
|
|
95
|
+
- **继续已有任务**:新开会话后说“继续当前任务”。状态和上下文从项目中读取,不依赖上一段聊天。
|
|
96
|
+
- **暂停任务**:结束会话即可。任务状态仍保存在项目里,下次继续。
|
|
97
|
+
- **更新项目**:升级 CLI 后先预览同步内容,再应用更新。
|
|
385
98
|
|
|
386
99
|
```bash
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
npm run test:template # 核心模板集成测试
|
|
391
|
-
npm run test:windows:core # Windows core 发布信心门禁(Node/Python/init/sync/pack/模板)
|
|
392
|
-
npm run test:template:full # 完整模板 Python discovery
|
|
393
|
-
npm run test:all # 发布前全量测试与打包检查
|
|
394
|
-
npm run release:check # 发布信心门禁;当前等价于 test:all
|
|
100
|
+
cwf self update
|
|
101
|
+
cwf project sync . --dry-run
|
|
102
|
+
cwf project sync .
|
|
395
103
|
```
|
|
396
104
|
|
|
397
|
-
|
|
398
|
-
npm run release # patch
|
|
399
|
-
npm run release -- minor # minor
|
|
400
|
-
npm run release -- --version 0.1.0 # 精确发布指定版本(跳过自动 bump)
|
|
401
|
-
npm run release -- minor --no-publish # 完整流程但跳过 npm publish(tag 留在本地)
|
|
402
|
-
```
|
|
105
|
+
`project sync` 只更新 cowork-flow 管理的文件。已有配置、`spec/`、任务和计划默认保留;**正式版旧资产清理** 会按发布清单删除已废弃的 cowork-flow 文件,不触碰其它内容。机器级宿主组件的升级方式见 [宿主接入](docs/hosts.md)。
|
|
403
106
|
|
|
404
|
-
|
|
405
|
-
1. `npm run release:check`、`git diff --check`
|
|
406
|
-
2. 稳定性变更使用 `COWORK_TEMPLATE_TEST_REPEAT=3` 和固定 `COWORK_TEMPLATE_TEST_SEED` 重复运行 `npm run test:template:full`
|
|
407
|
-
3. `npm version` 升级版本
|
|
408
|
-
4. 同步版本到 `template/.cowork-flow/.version` 和 `template/.zcode/.zcode-plugin/plugin.json`
|
|
409
|
-
5. `git commit` + `git tag`
|
|
410
|
-
6. `npm publish`——走 CI 发布通道时改用 `--no-publish` 在此止步,交由下一步触发
|
|
107
|
+
## 遇到问题
|
|
411
108
|
|
|
412
|
-
|
|
109
|
+
| 情况 | 先做什么 |
|
|
110
|
+
|---|---|
|
|
111
|
+
| 不知道当前该做什么 | 运行 `./.cowork-flow/run task next` |
|
|
112
|
+
| 担心初始化或同步会改错文件 | 给命令加上 `--dry-run` |
|
|
113
|
+
| 确认项目选择了哪些宿主 | 运行 `cwf host list .` |
|
|
114
|
+
| 技能、插件、hook 或项目文件状态异常 | 运行 `./.cowork-flow/run doctor --all` |
|
|
115
|
+
| 不确定命令或参数怎么写 | 运行 `cwf --help` 或 `cwf <group> <command> --help` |
|
|
413
116
|
|
|
414
|
-
|
|
117
|
+
宿主相关问题优先查 [宿主接入](docs/hosts.md)。需要了解工作原理时再看 [工作原理与扩展点](docs/architecture.md)。
|
|
415
118
|
|
|
416
|
-
|
|
119
|
+
<details>
|
|
120
|
+
<summary>命令速查</summary>
|
|
417
121
|
|
|
418
|
-
|
|
122
|
+
| 命令 | 用途 |
|
|
123
|
+
|---|---|
|
|
124
|
+
| `cwf project init [target] --platform <host> [--developer <name>] [--dry-run] [--force]` | 初始化项目 |
|
|
125
|
+
| `cwf project sync [target] [--dry-run] [--force]` | 更新项目内由 cowork-flow 管理的文件 |
|
|
126
|
+
| `cwf host add <host> [--component <name>] [--dry-run] [--force]` | 安装机器级宿主组件 |
|
|
127
|
+
| `cwf host remove <host> [--component <name>] [--dry-run] [--force]` | 卸载机器级宿主组件 |
|
|
128
|
+
| `cwf host list [target] [--json]` | 查看支持的宿主和项目选择情况 |
|
|
129
|
+
| `cwf self update [--dry-run]` | 更新全局安装的 CLI |
|
|
130
|
+
| `cwf dev refresh [target] [--dry-run]` | 维护 cowork-flow 仓库时刷新自实例 |
|
|
131
|
+
| `cwf mcp serve [args...]` | 向 MCP 客户端提供任务事实 |
|
|
132
|
+
|
|
133
|
+
旧命令仍可使用;新脚本请使用右侧的新名称。
|
|
134
|
+
|
|
135
|
+
| 旧名 | 新名 |
|
|
136
|
+
|---|---|
|
|
137
|
+
| `init` | `cwf project init` |
|
|
138
|
+
| `sync` | `cwf project sync` |
|
|
139
|
+
| `mcp-state` | `cwf mcp serve` |
|
|
140
|
+
| `update` | `cwf self update` |
|
|
141
|
+
| `source-refresh` | `cwf dev refresh` |
|
|
142
|
+
| `install-zcode-plugin` | `cwf host add zcode` |
|
|
143
|
+
| `install-qoder-plugin` | `cwf host add qoder` |
|
|
144
|
+
| `install-codex-plugin` | `cwf host add codex` |
|
|
145
|
+
| `install-dsh-preset` | `cwf host add dsh --component preset` |
|
|
146
|
+
| `install-dsh-hook` | `cwf host add dsh --component hook` |
|
|
147
|
+
| `install-kimi-hook` | `cwf host add kimi-code --component hook` |
|
|
148
|
+
|
|
149
|
+
</details>
|
|
150
|
+
|
|
151
|
+
## 文档
|
|
152
|
+
|
|
153
|
+
| 文档 | 内容 |
|
|
154
|
+
|---|---|
|
|
155
|
+
| [文档索引](docs/index.md) | 全部文档入口 |
|
|
156
|
+
| [工作原理与扩展点](docs/architecture.md) | 项目文件如何组织、规范检查如何工作 |
|
|
157
|
+
| [宿主接入](docs/hosts.md) | 各宿主的安装、重启、排障和卸载方式 |
|
|
158
|
+
| [开发与发布](docs/release.md) | 测试、CI 和维护者命令 |
|
|
159
|
+
| [贡献指南](CONTRIBUTING.md) | 本地开发、提交和 PR 检查 |
|
|
160
|
+
| [更新日志](CHANGELOG.md) | 版本变化 |
|
|
419
161
|
|
|
420
|
-
##
|
|
162
|
+
## 许可
|
|
421
163
|
|
|
422
|
-
|
|
423
|
-
- 保留有价值的流程骨架,删除不存在的场景
|
|
424
|
-
- 项目差异写入 `AGENTS.md`、`config.yaml`、`spec/` 或项目自有 Skill;不要恢复第二套流程中枢文档
|
|
425
|
-
- 不为了替换项目命令而改写通用 skill
|
|
164
|
+
[MIT](LICENSE)
|