Skip to content

Commit a56aa9d

Browse files
Light ChengLight Cheng
authored andcommitted
feat: light-kanban-worker v0.1.5 candidate — non-overlapping runs, first-registration identity, evidence cleanup
- SKILL.md: same-agent runs must not overlap (must skip); atomic claim is not a same-agent concurrency lock; concurrency stays with the scheduler (max concurrent runs = 1); worker adds no lock process/heartbeat/lease; first registration requires ID + name + avatar (POST /api/avatars), existing identity reuse, missing identity never mutates tasks. - openai.yaml default_prompt: first-run-capable one-shot form (ID/Name/Avatar). - Tests: contract suite 100 assertions with the new scheduling/identity rules; adversarial fixtures overlap-allowed-variant and avatar-optional-first-registration; behavior scenarios G (same-agent concurrent wake, scheduler guard) and H (fresh identity without avatar) with recorded verification boundaries; package suites self-contained for installed copies. - Docs: bilingual worker guides with First run / Scheduling callouts and first-run scheduler + one-shot prompts; README/CATALOG/INSTALLATION/ CHANGELOG/MAINTENANCE synced to the v0.1.5 candidate framing. - Evidence: v0.1.5 release evidence with pre-release gate (READY FOR RELEASE) and post-release verification split; review-loop agent-skill acceptance PASS (F-001/F-002/F-003/G-001 repaired, independence: full).
1 parent d526ef3 commit a56aa9d

49 files changed

Lines changed: 1956 additions & 98 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CATALOG.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,17 @@ Agent host.
1313
| --- | --- |
1414
| Collection | Personal Skills Collection |
1515
| Package count | 8 admitted first-party Skills |
16-
| Current state | Released v0.1.4; `light-kanban-worker` admitted with independent `review-loop agent-skill` `PASS` |
17-
| Stable release | [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4) |
16+
| Current state | v0.1.5 release candidate (`READY FOR RELEASE`, tag pending); `light-kanban-worker` admitted with independent `review-loop agent-skill` `PASS` |
17+
| Stable release | [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4) (v0.1.5 is the prepared candidate) |
1818
| Installation authority | [docs/INSTALLATION.md](docs/INSTALLATION.md) |
1919
| Discovery check | [tests/test_collection_discovery.py](tests/test_collection_discovery.py) |
20-
| Evidence | [v0.1.4 release evidence](docs/evidence/releases/v0.1.4/) |
20+
| Evidence | [v0.1.5 release evidence](docs/evidence/releases/v0.1.5/) |
2121

2222
Stable `v0.1.1` contained the original five packages; v0.1.2 added `recap` and
2323
`language-learning` for seven admitted first-party Skills; v0.1.3 kept the
2424
same seven and migrated the test toolchain; v0.1.4 adds `light-kanban-worker`
25-
for eight admitted packages.
25+
for eight admitted packages; v0.1.5 adds the worker's non-overlapping-run and
26+
first-registration identity contract.
2627

2728
No package in this table is an unmodified upstream copy. Direct upstream
2829
dependencies and modified third-party variants are documented separately.
@@ -61,8 +62,8 @@ dependencies and modified third-party variants are documented separately.
6162
- **Purpose:** Pick up and execute one Light-Kanban task per scheduled agent run, then return it for human confirmation; resumes owned in-progress work and review feedback before claiming new tasks.
6263
- **Invocation:** Model-invoked; manual entry point is supported.
6364
- **Package:** [skills/light-kanban-worker/](skills/light-kanban-worker/)
64-
- **Status:** Admitted first-party through the full admission path (`review-loop agent-skill` `PASS`); released in v0.1.4.
65-
- **Evidence:** Contract and behavior tests under [skills/light-kanban-worker/tests/](skills/light-kanban-worker/tests/), [user guide](docs/skills/light-kanban-worker.md), and [admission evidence](docs/evidence/admissions/light-kanban-worker/README.md).
65+
- **Status:** Admitted first-party through the full admission path (`review-loop agent-skill` `PASS`); released in v0.1.4; v0.1.5 adds the same-agent non-overlap rule and the first-registration identity requirement (second `review-loop agent-skill` `PASS`).
66+
- **Evidence:** Contract and behavior tests under [skills/light-kanban-worker/tests/](skills/light-kanban-worker/tests/), [user guide](docs/skills/light-kanban-worker.md), [admission evidence](docs/evidence/admissions/light-kanban-worker/README.md), and [v0.1.5 release evidence](docs/evidence/releases/v0.1.5/README.md).
6667
- **Installation path:** `skills/light-kanban-worker/` in a host-recognized Skills root.
6768

