os-backlog slice 1: plugin scaffold + board-ensure script #10

Closed
opened 2026-07-10 17:22:33 +00:00 by jared · 1 comment
Owner

Type: AFK · Triage: ready

Parent

PRD: issue #9 (os-backlog plugin). State pointer: Planka card https://planka.hyperthrive.io/cards/1816234194716592051

What to build

The os-backlog plugin skeleton plus its first deterministic script: board-ensure. Given a board name and project (Dev vs Clients), the script idempotently creates/repairs the board via the installed planka-api gem binary: uniform lists (Backlog → Next → Doing → Waiting → Review → Done), the uniform label set (P0–P3 + autonomy labels hitl / semi / afk-readysemi is new and this slice introduces it board-wide), the Planka 2.1.1 API requirements (undocumented type fields on create, owner-manager visibility fix, label color whitelist), and the archive/activate rename convention (archived--<name>; activation automatic, archiving only on explicit human go-ahead).

Ruby in Sandi Metz style, mirroring the os-adr lib/ + CLI pattern. Plugin naming per the cc-os naming convention (verb-first skills, no name: frontmatter, no commands/ dispatcher). No cross-repo source coupling to the gem — binary only. Fails soft (clear error, non-destructive) when Planka or the gem binary is unavailable.

Acceptance criteria

  • Plugin scaffold exists under the cc-os plugin family and passes bin/refresh-plugins
  • board-ensure creates a missing board with uniform lists and full label set; rerun is a no-op
  • semi label added to the enforced label set alongside existing hitl / afk-ready
  • Bot-created projects apply the owner-manager visibility fix
  • archived-- rename convention implemented (activate + archive paths)
  • Unit tests with the gem client layer stubbed — no live API in tests

Blocked by

None - can start immediately

**Type:** AFK · **Triage:** ready ## Parent PRD: issue #9 (os-backlog plugin). State pointer: Planka card https://planka.hyperthrive.io/cards/1816234194716592051 ## What to build The `os-backlog` plugin skeleton plus its first deterministic script: `board-ensure`. Given a board name and project (Dev vs Clients), the script idempotently creates/repairs the board via the installed `planka-api` gem binary: uniform lists (`Backlog → Next → Doing → Waiting → Review → Done`), the uniform label set (`P0–P3` + autonomy labels `hitl` / `semi` / `afk-ready` — `semi` is new and this slice introduces it board-wide), the Planka 2.1.1 API requirements (undocumented `type` fields on create, owner-manager visibility fix, label color whitelist), and the archive/activate rename convention (`archived--<name>`; activation automatic, archiving only on explicit human go-ahead). Ruby in Sandi Metz style, mirroring the os-adr `lib/` + CLI pattern. Plugin naming per the cc-os naming convention (verb-first skills, no `name:` frontmatter, no `commands/` dispatcher). No cross-repo source coupling to the gem — binary only. Fails soft (clear error, non-destructive) when Planka or the gem binary is unavailable. ## Acceptance criteria - [ ] Plugin scaffold exists under the cc-os plugin family and passes `bin/refresh-plugins` - [ ] `board-ensure` creates a missing board with uniform lists and full label set; rerun is a no-op - [ ] `semi` label added to the enforced label set alongside existing `hitl` / `afk-ready` - [ ] Bot-created projects apply the owner-manager visibility fix - [ ] `archived--` rename convention implemented (activate + archive paths) - [ ] Unit tests with the gem client layer stubbed — no live API in tests ## Blocked by None - can start immediately
jared added the
ready-for-agent
label 2026-07-10 17:22:33 +00:00
Author
Owner

Implemented in commit 9a0e8a7 (local main, tests green). Closing.

Implemented in commit 9a0e8a7 (local main, tests green). Closing.
jared closed this issue 2026-07-10 17:46:30 +00:00
Sign in to join this conversation.
No description provided.