draftgo-cli 2.0.3 → 2.0.9
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 +100 -27
- package/package.json +2 -2
- package/resources/skill/SKILL.md +257 -74
- package/resources/skill/push/SKILL.md +7 -4
- package/resources/skill/rules/dev-workflow.md +123 -96
- package/resources/skill/rules/frontend.md +130 -160
- package/resources/skill/scripts/draftgo_pull.py +15 -2
- package/resources/skill/scripts/draftgo_push.py +110 -20
- package/resources/skill/story/SKILL.md +2 -29
- package/resources/skill/story/story.example.yaml +0 -21
- package/src/commands/check.js +53 -0
- package/src/commands/help.js +27 -1
- package/src/commands/local.js +57 -0
- package/src/commands/map.js +94 -0
- package/src/commands/projectScript.js +37 -0
- package/src/commands/sync.js +51 -0
- package/src/index.js +12 -0
- package/src/localdev/compose.js +19 -0
- package/src/projectMap.js +368 -0
- package/resources/skill/rules/data-table.md +0 -320
package/README.md
CHANGED
|
@@ -6,9 +6,29 @@
|
|
|
6
6
|
|
|
7
7
|
## 前置条件
|
|
8
8
|
|
|
9
|
-
- Node.js
|
|
9
|
+
- Node.js >=20.19(运行 CLI)
|
|
10
10
|
- Python 3.9+(运行 DraftGo init/sync 脚本;CLI 本身不需要)
|
|
11
11
|
|
|
12
|
+
## DraftGo Next v3 基线
|
|
13
|
+
|
|
14
|
+
DraftGo Next 前端基线为 React + Vite + shadcn/ui + Tailwind。draftgo-cli v3 的定位是 DraftGo 工作台 CLI:负责本地运行环境、资源同步、开发检查、push/pull 闭环和 AI 工具 skill 分发。
|
|
15
|
+
|
|
16
|
+
数据库页面仍以 HTML 为核心,`dg-*` 标签是 shadcn/ui 在 DraftGo 页面运行时里的协议表达:AI 看到 `dg-button`、`dg-card`、`dg-form`、`dg-table` 等,必须理解为 shadcn 组件能力,而不是 daisyUI、Bootstrap 或自研组件库。CLI 分发的 skill 已把这条规则写入前端规范。
|
|
17
|
+
|
|
18
|
+
已存在的 `draftgo init/update/status/doctor/map/check/connect/local-dev` 保持兼容;首批工作台命令如下:
|
|
19
|
+
|
|
20
|
+
| 命令 | 说明 |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `draftgo local up` | 启动 `draftgo local-dev` 生成的 `.draftgo/docker/docker-compose.yaml` 本地栈。 |
|
|
23
|
+
| `draftgo local down` | 停止本地栈。 |
|
|
24
|
+
| `draftgo local logs` | 查看本地栈日志,默认跟随 `app` 服务。 |
|
|
25
|
+
| `draftgo local status` | 查看本地栈容器状态。 |
|
|
26
|
+
| `draftgo dev` | 运行当前项目 `package.json` 中的 `scripts.dev`。 |
|
|
27
|
+
| `draftgo build` | 运行当前项目 `package.json` 中的 `scripts.build`。 |
|
|
28
|
+
| `draftgo check` | 本地资源闭环检查,辅助发现入口绑定、缺文件、重复路由和疑似 mock 风险。 |
|
|
29
|
+
| `draftgo pull` | 包装随 skill 分发的 `draftgo_pull.py`,默认 `--all` 拉取资源。 |
|
|
30
|
+
| `draftgo push` | 包装随 skill 分发的 `draftgo_push.py`,推送页面、导航、DB meta 等资源。 |
|
|
31
|
+
|
|
12
32
|
## 安装
|
|
13
33
|
|
|
14
34
|
```bash
|
|
@@ -39,6 +59,8 @@ draftgo init all # 所有支持的工具
|
|
|
39
59
|
| `draftgo uninstall [target]...` | 移除指定 AI 工具的 skill 目录(含入口文件 + 子技能 + scripts)。加 `--purge` 会连 `.draftgo/` 一起删。 |
|
|
40
60
|
| `draftgo status` | 查看当前项目装了哪些 AI 工具入口、skill 版本。 |
|
|
41
61
|
| `draftgo doctor` | 诊断:Python 是否可用、检测到哪些 AI 工具、各入口状态。 |
|
|
62
|
+
| `draftgo map` | 输出本地 DraftGo 资源地图:页面、导航、DB、脚本、AIHub、外部 API、文档、系统配置、入口引用,帮助 AI 快速进入项目。 |
|
|
63
|
+
| `draftgo check` | 本地闭环体检:检查 route、入口绑定、文件存在性、重复路由和疑似 mock/伪功能风险。 |
|
|
42
64
|
| `draftgo list-targets` | 列出支持的 AI 工具名。 |
|
|
43
65
|
| `draftgo --version` | 打印 CLI 版本。 |
|
|
44
66
|
| `draftgo --help` | 查看帮助。 |
|
|
@@ -49,9 +71,23 @@ draftgo init all # 所有支持的工具
|
|
|
49
71
|
- `--force`:`init/update` 时强制覆盖已存在的 AI 工具 skill 目录。
|
|
50
72
|
- `--skip-update-check`:`update` 时不去 npm 查最新版,直接用当前 CLI 执行。
|
|
51
73
|
- `--purge`:`uninstall` 时连 `.draftgo/`(含 config / 日志 / 本地缓存)一起删。
|
|
74
|
+
- `--output json`:`map/check` 输出机器可读 JSON。
|
|
75
|
+
- `--strict`:`check` 将提醒项也视为失败。
|
|
52
76
|
|
|
53
77
|
可以通过环境变量 `DRAFTGO_NO_UPDATE_CHECK=1` 全局关闭自动升级检查(离线、CI 等场景)。
|
|
54
78
|
|
|
79
|
+
### 机器可读输出
|
|
80
|
+
|
|
81
|
+
`draftgo map --output json` 会输出本地资源地图,适合 Agent 在开发前快速读取上下文;覆盖 pages、navigations、db_meta、custom_scripts、aihub、external_apis、docs、doc_categories、system_config、roles 和入口引用。AIHub 条目会包含常用配置摘要:
|
|
82
|
+
|
|
83
|
+
- `type=model`:模型数量、`supports_response_format`、`supports_json_schema`、图片生成诊断摘要。
|
|
84
|
+
- `type=agent`:`mode`、主模型/备用模型、`output_format`、用户选模型配置、工具来源摘要。
|
|
85
|
+
- `type=mcp`:传输协议、已发现工具数量。
|
|
86
|
+
|
|
87
|
+
外部 API 会摘要 `code/method/path/base_url/tags/status`,文档会摘要 `slug/category/content_file/status`,系统配置只展示 `config_key/category/value_type/is_sensitive/status`,避免把敏感值直接暴露给 Agent 输出。
|
|
88
|
+
|
|
89
|
+
`draftgo check --output json` 会输出 `{ map, errors, warnings }`,适合 CI 或开发收尾时作为轻量证据。`--strict` 会把 warnings 也视为失败。
|
|
90
|
+
|
|
55
91
|
## 更新
|
|
56
92
|
|
|
57
93
|
```bash
|
|
@@ -76,6 +112,49 @@ CLI 随包分发的 DraftGo skill 会同步基座 API 约定。集合写入统
|
|
|
76
112
|
|
|
77
113
|
动态 DB SDK 也提供 `sdk.db.create_many(...)` 与 `sdk.db.update_many(...)`,用于脚本内批量写入。
|
|
78
114
|
|
|
115
|
+
AIHub Agent 用户选模型约定:
|
|
116
|
+
|
|
117
|
+
- 管理端在 Agent 的 `data.spec.model_selection.user_selectable=true` 后,页面可调用 `DraftGoAI.getSelectableModels(agentId)` 获取 `{ user_selectable, models }`。
|
|
118
|
+
- `models` 是该 Agent 的主模型 + 备用模型白名单,不是供应商全量模型列表。
|
|
119
|
+
- 调用 `DraftGoAI.chat(...)` 或 `DraftGoAI.images(...)` 时,可在 `options.model` 中传入用户选择的模型;后端会继续按 Agent 白名单校验。
|
|
120
|
+
|
|
121
|
+
AIHub Agent JSON 输出约定:
|
|
122
|
+
|
|
123
|
+
- Agent 的结构化输出写在 `data.spec.output_format` 中;`mode="json"` 表示要求 JSON 输出。
|
|
124
|
+
- `data.spec.output_format.json.strategy` 支持 `auto`、`native`、`prompt`:`auto` 会优先使用模型资产的 `supports_response_format/supports_json_schema` 诊断结果,必要时降级为提示词约束。
|
|
125
|
+
- `data.spec.output_format.json.schema` 可传 JSON Schema;后端会尽量构造 OpenAI 兼容 `response_format`,流式响应结束时会追加 `json.validation` 事件。
|
|
126
|
+
- 模型资产可通过 `POST /api/aihub/{id}/test-response-format` 探测并写回 `supports_response_format` 与 `supports_json_schema`。
|
|
127
|
+
|
|
128
|
+
示例:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"data": {
|
|
133
|
+
"schema_version": "agent.v3",
|
|
134
|
+
"spec": {
|
|
135
|
+
"model_id": 1,
|
|
136
|
+
"model": "gpt-4.1",
|
|
137
|
+
"output_format": {
|
|
138
|
+
"mode": "json",
|
|
139
|
+
"json": {
|
|
140
|
+
"strategy": "auto",
|
|
141
|
+
"schema_name": "summary",
|
|
142
|
+
"schema": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"title": { "type": "string" },
|
|
146
|
+
"tags": { "type": "array", "items": { "type": "string" } }
|
|
147
|
+
},
|
|
148
|
+
"required": ["title", "tags"],
|
|
149
|
+
"additionalProperties": false
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
79
158
|
## 自动识别的依据
|
|
80
159
|
|
|
81
160
|
| AI 工具 | 探测信号(任一命中即视为在用) |
|
|
@@ -128,9 +207,9 @@ CLI v1.2.0 在 skill 包里追加了一套**分级开发流程规范**(`rules/
|
|
|
128
207
|
**分级流程**:
|
|
129
208
|
|
|
130
209
|
```
|
|
131
|
-
小修:直接定位 → 改 →
|
|
132
|
-
轻功能:范围复述 → 直接做 →
|
|
133
|
-
标准功能:轻量确认 →
|
|
210
|
+
小修:直接定位 → 改 → 轻量证据
|
|
211
|
+
轻功能:范围复述 → 直接做 → 凭证据闭环
|
|
212
|
+
标准功能:轻量确认 → 内部短计划 → 执行闭环
|
|
134
213
|
高风险:完整 Story / 计划 / 验证 / 人工确认
|
|
135
214
|
```
|
|
136
215
|
|
|
@@ -141,7 +220,7 @@ CLI v1.2.0 在 skill 包里追加了一套**分级开发流程规范**(`rules/
|
|
|
141
220
|
- `.draftgo/lessons/` 统一记录开发过程中的阻碍、踩坑、框架运行时问题、基座能力局限和可复用经验。
|
|
142
221
|
- 文件按 `YYYY-MM-DD-主题关键词.md` 命名,便于后续回顾和沉淀为开发规范。
|
|
143
222
|
|
|
144
|
-
|
|
223
|
+
**前端 UI 能力调用**:DraftGo 平台前端默认采用 React + shadcn/ui + Tailwind CSS;数据库 HTML 页面使用 `dg-*` 表达 shadcn 组件能力,`dg-*` 不是自研 UI 协议。若本地 Agent 环境存在 shadcn / 前端 UI 相关 Skills,前端界面开发时优先调用。DraftGo-CLI 提供运行时、资源、数据、路由、入口绑定和验证方法,并在规范中声明 shadcn/Tailwind 已引入。
|
|
145
224
|
|
|
146
225
|
完整规范见各 AI 工具自身 skill 目录下的 `rules/dev-workflow.md`,例如 `.claude/skills/draftgo/rules/dev-workflow.md`。
|
|
147
226
|
|
|
@@ -156,7 +235,7 @@ CLI v2.0.3 补充操作型页面的空间模型,重点解决后台管理 / 表
|
|
|
156
235
|
- **工作台布局原则**:后台管理、表格、列表、审批、配置、内容维护等操作型页面,优先让页面根容器占满可用视口 / iframe 内容区。
|
|
157
236
|
- **稳定控制区**:顶部筛选、搜索、标题操作区保持稳定高度,底部分页、批量操作栏、保存栏等流程控制区保持在工作区底部或稳定位置。
|
|
158
237
|
- **数据区承接剩余空间**:主体数据区使用 `flex:1; min-height:0; overflow:auto` 等结构承接剩余空间,数据少时保留工作区空白,数据多时优先让数据区内部滚动。
|
|
159
|
-
-
|
|
238
|
+
- **工作台结构同步**:`rules/frontend.md` 补充操作型页面的空间方法,基座对应文档为 `docs/frontend/rules.md`,避免分页跟随 1-2 条数据上浮。
|
|
160
239
|
|
|
161
240
|
---
|
|
162
241
|
|
|
@@ -197,29 +276,29 @@ CLI v2.0.0 删除了内置 `resources/skill/reference/` 基座参考副本,进
|
|
|
197
276
|
|
|
198
277
|
## v1.6.2 升级要点(开发效率轻量化)
|
|
199
278
|
|
|
200
|
-
CLI v1.6.2
|
|
279
|
+
CLI v1.6.2 进一步降低开发流程摩擦:保留真实落地闭环、页面绑定和平台禁区,同时让小修和轻功能更快进入实现。
|
|
201
280
|
|
|
202
281
|
**核心变化:**
|
|
203
282
|
|
|
204
283
|
- **小修渐进读取**:小修优先只读目标资源和最小必要规则,不再默认展开完整规则链路。
|
|
205
|
-
- **新增轻功能档**:简单页面能力、单入口交互、小型数据联动可走“范围复述 → 直接做 →
|
|
284
|
+
- **新增轻功能档**:简单页面能力、单入口交互、小型数据联动可走“范围复述 → 直接做 → 凭证据闭环”,不强制创建 Task。
|
|
206
285
|
- **计划字段按需**:`depends / resource_lock / wave` 只在多任务、多资源冲突或准备并行时强制;单人串行小计划不再为字段服务。
|
|
207
286
|
- **并行按收益启用**:只有任务数足够、边界清晰、资源不冲突且并行收益大于协调成本时才启用并行。
|
|
208
287
|
- **取消 80 行硬限制**:改为“复杂或高风险代码分段实现并验证”,避免机械分批拖慢前端开发。
|
|
209
|
-
-
|
|
288
|
+
- **验证按影响分层**:小修验证改动点,轻功能验证入口引用和主路径;标准功能按实际影响覆盖四态、数据、跳转和同步证据。
|
|
210
289
|
|
|
211
290
|
---
|
|
212
291
|
|
|
213
|
-
## v1.6.1
|
|
292
|
+
## v1.6.1 升级要点(前端规则收敛)
|
|
214
293
|
|
|
215
|
-
CLI v1.6.1 继续优化开发效果:减少前端规则中过细的“适合 / 不适合”和固定模板描述,让 AI
|
|
294
|
+
CLI v1.6.1 继续优化开发效果:减少前端规则中过细的“适合 / 不适合”和固定模板描述,让 AI 在满足平台硬约束的前提下,根据页面目标和业务复杂度做实现判断。
|
|
216
295
|
|
|
217
296
|
**核心变化:**
|
|
218
297
|
|
|
219
|
-
-
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
298
|
+
- **前端规则收敛**:DraftGo 规则关注本地资源、运行时 API、入口绑定、真实数据和验证方法。
|
|
299
|
+
- **GSAP 资源改为按需使用**:本地 GSAP 资源仍可用,但 CLI 不再给出使用场景判断。
|
|
300
|
+
- **表格规则去模板化**:不再要求固定搜索、高级筛选、列配置、分页结构,具体界面由 Agent 和本地 UI Skills 判断。
|
|
301
|
+
- **状态规则保留方法约束**:空态、加载态、错误态、成功态必须存在,但具体呈现不由 CLI 指定。
|
|
223
302
|
|
|
224
303
|
---
|
|
225
304
|
|
|
@@ -233,9 +312,9 @@ CLI v1.6.0 强化了 skill 对“开发任务规划”的判断力,重点解
|
|
|
233
312
|
- **页面默认完整功能**:用户说“做一个页面”时,默认按可真实使用的页面功能处理;只有明确说“静态 / 纯页面 / demo / 先看效果”时,才按静态页处理。
|
|
234
313
|
- **用户路径链路**:功能规划从“用户打开官网 / 系统入口 → 看见入口 → 点击进入 → 操作 → 反馈 → 后台维护 → 前台展示更新”这一整条链路倒推页面、导航、数据和权限。
|
|
235
314
|
- **新增页面绑定**:创建页面后必须绑定到导航栏、首页入口、后台菜单或相关页面按钮之一;只创建页面文件、无法从正常路径点击进入,不算完成。
|
|
236
|
-
-
|
|
315
|
+
- **真实落地闭环**:按钮、表单、搜索、筛选、分页、保存、删除、发布等交互默认要真实有效;需要可维护内容时,优先规划后台管理和同一份真实数据,追求高可用。
|
|
237
316
|
|
|
238
|
-
|
|
317
|
+
这些规则保持轻量:小修直接定位 → 改 → 轻量证据;轻功能不强制 Task;普通标准功能使用内部短计划;跨资源、多页面协作、并行或高风险时才落 Task。
|
|
239
318
|
|
|
240
319
|
---
|
|
241
320
|
|
|
@@ -288,12 +367,6 @@ design:
|
|
|
288
367
|
modules:
|
|
289
368
|
- name: "模块名"
|
|
290
369
|
role: "这个模块在系统里的定位(核心/辅助/基座)"
|
|
291
|
-
style:
|
|
292
|
-
personality: "系统说话像谁"
|
|
293
|
-
keywords: ["设计关键词"]
|
|
294
|
-
do: ["正面指引"]
|
|
295
|
-
dont: ["禁区"]
|
|
296
|
-
|
|
297
370
|
decisions:
|
|
298
371
|
- id: D001
|
|
299
372
|
date: 2026-05-17
|
|
@@ -317,10 +390,10 @@ now:
|
|
|
317
390
|
**开发流程升级为分级门禁:**
|
|
318
391
|
|
|
319
392
|
```
|
|
320
|
-
小修:直接定位 → 改 →
|
|
321
|
-
轻功能:范围复述 → 直接做 →
|
|
322
|
-
标准功能:轻量确认 →
|
|
323
|
-
高风险:Story → 完整确认 → 计划 →
|
|
393
|
+
小修:直接定位 → 改 → 轻量证据
|
|
394
|
+
轻功能:范围复述 → 直接做 → 凭证据闭环
|
|
395
|
+
标准功能:轻量确认 → 内部短计划 → 执行闭环
|
|
396
|
+
高风险:Story → 完整确认 → 计划 → 人工确认 / 回读验证
|
|
324
397
|
```
|
|
325
398
|
|
|
326
399
|
**注意:** `.draftgo/story.yaml` 不在 `draftgo init` 中创建。它由 AI 在首次开发对话时通过与开发者交流后生成,确保内容有意义而不是空模板。
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "draftgo-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
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"
|
|
7
7
|
},
|
|
8
8
|
"main": "src/index.js",
|
|
9
9
|
"engines": {
|
|
10
|
-
"node": ">=
|
|
10
|
+
"node": ">=20.19"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
13
|
"bin/",
|