6869
### manuscript-ops

CATALOG.zh-CN.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,16 @@
1010
| --- | --- |
1111
| 集合 | Personal Skills Collection |
1212
| 包数量 | 8 个已准入第一方 Skill |
13-
| 当前状态 | 已发布 v0.1.4`light-kanban-worker` 经独立 `review-loop agent-skill` `PASS` 准入 |
14-
| 稳定版本 | [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4) |
13+
| 当前状态 | v0.1.5 release candidate(`READY FOR RELEASE`,tag 待发布)`light-kanban-worker` 经独立 `review-loop agent-skill` `PASS` 准入 |
14+
| 稳定版本 | [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4)(v0.1.5 为已准备的 candidate) |
1515
| 安装权威 | [docs/INSTALLATION.zh-CN.md](docs/INSTALLATION.zh-CN.md) |
1616
| 发现检查 | [test_collection_discovery.py](tests/test_collection_discovery.py) |
17-
| 证据 | [v0.1.4 发布证据](docs/evidence/releases/v0.1.4/RELEASE_RECEIPT.zh-CN.md) |
17+
| 证据 | [v0.1.5 发布证据](docs/evidence/releases/v0.1.5/RELEASE_RECEIPT.zh-CN.md) |
1818

1919
稳定 `v0.1.1` 包含原来的五个包;v0.1.2 加入 `recap``language-learning`
2020
共七个已准入第一方 Skill;v0.1.3 保持同样的七个包并迁移了测试工具链;
21-
v0.1.4 加入 `light-kanban-worker`,共八个已准入包。
21+
v0.1.4 加入 `light-kanban-worker`,共八个已准入包;v0.1.5 增加 worker 的
22+
same-agent run 不得重叠与首次注册身份契约。
2223

2324
## 已准入 Skill
2425

