draftgo-cli 3.0.35 → 3.0.39
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 +220 -272
- package/package.json +6 -2
- package/resources/skill/SKILL.md +114 -55
- package/resources/skill/init/SKILL.md +29 -15
- package/resources/skill/manifest.json +5 -4
- package/resources/skill/push/SKILL.md +41 -29
- package/resources/skill/references/aihub.md +8 -5
- package/resources/skill/references/api-endpoints.md +5 -3
- package/resources/skill/references/architecture.md +1 -1
- package/resources/skill/references/checkout.md +116 -0
- package/resources/skill/references/custom-services.md +9 -10
- package/resources/skill/references/data.md +4 -2
- package/resources/skill/references/frontend.md +1 -1
- package/resources/skill/references/mcp.md +101 -0
- package/resources/skill/references/modules.md +8 -8
- package/resources/skill/references/parallel.md +6 -3
- package/resources/skill/references/runtime.md +7 -10
- package/resources/skill/scripts/README.md +8 -0
- package/resources/skill/story/SKILL.md +8 -8
- package/src/cli.js +5 -0
- package/src/commandRegistry.js +7 -1
- package/src/commands/api.js +24 -187
- package/src/commands/autoPush.js +48 -17
- package/src/commands/check.js +17 -47
- package/src/commands/checkout.js +18 -0
- package/src/commands/commit.js +21 -0
- package/src/commands/conflict.js +30 -0
- package/src/commands/conflicts.js +16 -0
- package/src/commands/connect.js +60 -48
- package/src/commands/delete.js +79 -64
- package/src/commands/deploy.js +18 -10
- package/src/commands/diff.js +23 -0
- package/src/commands/help.js +99 -75
- package/src/commands/init.js +4 -10
- package/src/commands/local.js +23 -6
- package/src/commands/map.js +89 -89
- package/src/commands/mcp.js +126 -0
- package/src/commands/sync.js +28 -43
- package/src/commands/verifyUi.js +3 -2
- package/src/localdev/index.js +37 -7
- package/src/localdev/mysqlClient.js +1 -1
- package/src/mcp/client.js +275 -0
- package/src/mcp/hosts.js +520 -0
- package/src/mcp/protocol.js +173 -0
- package/src/mcp/stdio.js +300 -0
- package/src/mcp/tools.js +47 -0
- package/src/platforms.js +3 -4
- package/src/projectConfig.js +91 -49
- package/src/projectMap.js +123 -460
- package/src/skill.js +6 -28
- package/src/worktree/backend.js +326 -0
- package/src/worktree/errors.js +28 -0
- package/src/worktree/index.js +461 -0
- package/src/worktree/manifest.js +75 -0
- package/src/worktree/streams.js +200 -0
- package/src/worktree/types.js +103 -0
- package/src/worktree/validate.js +37 -0
- package/resources/skill/pull/SKILL.md +0 -33
- package/resources/skill/references/api.json +0 -20248
- package/resources/skill/scripts/draftgo_delete.py +0 -149
- package/resources/skill/scripts/draftgo_init.py +0 -80
- package/resources/skill/scripts/draftgo_pull.py +0 -427
- package/resources/skill/scripts/draftgo_push.py +0 -1022
- package/src/python.js +0 -27
package/README.md
CHANGED
|
@@ -1,364 +1,312 @@
|
|
|
1
1
|
# draftgo-cli
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
面向 AI 编码工具的 DraftGo 工作台 CLI:分发 DraftGo Skill,通过 MCP 发现和操作实时资源,并为页面、导航和文档提供可校验的 `checkout` / `commit` 工作流。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
DraftGo Next 前端基线为 React + Vite;数据库页面以标准 HTML + Tailwind CSS 为核心。CLI 仍提供 Docker 本地运行、项目检查和浏览器验证能力。
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- Node.js >=20.19(运行 CLI)
|
|
10
|
-
- Python 3.9+(运行 DraftGo init/sync 脚本;CLI 本身不需要)
|
|
7
|
+
支持安装 Skill 的宿主:Claude Code、Codex CLI、Cursor、Windsurf、Antigravity、GitHub Copilot、Gemini CLI、Kiro。
|
|
11
8
|
|
|
12
|
-
##
|
|
9
|
+
## 前置条件
|
|
13
10
|
|
|
14
|
-
|
|
11
|
+
- Node.js >=20.19
|
|
12
|
+
- 使用 `draftgo local ...` 时需要 Docker 和 Docker Compose
|
|
15
13
|
|
|
16
|
-
|
|
14
|
+
CLI 不再依赖 Python 同步脚本,也不会创建 DraftGo 业务资源的全量本地镜像。
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
## 工作模型
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
|
23
|
-
|
|
24
|
-
| `draftgo local stop` | 停止本地栈。`down` 是兼容别名。 |
|
|
25
|
-
| `draftgo local logs` | 查看本地栈日志,默认跟随 `app` 服务。 |
|
|
26
|
-
| `draftgo local status` | 查看本地栈容器状态。 |
|
|
27
|
-
| `draftgo check` | 本地资源检查:发现页面未绑定入口、页面/导航 HTML 解析问题、未登记到 `index.json` 的本地资源文件;不启动或构建底座。 |
|
|
28
|
-
| `draftgo verify-ui <url>` | 使用 Playwright 执行单视口 UI smoke check;默认按 Git 变更判断,失败时才截图。 |
|
|
29
|
-
| `draftgo api <keyword>` | 检索 DraftGo 底座内置 OpenAPI,并展示请求字段、响应结构与鉴权信息。自定义服务端点由 `app.Route` 动态注册,不在此索引中。 |
|
|
30
|
-
| `draftgo pull` | 包装随 skill 分发的 `draftgo_pull.py`,默认 `--all` 拉取资源。 |
|
|
31
|
-
| `draftgo push` | 包装随 skill 分发的 `draftgo_push.py`,推送页面、导航、DB meta 等资源。 |
|
|
32
|
-
| `draftgo deploy` | 显式执行 check → push;支持 `--delivery local|preview|deploy`。 |
|
|
33
|
-
|
|
34
|
-
## 安装
|
|
18
|
+
```text
|
|
19
|
+
AI 宿主 -> draftgo mcp serve -> DraftGo /mcp
|
|
20
|
+
|
|
|
21
|
+
+-> 结构化资源、元数据、搜索和正文片段
|
|
35
22
|
|
|
36
|
-
|
|
37
|
-
|
|
23
|
+
draftgo checkout/commit -> DraftGo 专用 HTTP 正文端点
|
|
24
|
+
(完整 HTML/Markdown 不经过 MCP 上下文)
|
|
38
25
|
```
|
|
39
26
|
|
|
40
|
-
|
|
27
|
+
- MCP 用于项目概览、资源搜索/列表、元数据、正文片段和实时 API 调用。
|
|
28
|
+
- `pages`、`navigations` 和 `docs/articles` 的完整正文使用 `checkout` / `commit`。
|
|
29
|
+
- `db_meta`、AIHub、`system_config`、角色、用户、文档分类、自定义服务等结构化资源直接通过 MCP/API 操作,不生成本地索引。
|
|
30
|
+
- `.draftgo/pages/`、`.draftgo/navigations/` 等旧 `index.json` 缓存只视为 legacy 数据;CLI 不删除它们,但 `map` 和 `check` 会忽略它们。
|
|
31
|
+
- DraftGo Skill 继续提供资源关系、页面规范、数据和权限、安全规则、自定义服务经验以及验证流程;MCP 不替代 Skill。
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
cd /path/to/your/project
|
|
44
|
-
draftgo init # 自动识别当前项目在用的 AI 工具并安装
|
|
45
|
-
```
|
|
33
|
+
## Agent 阅读顺序
|
|
46
34
|
|
|
47
|
-
|
|
35
|
+
DraftGo Skill 不能被 MCP 替代。根 `SKILL.md` 会在 Skill 触发时自动加载;Agent 随后按任务读取相关领域资料,再查询实时状态:
|
|
48
36
|
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
draftgo init claudecode kiro cursor # 多选
|
|
52
|
-
draftgo init all # 所有支持的工具
|
|
37
|
+
```text
|
|
38
|
+
已加载的 SKILL.md -> 按任务读取 references/ 中的领域规则 -> MCP 查询当前状态 -> 必要时 checkout 正文
|
|
53
39
|
```
|
|
54
40
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
| 命令 | 说明 |
|
|
58
|
-
|---|---|
|
|
59
|
-
| `draftgo init [target]...` | 安装 skill。不传 target 时自动识别;`all` 表示全部。 |
|
|
60
|
-
| `draftgo update [target]...` | 完整更新:先更新全局 CLI,再用新版原子刷新已安装或检测到的 AI 工具 skill。离线时仍会用当前 CLI 刷新 skill。 |
|
|
61
|
-
| `draftgo uninstall [target]...` | 移除指定 AI 工具的 skill 目录(含入口文件 + 子技能 + scripts)。加 `--purge` 会连 `.draftgo/` 一起删。 |
|
|
62
|
-
| `draftgo status` | 查看当前项目装了哪些 AI 工具入口、skill 版本。 |
|
|
63
|
-
| `draftgo map` | 输出本地 DraftGo 资源地图:页面、导航、DB、脚本、AIHub、文档、系统配置、入口引用,帮助 AI 快速进入项目。 |
|
|
64
|
-
| `draftgo check` | 本地资源检查:页面未绑定入口、页面/导航 HTML 解析问题、未登记到 `index.json` 的本地资源文件。 |
|
|
65
|
-
| `draftgo verify-ui <url>` | 浏览器 smoke check;支持 `--mobile-check auto|always|never` 和失败截图。 |
|
|
66
|
-
| `draftgo api <keyword>` | 查询 DraftGo 底座内置 OpenAPI 端点,输出请求字段、响应结构与鉴权信息;自定义服务端点需从 `app.Route` 推导。 |
|
|
67
|
-
| `draftgo deploy [type] [id...]` | 显式交付;`local` 只检查,`preview` dry-run,`deploy` 推送。 |
|
|
68
|
-
| `draftgo list-targets` | 列出支持的 AI 工具名。 |
|
|
69
|
-
| `draftgo --version` | 打印 CLI 版本。 |
|
|
70
|
-
| `draftgo --help` | 查看帮助。 |
|
|
71
|
-
|
|
72
|
-
### 全局选项
|
|
41
|
+
例如,盘点页面或判断业务模块前先读 `references/architecture.md` 和 `references/modules.md`。页面或导航的分析、修改、交互和 UI 任务先读 `references/frontend.md`;只有涉及路由、会话、`App` API、iframe/全局注入或运行时行为时才追加 `references/runtime.md`,涉及外部资产/CDN、认证、用户输入或不可信内容、敏感数据或配置时才追加 `references/security.md`。静态资源须先区分:平台内置目录直接由 `frontend.md` 说明,指定页面依赖经 MCP 定位、checkout 后本地搜索,服务器全量文件则不能凭现有 Skill、MCP 摘要或 checkout 声称已枚举。`mcp test` 是连接诊断,不是每次资源查询的前置步骤。
|
|
73
42
|
|
|
74
|
-
|
|
75
|
-
- `--force`:`init/update` 时强制覆盖已存在的 AI 工具 skill 目录。
|
|
76
|
-
- `--skip-update-check`:`update` 时不去 npm 查最新版,直接用当前 CLI 刷新 skill。
|
|
77
|
-
- `--purge`:`uninstall` 时连 `.draftgo/`(含 config / 日志 / 本地缓存)一起删。
|
|
78
|
-
- `--output json`:`map/check` 输出机器可读 JSON。
|
|
79
|
-
- `--strict`:`check` 将提醒项也视为失败。
|
|
80
|
-
- `--mobile-check auto|always|never`:控制 `verify-ui` 是否执行,默认 `auto`。
|
|
81
|
-
- `--screenshot on-failure|always|never`:控制 UI 截图,默认仅失败时生成。
|
|
82
|
-
- `--delivery local|preview|deploy`:控制 `deploy` 的交付级别。
|
|
43
|
+
Skill 说明产品约束、内置能力和操作规则;MCP 说明当前远端状态;checkout 正文才能证明某个页面完整引用了哪些静态资源。汇报时应明确标注这三类证据,不能互相替代。
|
|
83
44
|
|
|
84
|
-
|
|
45
|
+
## 安装与连接
|
|
85
46
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
`draftgo map --output json` 会输出本地资源地图,适合 Agent 在开发前快速读取上下文;覆盖 pages、navigations、db_meta、custom_scripts、aihub、docs、doc_categories、system_config、roles 和入口引用。AIHub 条目会包含常用配置摘要:
|
|
89
|
-
|
|
90
|
-
- `type=model`:模型数量、`supports_response_format`、`supports_json_schema`、图片生成诊断摘要。
|
|
91
|
-
- `type=agent`:`mode`、主模型/备用模型、`output_format`、用户选模型配置、工具来源摘要。
|
|
92
|
-
- `type=mcp`:传输协议、已发现工具数量。
|
|
93
|
-
|
|
94
|
-
文档会摘要 `slug/category/content_file/status`,系统配置只展示 `config_key/category/value_type/is_sensitive/status`,避免把敏感值直接暴露给 Agent 输出。
|
|
47
|
+
```bash
|
|
48
|
+
npm install -g draftgo-cli
|
|
95
49
|
|
|
96
|
-
|
|
50
|
+
cd /path/to/your/project
|
|
51
|
+
draftgo init # 自动识别宿主并安装 DraftGo Skill
|
|
52
|
+
draftgo connect codex # 输入 server 和 SAT,验证 MCP,并配置 Codex
|
|
53
|
+
```
|
|
97
54
|
|
|
98
|
-
|
|
55
|
+
也可以非交互连接:
|
|
99
56
|
|
|
100
57
|
```bash
|
|
101
|
-
|
|
102
|
-
draftgo update
|
|
58
|
+
draftgo connect codex --server https://draftgo.example --token "$DRAFTGO_SAT"
|
|
103
59
|
```
|
|
104
60
|
|
|
105
|
-
`
|
|
106
|
-
|
|
107
|
-
- 如果 CLI 已是最新 → 原子替换每个目标的 skill 资源
|
|
108
|
-
- 如果 npm 有新版 → 先全局更新 CLI,再由新版刷新 skill
|
|
109
|
-
- 如果 npm 暂不可达 → 保留当前 CLI,并刷新 skill
|
|
61
|
+
`connect` 会先验证 SAT、MCP `initialize`、`tools/list` 和关键 `tools/call`,成功后写入项目私有配置 `.draftgo/config.json`,并尝试为指定或自动检测到的宿主执行 MCP setup。它不会 pull 页面、导航、文档或任何其他业务资源。
|
|
110
62
|
|
|
111
|
-
|
|
63
|
+
远端暂不可用时,只有显式传入 `--allow-offline` 才会保存配置;恢复后运行 `draftgo mcp test`。使用 `--no-mcp-setup` 可跳过宿主配置。
|
|
112
64
|
|
|
113
|
-
|
|
65
|
+
`connect` 会把以下运行时路径加入项目 `.gitignore`:
|
|
114
66
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
- 动态 DB 因为资源带 `type`,批量更新路径是 `PATCH /api/db/{type}/batch`。
|
|
122
|
-
- GET 列表请求不传 `page` / `page_size` 时全量返回且无数量上限;任一分页参数传入时正常分页,缺失项按 `page=1` / `page_size=20` 兜底。
|
|
123
|
-
|
|
124
|
-
前端资源约定:
|
|
67
|
+
```text
|
|
68
|
+
.draftgo/config.json
|
|
69
|
+
.draftgo/token
|
|
70
|
+
.draftgo/worktree/
|
|
71
|
+
.draftgo/conflicts/
|
|
72
|
+
```
|
|
125
73
|
|
|
126
|
-
|
|
127
|
-
- 内置组件库:Ant Design 5.29.3(React 18 UMD)、Basecoat UI 1.0.2(HTML + CSS/JS)、Oat UI 0.7.0(Web Components)。组件清单、运行方式和资源路径见 `resources/skill/references/frontend.md`;该文档不规定选型。
|
|
128
|
-
- `/assets/adapters/draftgo-ui.js` 提供 `window.DraftGoUI` 和 `DraftGoUI.load(name)`;Basecoat/Oat 的主题适配资源为 `/assets/adapters/draftgo-theme.css`,加载顺序见 `resources/skill/references/frontend.md`。
|
|
129
|
-
- DraftGo 基座内置 SVG 图标库,运行时路径为 `/assets/icons/{name}.svg`。
|
|
130
|
-
- 图标文件统一使用 `kebab-case.svg` 命名;完整映射见 `/assets/icons/manifest.json`。
|
|
131
|
-
- 页面或导航栏需要单色图标时,优先用 CSS mask + `currentColor`,可自动适配深浅主题。
|
|
132
|
-
- html2canvas 1.4.1 已内置,页面需要截图 / 导出图片时优先使用本地路径 `/assets/vendor/html2canvas/html2canvas.min.js`;确需 CDN 时优先使用国内镜像引入。
|
|
74
|
+
SAT 只从 `.draftgo/config.json` 读取。宿主 MCP 配置、命令输出和错误信息都不应包含 SAT。
|
|
133
75
|
|
|
134
|
-
|
|
76
|
+
## MCP 命令
|
|
135
77
|
|
|
136
|
-
|
|
78
|
+
```bash
|
|
79
|
+
draftgo mcp setup [target...] # 写入或合并项目级 MCP 配置
|
|
80
|
+
draftgo mcp status [target...] # 检查配置是否存在且不含敏感连接参数
|
|
81
|
+
draftgo mcp test # 验证 initialize、tools/list、关键 tools/call
|
|
82
|
+
draftgo mcp serve # 启动 stdio -> 远端 Streamable HTTP bridge
|
|
83
|
+
```
|
|
137
84
|
|
|
138
|
-
|
|
139
|
-
- 本地资源在 `.draftgo/custom_scripts/`;元数据写在 `index.json`,代码文件以每条记录的 `code_file` 为准。推送时 `draftgo_push.py custom_scripts` 只读取 `code_file` 指向的文件。
|
|
140
|
-
- 新服务使用 `mode=mixed`,`Register` 内的 `app.Route`、`app.On`、`app.Schedule` 会自动形成完整触发器清单;旧 `triggers` 字段不参与 Go 注册。
|
|
141
|
-
- `slug=<slug>` 是服务命名空间;`app.Route("GET", "/items", handler)` 映射为 `GET /api/x/<slug>/items`。一个服务可同时注册多个路由、事件和定时任务。
|
|
142
|
-
- Go handler 签名为 `func handler(draftgo *sdk.Context) (any, error)`;普通值直接返回,需要状态码或响应头时使用 `draftgo.Respond(...)`。
|
|
143
|
-
- 第三方依赖写在同一条 index 元数据的 `go_mod` / `go_sum`;推送后应真实请求无副作用 GET 端点验证,不要只看 `OK script_id=...`。
|
|
144
|
-
- `app.On("user.registered", handler)` 可重复声明;同一服务既能监听多个事件,也能为同一事件注册多个 handler。
|
|
145
|
-
- Route 输入在 `draftgo.Input`(`body`、`query_params`、`headers`、`method`、`path_params`);当前用户用 `draftgo.Auth.CurrentUser()` 获取。普通值可直接返回,需要状态码或响应头时用 `draftgo.Respond(...)`。
|
|
146
|
-
- 动态数据使用 `draftgo.DB.Query(type, sdk.QueryOptions{...})`;完整 Go SDK 见 `references/custom-services.md`。
|
|
147
|
-
- 管理面按 `scripts:read/create/update/delete/execute` 接入角色 RBAC;获得创建/编辑权限的用户属于可信代码编辑者。调用面仍由每个 route 的 `permission` 与 `config.route_security` 独立控制,管理权限不会绕过调用权限。
|
|
148
|
-
- 服务可用 `config.max_concurrency` / `queue_timeout_ms` 设置并发退避;出站请求使用 `draftgo.HTTP`,饱和 Route 返回 HTTP 429。
|
|
149
|
-
- 完整 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)。
|
|
85
|
+
`setup` 不传 target 时自动检测当前项目的宿主。可用 `--target codex,cursor` 传入多个目标。
|
|
150
86
|
|
|
151
|
-
|
|
87
|
+
当前 MCP 宿主支持:
|
|
152
88
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
89
|
+
| 宿主 | 项目配置 | 状态 |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| Codex CLI | `.codex/config.toml` | 支持 |
|
|
92
|
+
| Claude Code | `.mcp.json` | 支持 |
|
|
93
|
+
| Cursor | `.cursor/mcp.json` | 支持 |
|
|
94
|
+
| Gemini CLI | `.gemini/settings.json` | 支持 |
|
|
95
|
+
| Kiro | `.kiro/settings/mcp.json` | 支持 |
|
|
96
|
+
| GitHub Copilot | `.vscode/mcp.json` | 支持 |
|
|
97
|
+
| Windsurf | - | 不支持项目级 MCP setup |
|
|
98
|
+
| Antigravity | - | 不支持项目级 MCP setup |
|
|
158
99
|
|
|
159
|
-
|
|
100
|
+
Codex 配置由 `draftgo mcp setup codex` 合并为:
|
|
160
101
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
102
|
+
```toml
|
|
103
|
+
[mcp_servers.draftgo]
|
|
104
|
+
command = "draftgo"
|
|
105
|
+
args = ["mcp", "serve"]
|
|
106
|
+
```
|
|
165
107
|
|
|
166
|
-
|
|
108
|
+
其他支持的宿主同样只保存 stdio 命令。例如 Claude Code、Cursor、Gemini 和 Kiro 使用 `mcpServers.draftgo`:
|
|
167
109
|
|
|
168
110
|
```json
|
|
169
111
|
{
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
|
|
173
|
-
"
|
|
174
|
-
"model": "gpt-4.1",
|
|
175
|
-
"output_format": {
|
|
176
|
-
"mode": "json",
|
|
177
|
-
"json": {
|
|
178
|
-
"strategy": "auto",
|
|
179
|
-
"schema_name": "summary",
|
|
180
|
-
"schema": {
|
|
181
|
-
"type": "object",
|
|
182
|
-
"properties": {
|
|
183
|
-
"title": { "type": "string" },
|
|
184
|
-
"tags": { "type": "array", "items": { "type": "string" } }
|
|
185
|
-
},
|
|
186
|
-
"required": ["title", "tags"],
|
|
187
|
-
"additionalProperties": false
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
112
|
+
"mcpServers": {
|
|
113
|
+
"draftgo": {
|
|
114
|
+
"command": "draftgo",
|
|
115
|
+
"args": ["mcp", "serve"]
|
|
191
116
|
}
|
|
192
117
|
}
|
|
193
118
|
}
|
|
194
119
|
```
|
|
195
120
|
|
|
196
|
-
|
|
121
|
+
GitHub Copilot 使用 `.vscode/mcp.json` 的 `servers.draftgo`,并额外写入 `"type": "stdio"`。这些文件不包含 server、SAT、header 或环境变量;bridge 在运行时从当前项目读取私有配置。
|
|
197
122
|
|
|
198
|
-
|
|
199
|
-
|---|---|
|
|
200
|
-
| Claude Code | `.claude/` 或 `CLAUDE.md` |
|
|
201
|
-
| Kiro | `.kiro/` |
|
|
202
|
-
| Cursor | `.cursor/` |
|
|
203
|
-
| Windsurf | `.windsurf/` |
|
|
204
|
-
| Antigravity | `.agent/` |
|
|
205
|
-
| GitHub Copilot | `.github/prompts/` 或 `.github/copilot-instructions.md` |
|
|
206
|
-
| Codex CLI | `.codex/` 或 `AGENTS.md` |
|
|
207
|
-
| Gemini CLI | `.gemini/` 或 `GEMINI.md` |
|
|
123
|
+
DraftGo MCP 预期提供以下工具:
|
|
208
124
|
|
|
209
|
-
|
|
125
|
+
- `draftgo_project_overview`
|
|
126
|
+
- `draftgo_resource_list`
|
|
127
|
+
- `draftgo_resource_search`
|
|
128
|
+
- `draftgo_resource_get_metadata`
|
|
129
|
+
- `draftgo_resource_read_fragment`
|
|
130
|
+
- `draftgo_api_search`
|
|
131
|
+
- `draftgo_api_describe`
|
|
132
|
+
- `draftgo_api_call`
|
|
210
133
|
|
|
211
|
-
##
|
|
134
|
+
## 标准工作流
|
|
212
135
|
|
|
213
|
-
|
|
136
|
+
陌生项目先通过 MCP 获取概览,再按需搜索、列出或读取资源元数据:
|
|
214
137
|
|
|
138
|
+
```text
|
|
139
|
+
project_overview -> resource_search/resource_list -> get_metadata/read_fragment
|
|
215
140
|
```
|
|
216
|
-
<project>/
|
|
217
|
-
├── .draftgo/ # 运行时数据(CLI 不会覆盖你这里的内容)
|
|
218
|
-
│ ├── config.json # init / connect 后生成(已加入 .gitignore)
|
|
219
|
-
│ ├── token # connect 后生成(已加入 .gitignore)
|
|
220
|
-
│ ├── changelog.md # 更新日志(按日期分节)
|
|
221
|
-
│ ├── Task/ # 每个开发任务一个 md,含需求 / 设计 / 任务标记
|
|
222
|
-
│ ├── lessons/ # 开发经验、踩坑记录、基座局限场景
|
|
223
|
-
│ ├── pages/ navigations/ ... # init 拉取的本地缓存
|
|
224
|
-
│ ├── skill-shared/references/api.json # 多 AI 工具共享的 OpenAPI 快照
|
|
225
|
-
│ └── .version # CLI 写入:当前已装 skill 的版本
|
|
226
|
-
│
|
|
227
|
-
└── (AI 工具 skill 目录,按需写入;每份都是完整副本)
|
|
228
|
-
.claude/skills/draftgo/{SKILL.md, init/, push/, pull/, story/, rules/, scripts/}
|
|
229
|
-
.codex/skills/draftgo/{SKILL.md, ...}
|
|
230
|
-
.gemini/skills/draftgo/{SKILL.md, ...}
|
|
231
|
-
.cursor/commands/draftgo.md + .cursor/commands/draftgo/{...}
|
|
232
|
-
.windsurf/workflows/draftgo.md + .windsurf/workflows/draftgo/{...}
|
|
233
|
-
.agent/workflows/draftgo.md + .agent/workflows/draftgo/{...}
|
|
234
|
-
.kiro/steering/draftgo.md + .kiro/steering/draftgo/{...}
|
|
235
|
-
.github/prompts/draftgo.prompt.md + .github/prompts/draftgo/{...}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
`config.json` 的 `auto_push` 默认是 `false`。AI 在每次完成本地验证后调用 `draftgo auto-push`;仅当你将该值改为 `true` 时,命令才会继续执行 `check → push`。直接执行 `draftgo push` 或 `draftgo deploy` 仍属于显式推送,不受此开关限制。
|
|
239
|
-
|
|
240
|
-
> 渲染时 SKILL.md 中的 `{{SKILL_DIR}}` / `{{SKILL_SCRIPTS}}` 会被替换成当前 AI 工具自身的目录,确保子技能、rules、scripts 引用永远指向同一个工具的副本。CLI **不会** 改写你的 `AGENTS.md` / `GEMINI.md`。
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## v3.0.30 升级要点(自定义服务 AI SDK)
|
|
245
|
-
|
|
246
|
-
- 内置 Skill 补齐 AIHub 推理、Embedding、Agent/Prompt/Skill/MCP 资产 CRUD,以及供应商、模型路由和运行记录接口。
|
|
247
|
-
- 增加知识库、文档、Chunk、长期记忆的 Go SDK 说明,包含文件上传、检索、重建索引和管理员同构入口。
|
|
248
|
-
- 记录 `config.aihub` 推理开关与 Agent/模型白名单,并为全部新 SDK 能力增加文档契约测试。
|
|
249
|
-
|
|
250
|
-
## v3.0.28 升级要点(同步可靠性)
|
|
251
|
-
|
|
252
|
-
- 修复导航 pull:列表元数据会逐条获取详情 HTML,避免空内容覆盖本地导航。
|
|
253
|
-
- 指定 ID 的 pull 改为合并索引;请求失败、详情缺失或响应不完整时返回非零,保留本地缓存。
|
|
254
|
-
- `draftgo push` 支持默认全量推送;`deploy --delivery preview` 使用无副作用的 dry-run 预览。
|
|
255
141
|
|
|
256
|
-
|
|
142
|
+
编辑完整页面、导航或文档正文:
|
|
257
143
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
CLI v2.0.3 补充操作型页面的空间模型,重点解决后台管理 / 表格 / 列表页面按普通文档流布局时,数据少导致分页、保存栏、批量操作区上浮,页面空间利用不足的问题。
|
|
267
|
-
|
|
268
|
-
**核心变化:**
|
|
269
|
-
|
|
270
|
-
- **工作台布局原则**:后台管理、表格、列表、审批、配置、内容维护等操作型页面,优先让页面根容器占满可用视口 / iframe 内容区。
|
|
271
|
-
- **稳定控制区**:顶部筛选、搜索、标题操作区保持稳定高度,底部分页、批量操作栏、保存栏等流程控制区保持在工作区底部或稳定位置。
|
|
272
|
-
- **数据区承接剩余空间**:主体数据区使用 `flex:1; min-height:0; overflow:auto` 等结构承接剩余空间,数据少时保留工作区空白,数据多时优先让数据区内部滚动。
|
|
273
|
-
- **工作台结构同步**:`references/frontend.md` 补充操作型页面的空间方法,基座对应文档为 `docs/frontend/rules.md`,避免分页跟随 1-2 条数据上浮。
|
|
144
|
+
```bash
|
|
145
|
+
draftgo checkout pages 42
|
|
146
|
+
# 编辑 .draftgo/worktree/pages/page_42.html
|
|
147
|
+
draftgo check
|
|
148
|
+
draftgo verify-ui http://localhost:5173 # UI 变更时
|
|
149
|
+
draftgo diff pages 42
|
|
150
|
+
draftgo commit pages 42
|
|
151
|
+
```
|
|
274
152
|
|
|
275
|
-
|
|
153
|
+
只查询长内容时,优先使用 MCP 搜索和片段工具;需要全文分析或编辑时才 checkout。不要要求 MCP 返回完整 HTML 或 Markdown。
|
|
276
154
|
|
|
277
|
-
|
|
155
|
+
结构化资源使用 `draftgo_api_search` / `draftgo_api_describe` 查实时契约,再用 `draftgo_api_call` 操作。AIHub Agent、Prompt、MCP、Skill、供应商和模型路由也属于实时结构化资源,不写本地快照;供应商密钥或 header 值不得出现在 Agent 输出中。
|
|
278
156
|
|
|
279
|
-
|
|
157
|
+
## 命令清单
|
|
280
158
|
|
|
281
|
-
|
|
159
|
+
### Skill 与连接
|
|
282
160
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
161
|
+
| 命令 | 说明 |
|
|
162
|
+
|---|---|
|
|
163
|
+
| `draftgo init [target]...` | 安装 Skill;不传 target 时自动识别,`all` 表示全部。 |
|
|
164
|
+
| `draftgo update [target]...` | 更新全局 CLI,并原子刷新已安装或检测到的 Skill。 |
|
|
165
|
+
| `draftgo uninstall <target|all>` | 移除指定宿主的 Skill;`--purge` 还会删除整个 `.draftgo/`。 |
|
|
166
|
+
| `draftgo status` | 显示已安装宿主和 Skill 版本。 |
|
|
167
|
+
| `draftgo connect [target]...` | 验证并保存 server/SAT,随后配置宿主 MCP;不下载业务资源。 |
|
|
168
|
+
| `draftgo list-targets` | 列出可安装 Skill 的 AI 宿主。 |
|
|
286
169
|
|
|
287
|
-
|
|
170
|
+
### 发现、正文和冲突
|
|
288
171
|
|
|
289
|
-
|
|
172
|
+
| 命令 | 说明 |
|
|
173
|
+
|---|---|
|
|
174
|
+
| `draftgo map` | 通过 MCP 读取远端项目概览和资源列表,再叠加本地 checkout 状态。 |
|
|
175
|
+
| `draftgo checkout <pages|nav|docs> <id...>` | 下载完整正文和 base,校验 hash 后原子落盘;`--force` 可显式覆盖已修改的本地正文。 |
|
|
176
|
+
| `draftgo check` | 只检查 checkout manifest、worktree 文件、base/hash、扩展名、HTML 结构和已 checkout 导航引用。 |
|
|
177
|
+
| `draftgo diff <pages|nav|docs> <id>` | 显示 checkout base 与当前本地正文的差异。 |
|
|
178
|
+
| `draftgo commit <pages|nav|docs> <id...>` | 本地校验后,通过专用 HTTP 上传完整正文并更新 base/manifest。 |
|
|
179
|
+
| `draftgo conflicts` | 列出未解决冲突;存在冲突时返回非零。`--all` 包括已解决记录。 |
|
|
180
|
+
| `draftgo conflict show <type> <id>` | 显示冲突的 base/local/remote/worktree 路径。 |
|
|
181
|
+
| `draftgo conflict resolve <type> <id>` | 确认 worktree 已合并,把保留的 remote 设为新 base;随后重新 check、diff、commit。 |
|
|
182
|
+
| `draftgo verify-ui <url>` | 使用 Playwright 执行确定性的浏览器 smoke check。 |
|
|
290
183
|
|
|
291
|
-
|
|
184
|
+
`pages`、`page`,`nav`、`navigation`、`navigations`,以及 `docs`、`doc`、`article`、`articles`、`docs/articles` 都会规范化到三个支持的正文类型。
|
|
292
185
|
|
|
293
|
-
|
|
186
|
+
### 实时 API 与交付
|
|
294
187
|
|
|
295
|
-
|
|
296
|
-
|
|
188
|
+
| 命令 | 说明 |
|
|
189
|
+
|---|---|
|
|
190
|
+
| `draftgo api <query>` | 通过 MCP `api_search` 查询实时 API 契约。 |
|
|
191
|
+
| `draftgo api search <query>` | `draftgo api <query>` 的显式搜索形式。 |
|
|
192
|
+
| `draftgo api describe <operation_id>` | 通过 MCP `api_describe` 查看指定操作。 |
|
|
193
|
+
| `draftgo delete <operation_id> [id]` | 描述并确认后调用实时 MCP `api_call`;支持 `--params JSON`、`--input file` 和 `--yes`。 |
|
|
194
|
+
| `draftgo deploy [<type> <id...>]` | 先 `check`,再按 delivery 模式检查 diff 或 commit。仅 `--delivery local` 可省略 type/id。 |
|
|
195
|
+
| `draftgo auto-push [<type> <id...>]` | `auto_push: true` 时检查并 commit 已 checkout 的变更;有冲突立即停止。 |
|
|
196
|
+
| `draftgo pull` | 仅输出迁移提示并返回非零;永不下载资源。 |
|
|
197
|
+
| `draftgo push <type> <id...>` | 已弃用;仅对 pages/nav/docs 显示提示后转发到 `commit`。不支持 push-all 或结构化资源。 |
|
|
297
198
|
|
|
298
|
-
|
|
199
|
+
`deploy` 的 `--delivery local` 只运行检查,`preview` 运行检查并显示 diff,`deploy` 运行检查后 commit 指定正文。它不会遍历旧索引。`push --dry-run` 只显示指定正文的 diff。
|
|
299
200
|
|
|
300
|
-
|
|
201
|
+
`auto-push` 不传 id 时只处理 manifest 中已修改的 checkout;项目未连接或 `auto_push` 未启用时安全跳过。
|
|
301
202
|
|
|
302
|
-
|
|
203
|
+
### 本地 DraftGo
|
|
303
204
|
|
|
304
|
-
|
|
205
|
+
| 命令 | 说明 |
|
|
206
|
+
|---|---|
|
|
207
|
+
| `draftgo local setup` | 生成 `.draftgo/docker/docker-compose.yaml`,初始化并启动本地 DraftGo 栈。 |
|
|
208
|
+
| `draftgo local start` | 启动本地栈;`up` 是兼容别名。 |
|
|
209
|
+
| `draftgo local stop` | 停止本地栈;`down` 是兼容别名。 |
|
|
210
|
+
| `draftgo local logs [service...]` | 查看日志;不传服务时跟随 `app`。 |
|
|
211
|
+
| `draftgo local status` | 显示容器状态;`ps` 是兼容别名。 |
|
|
212
|
+
| `draftgo local-dev` | `draftgo local setup` 的兼容入口。 |
|
|
213
|
+
|
|
214
|
+
本地 Docker、MySQL、Redis、Milvus 和 app 生命周期与 MCP/checkout 工作流相互独立。
|
|
215
|
+
|
|
216
|
+
## Worktree 与 manifest
|
|
217
|
+
|
|
218
|
+
```text
|
|
219
|
+
.draftgo/
|
|
220
|
+
├── config.json
|
|
221
|
+
├── worktree/
|
|
222
|
+
│ ├── manifest.json
|
|
223
|
+
│ ├── pages/
|
|
224
|
+
│ ├── navigations/
|
|
225
|
+
│ ├── docs/
|
|
226
|
+
│ └── .base/
|
|
227
|
+
└── conflicts/
|
|
228
|
+
```
|
|
305
229
|
|
|
306
|
-
|
|
307
|
-
- **规则以当前 skill 为准**:开发时优先依据 `SKILL.md`、`rules/`、`init/pull/push/story` 子技能和本地 `.draftgo/` 数据推进。
|
|
308
|
-
- **避免源码级参考漂移**:基座能力变化时,不再依赖 CLI 内置快照推断行为,降低旧 reference 与真实运行时不一致的风险。
|
|
230
|
+
`.draftgo/worktree/manifest.json` 使用 `schema_version: 1`,条目键为规范化类型和 id,例如 `pages:42`。每个条目记录:
|
|
309
231
|
|
|
310
|
-
|
|
232
|
+
- `server`、`resource_type`、`resource_id`
|
|
233
|
+
- `title`、`route` / `code` / `slug`
|
|
234
|
+
- `local_path`、`base_path`
|
|
235
|
+
- `content_type`、`file_extension`、`content_size`
|
|
236
|
+
- `base_version`、`base_revision`、`base_etag`、`base_hash`
|
|
237
|
+
- `checked_out_at`,commit 后还会记录更新时间
|
|
311
238
|
|
|
312
|
-
|
|
239
|
+
已知正文类型保持原始字节和语义:`text/html` 使用 `.html`,Markdown 使用 `.md`,纯文本使用 `.txt`,其他类型使用底座返回且通过安全校验的扩展名。CLI 不转换 HTML、Markdown 或正文编码。
|
|
313
240
|
|
|
314
|
-
|
|
241
|
+
checkout 会通过 MCP 获取元数据和专用下载地址,流式写入临时文件,同时校验 content type、大小和 SHA-256,再原子安装 local/base 并写 manifest。commit 会校验本地结构,携带 checkout 时的 version/revision/ETag,通过专用 HTTP 上传原始正文;完整正文不会成为 MCP tool 参数。
|
|
315
242
|
|
|
316
|
-
|
|
243
|
+
## 冲突处理
|
|
317
244
|
|
|
318
|
-
|
|
319
|
-
- **GSAP 资源改为按需使用**:本地 GSAP 资源仍可用,但 CLI 不再给出使用场景判断。
|
|
320
|
-
- **表格规则去模板化**:不再要求固定搜索、高级筛选、列配置、分页结构,具体界面由 Agent 和本地 UI Skills 判断。
|
|
321
|
-
- **状态规则保留方法约束**:空态、加载态、错误态、成功态必须存在,但具体呈现不由 CLI 指定。
|
|
245
|
+
远端对 commit 返回 HTTP 409/412 时,CLI 不重试、不 force,也不会覆盖 worktree local。它会在以下目录保存冲突材料并返回非零:
|
|
322
246
|
|
|
323
|
-
|
|
247
|
+
```text
|
|
248
|
+
.draftgo/conflicts/<pages|navigations|docs>/<id>/
|
|
249
|
+
├── conflict.json
|
|
250
|
+
├── base.<ext>
|
|
251
|
+
├── local.<ext>
|
|
252
|
+
└── remote.<ext>
|
|
253
|
+
```
|
|
324
254
|
|
|
325
|
-
|
|
255
|
+
处理流程:
|
|
326
256
|
|
|
327
|
-
|
|
257
|
+
1. `draftgo conflict show <type> <id>` 定位三份材料和 worktree 文件。
|
|
258
|
+
2. 在 worktree 文件中人工或借助可靠的三方合并工具完成合并。
|
|
259
|
+
3. `draftgo conflict resolve <type> <id>` 校验 worktree,并把冲突时保存的 remote 版本设为新 base。
|
|
260
|
+
4. 重新运行 `draftgo check`、必要时 `verify-ui`、`draftgo diff`,最后 `draftgo commit`。
|
|
328
261
|
|
|
329
|
-
|
|
262
|
+
## map 与 check 输出
|
|
330
263
|
|
|
331
|
-
|
|
332
|
-
- **页面默认完整功能**:用户说“做一个页面”时,默认按可真实使用的页面功能处理;只有明确说“静态 / 纯页面 / 原型 / 先看效果”时,才按静态页处理。
|
|
333
|
-
- **用户路径链路**:功能规划从“用户打开官网 / 系统入口 → 看见入口 → 点击进入 → 操作 → 反馈 → 后台维护 → 前台展示更新”这一整条链路倒推页面、导航、数据和权限。
|
|
334
|
-
- **新增页面绑定**:创建页面后必须绑定到导航栏、首页入口、后台菜单或相关页面按钮之一;只创建页面文件、无法从正常路径点击进入,不算完成。
|
|
335
|
-
- **真实落地闭环**:按钮、表单、搜索、筛选、分页、保存、删除、发布等交互默认要真实有效;需要可维护内容时,优先规划后台管理和同一份真实数据,追求高可用。
|
|
264
|
+
`draftgo map --output json` 返回:
|
|
336
265
|
|
|
337
|
-
|
|
266
|
+
```json
|
|
267
|
+
{
|
|
268
|
+
"server": "https://draftgo.example",
|
|
269
|
+
"overview": {},
|
|
270
|
+
"resources": [],
|
|
271
|
+
"checkouts": [],
|
|
272
|
+
"legacy_cache": { "ignored": true, "detected": [] }
|
|
273
|
+
}
|
|
274
|
+
```
|
|
338
275
|
|
|
339
|
-
|
|
276
|
+
`draftgo check --output json` 返回 `{ map, errors, warnings, warningDetails, legacy_cache_ignored }`。`--strict` 会把 warnings 也视为失败。`check` 不访问远端,也不会读取旧全量资源索引。
|
|
340
277
|
|
|
341
|
-
##
|
|
278
|
+
## Skill 与领域约定
|
|
342
279
|
|
|
343
|
-
|
|
280
|
+
安装到每个宿主的 DraftGo Skill 包含主 `SKILL.md`、`init` / `push` / `story` 子技能、references,以及 scripts 扩展约束。实时 API 契约以 MCP `api_search` / `api_describe` 为准;references 保留 API 无法表达的领域知识和实践约束。
|
|
344
281
|
|
|
345
|
-
|
|
346
|
-
# 以 Claude Code 安装位置为例(其它工具替换路径前缀即可)
|
|
347
|
-
python .claude/skills/draftgo/scripts/draftgo_init.py --server <url>
|
|
348
|
-
python .claude/skills/draftgo/scripts/draftgo_push.py pages [page_id]
|
|
349
|
-
python .claude/skills/draftgo/scripts/draftgo_push.py nav [nav_id]
|
|
350
|
-
python .claude/skills/draftgo/scripts/draftgo_push.py db_meta [meta_id]
|
|
351
|
-
```
|
|
282
|
+
前端和自定义服务的关键约定仍然适用:
|
|
352
283
|
|
|
353
|
-
|
|
284
|
+
- 壳层源码使用 React 19 + Vite 8 + Tailwind CSS 4;数据库页面和导航使用原生 HTML,不写入 TSX、ESM import 或 npm 构建产物。
|
|
285
|
+
- 内置 UI、图标、Chat SDK、AIHub 结构化输出和页面布局规则见 `resources/skill/references/`。
|
|
286
|
+
- 自定义服务使用 Go `draftgo/sdk`,通过 `Register(app *sdk.App)` 注册 Route、事件和定时任务;管理权限、调用权限、并发和出站请求约束见 `resources/skill/references/custom-services.md`。
|
|
287
|
+
- 自定义服务、数据、AIHub、权限和系统配置通过实时 MCP/API 操作,不从 `.draftgo/*/index.json` 推断远端状态。
|
|
354
288
|
|
|
355
|
-
|
|
289
|
+
`draftgo update` 只刷新 CLI 和 Skill 资源,不覆盖项目的 `.draftgo/config.json`、worktree、冲突材料、Task、lessons 或 changelog。渲染 Skill 时,`{{SKILL_DIR}}` / `{{SKILL_SCRIPTS}}` 会替换为当前宿主目录;CLI 不改写项目的 `AGENTS.md` 或 `GEMINI.md`。
|
|
356
290
|
|
|
357
|
-
##
|
|
291
|
+
## 常用选项
|
|
358
292
|
|
|
359
|
-
|
|
293
|
+
- `--project <dir>`:操作指定项目目录,默认当前目录。
|
|
294
|
+
- `--output json`:为 map、check、checkout、commit、diff、conflicts、conflict、api 或 delete 输出 JSON。
|
|
295
|
+
- `--strict`:check/deploy/auto-push 将 warnings 视为失败。
|
|
296
|
+
- `--force`:init 覆盖已有 Skill;checkout 显式覆盖已修改的本地正文。update 始终刷新目标 Skill。
|
|
297
|
+
- `--purge`:uninstall 时同时删除整个 `.draftgo/` 运行时目录。
|
|
298
|
+
- `--skip-update-check`:update 不访问 npm,直接用当前 CLI 刷新 Skill。
|
|
299
|
+
- `--connect` / `--local-dev` / `--no-setup`:控制 init 安装 Skill 后的基座处理流程。
|
|
300
|
+
- `--target <name,...>`:为 MCP setup/status 指定一个或多个宿主。
|
|
301
|
+
- `--server <url>` / `--token <sat>`:非交互 connect;不传时安全提示输入。
|
|
302
|
+
- `--allow-offline` / `--no-mcp-setup`:允许 connect 在 MCP 暂不可用时保存,或跳过宿主配置。
|
|
303
|
+
- `--yes`:跳过支持该选项的交互确认。
|
|
304
|
+
- `--mobile-check auto|always|never`:控制 `verify-ui` 是否执行。
|
|
305
|
+
- `--screenshot on-failure|always|never`:控制 UI 截图。
|
|
306
|
+
- `--delivery local|preview|deploy`:控制 deploy 行为。
|
|
307
|
+
- `--timeout <ms>`:控制 connect/MCP test 超时。
|
|
360
308
|
|
|
361
|
-
|
|
309
|
+
设置 `DRAFTGO_NO_UPDATE_CHECK=1` 可关闭 npm 版本检查,适用于离线或 CI 环境。
|
|
362
310
|
|
|
363
311
|
## 许可证
|
|
364
312
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "draftgo-cli",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.39",
|
|
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"
|
|
@@ -45,8 +45,12 @@
|
|
|
45
45
|
"lint": "node scripts/check-syntax.js",
|
|
46
46
|
"validate:skill": "node scripts/validate-skill.js",
|
|
47
47
|
"verify:package": "node scripts/verify-package.js",
|
|
48
|
-
"test": "npm run lint && npm run validate:skill && npm run verify:package &&
|
|
48
|
+
"test": "npm run lint && npm run validate:skill && npm run verify:package && npm run test:unit && npm run test:mcp && npm run test:worktree && npm run test:migration && npm run test:local && npm run test:e2e",
|
|
49
49
|
"test:unit": "node tests/unit.js",
|
|
50
|
+
"test:mcp": "node tests/mcp.test.js",
|
|
51
|
+
"test:worktree": "node tests/worktree.test.js",
|
|
52
|
+
"test:migration": "node tests/migration.test.js",
|
|
53
|
+
"test:local": "node tests/local-runtime.js",
|
|
50
54
|
"test:e2e": "node tests/e2e.js"
|
|
51
55
|
},
|
|
52
56
|
"dependencies": {
|