@alpacachen/dsh-kanban 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -119
- package/README.zh.md +48 -114
- package/index.js +136 -92
- package/lib/client.js +482 -12
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -2,171 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-kanban
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### Plan with AI. Move work forward visually.
|
|
6
6
|
|
|
7
|
-
A
|
|
7
|
+
A collaborative kanban board where you and your AI agent plan, organize, and ship work together—without leaving DeepSeek Harness.
|
|
8
8
|
|
|
9
|
-
[
|
|
9
|
+
[](https://www.npmjs.com/package/@alpacachen/dsh-kanban)
|
|
10
|
+

|
|
11
|
+

|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
[简体中文](README.zh.md) · **English**
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
</div>
|
|
14
16
|
|
|
15
17
|
<p align="center">
|
|
16
18
|
<img src="./image.png" alt="dsh-kanban board inside DeepSeek Harness" width="100%">
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## ✨ From conversation to action
|
|
22
|
+
|
|
23
|
+
Stop copying AI-generated plans into a separate project tracker. Tell your agent what you want to build, and watch it turn the plan into cards, priorities, labels, and workflow updates on the **Board** tab.
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
- **Stay in control** — edit cards, drag work between lists, reorder your workflow, and filter by priority from the UI.
|
|
23
|
-
- **Keep projects separate** — every DSH workspace gets its own board and persisted data.
|
|
24
|
-
- **Feel at home in DSH** — the board follows the active language and theme, including dark mode.
|
|
25
|
-
- **Install and go** — the browser bundle is prebuilt; no frontend toolchain or native build step is required.
|
|
25
|
+
You can take over at any time—drag a card, refine a note, reorder a list—and the agent immediately works from the same board.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
| 💬 Plan naturally | 🧭 Stay in control | ⚡ Start instantly |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| Manage the board with 14 built-in `kanban_*` tools. | Edit, drag, prioritize, label, and filter from the UI. | Install the prebuilt plugin—no frontend setup required. |
|
|
30
|
+
| **🗂️ Keep work separate** | **🌓 Feel at home** | **🤝 Share one source of truth** |
|
|
31
|
+
| Every DSH workspace gets its own board. | Follows your DSH language, theme, and dark mode. | You and the agent always see the same tasks and status. |
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
## 🚀 Get started
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
### 1. Install
|
|
32
36
|
|
|
33
37
|
```sh
|
|
34
38
|
dsh plugin --profile web add @alpacachen/dsh-kanban
|
|
35
39
|
```
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Restart `dsh web` after installation so the plugin bundle is loaded. To confirm that it was added successfully:
|
|
41
|
+
Restart `dsh web` so the plugin bundle is loaded. You can confirm the installation with:
|
|
40
42
|
|
|
41
43
|
```sh
|
|
42
44
|
dsh --profile web --dump-config
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
Look for a `dsh-kanban` layer in the output.
|
|
48
|
+
|
|
49
|
+
### 2. Open your board
|
|
46
50
|
|
|
47
|
-
|
|
51
|
+
Enter any workspace and choose the **Board** tab beside the conversation views. A fresh board starts with four familiar stages:
|
|
48
52
|
|
|
49
|
-
|
|
53
|
+
`Todo` → `In Progress` → `Review` → `Done`
|
|
50
54
|
|
|
51
|
-
### 3.
|
|
55
|
+
### 3. Ask your agent to plan
|
|
52
56
|
|
|
53
|
-
Try
|
|
57
|
+
Try this:
|
|
54
58
|
|
|
55
|
-
> Break the authentication feature into implementation tasks,
|
|
59
|
+
> Break the authentication feature into implementation tasks, create one card per step, and mark the security review as P0.
|
|
56
60
|
|
|
57
|
-
The
|
|
61
|
+
The cards appear directly on your board. Continue in conversation, or switch to the Board tab and shape the plan by hand.
|
|
58
62
|
|
|
59
|
-
##
|
|
63
|
+
## 🧩 Everything you need to keep work moving
|
|
60
64
|
|
|
61
|
-
###
|
|
65
|
+
### On the Board
|
|
62
66
|
|
|
63
67
|
- Create, edit, delete, and drag cards between lists
|
|
64
68
|
- Add notes, labels, and P0 / P1 / P2 priorities
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
The plugin makes these tools available automatically in every workspace conversation:
|
|
73
|
-
|
|
74
|
-
| Area | Tools |
|
|
75
|
-
| --- | --- |
|
|
76
|
-
| Board | `kanban_get` |
|
|
77
|
-
| Cards | `kanban_get_card`, `kanban_add_card`, `kanban_update_card`, `kanban_delete_card`, `kanban_move_card` |
|
|
78
|
-
| Lists | `kanban_add_column`, `kanban_rename_column`, `kanban_delete_column`, `kanban_move_column` |
|
|
79
|
-
| Labels | `kanban_get_label`, `kanban_add_label`, `kanban_update_label`, `kanban_delete_label` |
|
|
69
|
+
- Open a card's activity timeline to see when it changed, what changed, and whether you or the agent made the change
|
|
70
|
+
- Track card creation, moves, title and note edits, label changes, and priority changes
|
|
71
|
+
- Send any card to the agent in your current conversation or a new one
|
|
72
|
+
- Create, rename, reorder, and remove workflow lists
|
|
73
|
+
- Create color-coded labels for fast visual scanning
|
|
74
|
+
- Filter the entire board by priority, or manually refresh it whenever needed
|
|
80
75
|
|
|
81
|
-
|
|
76
|
+
### Continue any card with your agent
|
|
82
77
|
|
|
83
|
-
-
|
|
84
|
-
- “Move ‘Fix login redirect’ to In Progress and set it to P0.”
|
|
85
|
-
- “Add a Blocked list after In Progress.”
|
|
86
|
-
- “Create a red Urgent label and apply it to the release card.”
|
|
87
|
-
|
|
88
|
-
## Data and persistence
|
|
89
|
-
|
|
90
|
-
Boards are isolated by workspace and stored through the DSH filesystem service as `kanban-board-<workspaceId>.json`. They survive browser refreshes and DSH restarts, and uninstalling the plugin does not delete existing board data.
|
|
91
|
-
|
|
92
|
-
### Schema versioning and safe migration
|
|
93
|
-
|
|
94
|
-
Persisted files carry a `schemaVersion` field (currently `1`). Files written by older versions (without a version field) are treated as `v0` and are **automatically upgraded the first time the workspace board is opened** — the pre-upgrade file is copied to `kanban-board-<workspaceId>.json.bak-v0` first, then the upgraded file is written back. Future format changes simply bump `SCHEMA_VERSION` and register a step-by-step migration function in `MIGRATIONS` (`index.js`).
|
|
95
|
-
|
|
96
|
-
#### Adding a future format version (e.g. v2)
|
|
97
|
-
|
|
98
|
-
Migration functions live in `MIGRATIONS` in `index.js` and are pure functions — they transform data only, never touch the filesystem or runtime state. Each step upgrades by exactly one version; `migrateBoard` chains them automatically, so a `v0` file walks `v0 → v1 → v2`. Backups and write-back are handled by the load pipeline.
|
|
99
|
-
|
|
100
|
-
```js
|
|
101
|
-
export const SCHEMA_VERSION = 2 // 1) bump the version
|
|
102
|
-
|
|
103
|
-
export const MIGRATIONS = {
|
|
104
|
-
0: (data) => ({ /* existing v0 → v1, unchanged */ }),
|
|
105
|
-
1: (data) => ({
|
|
106
|
-
schemaVersion: 2, // 2) output must declare the new version
|
|
107
|
-
columns: data.columns,
|
|
108
|
-
labels: data.labels,
|
|
109
|
-
cards: data.cards.map((c) => ({ ...c, labelId: c.label ?? null })), // e.g. label → labelId
|
|
110
|
-
}),
|
|
111
|
-
}
|
|
112
|
-
```
|
|
78
|
+
Open a card and choose **Chat with agent**. dsh-kanban carries its ID, title, label, and notes into either the current conversation or a fresh one, so the agent has the context it needs immediately. The content is inserted as an editable draft—it is never sent until you choose to send it.
|
|
113
79
|
|
|
114
|
-
|
|
80
|
+
### In conversation
|
|
115
81
|
|
|
116
|
-
|
|
82
|
+
The plugin automatically gives the agent these tools in every workspace:
|
|
117
83
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
## How it works
|
|
125
|
-
|
|
126
|
-
`dsh-kanban` uses the standard DSH bundle format:
|
|
127
|
-
|
|
128
|
-
- `index.js` registers the agent tools and the `/api/kanban` browser endpoint.
|
|
129
|
-
- Both interfaces share one data layer, so the agent and the Board tab always operate on the same board.
|
|
130
|
-
- `cordis.patch.yml` adds the plugin to the selected DSH profile.
|
|
131
|
-
- `lib/client.js` is the prebuilt web client loaded by DSH.
|
|
132
|
-
|
|
133
|
-
The client is built with React, TypeScript, Tailwind CSS, shadcn/ui, Radix UI, and dnd-kit. React itself is provided by DSH, keeping the distributed bundle smaller and avoiding duplicate runtimes.
|
|
134
|
-
|
|
135
|
-
## Development
|
|
136
|
-
|
|
137
|
-
Requirements: Node.js and pnpm.
|
|
138
|
-
|
|
139
|
-
```sh
|
|
140
|
-
pnpm install
|
|
141
|
-
pnpm build
|
|
142
|
-
pnpm typecheck
|
|
143
|
-
```
|
|
84
|
+
| Area | Tools |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| **Board** | `kanban_get` |
|
|
87
|
+
| **Cards** | `kanban_get_card`, `kanban_add_card`, `kanban_update_card`, `kanban_delete_card`, `kanban_move_card` |
|
|
88
|
+
| **Lists** | `kanban_add_column`, `kanban_rename_column`, `kanban_delete_column`, `kanban_move_column` |
|
|
89
|
+
| **Labels** | `kanban_get_label`, `kanban_add_label`, `kanban_update_label`, `kanban_delete_label` |
|
|
144
90
|
|
|
145
|
-
|
|
91
|
+
## 💡 Things to ask your agent
|
|
146
92
|
|
|
147
|
-
|
|
148
|
-
node build.mjs --no-minify
|
|
149
|
-
```
|
|
93
|
+
> “Summarize what is currently in progress.”
|
|
150
94
|
|
|
151
|
-
|
|
95
|
+
> “Move ‘Fix login redirect’ to In Progress and set it to P0.”
|
|
152
96
|
|
|
153
|
-
|
|
154
|
-
index.js # Host plugin, tools, persistence, and HTTP endpoint
|
|
155
|
-
cordis.patch.yml # DSH bundle patch
|
|
156
|
-
build.mjs # Client build script
|
|
157
|
-
src/client/ # React and TypeScript source
|
|
158
|
-
lib/client.js # Generated locally or by CI; included only in the npm package
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Contributing
|
|
97
|
+
> “Add a Blocked list after In Progress.”
|
|
162
98
|
|
|
163
|
-
|
|
99
|
+
> “Create a red Urgent label and apply it to the release card.”
|
|
164
100
|
|
|
165
|
-
|
|
101
|
+
> “I'm a lawyer. Set up a board for my day-to-day casework, create the workflow stages and labels I’ll need, and keep them up to date as my work evolves.”
|
|
166
102
|
|
|
167
|
-
|
|
168
|
-
dsh plugin --profile web remove @alpacachen/dsh-kanban
|
|
169
|
-
```
|
|
103
|
+
You do not need to design the workflow first. Tell the agent your role, situation, or goal, and it can create suitable stages and labels—then keep refining them as you work.
|
|
170
104
|
|
|
171
105
|
## License
|
|
172
106
|
|
package/README.zh.md
CHANGED
|
@@ -2,171 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
# dsh-kanban
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### 和 AI 一起规划,让每一步进展清晰可见。
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
一块真正由你和 AI Agent 共同维护的项目看板——从想法、任务拆解到推进交付,全程无需离开 DeepSeek Harness。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
[](https://www.npmjs.com/package/@alpacachen/dsh-kanban)
|
|
10
|
+

|
|
11
|
+

|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
**简体中文** · [English](README.md)
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
</div>
|
|
14
16
|
|
|
15
17
|
<p align="center">
|
|
16
18
|
<img src="./image.png" alt="DeepSeek Harness 中的 dsh-kanban 看板界面" width="100%">
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
|
-
##
|
|
21
|
+
## ✨ 从一句话,到一块能执行的看板
|
|
22
|
+
|
|
23
|
+
不必再把 AI 生成的计划手动搬进项目管理工具。告诉 Agent 你想完成什么,它就能在 **「看板」** 标签页中拆分任务、创建卡片、设置优先级和更新进度。
|
|
20
24
|
|
|
21
|
-
|
|
22
|
-
- **一切仍由你掌控**:编辑卡片、跨列拖拽、调整工作流,或按优先级筛选任务。
|
|
23
|
-
- **项目之间互不干扰**:每个 DSH 工作区都有独立看板,并自动持久化数据。
|
|
24
|
-
- **自然融入 DSH**:界面跟随当前语言和主题,也支持暗色模式。
|
|
25
|
-
- **安装后即可使用**:浏览器端已预构建,不需要额外配置前端工具链,也没有原生构建步骤。
|
|
25
|
+
你也可以随时接手:拖动卡片、补充备注、调整列表。你和 Agent 始终面对同一块看板、同一份进度。
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
| 💬 自然对话 | 🧭 随时掌控 | ⚡ 开箱即用 |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| 通过 14 个 `kanban_*` 工具直接管理任务。 | 在界面中编辑、拖拽、标记和筛选卡片。 | 浏览器端已预构建,无需配置前端环境。 |
|
|
30
|
+
| **🗂️ 项目隔离** | **🌓 原生体验** | **🤝 实时协作** |
|
|
31
|
+
| 每个 DSH 工作区都有自己的独立看板。 | 自动跟随 DSH 的语言、主题与暗色模式。 | 你做的调整,Agent 立即可见;反之亦然。 |
|
|
28
32
|
|
|
29
|
-
|
|
33
|
+
## 🚀 三步开始使用
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
### 1. 安装
|
|
32
36
|
|
|
33
37
|
```sh
|
|
34
38
|
dsh plugin --profile web add @alpacachen/dsh-kanban
|
|
35
39
|
```
|
|
36
40
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
安装后重启 `dsh web`,让插件 bundle 在启动时加载。可以通过下面的命令确认配置:
|
|
41
|
+
安装后重启 `dsh web`,让插件 bundle 完成加载。你可以用下面的命令确认安装结果:
|
|
40
42
|
|
|
41
43
|
```sh
|
|
42
44
|
dsh --profile web --dump-config
|
|
43
45
|
```
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
如果输出中包含 `dsh-kanban` 配置层,就说明安装成功。
|
|
46
48
|
|
|
47
49
|
### 2. 打开看板
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
进入任意工作区,点击会话视图旁的 **「看板」** 标签页。新看板已经准备好四个常用阶段:
|
|
52
|
+
|
|
53
|
+
`Todo` → `In Progress` → `Review` → `Done`
|
|
50
54
|
|
|
51
55
|
### 3. 让 Agent 开始规划
|
|
52
56
|
|
|
53
57
|
试试这样说:
|
|
54
58
|
|
|
55
|
-
>
|
|
59
|
+
> 把登录功能拆成具体的实现任务,每一步创建一张卡片,并把安全审查标为 P0。
|
|
56
60
|
|
|
57
|
-
|
|
61
|
+
任务会直接出现在看板中。你可以继续通过对话推进,也可以切换到看板,用拖拽和编辑完善计划。
|
|
58
62
|
|
|
59
|
-
##
|
|
63
|
+
## 🧩 推进工作需要的能力,都在这里
|
|
60
64
|
|
|
61
65
|
### 在「看板」标签页中
|
|
62
66
|
|
|
63
67
|
- 创建、编辑、删除卡片,并将卡片拖到其他列表
|
|
64
68
|
- 为卡片补充备注、标签和 P0 / P1 / P2 优先级
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
+
- 打开卡片活动时间线,查看变更时间、具体内容,以及操作来自你还是 Agent
|
|
70
|
+
- 追踪卡片创建、移动、标题与备注编辑、标签变化和优先级变化
|
|
71
|
+
- 从任意卡片发起对话,在当前会话或新会话中让 Agent 接着处理
|
|
72
|
+
- 创建、重命名、排序和删除工作流列表
|
|
73
|
+
- 创建彩色标签,让不同任务一眼可辨
|
|
74
|
+
- 按优先级筛选整个看板,也可以随时手动刷新
|
|
75
|
+
|
|
76
|
+
### 从任意卡片继续与 Agent 协作
|
|
77
|
+
|
|
78
|
+
打开卡片并选择 **「与 Agent 聊一聊」**,dsh-kanban 会把卡片 ID、标题、标签和备注带入当前会话或一个新会话,让 Agent 立即获得完整上下文。内容只会填入输入框作为可编辑草稿,由你确认后发送,不会自动提交。
|
|
69
79
|
|
|
70
80
|
### 在对话中
|
|
71
81
|
|
|
72
|
-
|
|
82
|
+
插件会自动为每个工作区中的 Agent 提供以下工具:
|
|
73
83
|
|
|
74
84
|
| 范围 | 工具 |
|
|
75
85
|
| --- | --- |
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
81
|
-
你还可以这样使用:
|
|
82
|
-
|
|
83
|
-
- 「总结一下目前正在进行的任务。」
|
|
84
|
-
- 「把『修复登录跳转』移到进行中,并设为 P0。」
|
|
85
|
-
- 「在进行中后面新增一个阻塞列表。」
|
|
86
|
-
- 「创建一个红色的『紧急』标签,并加到发布卡片上。」
|
|
87
|
-
|
|
88
|
-
## 数据与持久化
|
|
89
|
-
|
|
90
|
-
看板按工作区隔离,并通过 DSH 文件系统服务保存为 `kanban-board-<workspaceId>.json`。刷新页面或重启 DSH 都不会丢失数据;卸载插件时,已有的看板数据也会保留。
|
|
91
|
-
|
|
92
|
-
### 版本化与安全迁移
|
|
93
|
-
|
|
94
|
-
持久化文件带 `schemaVersion` 字段(当前为 `1`)。旧版本插件写入的文件(无版本字段)按 `v0` 处理,在**该工作区看板首次打开时自动升级**——先复制出 `kanban-board-<workspaceId>.json.bak-v0` 备份,再写回升级后的文件。后续格式演进只需递增 `SCHEMA_VERSION` 并在 `MIGRATIONS`(`index.js`)里注册逐版本迁移函数。
|
|
95
|
-
|
|
96
|
-
#### 新增一个格式版本(以 v2 为例)
|
|
97
|
-
|
|
98
|
-
迁移函数写在 `index.js` 的 `MIGRATIONS` 注册表里,必须是**纯函数**——只做数据变换,不触碰文件系统或运行时状态。每步只升级一个版本,`migrateBoard` 会自动串联,v0 文件会依次走 `v0 → v1 → v2`;备份与写回由加载管线处理,无需手写脚本。
|
|
99
|
-
|
|
100
|
-
```js
|
|
101
|
-
export const SCHEMA_VERSION = 2 // 1) 递增版本号
|
|
102
|
-
|
|
103
|
-
export const MIGRATIONS = {
|
|
104
|
-
0: (data) => ({ /* 现有 v0 → v1,保持不变 */ }),
|
|
105
|
-
1: (data) => ({
|
|
106
|
-
schemaVersion: 2, // 2) 输出必须声明新版本号
|
|
107
|
-
columns: data.columns,
|
|
108
|
-
labels: data.labels,
|
|
109
|
-
cards: data.cards.map((c) => ({ ...c, labelId: c.label ?? null })), // 例如 label → labelId
|
|
110
|
-
}),
|
|
111
|
-
}
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
如果磁盘形状发生变化,同步更新 `index.js` 里的 `validateBoard` 与 `src/client/lib/types.ts` 的客户端类型,并在 `scripts/check-schema.mjs` / `scripts/check-pipeline.mjs` 中补充自检用例。
|
|
86
|
+
| **看板** | `kanban_get` |
|
|
87
|
+
| **卡片** | `kanban_get_card`、`kanban_add_card`、`kanban_update_card`、`kanban_delete_card`、`kanban_move_card` |
|
|
88
|
+
| **列表** | `kanban_add_column`、`kanban_rename_column`、`kanban_delete_column`、`kanban_move_column` |
|
|
89
|
+
| **标签** | `kanban_get_label`、`kanban_add_label`、`kanban_update_label`、`kanban_delete_label` |
|
|
115
90
|
|
|
116
|
-
|
|
91
|
+
## 💡 你可以直接这样说
|
|
117
92
|
|
|
118
|
-
|
|
119
|
-
- **来自更新版本插件的文件**(`schemaVersion` 更高):备份为 `kanban-board-<workspaceId>.json.unsupported-v<版本>` 且不改动原文件,避免降级插件破坏新数据。
|
|
120
|
-
- 插件启动时会执行**全量校验扫描**:逐一检查看板文件(解析 + 版本 + 结构),损坏文件立即备份并汇总记录。
|
|
93
|
+
> 「总结一下目前正在进行的任务。」
|
|
121
94
|
|
|
122
|
-
|
|
95
|
+
> 「把『修复登录跳转』移到进行中,并设为 P0。」
|
|
123
96
|
|
|
124
|
-
|
|
97
|
+
> 「在进行中后面新增一个阻塞列表。」
|
|
125
98
|
|
|
126
|
-
|
|
99
|
+
> 「创建一个红色的『紧急』标签,并加到发布卡片上。」
|
|
127
100
|
|
|
128
|
-
|
|
129
|
-
- Agent 与「看板」标签页共享同一套数据层,双方看到的始终是同一块看板。
|
|
130
|
-
- `cordis.patch.yml` 将插件加入指定的 DSH profile。
|
|
131
|
-
- `lib/client.js` 是由 DSH 直接加载的预构建 Web 客户端。
|
|
101
|
+
> 「我是一名律师,请帮我初始化一套适合日常办案的看板,根据工作流程创建阶段列表和常用标签,并随着工作变化持续帮我维护。」
|
|
132
102
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
## 本地开发
|
|
136
|
-
|
|
137
|
-
需要准备 Node.js 和 pnpm。
|
|
138
|
-
|
|
139
|
-
```sh
|
|
140
|
-
pnpm install
|
|
141
|
-
pnpm build
|
|
142
|
-
pnpm typecheck
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
调试时可以生成未压缩的客户端 bundle:
|
|
146
|
-
|
|
147
|
-
```sh
|
|
148
|
-
node build.mjs --no-minify
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
项目结构:
|
|
152
|
-
|
|
153
|
-
```text
|
|
154
|
-
index.js # 宿主插件、Agent 工具、持久化与 HTTP 接口
|
|
155
|
-
cordis.patch.yml # DSH bundle 补丁
|
|
156
|
-
build.mjs # 客户端构建脚本
|
|
157
|
-
src/client/ # React 与 TypeScript 源码
|
|
158
|
-
lib/client.js # 本地或 CI 生成,仅随 npm 包发布
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## 参与贡献
|
|
162
|
-
|
|
163
|
-
欢迎提交 Issue 和 Pull Request。如果准备进行较大的改动,建议先开一个 Issue 讨论目标和实现方式,避免重复工作。
|
|
164
|
-
|
|
165
|
-
## 卸载
|
|
166
|
-
|
|
167
|
-
```sh
|
|
168
|
-
dsh plugin --profile web remove @alpacachen/dsh-kanban
|
|
169
|
-
```
|
|
103
|
+
不必提前设计好工作流。只需告诉 Agent 你的职业、场景或目标,它就能为你创建合适的阶段和标签,并在后续协作中持续调整。
|
|
170
104
|
|
|
171
105
|
## 开源许可
|
|
172
106
|
|