@@ -54,8 +55,8 @@ v0.1.4 加入 `light-kanban-worker`,共八个已准入包。
5455
- **作用:** 每次定时运行领取并执行一张 Light-Kanban 任务,交回人工验收;先继续自己持有的任务和 review feedback,再领取新任务。
5556
- **调用:** Model-invoked,支持手动入口。
5657
- **包:** [skills/light-kanban-worker/](skills/light-kanban-worker/)
57-
- **状态:** 通过完整准入路径(`review-loop agent-skill` `PASS`)准入;v0.1.4 中发布。
58-
- **证据:** [contract 与 behavior 测试](skills/light-kanban-worker/tests/)[使用指南](docs/zh-CN/skills/light-kanban-worker.md)[准入证据](docs/evidence/admissions/light-kanban-worker/README.zh-CN.md)
58+
- **状态:** 通过完整准入路径(`review-loop agent-skill` `PASS`)准入;v0.1.4 中发布;v0.1.5 增加同 agent 不得重叠运行规则与首次注册身份要求(第二次 `review-loop agent-skill` `PASS`
59+
- **证据:** [contract 与 behavior 测试](skills/light-kanban-worker/tests/)[使用指南](docs/zh-CN/skills/light-kanban-worker.md)[准入证据](docs/evidence/admissions/light-kanban-worker/README.zh-CN.md)[v0.1.5 发布证据](docs/evidence/releases/v0.1.5/README.zh-CN.md)
5960
- **安装路径:** host 认可的 Skills root 下的 `skills/light-kanban-worker/`
6061

6162
### manuscript-ops

CHANGELOG.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,60 @@ All notable changes are recorded here. A release entry must be tied to an
66
actual version or tag and must not be created merely because a document was
77
drafted.
88

9+
## Unreleased — v0.1.5 candidate
10+
11+
### Changed
12+
13+
- `light-kanban-worker` now explicitly forbids overlapping scheduled runs
14+
with the same `LIGHT_KANBAN_AGENT_ID`: at most one invocation per agent id
15+
may be active, a wake that fires while the previous run is still active
16+
must skip, and different agent ids may still run concurrently. The atomic
17+
claim boundary is documented accurately — atomic claim protects two
18+
different workers claiming the same To Do task and is not a concurrency
19+
lock for multiple invocations using the same agent identity; concurrency
20+
control stays with the scheduler / agent runtime (`max concurrent runs =
21+
1` or an equivalent skip-while-active setting), and the worker adds no
22+
lock process, heartbeat, or lease service.
23+
- First registration now clearly requires ID + name + avatar. A local image
24+
is uploaded through `POST /api/avatars` and the returned
25+
`/api/avatars/...` path is used for the claim; an existing agent id reuses
26+
the server's stored name/avatar, so later wakes do not repeat the avatar.
27+
A new agent id without a name or avatar reports identity configuration
28+
missing, claims nothing, and mutates nothing.
29+
- `agents/openai.yaml` default prompt updated to the first-run-capable
30+
one-shot form (Agent ID / Name / Avatar) so a fresh board can register a
31+
new agent identity.
32+
33+
### Tests
34+
35+
- Worker contract suite extended with the scheduling-boundary rules:
36+
same-agent non-overlap, different-agent concurrency, atomic-claim
37+
boundary, scheduler ownership of concurrency, no resident lock service,
38+
first-registration identity, identity reuse, missing-identity
39+
no-mutation, and the local avatar upload path.
40+
- New adversarial negative fixtures `overlap-allowed-variant.md` and
41+
`avatar-optional-first-registration.md`; each violates exactly one rule
42+
and must be rejected.
43+
- Behavior suite adds Scenario G (same-agent concurrent wake: the second run
44+
must not start while run #1 is active, verified through a scheduler-guard
45+
fixture — Light-Kanban itself provides no run lease) and Scenario H (fresh
46+
identity without avatar: no claim, no mutation, clear configuration
47+
failure; a legal avatar then makes registration and claim succeed).
48+
Scenarios A–F remain unchanged and passing.
49+
- Release evidence workflow clarified: the receipt now separates the
50+
pre-release gate (candidate tests, admission, catalog sync — `READY FOR
51+
RELEASE`) from post-release verification (published tag identity, fresh
52+
install, host discovery, release CI), so a published tag no longer shows
53+
unexplained `PENDING` markers.
54+
55+
### Evidence
56+
57+
- `review-loop agent-skill` acceptance for the contract change:
58+
[docs/evidence/releases/v0.1.5/AGENT_SKILL_REVIEW.md](docs/evidence/releases/v0.1.5/AGENT_SKILL_REVIEW.md).
59+
- Release evidence is recorded in
60+
[docs/evidence/releases/v0.1.5/](docs/evidence/releases/v0.1.5/) once the
61+
release gates pass.
62+
963
## 0.1.4 — 2026-08-16
1064

1165
### Added

CHANGELOG.zh-CN.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,51 @@
44

55
所有变更都必须记录在实际版本/tag 对应的条目中,不能因为文档已起草就提前宣称 release。
66

7+
## Unreleased — v0.1.5 candidate
8+
9+
### 变更
10+
11+
- `light-kanban-worker` 现在明确禁止同一 `LIGHT_KANBAN_AGENT_ID`
12+
scheduled run 重叠执行:同一 agent id 任意时刻至多一个 invocation 活跃,
13+
上一 run 仍活跃时触发的唤醒必须 skip;不同 agent id 仍可并发。atomic
14+
claim 边界被准确记录——它保护的是两个不同 worker 同时 claim 同一张 To Do,
15+
并不是同一 agent identity 多个 invocation 的并发锁;并发控制属于
16+
scheduler / agent runtime(`max concurrent runs = 1` 或等价的
17+
skip-while-active 设置),worker 不新增 lock process、heartbeat 或 lease
18+
service。
19+
- 首次注册现在明确要求 ID + name + avatar:本地图片通过
20+
`POST /api/avatars` 上传并使用返回的 `/api/avatars/...` 路径 claim;已存在
21+
的 agent id 复用服务器保存的 name/avatar,后续唤醒无需重复 avatar。全新
22+
agent id 缺 name 或 avatar 时报 identity configuration missing,不 claim、
23+
不改动任何任务。
24+
- `agents/openai.yaml` default prompt 更新为可完成首次注册的 one-shot
25+
形式(Agent ID / Name / Avatar),全新看板也能注册新身份。
26+
27+
### 测试
28+
29+
- worker contract 套件新增调度边界规则:same-agent 不得重叠、不同 agent
30+
并发允许、atomic claim 边界、scheduler 拥有并发控制、无常驻 lock
31+
service、首次注册身份、身份复用、缺身份不得改动任务、本地 avatar
32+
上传路径。
33+
- 新增对抗性 negative fixtures `overlap-allowed-variant.md`
34+
`avatar-optional-first-registration.md`,各自只违反一条规则且必须被拒绝。
35+
- behavior 套件新增 Scenario G(同 agent 并发唤醒:run #1 活跃时第二个 run
36+
不得开始处理,经 scheduler-guard fixture 验证——Light-Kanban 自身不提供
37+
run lease)与 Scenario H(无 avatar 的新身份:不 claim、不改动、明确配置
38+
失败;提供合法 avatar 后注册与 claim 成功)。Scenarios A–F 保持不变并继续
39+
通过。
40+
- release evidence 工作流澄清:receipt 现在区分 pre-release gate(candidate
41+
测试、准入、catalog 同步——`READY FOR RELEASE`)与 post-release
42+
verification(已发布 tag 身份、fresh install、host discovery、release
43+
CI),已发布 tag 中不再出现令人困惑的 `PENDING` 标记。
44+
45+
### 证据
46+
47+
- 契约变更的 `review-loop agent-skill` 验收:
48+
[docs/evidence/releases/v0.1.5/AGENT_SKILL_REVIEW.zh-CN.md](docs/evidence/releases/v0.1.5/AGENT_SKILL_REVIEW.zh-CN.md)
49+
- Release 证据在 release gate 通过后记录于
50+
[docs/evidence/releases/v0.1.5/](docs/evidence/releases/v0.1.5/)
51+
752
## 0.1.4 — 2026-08-16
853

954
### 新增

README.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,20 @@ explicit about its invocation boundary, and small enough to inspect before use.
1010

1111
> **About:** Personal Skills Collection — Drive your creativity
1212
13-
> **Release:** [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4)
14-
> is published from commit `a9cc8aa` (tag `v0.1.4`). The release record and fresh-install evidence
15-
> live in [docs/evidence/releases/v0.1.4/](docs/evidence/releases/v0.1.4/).
13+
> **Release:** [v0.1.5](https://github.com/LightDevCoder/skills/releases/tag/v0.1.5)
14+
> is the prepared release candidate — the pre-release gate is
15+
> `READY FOR RELEASE` and the `v0.1.5` tag is published only after the gate
16+
> passes. The release record and fresh-install evidence
17+
> live in [docs/evidence/releases/v0.1.5/](docs/evidence/releases/v0.1.5/);
18+
> post-release verification is recorded on main and linked from the GitHub
19+
> Release.
1620
>
1721
> `light-kanban-worker` was admitted through the full path with an independent
1822
> `review-loop agent-skill` `PASS`; see its
1923
> [admission evidence](docs/evidence/admissions/light-kanban-worker/README.md).
24+
> Its v0.1.5 scheduling-boundary and identity change carries a second
25+
> `review-loop agent-skill` `PASS`; see the
26+
> [v0.1.5 release evidence](docs/evidence/releases/v0.1.5/README.md).
2027
> Independent acceptance for the original five packages remains `BLOCKED`;
2128
> see the release receipts for the exact boundary.
2229
@@ -38,7 +45,7 @@ Refresh the Agent host, then confirm that the package is visible in its Skill
3845
catalog. If the host exposes a filesystem, inspect the installed package's
3946
`SKILL.md` and `agents/openai.yaml`; discovery without the source checkout is
4047
the meaningful check. The exact CLI version, destination, and result are in
41-
[INSTALLATION_VERIFICATION.md](docs/evidence/releases/v0.1.2/INSTALLATION_VERIFICATION.md).
48+
[INSTALLATION_VERIFICATION.md](docs/evidence/releases/v0.1.5/INSTALLATION_VERIFICATION.md).
4249

4350
The first useful entry point when the next move is unclear is `$ask-light`:
4451

@@ -69,12 +76,15 @@ Use light-kanban-worker to process at most one Light-Kanban task.
6976
```
7077

7178
It resumes owned work and review feedback before claiming new tasks, then
72-
returns the result for human confirmation. See the
79+
returns the result for human confirmation. First registration needs the
80+
Agent ID, Name, and Avatar; later runs reuse the saved identity. Configure
81+
the scheduler so only one run of the same agent id can be active at a time
82+
(different agent ids may run concurrently). See the
7383
[`light-kanban-worker` guide](docs/skills/light-kanban-worker.md).
7484

7585
## External capabilities
7686

77-
The published v0.1.4 collection contains eight first-party packages: the
87+
The v0.1.5 release candidate collection contains eight first-party packages: the
7888
v0.1.2 release's seven (v0.1.1's five plus `recap` and `language-learning`;
7989
v0.1.3 kept the same seven and migrated the test toolchain), plus
8090
`light-kanban-worker`.
@@ -149,7 +159,7 @@ and is never copied into this public collection.
149159
- [Review policy](docs/REVIEW_POLICY.md)
150160
- [Catalog](CATALOG.md)
151161
- [Changelog](CHANGELOG.md)
152-
- [Release receipt](docs/evidence/releases/v0.1.4/RELEASE_RECEIPT.md)
162+
- [Release receipt](docs/evidence/releases/v0.1.5/RELEASE_RECEIPT.md)
153163
- [recap admission evidence](docs/evidence/admissions/recap/README.md)
154164
- [language-learning admission evidence](docs/evidence/admissions/language-learning/README.md)
155165
- [light-kanban-worker admission evidence](docs/evidence/admissions/light-kanban-worker/README.md)

README.zh-CN.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@
88

99
> **简介:** Personal Skills Collection — Drive your creativity
1010
11-
> **发布:** [v0.1.4](https://github.com/LightDevCoder/skills/releases/tag/v0.1.4)
12-
> 已从 commit `a9cc8aa`(tag `v0.1.4`)发布。发布记录和 fresh-install 证据见
13-
> [docs/evidence/releases/v0.1.4/](docs/evidence/releases/v0.1.4/)
11+
> **发布:** [v0.1.5](https://github.com/LightDevCoder/skills/releases/tag/v0.1.5)
12+
> 是已准备好的 release candidate——pre-release gate 为 `READY FOR RELEASE`
13+
> `v0.1.5` tag 在 gate 通过后才发布。发布记录和 fresh-install 证据见
14+
> [docs/evidence/releases/v0.1.5/](docs/evidence/releases/v0.1.5/)
15+
> post-release verification 记录在 main,并从 GitHub Release 链接。
1416
>
1517
> `light-kanban-worker` 经完整路径准入,独立 `review-loop agent-skill`
1618
> 验收为 `PASS`;见[准入证据](docs/evidence/admissions/light-kanban-worker/README.zh-CN.md)
19+
> 其 v0.1.5 调度边界与身份变更带有第二次 `review-loop agent-skill`
20+
> `PASS`;见 [v0.1.5 release 证据](docs/evidence/releases/v0.1.5/README.zh-CN.md)
1721
> 原有五个包的独立 acceptance 仍为 `BLOCKED`;准确边界见发布收据。
1822
1923
## Quick Start
@@ -30,7 +34,7 @@ npx skills add LightDevCoder/skills --yes --copy --agent '*'
3034
npx skills add LightDevCoder/skills --skill review-loop --yes --copy --agent '*'
3135
```
3236

33-
刷新 Agent host,然后在其 Skill catalog 中确认发现结果。若 host 提供文件系统,检查已安装包的 `SKILL.md``agents/openai.yaml`;脱离 source checkout 后仍能发现,才是有意义的验证。CLI 版本、destination 和结果见 [INSTALLATION_VERIFICATION.zh-CN.md](docs/evidence/releases/v0.1.2/INSTALLATION_VERIFICATION.zh-CN.md)
37+
刷新 Agent host,然后在其 Skill catalog 中确认发现结果。若 host 提供文件系统,检查已安装包的 `SKILL.md``agents/openai.yaml`;脱离 source checkout 后仍能发现,才是有意义的验证。CLI 版本、destination 和结果见 [INSTALLATION_VERIFICATION.zh-CN.md](docs/evidence/releases/v0.1.5/INSTALLATION_VERIFICATION.zh-CN.md)
3438

3539
第一次不知道下一步时,推荐显式调用 `$ask-light`
3640

@@ -55,11 +59,11 @@ $review-loop init # 冻结已有验收标准的 baseline
5559
Use light-kanban-worker to process at most one Light-Kanban task.
5660
```
5761

58-
它先继续自己持有的任务和 review feedback,再领取新任务,并把结果交回人工验收。详见 [`light-kanban-worker` 指南](docs/zh-CN/skills/light-kanban-worker.md)
62+
它先继续自己持有的任务和 review feedback,再领取新任务,并把结果交回人工验收。首次注册需要 Agent ID、Name 和 Avatar;之后的运行复用已保存的身份。请把 scheduler 配置为同一 agent id 同时最多只有一个 run 活跃(不同 agent id 可以并发)。详见 [`light-kanban-worker` 指南](docs/zh-CN/skills/light-kanban-worker.md)
5963

6064
## 外部能力(External Capabilities)
6165

62-
已发布的 v0.1.4 集合包含八个第一方包:v0.1.2 的七个包
66+
v0.1.5 release candidate 集合包含八个第一方包:v0.1.2 的七个包
6367
(v0.1.1 的五个包加 `recap``language-learning`;v0.1.3 保持同样的七个包
6468
并迁移了测试工具链),再加 `light-kanban-worker`
6569

@@ -112,7 +116,7 @@ Use light-kanban-worker to process at most one Light-Kanban task.
112116
- [审查策略](docs/REVIEW_POLICY.zh-CN.md)
113117
- [目录](CATALOG.zh-CN.md)
114118
- [变更记录](CHANGELOG.zh-CN.md)
115-
- [发布收据](docs/evidence/releases/v0.1.4/RELEASE_RECEIPT.zh-CN.md)
119+
- [发布收据](docs/evidence/releases/v0.1.5/RELEASE_RECEIPT.zh-CN.md)
116120
- [recap 准入证据](docs/evidence/admissions/recap/README.zh-CN.md)
117121
- [language-learning 准入证据](docs/evidence/admissions/language-learning/README.zh-CN.md)
118122
- [light-kanban-worker 准入证据](docs/evidence/admissions/light-kanban-worker/README.zh-CN.md)

0 commit comments

Comments
 (0)