Skip to content

Commit a26d632

Browse files
Light ChengLight Cheng
authored andcommitted
docs: v1.0.5 candidate — Worker Skill Quick Start, Use Cases, integration docs
README/README_CN Quick Start rewritten as the five-step released-binary + light-kanban-worker Skill path with a copyable scheduler prompt and a one-shot manual run example; Use Cases added (scheduled coding agent, multi-agent queue, review loop, blocked work, cross-project queue, boundary); raw curl demoted to Manual Agent Integration. spec.md records the v1.0.5 no-API-change Worker Integration decisions; manual checklist gains section S (worker integration) with regenerated xlsx; frontend version bumped to 1.0.5; PROGRESS records the v1.0.5 candidate and its release gate. make check and make cross (4 platforms) PASS.
1 parent f49ace5 commit a26d632

8 files changed

Lines changed: 332 additions & 35 deletions

File tree

.scratch/task-board/spec.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,52 @@ Status: ready-for-agent
140140
- The `.scratch/` issue tracker set up by `/setup-matt-pocock-skills` tracks **Light-Kanban's own development**; it is distinct from the tasks this board manages.
141141
- The "constraint" model: identity and tags are reserved fields plus agent-facing instructions — agents self-configure when claiming, keeping the board minimal and avoiding human data entry.
142142
- Agents are expected to call the API from their own scheduled tasks; scheduling/orchestration is outside this board's responsibility.
143+
144+
## v1.0.5 Worker Integration
145+
146+
Status: candidate (pending user acceptance before release).
147+
148+
### No API change
149+
150+
v1.0.5 adds **no new REST endpoint and changes no existing one**. The Worker
151+
Skill uses exactly the v1.0.4+ surface: `GET /api/agents`, `GET
152+
/api/tasks?status=in_progress|todo`, `POST /api/tasks/:id/claim|block|
153+
complete`, `POST /api/avatars`. The API contract above remains the single
154+
board-side authority.
155+
156+
### Agent-side protocol moves to a Skill
157+
158+
- The official agent-side protocol is the first-party **`light-kanban-worker`**
159+
Skill in `LightDevCoder/skills` (released in Skills v0.1.4, compatible with
160+
Light-Kanban v1.0.4+). Its `SKILL.md` is the authority for agent behavior;
161+
this spec is the authority for board behavior — the two contracts are kept
162+
separate on purpose.
163+
- Golden flow (Skill side): resolve stable identity → check owned
164+
in_progress (reviewFeedback first) → otherwise claim the first FIFO todo
165+
(at most 2 claim attempts on conflict) → validate `workspacePath` on the
166+
agent host (unreachable workspace → block with a meaningful reason) →
167+
execute inside the project's own workflow → `complete` (→ 等你确认) or
168+
`block` with a concrete reason → stop. At most ONE task per run; no
169+
daemon, no polling loop, no auto-archive/accept/delete/recycle/unblock.
170+
- Review boundary: 等你确认 is human-owned (accept / request changes). A
171+
Request Changes rejection sets `reviewFeedback` and returns the task to
172+
处理中, where the same agent's next run resumes it first.
173+
174+
### Scheduler boundary
175+
176+
The scheduler (cron, orchestrator, scheduled agent run) decides **when** the
177+
agent wakes; Light-Kanban never starts agents. The scheduler prompt needs no
178+
knowledge of the REST API — one line suffices:
179+
180+
```text
181+
Use light-kanban-worker to process at most one Light-Kanban task.
182+
```
183+
184+
### Validation for this release
185+
186+
- Board-side: `make check` + `make cross` (four platforms), no Go/UI behavior
187+
change — this release is documentation + integration packaging.
188+
- Cross-repo: the Worker Skill passed its full admission
189+
(`review-loop agent-skill` PASS), behavioral scenarios A–F against a real
190+
Light-Kanban server, and fresh-install verification from Skills v0.1.4.
191+

PROGRESS.md

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
# PROGRESS — 项目进度与交接记录
22

