os-backlog slice 3: routing resolver CLI #12

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 routing resolver: a pure function exposed as a CLI subcommand in the plugin's Ruby lib. Input = repo path + .cc-os/config contents + board inventory (passed in, not fetched); output = exactly one of use <board> / activate <archived board> / stop-and-discuss. Encodes the deterministic repo→board rules: board named after the repo/client dir, Dev vs Clients project from ~/dev/* vs ~/clients/*, archived boards matched by the archived-- prefix. No live API calls inside the resolver.

Acceptance criteria

  • Given fixture inputs, the resolver prints the expected decision for: configured project, unconfigured dev repo, unconfigured client repo, matching archived board, ambiguous/no-match (→ stop-and-discuss)
  • Zero network/API access in the resolver code path
  • Pure Ruby unit tests, VCR-independent (prior art: planka gem recurrence tests, os-adr lib suite)

Blocked by

  • #10 (plugin scaffold + board-ensure)
**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 routing resolver: a pure function exposed as a CLI subcommand in the plugin's Ruby lib. Input = repo path + `.cc-os/config` contents + board inventory (passed in, not fetched); output = exactly one of `use <board>` / `activate <archived board>` / `stop-and-discuss`. Encodes the deterministic repo→board rules: board named after the repo/client dir, Dev vs Clients project from `~/dev/*` vs `~/clients/*`, archived boards matched by the `archived--` prefix. No live API calls inside the resolver. ## Acceptance criteria - [ ] Given fixture inputs, the resolver prints the expected decision for: configured project, unconfigured dev repo, unconfigured client repo, matching archived board, ambiguous/no-match (→ `stop-and-discuss`) - [ ] Zero network/API access in the resolver code path - [ ] Pure Ruby unit tests, VCR-independent (prior art: planka gem recurrence tests, os-adr lib suite) ## Blocked by - #10 (plugin scaffold + board-ensure)
jared added the
ready-for-agent
label 2026-07-10 17:22:33 +00:00
Author
Owner

Implemented in commit 8d4b1c7 (local main, tests green). Closing.

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