draftgo-cli 3.0.29 → 3.0.33
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 +21 -0
- package/README.md +38 -139
- package/package.json +10 -2
- package/resources/skill/SKILL.md +61 -184
- package/resources/skill/init/SKILL.md +18 -66
- package/resources/skill/manifest.json +27 -0
- package/resources/skill/pull/SKILL.md +18 -52
- package/resources/skill/push/SKILL.md +30 -282
- package/resources/skill/references/aihub.md +86 -0
- package/resources/skill/{quickref → references}/api-endpoints.md +39 -13
- package/resources/skill/references/api.json +20248 -0
- package/resources/skill/{quickref → references}/app-api.md +40 -0
- package/resources/skill/{core → references}/architecture.md +2 -2
- package/resources/skill/references/chat-sdk.md +201 -0
- package/resources/skill/references/custom-services.md +308 -0
- package/resources/skill/{specs → references}/data.md +5 -5
- package/resources/skill/{rules → references}/frontend.md +41 -11
- package/resources/skill/{core → references}/modules.md +7 -5
- package/resources/skill/references/parallel.md +48 -0
- package/resources/skill/{specs → references}/runtime.md +1 -1
- package/resources/skill/scripts/draftgo_push.py +80 -12
- package/resources/skill/story/SKILL.md +11 -16
- package/src/cli.js +13 -7
- package/src/commandRegistry.js +34 -0
- package/src/commands/api.js +153 -8
- package/src/commands/help.js +24 -29
- package/src/commands/init.js +17 -18
- package/src/commands/local.js +9 -3
- package/src/commands/sync.js +1 -1
- package/src/commands/update.js +40 -12
- package/src/index.js +13 -57
- package/src/localdev/compose.js +44 -200
- package/src/localdev/index.js +116 -216
- package/src/localdev/mysqlClient.js +12 -9
- package/src/localdev/services.js +163 -0
- package/src/projectConfig.js +1 -1
- package/src/projectMap.js +17 -80
- package/src/skill.js +1 -1
- package/src/updateCheck.js +2 -12
- package/resources/skill/practices/anti-patterns.md +0 -80
- package/resources/skill/practices/best-practices.md +0 -60
- package/resources/skill/practices/dev-declaration.md +0 -114
- package/resources/skill/quickref/api.json +0 -17784
- package/resources/skill/rules/dev-workflow.md +0 -749
- package/resources/skill/rules/parallel.md +0 -263
- package/resources/skill/scripts/__pycache__/draftgo_pull.cpython-312.pyc +0 -0
- package/resources/skill/scripts/__pycache__/draftgo_push.cpython-312.pyc +0 -0
- package/resources/skill/specs/custom-services.md +0 -199
- package/src/commands/doctor.js +0 -54
- package/src/commands/new.js +0 -186
- package/src/commands/projectScript.js +0 -37
- package/src/commands/upgrade.js +0 -52
- /package/resources/skill/{specs → references}/db-relations.md +0 -0
- /package/resources/skill/{rules → references}/debugging-syntax.md +0 -0
- /package/resources/skill/{specs → references}/security.md +0 -0
- /package/resources/skill/{specs → references}/ui-protocol.md +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DraftGo 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
|
@@ -15,19 +15,18 @@ DraftGo Next 前端基线为 React + Vite。draftgo-cli v3 的定位是 DraftGo
|
|
|
15
15
|
|
|
16
16
|
数据库页面以 HTML 为核心,默认使用 Tailwind CSS 和页面级 CSS。
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
核心命令为 `draftgo init/update/status/map/check/connect/local setup`;工作台命令如下:
|
|
19
19
|
|
|
20
20
|
| 命令 | 说明 |
|
|
21
21
|
|---|---|
|
|
22
|
-
| `draftgo local
|
|
23
|
-
| `draftgo local
|
|
22
|
+
| `draftgo local setup` | 生成 `.draftgo/docker/docker-compose.yaml`,初始化并启动本地 DraftGo 栈。`draftgo local-dev` 保留为兼容入口。 |
|
|
23
|
+
| `draftgo local start` | 启动本地栈。`up` 是兼容别名。 |
|
|
24
|
+
| `draftgo local stop` | 停止本地栈。`down` 是兼容别名。 |
|
|
24
25
|
| `draftgo local logs` | 查看本地栈日志,默认跟随 `app` 服务。 |
|
|
25
26
|
| `draftgo local status` | 查看本地栈容器状态。 |
|
|
26
|
-
| `draftgo
|
|
27
|
-
| `draftgo build` | 运行当前项目 `package.json` 中的 `scripts.build`。 |
|
|
28
|
-
| `draftgo check` | 本地资源闭环检查,辅助发现入口绑定、缺文件、重复路由、疑似 mock 与颜色/主题风险。 |
|
|
27
|
+
| `draftgo check` | 本地资源检查:发现页面未绑定入口、页面/导航 HTML 解析问题、未登记到 `index.json` 的本地资源文件;不启动或构建底座。 |
|
|
29
28
|
| `draftgo verify-ui <url>` | 使用 Playwright 执行单视口 UI smoke check;默认按 Git 变更判断,失败时才截图。 |
|
|
30
|
-
| `draftgo api <keyword>` |
|
|
29
|
+
| `draftgo api <keyword>` | 检索 DraftGo 底座内置 OpenAPI,并展示请求字段、响应结构与鉴权信息。自定义服务端点由 `app.Route` 动态注册,不在此索引中。 |
|
|
31
30
|
| `draftgo pull` | 包装随 skill 分发的 `draftgo_pull.py`,默认 `--all` 拉取资源。 |
|
|
32
31
|
| `draftgo push` | 包装随 skill 分发的 `draftgo_push.py`,推送页面、导航、DB meta 等资源。 |
|
|
33
32
|
| `draftgo deploy` | 显式执行 check → push;支持 `--delivery local|preview|deploy`。 |
|
|
@@ -58,15 +57,13 @@ draftgo init all # 所有支持的工具
|
|
|
58
57
|
| 命令 | 说明 |
|
|
59
58
|
|---|---|
|
|
60
59
|
| `draftgo init [target]...` | 安装 skill。不传 target 时自动识别;`all` 表示全部。 |
|
|
61
|
-
| `draftgo update [target]...` |
|
|
62
|
-
| `draftgo upgrade` | 显式执行全局 CLI 升级,然后使用新版刷新 skill。 |
|
|
60
|
+
| `draftgo update [target]...` | 完整更新:先更新全局 CLI,再用新版原子刷新已安装或检测到的 AI 工具 skill。离线时仍会用当前 CLI 刷新 skill。 |
|
|
63
61
|
| `draftgo uninstall [target]...` | 移除指定 AI 工具的 skill 目录(含入口文件 + 子技能 + scripts)。加 `--purge` 会连 `.draftgo/` 一起删。 |
|
|
64
62
|
| `draftgo status` | 查看当前项目装了哪些 AI 工具入口、skill 版本。 |
|
|
65
|
-
| `draftgo doctor` | 诊断:Python 是否可用、检测到哪些 AI 工具、各入口状态。 |
|
|
66
63
|
| `draftgo map` | 输出本地 DraftGo 资源地图:页面、导航、DB、脚本、AIHub、文档、系统配置、入口引用,帮助 AI 快速进入项目。 |
|
|
67
|
-
| `draftgo check` |
|
|
64
|
+
| `draftgo check` | 本地资源检查:页面未绑定入口、页面/导航 HTML 解析问题、未登记到 `index.json` 的本地资源文件。 |
|
|
68
65
|
| `draftgo verify-ui <url>` | 浏览器 smoke check;支持 `--mobile-check auto|always|never` 和失败截图。 |
|
|
69
|
-
| `draftgo api <keyword>` |
|
|
66
|
+
| `draftgo api <keyword>` | 查询 DraftGo 底座内置 OpenAPI 端点,输出请求字段、响应结构与鉴权信息;自定义服务端点需从 `app.Route` 推导。 |
|
|
70
67
|
| `draftgo deploy [type] [id...]` | 显式交付;`local` 只检查,`preview` dry-run,`deploy` 推送。 |
|
|
71
68
|
| `draftgo list-targets` | 列出支持的 AI 工具名。 |
|
|
72
69
|
| `draftgo --version` | 打印 CLI 版本。 |
|
|
@@ -76,7 +73,7 @@ draftgo init all # 所有支持的工具
|
|
|
76
73
|
|
|
77
74
|
- `--project <dir>`:对指定目录操作(默认当前工作目录)。
|
|
78
75
|
- `--force`:`init/update` 时强制覆盖已存在的 AI 工具 skill 目录。
|
|
79
|
-
- `--skip-update-check`:`update` 时不去 npm 查最新版,直接用当前 CLI
|
|
76
|
+
- `--skip-update-check`:`update` 时不去 npm 查最新版,直接用当前 CLI 刷新 skill。
|
|
80
77
|
- `--purge`:`uninstall` 时连 `.draftgo/`(含 config / 日志 / 本地缓存)一起删。
|
|
81
78
|
- `--output json`:`map/check` 输出机器可读 JSON。
|
|
82
79
|
- `--strict`:`check` 将提醒项也视为失败。
|
|
@@ -96,7 +93,7 @@ draftgo init all # 所有支持的工具
|
|
|
96
93
|
|
|
97
94
|
文档会摘要 `slug/category/content_file/status`,系统配置只展示 `config_key/category/value_type/is_sensitive/status`,避免把敏感值直接暴露给 Agent 输出。
|
|
98
95
|
|
|
99
|
-
`draftgo check --output json` 会输出 `{ map, errors, warnings, warningDetails }`,其中 `warningDetails`
|
|
96
|
+
`draftgo check --output json` 会输出 `{ map, errors, warnings, warningDetails }`,其中 `warningDetails` 带规则编号与置信度。当前只检查页面入口绑定、页面/导航 HTML 解析,以及未登记到 `index.json` 的本地资源文件;`--strict` 会把 warnings 也视为失败。
|
|
100
97
|
|
|
101
98
|
## 更新
|
|
102
99
|
|
|
@@ -105,21 +102,18 @@ cd <your-project>
|
|
|
105
102
|
draftgo update
|
|
106
103
|
```
|
|
107
104
|
|
|
108
|
-
`update`
|
|
105
|
+
`update` 是唯一的完整更新命令:
|
|
109
106
|
|
|
110
107
|
- 如果 CLI 已是最新 → 原子替换每个目标的 skill 资源
|
|
111
|
-
- 如果
|
|
112
|
-
|
|
113
|
-
需要升级 CLI 时显式运行:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
draftgo upgrade
|
|
117
|
-
```
|
|
108
|
+
- 如果 npm 有新版 → 先全局更新 CLI,再由新版刷新 skill
|
|
109
|
+
- 如果 npm 暂不可达 → 保留当前 CLI,并刷新 skill
|
|
118
110
|
|
|
119
111
|
整个过程中,你本地的 `.draftgo/config.json`、`changelog.md`、`lessons/`、`Task/` 等运行时数据都不会被动到。
|
|
120
112
|
|
|
121
113
|
## 内置 Skill 文档约定
|
|
122
114
|
|
|
115
|
+
内置 Skill 同时提供 `resources/skill/manifest.json`:这是 DraftGo 的机器可读元数据(版本、入口、能力和声明权限),为自研宿主或未来平台适配提供统一入口;各 AI 工具仍使用各自的安装入口文件。
|
|
116
|
+
|
|
123
117
|
CLI 随包分发的 DraftGo skill 会同步基座 API 约定。集合写入统一为:
|
|
124
118
|
|
|
125
119
|
- 创建:`POST /api/<resource>` 支持单个对象或对象数组。
|
|
@@ -134,7 +128,7 @@ CLI 随包分发的 DraftGo skill 会同步基座 API 约定。集合写入统
|
|
|
134
128
|
- 页面或导航栏需要单色图标时,优先用 CSS mask + `currentColor`,可自动适配深浅主题。
|
|
135
129
|
- html2canvas 1.4.1 已内置,页面需要截图 / 导出图片时优先使用本地路径 `/assets/vendor/html2canvas/html2canvas.min.js`;确需 CDN 时优先使用国内镜像引入。
|
|
136
130
|
|
|
137
|
-
Go 自定义服务通过 `
|
|
131
|
+
Go 自定义服务通过 `draftgo.DB.CreateMany(...)` 与 `draftgo.DB.UpdateMany(...)` 批量写入动态数据。
|
|
138
132
|
|
|
139
133
|
自定义服务(Custom Scripts)约定:
|
|
140
134
|
|
|
@@ -142,18 +136,20 @@ Go 自定义服务通过 `ctx.DB.CreateMany(...)` 与 `ctx.DB.UpdateMany(...)`
|
|
|
142
136
|
- 本地资源在 `.draftgo/custom_scripts/`;元数据写在 `index.json`,代码文件以每条记录的 `code_file` 为准。推送时 `draftgo_push.py custom_scripts` 只读取 `code_file` 指向的文件。
|
|
143
137
|
- 新服务使用 `mode=mixed`,`Register` 内的 `app.Route`、`app.On`、`app.Schedule` 会自动形成完整触发器清单;旧 `triggers` 字段不参与 Go 注册。
|
|
144
138
|
- `slug=<slug>` 是服务命名空间;`app.Route("GET", "/items", handler)` 映射为 `GET /api/x/<slug>/items`。一个服务可同时注册多个路由、事件和定时任务。
|
|
145
|
-
- Go handler 签名为 `func handler(
|
|
139
|
+
- Go handler 签名为 `func handler(draftgo *sdk.Context) (any, error)`;普通值直接返回,需要状态码或响应头时使用 `draftgo.Respond(...)`。
|
|
146
140
|
- 第三方依赖写在同一条 index 元数据的 `go_mod` / `go_sum`;推送后应真实请求无副作用 GET 端点验证,不要只看 `OK script_id=...`。
|
|
147
141
|
- `app.On("user.registered", handler)` 可重复声明;同一服务既能监听多个事件,也能为同一事件注册多个 handler。
|
|
148
|
-
- Route 输入在 `
|
|
149
|
-
- 动态数据使用 `
|
|
142
|
+
- Route 输入在 `draftgo.Input`(`body`、`query_params`、`headers`、`method`、`path_params`);当前用户用 `draftgo.Auth.CurrentUser()` 获取。普通值可直接返回,需要状态码或响应头时用 `draftgo.Respond(...)`。
|
|
143
|
+
- 动态数据使用 `draftgo.DB.Query(type, sdk.QueryOptions{...})`;完整 Go SDK 见 `references/custom-services.md`。
|
|
150
144
|
- 管理面按 `scripts:read/create/update/delete/execute` 接入角色 RBAC;获得创建/编辑权限的用户属于可信代码编辑者。调用面仍由每个 route 的 `permission` 与 `config.route_security` 独立控制,管理权限不会绕过调用权限。
|
|
151
|
-
- 服务可用 `config.max_concurrency` / `queue_timeout_ms` 设置并发退避;出站请求使用 `
|
|
152
|
-
- 完整 SDK(users/db/auth/notify/http/cache/config/
|
|
145
|
+
- 服务可用 `config.max_concurrency` / `queue_timeout_ms` 设置并发退避;出站请求使用 `draftgo.HTTP`,饱和 Route 返回 HTTP 429。
|
|
146
|
+
- 完整 SDK(users/db/auth/notify/http/cache/config/log,以及 AIHub/知识库/Memory/Skill/MCP 的推理与 CRUD)、各触发类型 `draftgo`、管理 API 和部署限制见 [`resources/skill/references/custom-services.md`](resources/skill/references/custom-services.md)。
|
|
153
147
|
|
|
154
148
|
AIHub Agent 用户选模型约定:
|
|
155
149
|
|
|
156
|
-
-
|
|
150
|
+
- 新页面的 AI 对话 UI 先引入 `/assets/draftgo-chat.js`,再使用 `<dg-chat protocol="draftgo-agent" agent-id="AGENT_ID">` 或 `DraftGoChat.create()`;完整规则见 `resources/skill/references/chat-sdk.md`。
|
|
151
|
+
- `DraftGoAI.chat/images/getSelectableModels` 是同一脚本提供的旧兼容门面,不由壳层默认注入,也不应替代新页面的 `<dg-chat>` 对话 UI。
|
|
152
|
+
- 管理端在 Agent 的 `data.spec.model_selection.user_selectable=true` 后,页面可通过 Chat SDK 模型选择器,或兼容接口 `DraftGoAI.getSelectableModels(agentId)` 获取 `{ user_selectable, models }`。
|
|
157
153
|
- `models` 是该 Agent 的主模型 + 备用模型白名单,不是供应商全量模型列表。
|
|
158
154
|
- 调用 `DraftGoAI.chat(...)` 或 `DraftGoAI.images(...)` 时,可在 `options.model` 中传入用户选择的模型;后端会继续按 Agent 白名单校验。
|
|
159
155
|
|
|
@@ -222,7 +218,7 @@ AIHub Agent JSON 输出约定:
|
|
|
222
218
|
│ ├── Task/ # 每个开发任务一个 md,含需求 / 设计 / 任务标记
|
|
223
219
|
│ ├── lessons/ # 开发经验、踩坑记录、基座局限场景
|
|
224
220
|
│ ├── pages/ navigations/ ... # init 拉取的本地缓存
|
|
225
|
-
│ ├── skill-shared/
|
|
221
|
+
│ ├── skill-shared/references/api.json # 多 AI 工具共享的 OpenAPI 快照
|
|
226
222
|
│ └── .version # CLI 写入:当前已装 skill 的版本
|
|
227
223
|
│
|
|
228
224
|
└── (AI 工具 skill 目录,按需写入;每份都是完整副本)
|
|
@@ -242,6 +238,12 @@ AIHub Agent JSON 输出约定:
|
|
|
242
238
|
|
|
243
239
|
---
|
|
244
240
|
|
|
241
|
+
## v3.0.30 升级要点(自定义服务 AI SDK)
|
|
242
|
+
|
|
243
|
+
- 内置 Skill 补齐 AIHub 推理、Embedding、Agent/Prompt/Skill/MCP 资产 CRUD,以及供应商、模型路由和运行记录接口。
|
|
244
|
+
- 增加知识库、文档、Chunk、长期记忆的 Go SDK 说明,包含文件上传、检索、重建索引和管理员同构入口。
|
|
245
|
+
- 记录 `config.aihub` 推理开关与 Agent/模型白名单,并为全部新 SDK 能力增加文档契约测试。
|
|
246
|
+
|
|
245
247
|
## v3.0.28 升级要点(同步可靠性)
|
|
246
248
|
|
|
247
249
|
- 修复导航 pull:列表元数据会逐条获取详情 HTML,避免空内容覆盖本地导航。
|
|
@@ -256,32 +258,6 @@ AIHub Agent JSON 输出约定:
|
|
|
256
258
|
|
|
257
259
|
---
|
|
258
260
|
|
|
259
|
-
## v1.2.0 升级要点(高质量开发规范)
|
|
260
|
-
|
|
261
|
-
CLI v1.2.0 在 skill 包里追加了一套**分级开发流程规范**(`rules/dev-workflow.md`),目标是让 AI 在做 DraftGo 项目开发时"小修不拖慢、功能有计划、高风险有门禁、质量靠证据"。
|
|
262
|
-
|
|
263
|
-
**分级流程**:
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
小修:直接定位 → 改 → 轻量证据
|
|
267
|
-
轻功能:范围复述 → 直接做 → 凭证据闭环
|
|
268
|
-
标准功能:轻量确认 → 内部短计划 → 执行闭环
|
|
269
|
-
高风险:完整 Story / 计划 / 验证 / 回读证据
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
**新增本地目录**:
|
|
273
|
-
- `.draftgo/Task/`:每个开发任务一个 Markdown 文件,含需求纪要 / 设计 / 任务清单 / ⬜🟡✅❌⏸ 标记 / 完成回顾
|
|
274
|
-
|
|
275
|
-
**经验记录(lessons)**:
|
|
276
|
-
- `.draftgo/lessons/` 统一记录开发过程中的阻碍、踩坑、框架运行时问题、基座能力局限和可复用经验。
|
|
277
|
-
- 文件按 `YYYY-MM-DD-主题关键词.md` 命名,便于后续回顾和沉淀为开发规范。
|
|
278
|
-
|
|
279
|
-
**前端 UI 能力**:DraftGo 平台前端默认采用 React + Tailwind CSS。若本地 Agent 环境存在前端 UI 相关 Skills,前端界面开发时优先调用。DraftGo-CLI 提供运行时、资源、数据、路由、入口绑定和验证方法。
|
|
280
|
-
|
|
281
|
-
完整规范见各 AI 工具自身 skill 目录下的 `rules/dev-workflow.md`,例如 `.claude/skills/draftgo/rules/dev-workflow.md`。
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
261
|
## v2.0.3 升级要点(操作型页面空间利用)
|
|
286
262
|
|
|
287
263
|
CLI v2.0.3 补充操作型页面的空间模型,重点解决后台管理 / 表格 / 列表页面按普通文档流布局时,数据少导致分页、保存栏、批量操作区上浮,页面空间利用不足的问题。
|
|
@@ -291,7 +267,7 @@ CLI v2.0.3 补充操作型页面的空间模型,重点解决后台管理 / 表
|
|
|
291
267
|
- **工作台布局原则**:后台管理、表格、列表、审批、配置、内容维护等操作型页面,优先让页面根容器占满可用视口 / iframe 内容区。
|
|
292
268
|
- **稳定控制区**:顶部筛选、搜索、标题操作区保持稳定高度,底部分页、批量操作栏、保存栏等流程控制区保持在工作区底部或稳定位置。
|
|
293
269
|
- **数据区承接剩余空间**:主体数据区使用 `flex:1; min-height:0; overflow:auto` 等结构承接剩余空间,数据少时保留工作区空白,数据多时优先让数据区内部滚动。
|
|
294
|
-
- **工作台结构同步**:`
|
|
270
|
+
- **工作台结构同步**:`references/frontend.md` 补充操作型页面的空间方法,基座对应文档为 `docs/frontend/rules.md`,避免分页跟随 1-2 条数据上浮。
|
|
295
271
|
|
|
296
272
|
---
|
|
297
273
|
|
|
@@ -301,7 +277,7 @@ CLI v2.0.2 进一步完善 `draftgo update` 的目标识别逻辑,避免只修
|
|
|
301
277
|
|
|
302
278
|
**核心变化:**
|
|
303
279
|
|
|
304
|
-
- **平台定义成为单一信号源**:每个 AI 工具的入口文件、skill 目录和项目级探测信号统一维护在 `platforms.js`,`init / update /
|
|
280
|
+
- **平台定义成为单一信号源**:每个 AI 工具的入口文件、skill 目录和项目级探测信号统一维护在 `platforms.js`,`init / update / status` 共用同一份识别依据。
|
|
305
281
|
- **update 覆盖所有检测到的工具**:不传 target 时,`draftgo update` 会合并“已安装 skill 的目标”和“项目中检测到的 AI 工具信号”,并刷新全部命中的工具。
|
|
306
282
|
- **全平台测试覆盖**:单测现在会同时模拟 Claude Code、Cursor、Windsurf、Antigravity、Kiro、GitHub Copilot、Codex、Gemini 的项目级信号,防止后续再出现只命中部分工具的问题。
|
|
307
283
|
|
|
@@ -330,21 +306,6 @@ CLI v2.0.0 删除了内置 `resources/skill/reference/` 基座参考副本,进
|
|
|
330
306
|
|
|
331
307
|
---
|
|
332
308
|
|
|
333
|
-
## v1.6.2 升级要点(开发效率轻量化)
|
|
334
|
-
|
|
335
|
-
CLI v1.6.2 进一步降低开发流程摩擦:保留真实落地闭环、页面绑定和平台禁区,同时让小修和轻功能更快进入实现。
|
|
336
|
-
|
|
337
|
-
**核心变化:**
|
|
338
|
-
|
|
339
|
-
- **小修渐进读取**:小修优先只读目标资源和最小必要规则,不再默认展开完整规则链路。
|
|
340
|
-
- **新增轻功能档**:简单页面能力、单入口交互、小型数据联动可走“范围复述 → 直接做 → 凭证据闭环”,不强制创建 Task。
|
|
341
|
-
- **计划字段按需**:`depends / resource_lock / wave` 只在多任务、多资源冲突或准备并行时强制;单人串行小计划不再为字段服务。
|
|
342
|
-
- **并行按收益启用**:只有任务数足够、边界清晰、资源不冲突且并行收益大于协调成本时才启用并行。
|
|
343
|
-
- **取消 80 行硬限制**:改为“复杂或高风险代码分段实现并验证”,避免机械分批拖慢前端开发。
|
|
344
|
-
- **验证按影响分层**:小修验证改动点,轻功能验证入口引用和主路径;标准功能按实际影响覆盖四态、数据、跳转和同步证据。
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
309
|
## v1.6.1 升级要点(前端规则收敛)
|
|
349
310
|
|
|
350
311
|
CLI v1.6.1 继续优化开发效果:减少前端规则中过细的“适合 / 不适合”和固定模板描述,让 AI 在满足平台硬约束的前提下,根据页面目标和业务复杂度做实现判断。
|
|
@@ -365,12 +326,12 @@ CLI v1.6.0 强化了 skill 对“开发任务规划”的判断力,重点解
|
|
|
365
326
|
**核心变化:**
|
|
366
327
|
|
|
367
328
|
- **用户意图翻译**:当用户用非技术语言描述“案例库、新闻中心、产品中心、预约、资料下载”等业务目标时,AI 会先识别它是页面、多页面还是完整功能模块,而不是要求用户说出 CRUD、API、路由等开发术语。
|
|
368
|
-
- **页面默认完整功能**:用户说“做一个页面”时,默认按可真实使用的页面功能处理;只有明确说“静态 / 纯页面 /
|
|
329
|
+
- **页面默认完整功能**:用户说“做一个页面”时,默认按可真实使用的页面功能处理;只有明确说“静态 / 纯页面 / 原型 / 先看效果”时,才按静态页处理。
|
|
369
330
|
- **用户路径链路**:功能规划从“用户打开官网 / 系统入口 → 看见入口 → 点击进入 → 操作 → 反馈 → 后台维护 → 前台展示更新”这一整条链路倒推页面、导航、数据和权限。
|
|
370
331
|
- **新增页面绑定**:创建页面后必须绑定到导航栏、首页入口、后台菜单或相关页面按钮之一;只创建页面文件、无法从正常路径点击进入,不算完成。
|
|
371
332
|
- **真实落地闭环**:按钮、表单、搜索、筛选、分页、保存、删除、发布等交互默认要真实有效;需要可维护内容时,优先规划后台管理和同一份真实数据,追求高可用。
|
|
372
333
|
|
|
373
|
-
|
|
334
|
+
这些规则已改为按事实触发:资源关系不清时 map,页面改动检查入口和 HTML,数据/API/服务只读取对应契约,运行和布局改变才做浏览器验证。Task 和 Story 仅在需要产品决策沉淀或跨资源交接时使用。
|
|
374
335
|
|
|
375
336
|
---
|
|
376
337
|
|
|
@@ -390,71 +351,9 @@ python .claude/skills/draftgo/scripts/draftgo_push.py db_meta [meta_id]
|
|
|
390
351
|
|
|
391
352
|
更推荐的用法:在 AI 工具里说「初始化 draftgo 项目」或「同步页面 123」,skill 会自动触发对应脚本。
|
|
392
353
|
|
|
393
|
-
##
|
|
394
|
-
|
|
395
|
-
CLI v1.4.0 引入 **Story System**,解决 Vibe Coding 时代最大的痛点:每次新对话 AI 都不知道"这个系统为什么存在、不做什么、做过什么取舍"。
|
|
396
|
-
|
|
397
|
-
**核心机制:Story Context / Gate**
|
|
398
|
-
|
|
399
|
-
开发任务开始时,AI 按任务级别处理 `.draftgo/story.yaml`:
|
|
400
|
-
- 小修 → 不强制触发 Story
|
|
401
|
-
- 功能 → 存在则静默加载,不存在不阻塞开发,收尾提醒补 Story
|
|
402
|
-
- 高风险 → 不存在则暂存请求,进入 Story 构建流程(对话式采集,不是填表);存在则静默加载并做冲突检测
|
|
403
|
-
|
|
404
|
-
**Story 文件结构(三层):**
|
|
405
|
-
|
|
406
|
-
```yaml
|
|
407
|
-
# .draftgo/story.yaml
|
|
408
|
-
meta:
|
|
409
|
-
version: 1
|
|
410
|
-
created: 2026-05-17
|
|
411
|
-
last_touched: 2026-05-17
|
|
412
|
-
maturity: seed # seed | growing | stable
|
|
413
|
-
|
|
414
|
-
identity:
|
|
415
|
-
what: "一句话讲清这是什么"
|
|
416
|
-
why: "解决什么痛点,给谁用"
|
|
417
|
-
not:
|
|
418
|
-
- "不是 XX"
|
|
419
|
-
- "不变成 YY"
|
|
420
|
-
|
|
421
|
-
design:
|
|
422
|
-
overview: "核心流转逻辑:用户从哪进来 → 经过什么 → 得到什么价值"
|
|
423
|
-
modules:
|
|
424
|
-
- name: "模块名"
|
|
425
|
-
role: "这个模块在系统里的定位(核心/辅助/基座)"
|
|
426
|
-
decisions:
|
|
427
|
-
- id: D001
|
|
428
|
-
date: 2026-05-17
|
|
429
|
-
chose: "选了什么"
|
|
430
|
-
over: "拒绝了什么"
|
|
431
|
-
because: "原因"
|
|
432
|
-
status: active
|
|
433
|
-
|
|
434
|
-
now:
|
|
435
|
-
focus: "当前在做什么"
|
|
436
|
-
next: "下一步方向"
|
|
437
|
-
open_questions:
|
|
438
|
-
- "悬而未决的事"
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
**运行时行为:**
|
|
442
|
-
- **冲突检测**:当开发请求与 Story 的 `identity.not` 或 active 决策矛盾时,AI 会显式摊牌,给出"想法变了 / 双轨并行 / 只是特例"三个选项
|
|
443
|
-
- **主动沉淀**:检测到方向性决策时,AI 主动提议记入 decisions
|
|
444
|
-
- **now 更新**:对话结束时提议更新 focus/next
|
|
445
|
-
|
|
446
|
-
**开发流程升级为分级门禁:**
|
|
447
|
-
|
|
448
|
-
```
|
|
449
|
-
小修:直接定位 → 改 → 轻量证据
|
|
450
|
-
轻功能:范围复述 → 直接做 → 凭证据闭环
|
|
451
|
-
标准功能:轻量确认 → 内部短计划 → 执行闭环
|
|
452
|
-
高风险:Story → 完整确认 → 计划 → 回读验证 / 影响说明
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
**注意:** `.draftgo/story.yaml` 不在 `draftgo init` 中创建。它由 AI 在首次开发对话时通过与开发者交流后生成,确保内容有意义而不是空模板。
|
|
354
|
+
## Story
|
|
456
355
|
|
|
457
|
-
|
|
356
|
+
`.draftgo/story.yaml` 用于沉淀会影响后续取舍的产品定位与决策。已有 Story 且请求触及定位或既有决策时读取;用户要求建立、更新或冲突检查时调用 `story/SKILL.md`。
|
|
458
357
|
|
|
459
358
|
---
|
|
460
359
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "draftgo-cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.33",
|
|
4
4
|
"description": "Install and manage the DraftGo skill across AI coding agents (Claude Code, Codex, Cursor, Windsurf, Antigravity, Copilot, Gemini, Kiro).",
|
|
5
5
|
"bin": {
|
|
6
6
|
"draftgo": "bin/draftgo.js"
|
|
@@ -13,6 +13,9 @@
|
|
|
13
13
|
"bin/",
|
|
14
14
|
"src/",
|
|
15
15
|
"resources/",
|
|
16
|
+
"!resources/**/__pycache__/**",
|
|
17
|
+
"!resources/**/*.py[cod]",
|
|
18
|
+
"LICENSE",
|
|
16
19
|
"README.md"
|
|
17
20
|
],
|
|
18
21
|
"keywords": [
|
|
@@ -39,10 +42,15 @@
|
|
|
39
42
|
"url": "git+https://github.com/draftgo/draftgo-cli.git"
|
|
40
43
|
},
|
|
41
44
|
"scripts": {
|
|
42
|
-
"
|
|
45
|
+
"lint": "node scripts/check-syntax.js",
|
|
46
|
+
"validate:skill": "node scripts/validate-skill.js",
|
|
47
|
+
"verify:package": "node scripts/verify-package.js",
|
|
48
|
+
"test": "npm run lint && npm run validate:skill && npm run verify:package && node tests/unit.js && node tests/e2e.js",
|
|
49
|
+
"test:unit": "node tests/unit.js",
|
|
43
50
|
"test:e2e": "node tests/e2e.js"
|
|
44
51
|
},
|
|
45
52
|
"dependencies": {
|
|
53
|
+
"@grpc/grpc-js": "1.14.1",
|
|
46
54
|
"parse5": "6.0.1",
|
|
47
55
|
"playwright-core": "1.61.1"
|
|
48
56
|
},
|