draftgo-cli 1.0.4
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 +249 -0
- package/bin/draftgo.js +9 -0
- package/package.json +70 -0
- package/resources/project-design/README.md +42 -0
- package/resources/skill/SKILL.md +62 -0
- package/resources/skill/init/SKILL.md +41 -0
- package/resources/skill/manifest.json +35 -0
- package/resources/skill/references/ai.md +41 -0
- package/resources/skill/references/app-api.md +97 -0
- package/resources/skill/references/architecture.md +13 -0
- package/resources/skill/references/chat-sdk.md +205 -0
- package/resources/skill/references/checkout.md +140 -0
- package/resources/skill/references/data.md +49 -0
- package/resources/skill/references/db-relations.md +29 -0
- package/resources/skill/references/delivery.md +33 -0
- package/resources/skill/references/development.md +41 -0
- package/resources/skill/references/diagnostics.md +50 -0
- package/resources/skill/references/frontend.md +158 -0
- package/resources/skill/references/mcp.md +110 -0
- package/resources/skill/references/methods.md +143 -0
- package/resources/skill/references/modules.md +75 -0
- package/resources/skill/references/runtime.md +109 -0
- package/resources/skill/references/services.md +32 -0
- package/src/apiContractCache.js +120 -0
- package/src/cli.js +100 -0
- package/src/commandRegistry.js +46 -0
- package/src/commands/api.js +244 -0
- package/src/commands/apiKey.js +30 -0
- package/src/commands/autoPush.js +36 -0
- package/src/commands/capabilities.js +100 -0
- package/src/commands/check.js +82 -0
- package/src/commands/checkout.js +18 -0
- package/src/commands/clean.js +72 -0
- package/src/commands/commit.js +47 -0
- package/src/commands/components.js +554 -0
- package/src/commands/conflict.js +30 -0
- package/src/commands/conflicts.js +16 -0
- package/src/commands/connect.js +91 -0
- package/src/commands/delete.js +95 -0
- package/src/commands/deploy.js +77 -0
- package/src/commands/diff.js +39 -0
- package/src/commands/group.js +37 -0
- package/src/commands/help.js +190 -0
- package/src/commands/init.js +126 -0
- package/src/commands/listTargets.js +13 -0
- package/src/commands/local.js +79 -0
- package/src/commands/map.js +395 -0
- package/src/commands/mcp.js +150 -0
- package/src/commands/reconcile.js +20 -0
- package/src/commands/role.js +31 -0
- package/src/commands/status.js +98 -0
- package/src/commands/uninstall.js +52 -0
- package/src/commands/update.js +79 -0
- package/src/commands/verify.js +188 -0
- package/src/commands/visualVerify.js +281 -0
- package/src/commands/worklog.js +117 -0
- package/src/consoleEncoding.js +34 -0
- package/src/contractCompatibility.js +65 -0
- package/src/detect.js +25 -0
- package/src/diffReport.js +106 -0
- package/src/fsx.js +67 -0
- package/src/index.js +46 -0
- package/src/localRuntime/compose.js +119 -0
- package/src/localRuntime/detect.js +77 -0
- package/src/localRuntime/index.js +211 -0
- package/src/localRuntime/mysqlClient.js +155 -0
- package/src/localRuntime/services.js +117 -0
- package/src/logger.js +37 -0
- package/src/mcp/client.js +558 -0
- package/src/mcp/hosts.js +520 -0
- package/src/mcp/parallel.js +54 -0
- package/src/mcp/protocol.js +223 -0
- package/src/mcp/stdio.js +300 -0
- package/src/mcp/tools.js +51 -0
- package/src/paths.js +32 -0
- package/src/platforms.js +110 -0
- package/src/projectConfig.js +139 -0
- package/src/projectDesign.js +19 -0
- package/src/projectHealth.js +33 -0
- package/src/projectMap.js +220 -0
- package/src/prompt.js +94 -0
- package/src/releaseInstall.js +105 -0
- package/src/runtimeFiles.js +45 -0
- package/src/skill.js +295 -0
- package/src/targets.js +43 -0
- package/src/timeout.js +18 -0
- package/src/updateCheck.js +100 -0
- package/src/worklog.js +276 -0
- package/src/worktree/backend.js +438 -0
- package/src/worktree/errors.js +28 -0
- package/src/worktree/index.js +751 -0
- package/src/worktree/inlineScripts.js +99 -0
- package/src/worktree/locks.js +52 -0
- package/src/worktree/manifest.js +89 -0
- package/src/worktree/status.js +124 -0
- package/src/worktree/streams.js +200 -0
- package/src/worktree/types.js +103 -0
- package/src/worktree/validate.js +37 -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
ADDED
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# DraftGo CLI 1.0.0
|
|
2
|
+
|
|
3
|
+
面向 AI 编码工具的 DraftGo CLI。它负责 Skill 安装、项目连接、System MCP 发现、长正文 checkout/commit、组件开发、统一本地验收和 worklog 记录。
|
|
4
|
+
|
|
5
|
+
## 项目开发
|
|
6
|
+
|
|
7
|
+
以轻量高效为原则,用户描述需求,宿主 Agent 依据 Skill 操作底座。`draftgo init` 只创建根目录 `Design/README.md` 说明页,保留已有文件;模块使用编号文件夹,业务文档和 UI 资料按需建立。
|
|
8
|
+
|
|
9
|
+
用户 Design 保存产品当前及未来目标,`.draftgo/worklog.md` 保存实施范围、状态与证据。新系统先形成最小设计,再实施业务闭环;需求变化直接修订设计,不并列新旧版本或维护“不做什么”清单。设计存在不等于已经实现。CLI 自身的 Design 描述工具能力,与用户产品设计独立。
|
|
10
|
+
|
|
11
|
+
任务恢复用 `draftgo work list --status active --limit 20 --output json` 和 `draftgo work show <日期#序号>`。list 按最新事项优先,支持 `--date`、`--offset`,返回 `next_offset`;show 不带引用时保留完整历史查看能力。备注记录设计路径、需求编号、owner、阻塞和下一步。
|
|
12
|
+
|
|
13
|
+
UI 稿用于必要的视觉讨论;已有页面先准确定位元素,再修改并验收。Git 管理文档和源码历史,DraftGo checkout/commit 操作实例资源,二者不能互相替代。旧 Story 按[开发实践](resources/skill/references/development.md)迁入 Design,新项目不再创建 Story。
|
|
14
|
+
|
|
15
|
+
## 核心规则
|
|
16
|
+
|
|
17
|
+
- 根 Skill 自动加载;Agent 只读取当前任务需要的 Reference。
|
|
18
|
+
- pages、navigations 和 docs/articles 的完整正文使用 `checkout`、worktree、`diff`、`commit`;结构化资源使用 MCP/API。
|
|
19
|
+
- MCP schema 是服务端实时契约。已知 operation 优先使用项目私有缓存;首次使用或 `registry_revision` 变化时 describe。schema 不写入 Skill 或聊天上下文。
|
|
20
|
+
- 独立资源按 owner 并行,CLI 请求使用有界并发;同一资源的依赖步骤保持串行。
|
|
21
|
+
- 每个任务开始记录到 `.draftgo/worklog.md`,验证和交付成功后再标记完成。
|
|
22
|
+
- 已知页面使用 `draftgo map --type pages --route <path>` 或 `--title <title>` 精确定位;只需范围和状态时使用 `--summary`,浏览列表时使用 `--limit`(默认 20)/`--cursor`,不默认全量 map。
|
|
23
|
+
- `--output json` 的 stdout 只包含 UTF-8 JSON;诊断和进度写入 stderr。大变更先用 `draftgo diff --stat` 或 `--summary`。
|
|
24
|
+
|
|
25
|
+
跨板块任务先看[极简方法指南](resources/skill/references/methods.md):它按 AI 能力、知识库/记忆、页面/内容、动态数据、MCP、运行诊断和交付验收给出“适用场景 + 最短正确命令链 + 失败定位 + 完成条件”。动态 operation 不写死;未知契约统一用 `draftgo api search`、`draftgo api describe`、`draftgo api call` 实时发现。
|
|
26
|
+
|
|
27
|
+
## 验收策略
|
|
28
|
+
|
|
29
|
+
普通交付只运行:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
draftgo verify
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
默认验收只做本地检查,不启动浏览器,也不生成截图。用户要求视觉修改或视觉验收时才访问浏览器或截图;两者同时要求时先截图并查看结果,再做交互或 DOM 检查。
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# 截图验收,默认 desktop 1440x900
|
|
39
|
+
draftgo verify --url http://localhost:3000/path --screenshot always
|
|
40
|
+
|
|
41
|
+
# 用户明确要求交互或 DOM 验收
|
|
42
|
+
draftgo verify --url http://localhost:3000/path --ui always
|
|
43
|
+
|
|
44
|
+
# 仅在用户要求时增加移动端
|
|
45
|
+
draftgo verify --url http://localhost:3000/path --screenshot always --viewport both
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`--ui` 和 `--screenshot` 的默认值都是 `never`;截图模式只有 `always` 和 `never`。默认视口是 desktop `1440x900`,移动端为 `390x844`。
|
|
49
|
+
|
|
50
|
+
## 安装与连接
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g draftgo-cli
|
|
54
|
+
cd /path/to/project
|
|
55
|
+
draftgo init
|
|
56
|
+
draftgo connect --server https://draftgo.example --api-key "$DRAFTGO_API_KEY"
|
|
57
|
+
draftgo mcp setup
|
|
58
|
+
draftgo mcp test
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`connect` 会验证当前用户的 DraftGo API Key、MCP initialize、tools/list、Registry search/describe,并通过 `api_call` 读取脱敏的当前 API Key 状态,然后才把连接写入项目私有的 `.draftgo/config.json`。该探测固定为无参数、低风险、非破坏的 GET,不创建或修改业务数据。宿主 MCP 配置只包含 `draftgo mcp serve`,不会保存 API Key。API Key 只代表真实用户,CLI 不附加契约之外的授权字段。
|
|
62
|
+
|
|
63
|
+
本地底座:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
draftgo local setup
|
|
67
|
+
draftgo local start
|
|
68
|
+
draftgo local status
|
|
69
|
+
draftgo local logs app
|
|
70
|
+
draftgo local stop
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 命令
|
|
74
|
+
|
|
75
|
+
### 项目与 Skill
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
draftgo init [target...]
|
|
79
|
+
draftgo update [target...]
|
|
80
|
+
draftgo uninstall <target|all> [--purge]
|
|
81
|
+
draftgo status
|
|
82
|
+
draftgo list-targets
|
|
83
|
+
draftgo connect [target...]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
`draftgo status` 会通过只读 MCP 诊断显示服务连接健康状态、服务版本和 Registry revision;`--output json` 适合读取 `connection.health` 与 `connection.registry_revision`。
|
|
87
|
+
|
|
88
|
+
`draftgo update` 和 `draftgo update all` 只刷新项目中已经安装的 DraftGo Skill,不会升级全局 CLI,也不会因为检测到 `.cursor`、`AGENTS.md` 等工具痕迹而新增配置。`draftgo init` 的自动识别只看宿主自有目录或文件(例如 `.cursor`、`.codex`),不把 `AGENTS.md`、`CLAUDE.md`、`GEMINI.md` 这类可共享说明文件当成安装目标。显式指定 target 时(例如 `draftgo update cursor` 或 `draftgo init cursor`),如果该 Skill 尚未安装,会按你的明确请求直接安装;首次接入请使用 `draftgo init <target>`。
|
|
89
|
+
|
|
90
|
+
### 发现与正文
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
draftgo map [--type pages|nav|docs] [--route <path>] [--title <title>] [--summary] [--limit <1-100>] [--cursor <opaque>] [--output json]
|
|
94
|
+
draftgo checkout <pages|nav|docs> <id...> [--force]
|
|
95
|
+
draftgo check [--remote]
|
|
96
|
+
draftgo verify [<type> <id...>] [visual flags]
|
|
97
|
+
draftgo diff <type> <id> [--stat|--summary] [--output json]
|
|
98
|
+
draftgo commit <type> <id...>
|
|
99
|
+
draftgo refresh <type> <id...>
|
|
100
|
+
draftgo reconcile <type> <id...>
|
|
101
|
+
draftgo conflicts [--all]
|
|
102
|
+
draftgo conflict show <type> <id>
|
|
103
|
+
draftgo conflict resolve <type> <id>
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
`checkout` 下载正文和经过 hash 校验的 base。`commit` 先并发完成所有目标的本地与远端 preflight,全部通过后再并发上传;任何 409/412 都保留 base/local/remote 冲突材料,不 force、不覆盖、不自动合并。
|
|
107
|
+
|
|
108
|
+
`--route`、`--title` 为精确匹配,同时给出时取交集。CLI 可用资源搜索缩小候选,但最终在本地做精确判定;服务端 `resource_search` 只接受通用 `query`,不能传 route/title。`map --summary` 不输出 project overview、资源列表或 hash。`diff --stat` 输出文件与增删行数,`--summary` 输出资源、版本和变更概要;只有不带这两个参数的 diff 才展开正文。
|
|
109
|
+
|
|
110
|
+
### Page 组件库
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
draftgo components search <query> --output json
|
|
114
|
+
draftgo components show <library/component> --output json
|
|
115
|
+
draftgo components expand --page <id> --instance <data-dg-instance>
|
|
116
|
+
draftgo verify pages <id>
|
|
117
|
+
|
|
118
|
+
# 开发组件:commit 保存草稿,publish 显式上线
|
|
119
|
+
draftgo components checkout <library/component>
|
|
120
|
+
draftgo components diff <library/component>
|
|
121
|
+
draftgo components verify <library/component>
|
|
122
|
+
draftgo components commit <library/component>
|
|
123
|
+
draftgo components publish <library/component>
|
|
124
|
+
|
|
125
|
+
# 库管理和标准 ZIP 迁移
|
|
126
|
+
draftgo components libraries list|show|create|update|delete
|
|
127
|
+
draftgo components import <archive.zip> --dry-run
|
|
128
|
+
draftgo components export <library> --file <archive.zip>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`search` 和 `show` 始终读取当前 DraftGo 实例的组件目录,AI 不得按名称猜写 props/slots。Page 以真实根标签和 `data-dg-use="library/component"` 保存活引用,发布新 revision 后刷新自动升级。高度个性化时先 checkout Page,再用 `expand` 固化当前 props、slots、组件/库 CSS、公共资产和 mount 初始化;展开实例变成普通 HTML/CSS/JavaScript,不再随组件升级,仍需经过 `diff -> verify -> commit`。
|
|
132
|
+
|
|
133
|
+
最终版服务端内置 `DraftGo` 组件库(slug 为 `draftgo`),当前包含 47 个组件,目录以实例实时返回为准。常用组件包括 `button`、`input`、`select`、`multi-select`、`switch`、`dialog`、`drawer`、`data-filter-bar`、`data-table`、`data-list`、`pagination`、`date-picker`、`number-input`、`file-upload`、`tabs`、`menu`、`popover`、`tooltip`、`empty-state`、`chat` 等。官方页面中的可见选择器必须使用 `draftgo/select` 或 `draftgo/multi-select`,不要写原生 `<select>`。
|
|
134
|
+
|
|
135
|
+
Page Runtime 的共享资源由最终版 `draftgo` 本地提供:`/assets/adapters/draftgo-components.js`、`/assets/adapters/draftgo-theme.css`、`/assets/tailwindcss.js`、`/assets/icons/`、`/assets/fontawesome/`、`/assets/vendor/{dompurify,marked,highlightjs}/`、`/assets/vendor/gsap/{gsap.min.js,Draggable.min.js}`。`draftgo/chat` 的完整实现直接存放在组件 `Definition.JS`,与其他组件走同一发布和按需解析流程,不存在独立 Chat SDK 静态文件。模型供应商品牌图标位于 `/assets/providers/`,通过 `DraftGoProviderIcons.get(kind)` 查找,未知供应商回退通用图标;不要引用 CDN。历史第三方组件资源不属于最终版契约。
|
|
136
|
+
|
|
137
|
+
### MCP/API
|
|
138
|
+
|
|
139
|
+
`api search` 和 `capabilities list/search` 默认 20 条,支持 `--module`、`--method`、`--limit`、`--cursor`。保留 `next_cursor`,需要更多时继续读取;只有显式 `capabilities audit` 才遍历全部能力。describe 保留完整契约,分页不裁剪接口能力。
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
draftgo mcp setup [target...]
|
|
143
|
+
draftgo mcp status [target...]
|
|
144
|
+
draftgo mcp test
|
|
145
|
+
draftgo mcp serve
|
|
146
|
+
draftgo api <query>
|
|
147
|
+
draftgo api search <query>
|
|
148
|
+
draftgo api describe <operation_id>
|
|
149
|
+
draftgo api call <operation_id> --input <json-file>
|
|
150
|
+
draftgo delete <operation_id> [id] [--params JSON]
|
|
151
|
+
draftgo capabilities list [--module <name>] [--type <module>] [--method <method>]
|
|
152
|
+
draftgo capabilities search <query> [--risk <level>] [--permission <permission>]
|
|
153
|
+
draftgo capabilities show <operation_id>
|
|
154
|
+
draftgo capabilities audit --output json
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
`capabilities --type` 是 `--module` 的简写,用于 Registry module 筛选;它不表示 organization、space、scope 或 `resource_type`。
|
|
158
|
+
|
|
159
|
+
`api call` 对已缓存 operation 直接调用并携带 `registry_revision`。服务端返回 `CONTRACT_CHANGED` 时重新 describe;只读或 operation 契约未变化时最多重试一次,危险 operation 自身契约变化时阻断调用并提示升级 CLI 后重新确认。调用输入必须是 UTF-8 JSON object;输出包含 HTTP status、服务端 code 和 request ID。System MCP 是动态 API 的唯一契约来源,CLI 不固化业务 URL 或请求结构。
|
|
160
|
+
|
|
161
|
+
RBAC 与 API Key 快捷命令:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
draftgo role list
|
|
165
|
+
draftgo group members add --input request.json
|
|
166
|
+
draftgo api-key status
|
|
167
|
+
draftgo api-key rotate
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
`role` 管理 Role 权限模板,`group` 管理用户组及其角色。交互式 CLI、MCP 和普通 HTTP API 均使用当前用户的 API Key,并按同一基础 RBAC 与业务守卫授权;API Key 不能创建或伪造服务身份。未知能力始终通过 `api search/describe/call` 使用实时 Registry,不依赖固化权限表。
|
|
171
|
+
|
|
172
|
+
### 交付与记录
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
draftgo deploy <type> <id...> [--delivery local|preview|deploy]
|
|
176
|
+
draftgo auto-push [<type> <id...>]
|
|
177
|
+
draftgo work start <item>
|
|
178
|
+
draftgo work add <item>
|
|
179
|
+
draftgo work start-item <number|date#number>
|
|
180
|
+
draftgo work wait <number|date#number> [--note <reason>]
|
|
181
|
+
draftgo work complete <number|date#number> [--note <evidence>]
|
|
182
|
+
draftgo work show|list
|
|
183
|
+
draftgo clean [--dry-run|--yes]
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
`draftgo work start <item>` 的文本输出会返回可直接传给后续命令的引用,例如 `Started work item #21 (2026-08-20#21)`。
|
|
187
|
+
|
|
188
|
+
## Worklog
|
|
189
|
+
|
|
190
|
+
`.draftgo/worklog.md` 是任务、进度和完成证据的唯一记录。格式如下:
|
|
191
|
+
|
|
192
|
+
```markdown
|
|
193
|
+
[ 2026-08-09 ]
|
|
194
|
+
1. [ ● ] 实现页面权限
|
|
195
|
+
// 正在开发
|
|
196
|
+
2. [ ] 补充验收
|
|
197
|
+
|
|
198
|
+
[ 2026-08-10 ]
|
|
199
|
+
1. [ √ ] 完成文档
|
|
200
|
+
// draftgo verify、commit 已通过
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
`●` 表示进行中,`?` 表示待确认,`√` 表示已完成。旧空标记仍可读取,对外显示待确认;不自动重写历史。`work add` 新增待确认事项,`work wait` 暂停事项,`work start-item` 恢复。任务相关的验证、冲突或交付失败不能标记完成。
|
|
204
|
+
|
|
205
|
+
## 运行时目录
|
|
206
|
+
|
|
207
|
+
```text
|
|
208
|
+
.draftgo/
|
|
209
|
+
├── config.json
|
|
210
|
+
├── api-contract-cache.json
|
|
211
|
+
├── worklog.md
|
|
212
|
+
├── worktree/
|
|
213
|
+
├── conflicts/
|
|
214
|
+
├── artifacts/
|
|
215
|
+
└── tmp/
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
连接配置、契约缓存、worktree、冲突材料和截图都属于项目运行时数据并写入 `.gitignore`。`.draftgo/tmp/` 可由 `draftgo clean` 清理;需要用户查看的证据放在已注册的 `.draftgo/artifacts/` 下。
|
|
219
|
+
|
|
220
|
+
## Skill 与 Reference
|
|
221
|
+
|
|
222
|
+
Skill 只放稳定的领域知识、项目边界和操作规则;动态 operation schema 由 MCP 提供并缓存在项目运行时。Reference 不拆成更小文件,保留按任务路由、前端运行时、安全、checkout 和 MCP 契约所需的完整上下文,避免过度拆分损失效果。
|
|
223
|
+
|
|
224
|
+
支持的 Skill target 包括 Claude Code、Cursor、Windsurf、Antigravity、Kiro、GitHub Copilot、Codex CLI、Gemini CLI 和 Pi。Pi 的项目级 Skill 安装到 `.agents/skills/draftgo/`,可被 Pi 按 Agent Skills 标准自动发现。
|
|
225
|
+
|
|
226
|
+
## 开发与测试
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
npm run validate:skill
|
|
230
|
+
npm test
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
本地开发要求 Node.js `>=20.19`。浏览器依赖仅在显式视觉验收时使用;普通 `npm test` 不会启动浏览器。
|
|
234
|
+
|
|
235
|
+
许可证:MIT
|
|
236
|
+
|
|
237
|
+
## Install without npm
|
|
238
|
+
|
|
239
|
+
DraftGo can be installed from the China download endpoint. The installer falls back to a GitHub mirror and the official GitHub Release when the primary endpoint is unavailable.
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# macOS / Linux
|
|
243
|
+
curl -fsSL https://draftgo.cn/draftgo-cli/install.sh | sh
|
|
244
|
+
|
|
245
|
+
# Windows PowerShell
|
|
246
|
+
irm https://draftgo.cn/draftgo-cli/install.ps1 | iex
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
The download source can be overridden with `DRAFTGO_INSTALL_BASE_URL`, the GitHub Release mirror with `DRAFTGO_GITHUB_MIRROR`, and the version with `DRAFTGO_VERSION`. The CLI archive includes its npm dependencies but currently requires Node.js >=20.19.
|
package/bin/draftgo.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Promise.resolve(require('../src/index.js').run(process.argv.slice(2)))
|
|
5
|
+
.then((code) => { process.exitCode = Number(code) || 0; })
|
|
6
|
+
.catch((err) => {
|
|
7
|
+
console.error(err && err.stack ? err.stack : String(err));
|
|
8
|
+
process.exitCode = 1;
|
|
9
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "draftgo-cli",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "Install and manage the DraftGo skill across AI coding agents (Claude Code, Codex, Cursor, Windsurf, Antigravity, Copilot, Gemini, Kiro, Pi).",
|
|
5
|
+
"bin": {
|
|
6
|
+
"draftgo": "bin/draftgo.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "src/index.js",
|
|
9
|
+
"engines": {
|
|
10
|
+
"node": ">=20.19"
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"bin/",
|
|
14
|
+
"src/",
|
|
15
|
+
"resources/",
|
|
16
|
+
"!resources/**/__pycache__/**",
|
|
17
|
+
"!resources/**/*.py[cod]",
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"draftgo",
|
|
23
|
+
"skill",
|
|
24
|
+
"cli",
|
|
25
|
+
"claude-code",
|
|
26
|
+
"codex",
|
|
27
|
+
"cursor",
|
|
28
|
+
"windsurf",
|
|
29
|
+
"antigravity",
|
|
30
|
+
"copilot",
|
|
31
|
+
"gemini",
|
|
32
|
+
"kiro",
|
|
33
|
+
"pi"
|
|
34
|
+
],
|
|
35
|
+
"author": "draftgo <cabinai@163.com> (https://github.com/draftgo)",
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"homepage": "https://github.com/draftgo/draftgo-cli#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/draftgo/draftgo-cli/issues"
|
|
40
|
+
},
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/draftgo/draftgo-cli.git"
|
|
44
|
+
},
|
|
45
|
+
"scripts": {
|
|
46
|
+
"lint": "node scripts/check-syntax.js",
|
|
47
|
+
"validate:skill": "node scripts/validate-skill.js",
|
|
48
|
+
"build:release": "node scripts/build-release.js",
|
|
49
|
+
"verify:package": "node scripts/verify-package.js",
|
|
50
|
+
"test": "npm run lint && npm run validate:skill && npm run verify:package && npm run test:unit && npm run test:components && npm run test:capabilities && npm run test:worklog && npm run test:mcp && npm run test:worktree && npm run test:integration && npm run test:local && npm run test:e2e",
|
|
51
|
+
"test:unit": "node tests/unit.js",
|
|
52
|
+
"test:components": "node --test tests/components.test.js",
|
|
53
|
+
"test:capabilities": "node --test tests/capabilities.test.js",
|
|
54
|
+
"test:worklog": "node tests/worklog.test.js",
|
|
55
|
+
"test:mcp": "node --test tests/mcp.test.js",
|
|
56
|
+
"test:worktree": "node tests/worktree.test.js",
|
|
57
|
+
"test:integration": "node tests/integration.test.js",
|
|
58
|
+
"test:local": "node tests/local-runtime.js",
|
|
59
|
+
"test:e2e": "node tests/e2e.js"
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"@grpc/grpc-js": "1.14.1",
|
|
63
|
+
"adm-zip": "0.5.16",
|
|
64
|
+
"parse5": "6.0.1",
|
|
65
|
+
"playwright-core": "1.61.1"
|
|
66
|
+
},
|
|
67
|
+
"directories": {
|
|
68
|
+
"test": "tests"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# 项目设计
|
|
2
|
+
|
|
3
|
+
本目录保存项目当前及未来的目标设计,包括系统概述、愿景、产品目标、业务规则、页面交互和验收条件。初始化时仅提供本文档,具体模块随需求明确逐步建立。
|
|
4
|
+
|
|
5
|
+
## 设计与实现
|
|
6
|
+
|
|
7
|
+
设计呈现最新确定的目标形态,能力可能已经实现,也可能尚待开发。实际进度通过 `.draftgo/worklog.md` 和项目实例检查。愿景提供方向,本轮任务范围由用户需求确定。
|
|
8
|
+
|
|
9
|
+
变化时直接修订正文,保持一套有效设计;不并列维护原版与新版,不追加迭代流水账。正向描述应具备的能力,不设置“不做什么”清单。未确定的设想标为待明确,不能自行扩写成确定需求。
|
|
10
|
+
|
|
11
|
+
## 文档组织
|
|
12
|
+
|
|
13
|
+
- 产品目标明确后创建 `01 产品概述/README.md`,记录愿景、用户、场景和核心流程。
|
|
14
|
+
- 每个模块使用稳定编号的文件夹,例如 `02 客户管理/README.md`。编号用于定位,不代表优先级或开发阶段。
|
|
15
|
+
- 简单模块只需 README;复杂后按需拆出 `01 需求与规则.md`、`02 页面与交互.md` 等文件,不预建空目录。
|
|
16
|
+
- 公共规则出现实际需要后集中定义,模块通过链接引用。新增、移动或拆分文件时更新索引。
|
|
17
|
+
- 模块记录目标、流程、规则、验收条件和未决问题;按需补充数据关系、权限、依赖。需要追踪的需求使用稳定编号,供工作项引用。
|
|
18
|
+
- 动态接口契约通过 CLI 实时发现,不复制 schema、凭据或响应快照到文档。
|
|
19
|
+
|
|
20
|
+
## 页面与 UI
|
|
21
|
+
|
|
22
|
+
涉及页面的模块说明页面用途、路由、关键操作及加载、空数据、错误等状态。简单内容直接写入模块 README。
|
|
23
|
+
|
|
24
|
+
独立 UI 稿按需制作,用于确定视觉方向、复杂布局或用户要求的方案讨论。普通页面与小修改可以直接基于实际页面实现,不强制先画稿。
|
|
25
|
+
|
|
26
|
+
实际产生视觉资料时创建模块内 `UI/`,保存目标稿、原型、参考图或标注材料,并在页面说明中注明用途和对应页面。视觉稿与文字保持一致,不堆积中间版本。验收截图通过 CLI 的 `.draftgo/artifacts/` 机制保存。
|
|
27
|
+
|
|
28
|
+
描述位置模糊时,先定位页面、区域和具体元素;必要时利用实际截图标注候选并澄清。截图帮助定位和验收,不作为默认的整页重建依据。
|
|
29
|
+
|
|
30
|
+
## 阅读与维护
|
|
31
|
+
|
|
32
|
+
Agent 通过索引读取当前模块及相关公共规则,不默认加载全部设计或日志。用户最新明确要求与旧设计冲突时同步修订,有歧义才澄清。公共规则变化时检查受影响模块。
|
|
33
|
+
|
|
34
|
+
不得为了迁就实现擅自删减需求或降低验收条件。修复实现偏差无需修改正确设计。交付时核对设计与结果,将完成范围和证据写入 worklog。
|
|
35
|
+
|
|
36
|
+
## 工作记录与历史
|
|
37
|
+
|
|
38
|
+
`.draftgo/worklog.md` 是任务状态的唯一记录,保存设计引用、进度、阻塞、下一步和完成证据。Design 不重复维护进度看板。项目采用 Git 时由 Git 保存文档历史;Git 回退不自动回退实例资源。
|
|
39
|
+
|
|
40
|
+
## 模块索引
|
|
41
|
+
|
|
42
|
+
尚未建立业务设计。首次形成需求后,在此添加模块链接及职责说明。
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: draftgo
|
|
3
|
+
description: Use this skill to inspect, develop, debug, or deliver a DraftGo application. Read only the task-specific references, locate long-content resources precisely, and use checkout/commit with a project worklog.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DraftGo 开发助手
|
|
7
|
+
|
|
8
|
+
## 开始前
|
|
9
|
+
|
|
10
|
+
- 任务开始即运行 `draftgo work start "<事项>"`;记录 CLI 返回的工作项引用。独立事项用 `draftgo work add`,仅在验证和交付成功后运行 `draftgo work complete <ref> --note "<证据>"`。
|
|
11
|
+
- 根 Skill 会在触发时自动加载;先读取下表中最少必要的 Reference,再用 MCP 查询当前项目。不要预先读取所有 Reference,也不要把动态 operation schema 写入 Skill 或聊天上下文。
|
|
12
|
+
- pages、navigations 与 docs/articles 的完整正文只能通过 `draftgo checkout`、worktree、`draftgo diff`、`draftgo verify` 和 `draftgo commit` 处理;MCP 只用于定位、元数据和结构化资源。不要把完整正文或响应快照写入聊天上下文或手工归档。
|
|
13
|
+
- 已知页面 route 或标题时,用 `draftgo map --type pages --route <path>` 或 `--title <title>` 精确定位;两个筛选条件取交集。只需范围或状态时加 `--summary`;需要浏览时使用 `--limit`(默认 20)和后续 `--cursor`,绝不默认全量枚举。
|
|
14
|
+
- `--output json` 的 stdout 是单一 UTF-8 JSON;诊断和进度走 stderr。不要依赖终端截断来控制上下文。
|
|
15
|
+
- 正常交付只运行 `draftgo verify`。默认跳过 UI;用户要求视觉修改或视觉验收时才使用截图,要求交互或 DOM 验证时才使用 `--ui always`。
|
|
16
|
+
|
|
17
|
+
不要用 MCP 摘要代替完整正文,也不要把 Skill 中列出的 `/assets/` 能力声称为当前服务器全部文件。CLI 不提供页面模板;页面根据任务、受众、现有产品语言和可用资源设计。
|
|
18
|
+
|
|
19
|
+
## 任务路由
|
|
20
|
+
|
|
21
|
+
用户项目的 Design 保存当前及未来目标,worklog 保存实施状态;设计不表示功能已完成。新系统先形成最小设计,需求变化直接修订相关模块,不并列新旧稿或增加“不做什么”清单。新系统、迭代、恢复、UI 定位及多 Agent 协作按需读 `references/development.md`。已有任务优先通过 work list 筛选及 work show <ref> 恢复,不默认读全部日志。
|
|
22
|
+
|
|
23
|
+
需求理解和编排由宿主 Agent 完成,CLI 不提供 build/run/deliver Agent。简单修改直接处理;跨页面与数据任务先确定字段、关系和接口,再实现页面,只读取涉及资源。需要用户决定时执行 `draftgo work wait <ref> --note "<原因>"`,继续时用 `work start-item`。
|
|
24
|
+
|
|
25
|
+
能力搜索默认 20 条,保留 `next_cursor`,结果不足时继续 `--cursor`;`api search` 支持 `--module`、`--method`。摘要仅用于定位,精确 operation 的完整 schema 和完整正文按需读取。不把全量 audit 作为每次任务的起点。
|
|
26
|
+
|
|
27
|
+
| 任务 | 先读 |
|
|
28
|
+
|---|---|
|
|
29
|
+
| 页面、导航、交互或 UI | `references/frontend.md`;涉及 iframe、路由、认证或全局层加读 `runtime.md` / `app-api.md` |
|
|
30
|
+
| pages/nav/docs 正文、版本或冲突 | `references/checkout.md` |
|
|
31
|
+
| 自定义 Go 服务、源码、SDK、草稿或策略 | `references/services.md` |
|
|
32
|
+
| 动态 DB、筛选或关系 | `references/data.md`;复杂关系再读 `db-relations.md` |
|
|
33
|
+
| 模型、提示词、插件、知识库、记忆、智能体或 AI 页面调用 | `references/ai.md`;页面调用再读 `chat-sdk.md` |
|
|
34
|
+
| 角色、用户组、API Key 或其他结构化管理能力 | `references/mcp.md`;业务细节以实时 operation 为准 |
|
|
35
|
+
| MCP 配置、API 契约或故障 | `references/mcp.md`;连接或调用失败时运行 `draftgo mcp test` |
|
|
36
|
+
| 运行失败、日志或请求链路 | `references/diagnostics.md` |
|
|
37
|
+
| 验证、发布或交付验收 | `references/delivery.md` |
|
|
38
|
+
| 跨领域任务且不确定最短链路 | `references/methods.md`,再打开所需领域资料 |
|
|
39
|
+
| 架构、模块选型或陌生项目 | `references/architecture.md`、`references/modules.md`;按 `Design/README.md` 定位用户项目设计 |
|
|
40
|
+
|
|
41
|
+
业务归属、系统资源或页面类型没有元数据时,报告证据不足,不凭标题、路径或片段猜测。页面需求不因出现“页面”二字就默认新建或 checkout:修改已有资源时先唯一定位,确需独立新页面时先通过 MCP 实时 API 创建并取得 ID,再 checkout 正文;多个候选会导致不同产品结果时再向用户澄清。
|
|
42
|
+
|
|
43
|
+
## 长正文与结构化资源
|
|
44
|
+
|
|
45
|
+
1. 精确定位目标后再 checkout;对需要完整分析或编辑的目标批量 checkout,并在 `.draftgo/worktree/` 由唯一 owner 编辑。
|
|
46
|
+
2. 先用 `draftgo diff <type> <id> --stat` 或 `--summary` 判断范围;只有需要审查内容时才展开完整 diff。
|
|
47
|
+
3. 运行所需的 `draftgo verify`,再 commit。409/412 时停止,保留 base/local/remote;不得 force、覆盖或自动合并。
|
|
48
|
+
4. 结构化资源不 checkout:未知 operation 才 search,首次使用或 registry revision 变化时 describe,其余使用缓存后 call;describe 不完整就停止,不猜字段、权限或风险。
|
|
49
|
+
|
|
50
|
+
完整传输、manifest 和冲突规则见 `references/checkout.md`;交付证据见 `references/delivery.md`。
|
|
51
|
+
|
|
52
|
+
## 所有权与安全
|
|
53
|
+
|
|
54
|
+
- 同一文件或 DraftGo 资源全程只能由一个 Agent 修改;不同资源、operation 和 owner 不冲突的单元可以并发,CLI 请求使用有界并发;同一资源的依赖步骤保持串行。主 Agent 负责 owner 分配、汇总、验证、交付和 worklog 状态。
|
|
55
|
+
- 用户 API Key 只保存在 `.draftgo/config.json`,不得进入宿主配置、命令参数、Skill、日志、manifest 或错误消息。宿主 MCP 配置只运行 `draftgo mcp serve`。
|
|
56
|
+
- 页面优先使用可信本地资源;禁止境外 CDN。净化不可信 HTML,关键状态不能只靠颜色或动效表达。页面通过 `window.parent.App` 使用认证、权限、反馈和主题;详细规则见前端与运行时 Reference。
|
|
57
|
+
- API Key 始终代表真实用户;CLI 不创建服务身份,不注入额外授权上下文,也不把 session token 用于 System MCP。未知权限和业务守卫以实时 describe 与服务端响应为准。
|
|
58
|
+
- `.draftgo/tmp/` 可清理;先运行 `draftgo clean --dry-run`,再在需要时使用 `--yes`。用户可查验的证据放入已注册的 `.draftgo/artifacts/`。
|
|
59
|
+
|
|
60
|
+
## 完成条件
|
|
61
|
+
|
|
62
|
+
每个目标均有与其类型相符的证据:正文有 checkout、验证、commit 返回的版本/哈希及必要远端回读;结构化资源有 describe、写入结果和回读。任何验证失败、409/412 或交付失败都不得标记为完成;任何 verify、写入、回读或要求的视觉验收失败时,工作项保持 active。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: draftgo-init
|
|
3
|
+
description: Install or refresh the DraftGo skill, connect a project to a DraftGo base, and configure or diagnose its project-level MCP host integration.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# DraftGo 初始化
|
|
7
|
+
|
|
8
|
+
使用公开 CLI 完成安装和连接;不要直接调用已删除的同步脚本,也不要创建全量业务镜像。
|
|
9
|
+
|
|
10
|
+
## 执行
|
|
11
|
+
|
|
12
|
+
1. 运行 draftgo status 查看已安装目标、Skill 版本和项目连接状态。
|
|
13
|
+
2. 需要查看宿主能力时运行 draftgo list-targets;不要假设每个宿主都支持项目级 MCP。
|
|
14
|
+
3. 尚未安装时运行 draftgo init [target...];不指定 target 时只按宿主自有目录自动识别,不因 AGENTS.md 等共享文件安装全部工具。需要全部宿主时才使用 draftgo init all。
|
|
15
|
+
4. 已安装但需要刷新时运行 draftgo update;它只覆盖已安装 Skill,不升级 CLI,也不按工具痕迹新增宿主。新增某个工具时显式运行 draftgo init <target> 或 draftgo update <target>。
|
|
16
|
+
5. 项目缺少 .draftgo/config.json 时选择基座:
|
|
17
|
+
- 已有 DraftGo 服务器:运行 draftgo connect。
|
|
18
|
+
- 需要本地 Docker 基座:运行 draftgo local setup。
|
|
19
|
+
6. 连接后运行 draftgo mcp setup(或指定目标),再运行 draftgo mcp test 验证 initialize、tools/list 和关键工具。
|
|
20
|
+
7. 根 Skill 自动加载后,按实际任务读取最少必要的 Reference,并通过 MCP project_overview、resource_search 或 api_search 获取实时信息;需要叠加本地 checkout 状态时运行 `draftgo map`。MCP 不可用时报告原因。
|
|
21
|
+
|
|
22
|
+
draftgo init 只负责 Skill 安装;draftgo connect 负责保存并验证 server/API Key;draftgo mcp setup 负责宿主配置。不要混用职责。
|
|
23
|
+
|
|
24
|
+
初始化创建用户项目 `Design/README.md` 说明页并保留已有文件,不预建业务模块或 UI 目录。用户设计与 CLI 自身 Design 分开。初始化后 `.draftgo/` 只保留已经写入的 `config.json`。不要预建 worklog、lessons、worktree、conflicts 或其他占位文件和目录;首次实际使用对应能力时再创建。
|
|
25
|
+
|
|
26
|
+
## API Key 与配置
|
|
27
|
+
|
|
28
|
+
- 交互式连接使用当前用户的 DraftGo API Key 和隐藏输入;不要把 API Key 写入宿主配置、Skill 文件、命令行示例或日志。
|
|
29
|
+
- .draftgo/config.json、checkout manifest、base 和冲突目录必须加入项目 .gitignore。
|
|
30
|
+
- bridge 从当前项目配置读取 API Key;宿主配置只引用 draftgo mcp serve。
|
|
31
|
+
|
|
32
|
+
## 后续动作
|
|
33
|
+
|
|
34
|
+
- 宿主配置和诊断:draftgo mcp setup/status/test,详见 ../references/mcp.md。
|
|
35
|
+
- 开发准备:根 Skill 自动加载;按任务路由读取最少必要的 Reference,再按需直接调用 MCP。
|
|
36
|
+
- 远端资源补充定位:MCP project_overview、resource_search、resource_list。
|
|
37
|
+
- 正文编辑:遵循根 Skill 的 checkout/commit 与统一验证策略。
|
|
38
|
+
- 结构化资源:直接使用 MCP 的 api_search、api_describe、api_call;不 checkout、不生成本地镜像。
|
|
39
|
+
- 工作记录:开发开始时运行 `draftgo work start "<事项>"`;只有统一验证且全部 commit/MCP 交付成功后运行 `draftgo work complete <编号> --note "<结果>"`。验证、冲突或交付失败时不得标记为完成。
|
|
40
|
+
- 管理本地基座:draftgo local setup|start|stop|logs|status。
|
|
41
|
+
- 移除指定目标:draftgo uninstall <target>;完整移除所有目标只在用户明确要求时运行 draftgo uninstall all,--purge 会删除 .draftgo/。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"id": "draftgo",
|
|
4
|
+
"name": "DraftGo 开发助手",
|
|
5
|
+
"version": "1.0.4",
|
|
6
|
+
"entry": "SKILL.md",
|
|
7
|
+
"description": "以 Skill/reference 任务路由、MCP 实时发现、长正文 checkout/commit、统一验证和完成日志为边界的 DraftGo 工作流。",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"capabilities": [
|
|
10
|
+
"draftgo-development",
|
|
11
|
+
"reference-routing",
|
|
12
|
+
"worklog-tracking",
|
|
13
|
+
"minimal-method-guides",
|
|
14
|
+
"ai-knowledge-memory",
|
|
15
|
+
"mcp-bridge",
|
|
16
|
+
"content-checkout-commit",
|
|
17
|
+
"runtime-diagnostics",
|
|
18
|
+
"delivery-acceptance",
|
|
19
|
+
"conflict-safe-delivery",
|
|
20
|
+
"project-validation",
|
|
21
|
+
"skill-installation"
|
|
22
|
+
],
|
|
23
|
+
"permissions": [
|
|
24
|
+
"process:run",
|
|
25
|
+
"network:explicit"
|
|
26
|
+
],
|
|
27
|
+
"resources": {
|
|
28
|
+
"references": [
|
|
29
|
+
"references"
|
|
30
|
+
],
|
|
31
|
+
"subskills": [
|
|
32
|
+
"init"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
read_when: 管理模型、提示词、插件、知识库、记忆或智能体时 · 调试 AI 调用与运行记录时
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# DraftGo AI 能力
|
|
6
|
+
|
|
7
|
+
## 模块边界
|
|
8
|
+
|
|
9
|
+
最终版 AI 板块由模型、提示词、插件、知识库、长期记忆和智能体组成。它们都是结构化远端资源,使用实时 Registry Operation 管理,不 checkout、不生成本地镜像,也不通过动态 DB 重建。
|
|
10
|
+
|
|
11
|
+
- 模型负责 Provider、逻辑模型、路由和统一调用网关。
|
|
12
|
+
- 提示词负责版本化内容和发布状态。
|
|
13
|
+
- 插件负责 Skill 与外部 MCP 扩展。
|
|
14
|
+
- 知识库负责资料导入、切分、索引、检索和重建。
|
|
15
|
+
- 长期记忆负责智能体运行过程中提炼和召回的记忆。
|
|
16
|
+
- 智能体组合模型、提示词、插件、知识库与记忆。
|
|
17
|
+
|
|
18
|
+
模块之间通过明确 ID 和服务端规则组合。不要在客户端复制模型路由、插件执行、知识检索、记忆写入或智能体编排逻辑。
|
|
19
|
+
|
|
20
|
+
## 最短流程
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
draftgo api search "<model|prompt|plugin|knowledge|memory|agent>"
|
|
24
|
+
draftgo api describe <operation_id>
|
|
25
|
+
draftgo api call <operation_id> --input request.json --output json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
已有精确 `operation_id` 时跳过 search。首次使用或 Registry revision 变化时 describe;输入只包含 `input_schema` 声明的 `path`、`query` 和 `body`。写入后使用对应 get/list Operation 回读目标 ID;任务涉及运行行为时,再调用运行 Operation 并按 run ID 或 request ID 查询日志。
|
|
29
|
+
|
|
30
|
+
## 开发规则
|
|
31
|
+
|
|
32
|
+
- Provider 密钥、上游 Authorization、API Key 和原始敏感响应不得进入 Skill、请求示例、日志或项目文件。
|
|
33
|
+
- 权限、风险、幂等性、能力名和状态枚举全部以实时 describe 为准,不使用历史权限前缀或字段表。
|
|
34
|
+
- 模型是否支持 Chat、Responses、Embedding、Rerank、TTS、ASR、图片或视频,必须由当前模型声明、Provider readiness 和有效路由共同证明。
|
|
35
|
+
- 知识库和长期记忆用途不同,不能互相替代;索引完成不等于检索质量达标。
|
|
36
|
+
- 智能体调用失败时分层检查模型路由、提示词版本、插件可用性、知识检索、记忆配置和运行日志,不在客户端自动重放非幂等调用。
|
|
37
|
+
- DraftGo Page 的 AI 对话使用组件目录中的 `draftgo/chat`;完整 Chat 实现由组件 `Definition.JS` 随同一 revision 发布并按需解析,不存在第二套静态 SDK。其他模型能力(包括图片、Embedding、Rerank、TTS、ASR 和 Video)通过服务端 AI Registry 调用。浏览器端不得持有 Provider 密钥,也不要复制一套客户端 Provider SDK。
|
|
38
|
+
|
|
39
|
+
## 完成条件
|
|
40
|
+
|
|
41
|
+
结构化配置任务必须有 describe、写入结果和回读证据。调用任务还必须证明运行成功,并能通过 run ID 或 request ID 关联日志;知识任务需要最小检索验证;任何输出均不得泄露凭据。
|