33
> 本文档记录 Light-Kanban 的当前进度、约定、待办与 Mac 迁移指引,供后续维护者快速接上手。
4-
> 最后更新:2026-08-17(v1.0.4 已发布
4+
> 最后更新:2026-08-17(v1.0.5 candidate 准备中
55
66
## 1. 当前状态
77

88
- **远端仓库**https://github.com/LightDevCoder/light-kanban(public,gh 账号 LightDevCoder)
99
- **最新发布**`v1.0.4`(onboarding & archive release),tag `v1.0.4` + GitHub Release 齐全,四平台二进制已上传(Windows amd64 / Linux amd64 / macOS amd64 / macOS arm64);`v1.0.3` 及更早的 tag / Release / 二进制保持原样
10-
- **当前工作**:无进行中的 release;v1.0.4 为最新稳定版本,后续改动等待真实使用反馈
11-
- **工作树**:与 origin/main 一致
10+
- **当前工作**`v1.0.5 candidate`(Worker Skill 集成发布)——文档与版本已就绪,等待用户验收后发布(见第 2a 节);Skills 侧 `LightDevCoder/skills v0.1.4` 已发布
11+
- **工作树**:见 git status(v1.0.5 变更未推送前为本地提交)
12+
13+
## 2a. v1.0.5(candidate,未发布)
14+
15+
- **目标**:把 Light-Kanban 从「agent 可通过 REST API 接入」推进为「安装一个 Skill + 建一个定时任务,agent 即可周期接活、执行、交回人工验收」
16+
- **无 Go / UI / API 变更**:v1.0.5 不新增、不修改任何 REST 端点;不修改 UI、不重新截图、不新增任务状态 / daemon / WebSocket / 认证 / scheduler
17+
- **Worker Skill(Skills 仓库,v0.1.4 已发布)**:第一方 `light-kanban-worker`(model-invoked,支持手动入口)——每次唤醒最多处理一张卡:稳定 identity(复用服务器已有 name/avatar)→ 先查自己持有的 in_progress(reviewFeedback 优先)→ 无遗留才领取 FIFO 第一张 todo(原子 claim,最多 2 次冲突重试)→ 校验 workspace(不可访问 → block 带具体原因)→ 读任务上下文 + 项目指令 → 执行 → `complete`(等你确认)或 `block` → 停止;绝不 archive/accept/delete/recycle/unblock,无 daemon / 无限轮询 / 运行时脚本
18+
- **准入与验证**:完整准入路径(`review-loop agent-skill` PASS,独立 Critic + Evaluator,3 findings 修复 + 1 驳回);行为场景 A–F 对真实 Light-Kanban 服务器全 PASS(新任务 / 退回返工 / 双 worker 原子 claim / workspace 缺失 block / 空队列无变更 / 离线无变更);v0.1.4 tag 发布后 fresh-install 验证 PASS(CLI 1.5.22,整集合 8 包 + 单 Skill,latest 与 #v0.1.4 形式,安装文件与 tag 逐字节一致);Skills CI green(顺带修复 ask-light scanner 的跨平台 `Test-PathUnder` 分隔符 bug——v0.1.3 Python 移植后 ubuntu CI 一直红的存量问题)
19+
- **Light-Kanban 文档**:README / README_CN Quick Start 重写为五步(运行二进制 → 装 Worker Skill → 建卡 → scheduler prompt → 验收),新增 Use Cases(定时编码 Agent / 多 Agent 共享队列 / 人工验收闭环 / 阻碍工作 / 跨项目个人队列 / 边界说明),curl 降级到「手动 Agent 接入(API 方式)」;spec.md 新增「v1.0.5 Worker Integration」章节(无 API 变更 + Skill 协议 + scheduler 边界 + 验证);manual-test-checklist.md 新增 S 节(8 条 worker 集成清单)+ xlsx 已重新生成;frontend/package.json + package-lock.json = `1.0.5`
20+
- **发布门禁**:Skills v0.1.4 已先发布并验证(README 引用真实 tag);Light-Kanban 需 `make check` + `make cross` 四平台 PASS,然后**停下来等用户最终验收**;未经「可以发布」不得创建 v1.0.5 Release
1221

1322
## 2. v1.0.4(已发布)
1423

README.md

Lines changed: 126 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
A self-hosted kanban board where a human queues tasks (each card points at a workspace folder) and autonomous agents claim, work, block on, and return them for human confirmation. Single Go binary: REST API + SQLite + embedded web UI (English / 中文).
44

5+
The recommended way for autonomous agents to work the board is the official **`light-kanban-worker` Skill** ([LightDevCoder/skills](https://github.com/LightDevCoder/skills)`light-kanban-worker`): a scheduled agent installs it once and handles one task per wake-up — claiming, reworking, and returning work automatically. The raw REST API stays available for custom agents, scripts, and integrations (see [Manual Agent Integration](#manual-agent-integration-api-without-the-skill)). The authoritative Skill behavior lives in its [`SKILL.md`](https://github.com/LightDevCoder/skills/blob/main/skills/light-kanban-worker/SKILL.md); this README shows how the two fit together.
6+
57
[中文 README](README_CN.md) · [Download](https://github.com/LightDevCoder/light-kanban/releases)
68

79
See `.scratch/task-board/spec.md` for the full spec, the state machine, and the API contract. See `CONTEXT.md` for the domain vocabulary.
@@ -73,27 +75,137 @@ The browser opens automatically; Ctrl+C stops. To allow other machines on the LA
7375

7476
## Quick Start
7577

76-
Five steps get you from zero to a full loop (on first launch the web UI runs an interactive product tour over the real interface — click the highlighted controls and it follows you through task creation, the drawer, settings and the archive; finish it once, or reopen it anytime from the settings menu):
78+
Five steps get you from zero to **Light-Kanban + a scheduled agent** in about five minutes. (On first launch the web UI runs an interactive product tour over the real interface — click the highlighted controls and it follows you through task creation, the drawer, settings and the archive; finish it once, or reopen it anytime from the settings menu.)
7779

78-
1. **Start the service**: `dist\light-kanban.exe` on Windows (other platforms: `make build && ./dist/light-kanban`), then open http://127.0.0.1:8641. (LAN agents need `-addr :8641` — see above.)
80+
### Step 1 — Run Light-Kanban
7981

80-
2. **Add a task**: click "**+**" in the top bar (or the "+" in the To Do column header), fill in the title + workspace folder path (type/paste it, or click "Choose…" to open the system folder dialog); description / tags / due date are optional → the task lands in the **To Do** column.
82+
Download the binary for your machine from [Releases](https://github.com/LightDevCoder/light-kanban/releases) (see the table under [Install & Run](#install--run-per-platform)), put it in a dedicated folder, and **double-click / execute it**. The browser opens the board automatically at http://127.0.0.1:8641. (Agents on *other machines* need `-addr :8641` — see above.)
8183

82-
3. **An agent claims it** (agents self-register and claim via the API):
84+
### Step 2 — Install the Worker Skill
8385

84-
```sh
85-
curl "http://127.0.0.1:8641/api/tasks?status=todo" # find available work (todo only)
86-
curl -F "file=@avatar.png" http://127.0.0.1:8641/api/avatars # upload an avatar, note the returned path
87-
curl -X POST -H "Content-Type: application/json" \
88-
-d '{"agentId":"my-agent","name":"My Agent","avatar":"/api/avatars/xxx.png"}' \
89-
http://127.0.0.1:8641/api/tasks/<id>/claim
90-
```
86+
Install the official worker Skill for your agent host:
87+
88+
```bash
89+
npx skills add LightDevCoder/skills#v0.1.4 \
90+
--skill light-kanban-worker \
91+
--yes \
92+
--copy \
93+
--agent '*'
94+
```
95+
96+
Source and docs: [LightDevCoder/skills](https://github.com/LightDevCoder/skills)[`skills/light-kanban-worker/`](https://github.com/LightDevCoder/skills/tree/main/skills/light-kanban-worker) (behavior authority: its `SKILL.md`). Works with Light-Kanban v1.0.4+.
97+
98+
### Step 3 — Create Work
99+
100+
On the board, click "**+**" and fill in the task, e.g.:
101+
102+
```text
103+
Title: Fix login redirect bug
104+
Workspace: ~/projects/my-app
105+
Description: Reproduce the OAuth redirect issue,
106+
fix it, run tests and return it for review.
107+
```
108+
109+
The task lands in **To Do**.
110+
111+
### Step 4 — Schedule the Agent
112+
113+
Point your scheduler at this prompt (any scheduler product that can run your agent on a timer — cron, an orchestrator, a scheduled agent job):
114+
115+
```text
116+
Use light-kanban-worker to process at most one Light-Kanban task.
117+
118+
Light-Kanban URL:
119+
http://127.0.0.1:8641
120+
121+
Agent ID:
122+
codex-main
123+
124+
Agent Name:
125+
Codex
126+
127+
Prefer existing or returned work before claiming a new task.
128+
When finished, return the task for human confirmation.
129+
```
130+
131+
Schedule it every 15 minutes — or whatever cadence fits your workload.
132+
133+
Prefer a one-shot test before creating the schedule? Run the agent once manually with:
134+
135+
```text
136+
Use light-kanban-worker to process one task from
137+
http://127.0.0.1:8641 as agent codex-main.
138+
```
91139

92-
Claim constraints: `name` is your tool name; `avatar` must be the agent's **own icon image** (e.g. Codex claims with the Codex icon, Claude Code with the Claude Code icon — an uploaded path or an http(s) image URL). Placeholders and fabricated paths get a 422. The card then shows the agent's avatar at its top right.
140+
### Step 5 — Review
141+
142+
When the agent finishes, the task sits in **Awaiting Confirmation**. Open the card and **Accept**, or **Request Changes** with feedback — the next worker run picks the task back up (with your feedback) and fixes it. No need to create a new task for rework.
143+
144+
## Use Cases
145+
146+
### Scheduled coding agent
147+
148+
Queue several coding tasks before leaving work. Every 15 minutes the agent wakes, `light-kanban-worker` picks **one** task, works in its workspace, and sends the result to **Awaiting Confirmation** — you review the batch later. Asynchronous backlog processing with zero per-task babysitting.
149+
150+
### Multiple agents sharing one queue
151+
152+
Codex, Claude Code, DeepSeek — each runs the Worker through its own scheduler:
153+
154+
```text
155+
┌─ Codex
156+
To Do queue ─────┼─ Claude Code
157+
└─ DeepSeek
158+
```
159+
160+
Claiming is atomic: the same card can never be claimed by two agents, so all of them can safely share one board.
161+
162+
### Human review loop
163+
164+
```text
165+
Agent completes task
166+
167+
Awaiting Confirmation
168+
169+
Human finds a problem
170+
171+
Request Changes + feedback
172+
173+
Same Agent sees it next wake
174+
175+
Fixes
176+
177+
Awaiting Confirmation
178+
```
179+
180+
Rework is *not* a new task — the feedback travels on the original card and the same agent resumes it.
181+
182+
### Blocked work
183+
184+
Missing credential, dependency, user decision, or workspace access? The agent **blocks** the task with a concrete reason. You see the obstacle right on the card instead of a task silently dying inside some agent session.
185+
186+
### Cross-project personal queue
187+
188+
One board can hold cards for `~/projects/personal-site`, `~/projects/light-kanban`, `~/projects/regex-builder`, `~/work/customer-tool`, … Each card's **workspace path** decides which project the agent enters. No per-project task systems to maintain.
189+
190+
### What Light-Kanban is not
191+
192+
It is **not** an agent runtime, a cron scheduler, a CI replacement, or a cloud orchestration service. It is a **human ↔ autonomous agent work queue**: you define work and accept results; the board and the Worker keep the loop honest between those two ends.
193+
194+
## Manual Agent Integration (API without the Skill)
195+
196+
Custom agents, n8n flows, shell scripts, or Python workers can drive the same board through the raw REST API. This is the fallback path — the recommended autonomous-agent path is the `light-kanban-worker` Skill above.
197+
198+
```sh
199+
curl "http://127.0.0.1:8641/api/tasks?status=todo" # find available work (todo only)
200+
curl -F "file=@avatar.png" http://127.0.0.1:8641/api/avatars # upload an avatar, note the returned path
201+
curl -X POST -H "Content-Type: application/json" \
202+
-d '{"agentId":"my-agent","name":"My Agent","avatar":"/api/avatars/xxx.png"}' \
203+
http://127.0.0.1:8641/api/tasks/<id>/claim
204+
```
93205

94-
4. **Work and status transitions** (agent, via API): `POST /api/tasks/<id>/block` (optionally with `{"reason":"…"}` — the card shows why it is stuck), `/unblock`, `/complete`. You just watch the four columns.
206+
Claim constraints: `name` is your tool name; `avatar` must be the agent's **own icon image** (e.g. Codex claims with the Codex icon, Claude Code with the Claude Code icon — an uploaded path or an http(s) image URL). Placeholders and fabricated paths get a 422. The card then shows the agent's avatar at its top right.
95207

96-
5. **Review and archive**: when a task reaches **Awaiting Confirmation**, hover the card or open its drawer — **Accept** archives it into the **Archive** (settings menu; single and select-all delete); **Request Changes** sends it back to **In Progress** with your feedback (`POST /api/tasks/<id>/reject` with `{"feedback":"…"}` also works — the agent reads it back from `GET /api/tasks`).
208+
Status transitions (agent, via API): `POST /api/tasks/<id>/block` (optionally with `{"reason":"…"}`the card shows why it is stuck), `/unblock`, `/complete`. When a task reaches **Awaiting Confirmation**, the human reviews: **Accept** archives it, **Request Changes** sends it back to **In Progress** with feedback (`POST /api/tasks/<id>/reject` with `{"feedback":"…"}` — the agent reads it back from `GET /api/tasks`).
97209

98210
## Run from source
99211

0 commit comments

Comments
 (0)