ai-board 0.1.0__tar.gz
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.
- ai_board-0.1.0/LICENSE +21 -0
- ai_board-0.1.0/PKG-INFO +258 -0
- ai_board-0.1.0/README.md +238 -0
- ai_board-0.1.0/pyproject.toml +37 -0
- ai_board-0.1.0/setup.cfg +4 -0
- ai_board-0.1.0/src/ai_board/__init__.py +3 -0
- ai_board-0.1.0/src/ai_board/__main__.py +4 -0
- ai_board-0.1.0/src/ai_board/cli.py +1177 -0
- ai_board-0.1.0/src/ai_board/datetime_utils.py +15 -0
- ai_board-0.1.0/src/ai_board/errors.py +21 -0
- ai_board-0.1.0/src/ai_board/guardrails.py +278 -0
- ai_board-0.1.0/src/ai_board/onboarding.py +233 -0
- ai_board-0.1.0/src/ai_board/operations.py +572 -0
- ai_board-0.1.0/src/ai_board/parser.py +372 -0
- ai_board-0.1.0/src/ai_board/render.py +253 -0
- ai_board-0.1.0/src/ai_board/skill_guides.py +447 -0
- ai_board-0.1.0/src/ai_board/store.py +652 -0
- ai_board-0.1.0/src/ai_board.egg-info/PKG-INFO +258 -0
- ai_board-0.1.0/src/ai_board.egg-info/SOURCES.txt +24 -0
- ai_board-0.1.0/src/ai_board.egg-info/dependency_links.txt +1 -0
- ai_board-0.1.0/src/ai_board.egg-info/entry_points.txt +2 -0
- ai_board-0.1.0/src/ai_board.egg-info/requires.txt +4 -0
- ai_board-0.1.0/src/ai_board.egg-info/top_level.txt +1 -0
- ai_board-0.1.0/tests/test_cli.py +1768 -0
- ai_board-0.1.0/tests/test_skills_and_i18n.py +312 -0
- ai_board-0.1.0/tests/test_version.py +19 -0
ai_board-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ai-board 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.
|
ai_board-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-board
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A lightweight local planning board CLI for AI-assisted projects.
|
|
5
|
+
Author: ai-board contributors
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Keywords: ai,agents,planning,cli,kanban
|
|
8
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
|
+
Requires-Python: >=3.10
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
License-File: LICENSE
|
|
16
|
+
Provides-Extra: dev
|
|
17
|
+
Requires-Dist: build; extra == "dev"
|
|
18
|
+
Requires-Dist: ruff; extra == "dev"
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# ai-board
|
|
22
|
+
|
|
23
|
+
给 AI agent 用的本地计划看板。它把需求、排期、正在改的文件范围、验收结果和遗留问题记录下来,让 AI 接手项目时不用只靠聊天记录猜。
|
|
24
|
+
|
|
25
|
+
[English](https://github.com/dev-null-sec/ai-board/blob/v0.1.0/README_en.md) | 中文
|
|
26
|
+
|
|
27
|
+
<p align="center">
|
|
28
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white">
|
|
29
|
+
<img alt="CLI ai-board" src="https://img.shields.io/badge/CLI-ai--board-0B1F4D">
|
|
30
|
+
<img alt="License MIT" src="https://img.shields.io/badge/License-MIT-green">
|
|
31
|
+
</p>
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
当前正式版本:`v0.1.0`。
|
|
36
|
+
|
|
37
|
+
## 为什么做这个
|
|
38
|
+
|
|
39
|
+
AI 写代码时,很多混乱不是代码本身造成的,而是项目状态没有一个稳定地方保存。
|
|
40
|
+
|
|
41
|
+
一个需求刚说完,AI 可能立刻开改;又插进来一个 bug,它也继续改。几轮之后,原来的计划在哪里、当前任务算不算做完、哪些文件已经被另一个会话碰过,就很容易散在聊天记录里。
|
|
42
|
+
|
|
43
|
+
`ai-board` 只处理这类项目事实:需求进不进看板、排到哪一批、谁在做、scope 是哪些文件、验收跑了什么、还有什么没收尾。聊天继续负责讨论细节,看板负责留下可恢复的状态。
|
|
44
|
+
|
|
45
|
+
它不是 Jira,也不是 Web 项目管理系统。现在就是一个本地 CLI,一个 `.ai-board/board.json`,再生成两份 Markdown 看板给人和 AI 读。
|
|
46
|
+
|
|
47
|
+
## 最短路径
|
|
48
|
+
|
|
49
|
+
一般不需要人手动敲一串命令,直接把这段给 AI:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
请安装 ai-board 并接手当前项目:
|
|
53
|
+
1. 优先用 pipx install ai-board 安装用户级 CLI。
|
|
54
|
+
2. 如果 pipx 不可用,再用 uv tool install ai-board。
|
|
55
|
+
3. 安装后运行 ai-board onboard --init-if-missing。
|
|
56
|
+
4. 按该 agent 的 skill 安装方式,把 https://github.com/dev-null-sec/ai-board.git 里的 skills/ai-board/SKILL.md 放到对应 agent 的 skills 目录;除非该 agent 已经安装过这个 skill。
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
自己安装时:
|
|
60
|
+
|
|
61
|
+
```powershell
|
|
62
|
+
pipx install ai-board
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
没有 `pipx` 但有 `uv`:
|
|
66
|
+
|
|
67
|
+
```powershell
|
|
68
|
+
uv tool install ai-board
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
想试 GitHub 上的当前源码版:
|
|
72
|
+
|
|
73
|
+
```powershell
|
|
74
|
+
pipx install "git+https://github.com/dev-null-sec/ai-board.git"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 人和 AI 怎么配合
|
|
78
|
+
|
|
79
|
+
`ai-board` 更适合这样用:人说清楚意图,AI 负责安装、接手、排期、启动任务、记录验收和归档。人不用记命令,提示词也不该写成长规则;短、准、能触发流程就够。
|
|
80
|
+
|
|
81
|
+
### 第一次接手
|
|
82
|
+
|
|
83
|
+
给 AI 这段提示词:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
用 ai-board 接手这个项目。
|
|
87
|
+
先 onboard;信息不够就问我,不要猜方向或直接编码。
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
这句话会让 AI 自己处理安装、初始化和读取内置指南。空项目先问目标、用户和第一版范围;已有项目先整理状态,再把后续开发放进看板。
|
|
91
|
+
|
|
92
|
+
### 提新需求
|
|
93
|
+
|
|
94
|
+
平时不要让 AI 直接“顺手改一下”。更稳的说法是:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
把这个需求进 ai-board。
|
|
98
|
+
判断它是否属于当前任务;不属于就排期,别直接开改。
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
需要立刻处理时,可以说得更明确:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
这个问题优先处理。
|
|
105
|
+
先写入 ai-board 并说明插队原因,再 start、声明 scope、修改和验收。
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 多 agent 开发
|
|
109
|
+
|
|
110
|
+
默认是单 agent 轻量模式。如果确实要同时开两个 AI 会话,先让其中一个会话启用多 agent:
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
开启 ai-board 多 agent 协作。
|
|
114
|
+
每个会话先 claim 身份;改前查 scope,收到 notice 先收口。
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 看进度
|
|
118
|
+
|
|
119
|
+
问 AI 就行:
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
看 ai-board:现在做什么?下一步做什么?
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
AI 背后会用 `status`、`next`、`show`、`doctor` 这些命令读状态。命令细节留给 agent,人的工作是确认方向、优先级和验收口径。
|
|
126
|
+
|
|
127
|
+
## 它保存哪些东西
|
|
128
|
+
|
|
129
|
+
| 内容 | 放在哪里 |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| 任务、状态、负责人、scope、验收结果 | `.ai-board/board.json` |
|
|
132
|
+
| 当前看板 | `docs/计划看板.md` |
|
|
133
|
+
| 归档看板 | `docs/归档计划看板.md` |
|
|
134
|
+
| 操作历史 | `.ai-board/events.jsonl` |
|
|
135
|
+
| agent notice | `.ai-board/messages.jsonl` |
|
|
136
|
+
|
|
137
|
+
`board.json` 是唯一写入源,Markdown 只是生成视图。任务状态、依赖、scope、验收这些字段需要被程序读取、排序和校验,放在 JSON 里更稳;Markdown 留给人读。
|
|
138
|
+
|
|
139
|
+
## 几个默认选择
|
|
140
|
+
|
|
141
|
+
| 设计 | 当前做法 |
|
|
142
|
+
| --- | --- |
|
|
143
|
+
| 单 agent 开发 | 默认轻量,不强制处理多 agent notice 和 scope 冲突。 |
|
|
144
|
+
| 多 agent 协作 | 项目级可选开关,默认关闭。需要并行开发时开启。 |
|
|
145
|
+
| git | 默认 `git_integration=suggest`,没有 git 时提示初始化,但不会静默 `git init`。 |
|
|
146
|
+
| 看板语言 | 默认中文,可改成 `en-US`。 |
|
|
147
|
+
| scope | 记录文件或小目录,不做语义级代码冲突判断。 |
|
|
148
|
+
|
|
149
|
+
多 agent 开启方式:
|
|
150
|
+
|
|
151
|
+
```powershell
|
|
152
|
+
ai-board config set multi_agent_enabled true
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
开启后,重叠 scope 会被拦住,`next --agent` 会显示 notice,`complete` / `archive` 会提醒未收口消息。单 agent 开发时,它不会强制你天天看 notice、处理 inbox 或被 active scope 冲突拦住。
|
|
156
|
+
|
|
157
|
+
git 强制模式:
|
|
158
|
+
|
|
159
|
+
```powershell
|
|
160
|
+
ai-board config set git_integration required
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
临时实验目录可以关闭 git 检查:
|
|
164
|
+
|
|
165
|
+
```powershell
|
|
166
|
+
ai-board config set git_integration off
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 常见问题
|
|
170
|
+
|
|
171
|
+
<details>
|
|
172
|
+
<summary><strong>为什么不用 Markdown 直接管理任务?</strong></summary>
|
|
173
|
+
|
|
174
|
+
Markdown 很适合读,不适合当结构化状态源。任务状态、负责人、scope、依赖、验收结果这些字段需要稳定读写。格式一旦被人或 AI 改散,工具就很难判断哪些是内容,哪些是结构。
|
|
175
|
+
|
|
176
|
+
所以 `ai-board` 用 JSON 存状态,再生成 Markdown 看板。
|
|
177
|
+
|
|
178
|
+
</details>
|
|
179
|
+
|
|
180
|
+
<details>
|
|
181
|
+
<summary><strong>Markdown 看板可以手动改吗?</strong></summary>
|
|
182
|
+
|
|
183
|
+
不建议。下一次 CLI 写操作或 `ai-board render` 会重新生成 Markdown,手改内容可能被覆盖。改任务状态、负责人、scope、验收结果时走 CLI。
|
|
184
|
+
|
|
185
|
+
</details>
|
|
186
|
+
|
|
187
|
+
<details>
|
|
188
|
+
<summary><strong>为什么不自动 git init?</strong></summary>
|
|
189
|
+
|
|
190
|
+
AI 开发最好有可回滚点,但项目根目录、父级仓库、临时目录、大文件、密钥和已有未完成改动都可能需要确认。`ai-board` 会提醒,不会静默初始化 git,也不会自动提交用户已有改动。
|
|
191
|
+
|
|
192
|
+
</details>
|
|
193
|
+
|
|
194
|
+
<details>
|
|
195
|
+
<summary><strong>多 agent 防冲突能防到什么程度?</strong></summary>
|
|
196
|
+
|
|
197
|
+
只能防路径重叠。比如一个任务锁了 `src/api`,另一个任务要改 `src/api/handler.py`,开启多 agent 后会被拦住。
|
|
198
|
+
|
|
199
|
+
它不理解两个不同文件之间的业务耦合,也不是跨机器强锁。真正并行开发时,scope 还是要写窄,任务边界也要写清楚。
|
|
200
|
+
|
|
201
|
+
</details>
|
|
202
|
+
|
|
203
|
+
<details>
|
|
204
|
+
<summary><strong>只能给 Codex 用吗?</strong></summary>
|
|
205
|
+
|
|
206
|
+
不是。仓库里带了 Codex 可读的 skill stub,但 CLI 本身只是普通命令行工具。Claude、其他 agent,或者人手动敲命令都能用。关键是让 agent 先读 `ai-board skills get core`,按当前版本的规则操作。
|
|
207
|
+
|
|
208
|
+
</details>
|
|
209
|
+
|
|
210
|
+
## 当前边界
|
|
211
|
+
|
|
212
|
+
| 已支持 | 暂不做 |
|
|
213
|
+
| --- | --- |
|
|
214
|
+
| 本地 CLI | Web 登录 |
|
|
215
|
+
| JSON 真相源 | 云同步 |
|
|
216
|
+
| Markdown 生成视图 | 手写 Markdown 当数据库 |
|
|
217
|
+
| 事件日志和 `history` | 完整审计系统 |
|
|
218
|
+
| `doctor` 项目自检 | 语义级代码冲突判断 |
|
|
219
|
+
| git-first 提示和 required 门禁 | 静默初始化 git 或自动提交 |
|
|
220
|
+
| 可选多 agent 路径级 scope 防撞 | 跨机器协作锁 |
|
|
221
|
+
| 轻量 agent notice | 实时聊天系统 |
|
|
222
|
+
|
|
223
|
+
## 项目结构
|
|
224
|
+
|
|
225
|
+
```text
|
|
226
|
+
src/ai_board/ CLI 核心
|
|
227
|
+
skills/ai-board/ 给 AI agent 的 discovery skill
|
|
228
|
+
tests/ 测试
|
|
229
|
+
docs/ 这个项目自己的计划和状态文档
|
|
230
|
+
examples/demo-project/ 示例项目
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## 开发
|
|
234
|
+
|
|
235
|
+
```powershell
|
|
236
|
+
uv sync
|
|
237
|
+
uv run python -m unittest discover -s tests
|
|
238
|
+
uv run --with ruff ruff check .
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
本地安装当前工作区版本:
|
|
242
|
+
|
|
243
|
+
```powershell
|
|
244
|
+
uv tool install --editable .
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
发布前检查:
|
|
248
|
+
|
|
249
|
+
```powershell
|
|
250
|
+
uv run ai-board conflicts --fail-on-conflict
|
|
251
|
+
uv run ai-board doctor --fail-on-issue
|
|
252
|
+
uv run --with build python -m build
|
|
253
|
+
uv run --with twine twine check dist/*
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## License
|
|
257
|
+
|
|
258
|
+
MIT License. See [LICENSE](./LICENSE).
|
ai_board-0.1.0/README.md
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# ai-board
|
|
2
|
+
|
|
3
|
+
给 AI agent 用的本地计划看板。它把需求、排期、正在改的文件范围、验收结果和遗留问题记录下来,让 AI 接手项目时不用只靠聊天记录猜。
|
|
4
|
+
|
|
5
|
+
[English](https://github.com/dev-null-sec/ai-board/blob/v0.1.0/README_en.md) | 中文
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img alt="Python 3.10+" src="https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white">
|
|
9
|
+
<img alt="CLI ai-board" src="https://img.shields.io/badge/CLI-ai--board-0B1F4D">
|
|
10
|
+
<img alt="License MIT" src="https://img.shields.io/badge/License-MIT-green">
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
当前正式版本:`v0.1.0`。
|
|
16
|
+
|
|
17
|
+
## 为什么做这个
|
|
18
|
+
|
|
19
|
+
AI 写代码时,很多混乱不是代码本身造成的,而是项目状态没有一个稳定地方保存。
|
|
20
|
+
|
|
21
|
+
一个需求刚说完,AI 可能立刻开改;又插进来一个 bug,它也继续改。几轮之后,原来的计划在哪里、当前任务算不算做完、哪些文件已经被另一个会话碰过,就很容易散在聊天记录里。
|
|
22
|
+
|
|
23
|
+
`ai-board` 只处理这类项目事实:需求进不进看板、排到哪一批、谁在做、scope 是哪些文件、验收跑了什么、还有什么没收尾。聊天继续负责讨论细节,看板负责留下可恢复的状态。
|
|
24
|
+
|
|
25
|
+
它不是 Jira,也不是 Web 项目管理系统。现在就是一个本地 CLI,一个 `.ai-board/board.json`,再生成两份 Markdown 看板给人和 AI 读。
|
|
26
|
+
|
|
27
|
+
## 最短路径
|
|
28
|
+
|
|
29
|
+
一般不需要人手动敲一串命令,直接把这段给 AI:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
请安装 ai-board 并接手当前项目:
|
|
33
|
+
1. 优先用 pipx install ai-board 安装用户级 CLI。
|
|
34
|
+
2. 如果 pipx 不可用,再用 uv tool install ai-board。
|
|
35
|
+
3. 安装后运行 ai-board onboard --init-if-missing。
|
|
36
|
+
4. 按该 agent 的 skill 安装方式,把 https://github.com/dev-null-sec/ai-board.git 里的 skills/ai-board/SKILL.md 放到对应 agent 的 skills 目录;除非该 agent 已经安装过这个 skill。
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
自己安装时:
|
|
40
|
+
|
|
41
|
+
```powershell
|
|
42
|
+
pipx install ai-board
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
没有 `pipx` 但有 `uv`:
|
|
46
|
+
|
|
47
|
+
```powershell
|
|
48
|
+
uv tool install ai-board
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
想试 GitHub 上的当前源码版:
|
|
52
|
+
|
|
53
|
+
```powershell
|
|
54
|
+
pipx install "git+https://github.com/dev-null-sec/ai-board.git"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 人和 AI 怎么配合
|
|
58
|
+
|
|
59
|
+
`ai-board` 更适合这样用:人说清楚意图,AI 负责安装、接手、排期、启动任务、记录验收和归档。人不用记命令,提示词也不该写成长规则;短、准、能触发流程就够。
|
|
60
|
+
|
|
61
|
+
### 第一次接手
|
|
62
|
+
|
|
63
|
+
给 AI 这段提示词:
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
用 ai-board 接手这个项目。
|
|
67
|
+
先 onboard;信息不够就问我,不要猜方向或直接编码。
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
这句话会让 AI 自己处理安装、初始化和读取内置指南。空项目先问目标、用户和第一版范围;已有项目先整理状态,再把后续开发放进看板。
|
|
71
|
+
|
|
72
|
+
### 提新需求
|
|
73
|
+
|
|
74
|
+
平时不要让 AI 直接“顺手改一下”。更稳的说法是:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
把这个需求进 ai-board。
|
|
78
|
+
判断它是否属于当前任务;不属于就排期,别直接开改。
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
需要立刻处理时,可以说得更明确:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
这个问题优先处理。
|
|
85
|
+
先写入 ai-board 并说明插队原因,再 start、声明 scope、修改和验收。
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 多 agent 开发
|
|
89
|
+
|
|
90
|
+
默认是单 agent 轻量模式。如果确实要同时开两个 AI 会话,先让其中一个会话启用多 agent:
|
|
91
|
+
|
|
92
|
+
```text
|
|
93
|
+
开启 ai-board 多 agent 协作。
|
|
94
|
+
每个会话先 claim 身份;改前查 scope,收到 notice 先收口。
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 看进度
|
|
98
|
+
|
|
99
|
+
问 AI 就行:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
看 ai-board:现在做什么?下一步做什么?
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
AI 背后会用 `status`、`next`、`show`、`doctor` 这些命令读状态。命令细节留给 agent,人的工作是确认方向、优先级和验收口径。
|
|
106
|
+
|
|
107
|
+
## 它保存哪些东西
|
|
108
|
+
|
|
109
|
+
| 内容 | 放在哪里 |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| 任务、状态、负责人、scope、验收结果 | `.ai-board/board.json` |
|
|
112
|
+
| 当前看板 | `docs/计划看板.md` |
|
|
113
|
+
| 归档看板 | `docs/归档计划看板.md` |
|
|
114
|
+
| 操作历史 | `.ai-board/events.jsonl` |
|
|
115
|
+
| agent notice | `.ai-board/messages.jsonl` |
|
|
116
|
+
|
|
117
|
+
`board.json` 是唯一写入源,Markdown 只是生成视图。任务状态、依赖、scope、验收这些字段需要被程序读取、排序和校验,放在 JSON 里更稳;Markdown 留给人读。
|
|
118
|
+
|
|
119
|
+
## 几个默认选择
|
|
120
|
+
|
|
121
|
+
| 设计 | 当前做法 |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| 单 agent 开发 | 默认轻量,不强制处理多 agent notice 和 scope 冲突。 |
|
|
124
|
+
| 多 agent 协作 | 项目级可选开关,默认关闭。需要并行开发时开启。 |
|
|
125
|
+
| git | 默认 `git_integration=suggest`,没有 git 时提示初始化,但不会静默 `git init`。 |
|
|
126
|
+
| 看板语言 | 默认中文,可改成 `en-US`。 |
|
|
127
|
+
| scope | 记录文件或小目录,不做语义级代码冲突判断。 |
|
|
128
|
+
|
|
129
|
+
多 agent 开启方式:
|
|
130
|
+
|
|
131
|
+
```powershell
|
|
132
|
+
ai-board config set multi_agent_enabled true
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
开启后,重叠 scope 会被拦住,`next --agent` 会显示 notice,`complete` / `archive` 会提醒未收口消息。单 agent 开发时,它不会强制你天天看 notice、处理 inbox 或被 active scope 冲突拦住。
|
|
136
|
+
|
|
137
|
+
git 强制模式:
|
|
138
|
+
|
|
139
|
+
```powershell
|
|
140
|
+
ai-board config set git_integration required
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
临时实验目录可以关闭 git 检查:
|
|
144
|
+
|
|
145
|
+
```powershell
|
|
146
|
+
ai-board config set git_integration off
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## 常见问题
|
|
150
|
+
|
|
151
|
+
<details>
|
|
152
|
+
<summary><strong>为什么不用 Markdown 直接管理任务?</strong></summary>
|
|
153
|
+
|
|
154
|
+
Markdown 很适合读,不适合当结构化状态源。任务状态、负责人、scope、依赖、验收结果这些字段需要稳定读写。格式一旦被人或 AI 改散,工具就很难判断哪些是内容,哪些是结构。
|
|
155
|
+
|
|
156
|
+
所以 `ai-board` 用 JSON 存状态,再生成 Markdown 看板。
|
|
157
|
+
|
|
158
|
+
</details>
|
|
159
|
+
|
|
160
|
+
<details>
|
|
161
|
+
<summary><strong>Markdown 看板可以手动改吗?</strong></summary>
|
|
162
|
+
|
|
163
|
+
不建议。下一次 CLI 写操作或 `ai-board render` 会重新生成 Markdown,手改内容可能被覆盖。改任务状态、负责人、scope、验收结果时走 CLI。
|
|
164
|
+
|
|
165
|
+
</details>
|
|
166
|
+
|
|
167
|
+
<details>
|
|
168
|
+
<summary><strong>为什么不自动 git init?</strong></summary>
|
|
169
|
+
|
|
170
|
+
AI 开发最好有可回滚点,但项目根目录、父级仓库、临时目录、大文件、密钥和已有未完成改动都可能需要确认。`ai-board` 会提醒,不会静默初始化 git,也不会自动提交用户已有改动。
|
|
171
|
+
|
|
172
|
+
</details>
|
|
173
|
+
|
|
174
|
+
<details>
|
|
175
|
+
<summary><strong>多 agent 防冲突能防到什么程度?</strong></summary>
|
|
176
|
+
|
|
177
|
+
只能防路径重叠。比如一个任务锁了 `src/api`,另一个任务要改 `src/api/handler.py`,开启多 agent 后会被拦住。
|
|
178
|
+
|
|
179
|
+
它不理解两个不同文件之间的业务耦合,也不是跨机器强锁。真正并行开发时,scope 还是要写窄,任务边界也要写清楚。
|
|
180
|
+
|
|
181
|
+
</details>
|
|
182
|
+
|
|
183
|
+
<details>
|
|
184
|
+
<summary><strong>只能给 Codex 用吗?</strong></summary>
|
|
185
|
+
|
|
186
|
+
不是。仓库里带了 Codex 可读的 skill stub,但 CLI 本身只是普通命令行工具。Claude、其他 agent,或者人手动敲命令都能用。关键是让 agent 先读 `ai-board skills get core`,按当前版本的规则操作。
|
|
187
|
+
|
|
188
|
+
</details>
|
|
189
|
+
|
|
190
|
+
## 当前边界
|
|
191
|
+
|
|
192
|
+
| 已支持 | 暂不做 |
|
|
193
|
+
| --- | --- |
|
|
194
|
+
| 本地 CLI | Web 登录 |
|
|
195
|
+
| JSON 真相源 | 云同步 |
|
|
196
|
+
| Markdown 生成视图 | 手写 Markdown 当数据库 |
|
|
197
|
+
| 事件日志和 `history` | 完整审计系统 |
|
|
198
|
+
| `doctor` 项目自检 | 语义级代码冲突判断 |
|
|
199
|
+
| git-first 提示和 required 门禁 | 静默初始化 git 或自动提交 |
|
|
200
|
+
| 可选多 agent 路径级 scope 防撞 | 跨机器协作锁 |
|
|
201
|
+
| 轻量 agent notice | 实时聊天系统 |
|
|
202
|
+
|
|
203
|
+
## 项目结构
|
|
204
|
+
|
|
205
|
+
```text
|
|
206
|
+
src/ai_board/ CLI 核心
|
|
207
|
+
skills/ai-board/ 给 AI agent 的 discovery skill
|
|
208
|
+
tests/ 测试
|
|
209
|
+
docs/ 这个项目自己的计划和状态文档
|
|
210
|
+
examples/demo-project/ 示例项目
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## 开发
|
|
214
|
+
|
|
215
|
+
```powershell
|
|
216
|
+
uv sync
|
|
217
|
+
uv run python -m unittest discover -s tests
|
|
218
|
+
uv run --with ruff ruff check .
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
本地安装当前工作区版本:
|
|
222
|
+
|
|
223
|
+
```powershell
|
|
224
|
+
uv tool install --editable .
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
发布前检查:
|
|
228
|
+
|
|
229
|
+
```powershell
|
|
230
|
+
uv run ai-board conflicts --fail-on-conflict
|
|
231
|
+
uv run ai-board doctor --fail-on-issue
|
|
232
|
+
uv run --with build python -m build
|
|
233
|
+
uv run --with twine twine check dist/*
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT License. See [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "ai-board"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A lightweight local planning board CLI for AI-assisted projects."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [{ name = "ai-board contributors" }]
|
|
13
|
+
keywords = ["ai", "agents", "planning", "cli", "kanban"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: Developers",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.scripts]
|
|
23
|
+
ai-board = "ai_board.cli:main"
|
|
24
|
+
|
|
25
|
+
[project.optional-dependencies]
|
|
26
|
+
dev = ["build", "ruff"]
|
|
27
|
+
|
|
28
|
+
[tool.setuptools.packages.find]
|
|
29
|
+
where = ["src"]
|
|
30
|
+
|
|
31
|
+
[tool.ruff]
|
|
32
|
+
line-length = 160
|
|
33
|
+
target-version = "py310"
|
|
34
|
+
|
|
35
|
+
[tool.ruff.lint]
|
|
36
|
+
select = ["E", "F", "I", "UP", "B"]
|
|
37
|
+
ignore = ["E501"]
|
ai_board-0.1.0/setup.cfg
ADDED