Retire Planka: os-backlog reworked to git-issues-only (ADR-0042)
Executes OpenSpec change retire-planka-git-issues-only (archived, 25/25 tasks):
- os-backlog v0.3.0: Planka lib/CLI/agents deleted; issue-create/issues
helpers (tea/gh/repo-file dispatch); ten-label taxonomy, human-only next
- planka: rejected fail-soft citing ADR-0042 in tracker grammar,
config-write, and the os-status check
- Skills, SessionStart note (~687 -> ~444 tokens), /to-issues, os-status fix
rewritten to the single-tracker model
- All boards snapshotted + pg-dumped (ovh-vps ~/planka-final-snapshot-2026-07-16);
cards migrated to jared/cc-os#61-70, jared/ops#1-21, jared/llf-schema#7-10
- Planka server decommissioned; planka gem repo archived read-only
- Delta specs synced to openspec/specs/ (issue-backlog, issue-state-labels)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HWNfGWoWnhrub4EJa1M1Y
2026-07-16 19:48:40 +00:00
|
|
|
|
# issue-backlog
|
|
|
|
|
|
|
|
|
|
|
|
## ADDED Requirements
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Tracker key grammar excludes Planka
|
|
|
|
|
|
The `.cc-os/config` `tracker` key SHALL accept exactly `forgejo:<owner>/<repo>`,
|
|
|
|
|
|
`github:<owner>/<repo>`, or `repo:<path>`. `config-write` and the os-status
|
|
|
|
|
|
`tracker-configured` check SHALL reject any other value, including `planka:<board>`, with a
|
|
|
|
|
|
one-line error naming ADR-0042 and pointing to `/os-backlog:route`; rejection SHALL never
|
|
|
|
|
|
block or fail a session (fail-soft).
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Legacy planka tracker value encountered
|
|
|
|
|
|
- **WHEN** a config containing `tracker=planka:cc-os` is read by config-write validation or
|
|
|
|
|
|
the os-status check
|
|
|
|
|
|
- **THEN** the value is rejected with a one-line message citing ADR-0042 and suggesting
|
|
|
|
|
|
`/os-backlog:route`, and the session continues normally
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Valid git tracker accepted
|
|
|
|
|
|
- **WHEN** `config-write` is invoked with `tracker=forgejo:jared/cc-os`
|
|
|
|
|
|
- **THEN** the key is written, other config keys and comments are preserved, and the
|
|
|
|
|
|
project index is upserted
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Capture files a labeled issue on the configured tracker
|
|
|
|
|
|
`/os-backlog:capture` SHALL create an issue on the project's configured tracker (via `tea`
|
|
|
|
|
|
for forgejo, `gh` for github, an issue file for `repo:`) carrying a priority label (P0–P3)
|
|
|
|
|
|
when known and no state labels; capture SHALL never apply the `next` label. When no tracker
|
|
|
|
|
|
key is configured in a git project, capture SHALL suggest `/os-backlog:route` once and
|
|
|
|
|
|
otherwise degrade to reporting what it could not do.
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Mid-session capture on a Forgejo-tracked project
|
|
|
|
|
|
- **WHEN** deferred work surfaces in a project with `tracker=forgejo:jared/cc-os`
|
|
|
|
|
|
- **THEN** a new open issue is created on that repo via `tea` with the title, a body noting
|
|
|
|
|
|
the originating context, and any known priority label — and nothing else
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Capture with no tracker configured
|
|
|
|
|
|
- **WHEN** capture is invoked in a git project whose config has no tracker key
|
|
|
|
|
|
- **THEN** no issue is created; the skill suggests `/os-backlog:route` once and exits
|
|
|
|
|
|
without error
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Listing is pull-only over issues
|
|
|
|
|
|
`/os-backlog:list` SHALL query the configured tracker's open issues (title, number, labels,
|
|
|
|
|
|
assignee) and present them grouped by state (next / waiting / review / other open). It
|
|
|
|
|
|
SHALL run only on explicit user request; no hook or skill SHALL inject issue lists into a
|
|
|
|
|
|
session unasked.
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: User asks what's on the backlog
|
|
|
|
|
|
- **WHEN** the user explicitly asks what is on the backlog or what's next
|
|
|
|
|
|
- **THEN** open issues from the configured tracker are listed grouped by state labels, with
|
|
|
|
|
|
`next`-labeled issues shown first
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: Cross-project filing targets the other project's tracker
|
|
|
|
|
|
WHEN work belonging to a different project surfaces, the system SHALL resolve that
|
|
|
|
|
|
project's tracker via the global project index (`os-backlog projects`) and file a labeled
|
|
|
|
|
|
issue there using the Discoverer template, rather than editing the other project or filing
|
|
|
|
|
|
locally. Priority/autonomy labeling of the filed issue remains the receiving project's job.
|
|
|
|
|
|
|
|
|
|
|
|
#### Scenario: Discovered defect in another indexed project
|
|
|
|
|
|
- **WHEN** a session in project A finds a bug belonging to indexed project B
|
|
|
|
|
|
- **THEN** an issue is created on B's configured tracker with the Discoverer template, no
|
|
|
|
|
|
autonomy or priority labels are applied by A, and no local copy is kept
|
|
|
|
|
|
|
|
|
|
|
|
### Requirement: One tracker holds both state and specs
|
|
|
|
|
|
A project SHALL have exactly one configured tracker destination; durable specs
|
2026-07-16 20:24:36 +00:00
|
|
|
|
(tracer-bullet slices from /to-tickets, PRDs) and task-state items are issues on that same
|
Retire Planka: os-backlog reworked to git-issues-only (ADR-0042)
Executes OpenSpec change retire-planka-git-issues-only (archived, 25/25 tasks):
- os-backlog v0.3.0: Planka lib/CLI/agents deleted; issue-create/issues
helpers (tea/gh/repo-file dispatch); ten-label taxonomy, human-only next
- planka: rejected fail-soft citing ADR-0042 in tracker grammar,
config-write, and the os-status check
- Skills, SessionStart note (~687 -> ~444 tokens), /to-issues, os-status fix
rewritten to the single-tracker model
- All boards snapshotted + pg-dumped (ovh-vps ~/planka-final-snapshot-2026-07-16);
cards migrated to jared/cc-os#61-70, jared/ops#1-21, jared/llf-schema#7-10
- Planka server decommissioned; planka gem repo archived read-only
- Delta specs synced to openspec/specs/ (issue-backlog, issue-state-labels)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HWNfGWoWnhrub4EJa1M1Y
2026-07-16 19:48:40 +00:00
|
|
|
|
tracker. The system SHALL NOT create pointer artifacts on a second tracking surface.
|
|
|
|
|
|
|
2026-07-16 20:24:36 +00:00
|
|
|
|
#### Scenario: /to-tickets publishes a slice chain
|
|
|
|
|
|
- **WHEN** /to-tickets publishes tracer-bullet slices for a project with a configured git
|
Retire Planka: os-backlog reworked to git-issues-only (ADR-0042)
Executes OpenSpec change retire-planka-git-issues-only (archived, 25/25 tasks):
- os-backlog v0.3.0: Planka lib/CLI/agents deleted; issue-create/issues
helpers (tea/gh/repo-file dispatch); ten-label taxonomy, human-only next
- planka: rejected fail-soft citing ADR-0042 in tracker grammar,
config-write, and the os-status check
- Skills, SessionStart note (~687 -> ~444 tokens), /to-issues, os-status fix
rewritten to the single-tracker model
- All boards snapshotted + pg-dumped (ovh-vps ~/planka-final-snapshot-2026-07-16);
cards migrated to jared/cc-os#61-70, jared/ops#1-21, jared/llf-schema#7-10
- Planka server decommissioned; planka gem repo archived read-only
- Delta specs synced to openspec/specs/ (issue-backlog, issue-state-labels)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HWNfGWoWnhrub4EJa1M1Y
2026-07-16 19:48:40 +00:00
|
|
|
|
tracker
|
|
|
|
|
|
- **THEN** the slices become issues on that tracker and no pointer card or secondary
|
|
|
|
|
|
tracking artifact is created anywhere
|