# Tasks: retire-planka-git-issues-only

## 1. Plugin rework — grammar and lib (TDD throughout)

- [x] 1.1 Reject `planka:` in tracker grammar: `Backlog::Tracker` validation + `config-write`
      + os-status `tracker-configured` check emit the one-line ADR-0042 message, fail-soft
      (tests first)
- [x] 1.2 Delete Planka lib: `board_ensurer.rb`, `board_resolver.rb`, `board_spec.rb`,
      Planka transport in `cards.rb`, `Config#planka_board`, board logic in `resolver.rb`,
      planka-api gem wiring; delete their tests and the `FakePlankaClient`
- [x] 1.3 Remove CLI subcommands `board-ensure`, `activate`, `archive`, `card-add`, `cards`,
      `snapshot`, `card-label`, `card-comment`, `card-move`; keep `resolve`, `inspect`,
      `config-write`, `projects`; suite green
- [x] 1.4 Add issue-side capture/list helpers (tea/gh/repo-file dispatch per issue-backlog
      spec) with tests against fake CLI outputs

## 2. Plugin rework — skills, agents, hooks

- [x] 2.1 Rewrite `/os-backlog:capture` and `/os-backlog:list` to the issue model
      (labeled-issue create; pull-only grouped listing)
- [x] 2.2 Rewrite `/os-backlog:route` for the reduced grammar: destination proposal,
      canonical ten-label ensure (idempotent), migration of in-repo items; drop
      spec/state-boundary and pointer-card prose
- [x] 2.3 Delete `agents/card-triage.md` and `agents/board-audit.md`
- [x] 2.4 Rewrite `hooks/session_start.py` note per ADR-0042: keep capture / routing /
      cross-project / autonomy-label / recurring-issue rules; add the human-only `next`
      rule; drop column-ownership and promotion rules; verify token count shrank
- [x] 2.5 Update `/to-issues` (global, `~/.agents/skills/to-issues/`): destination step
      reads the reduced grammar; remove the Planka pointer-card branch
- [x] 2.6 Confirm wakeup poller label reads match the new taxonomy (no `doing`/`done`
      labels); adjust tests if needed
- [x] 2.7 Run `bin/refresh-plugins`; smoke-test capture + list live in cc-os

## 3. Data migration (Planka still up; order matters)

- [x] 3.1 Snapshot all boards to JSON via the API; take a Postgres dump on ovh-vps
- [x] 3.2 Create private `jared/ops` Forgejo repo with the canonical label set; archive the
      board snapshot JSON in it
- [x] 3.3 Recreate the recurring "Biweekly orchestration IRL audit" as a
      recurring-convention issue in `jared/ops`; update the os-context audit skill's
      pointer to it
- [x] 3.4 Migrate cc-os non-Done cards (9 Backlog, 2 Waiting, 2 Review) to `jared/cc-os`
      Forgejo issues with labels carried over; note card-comment context in issue bodies
- [x] 3.5 HUMAN GATE: per-card pass over philly-search-engine-marketing (17 Backlog,
      6 Waiting) — user decides destination (client tracker vs ops repo vs close) per card
      (2026-07-16: 4 repo cards → jared/llf-schema#7–10, 18 client cards → jared/ops#4–21,
      guardrails pin closed — vault note is the durable record)
- [x] 3.6 Close/ignore remaining onboarding-era boards (infrastructure, ovh-prod,
      ruby-gems, planka, apprise-api) — contents are Done or stale; covered by snapshot
- [x] 3.7 Rewrite `tracker=` in `.cc-os/config` of all onboarded projects (query
      `os-backlog projects` for the list); verify project index rows update

## 4. Decommission (one-way; only after 3.x verified)

- [x] 4.1 HUMAN GATE: confirm migration complete and snapshot/dump archived (user confirmed
      2026-07-16: decommission right after philly pass)
- [x] 4.2 Revoke/delete the Planka bot credentials; close the open credvault-import card's
      successor issue as obsolete (bot-credentials.env deleted on ovh-vps; no successor
      issue existed — the credvault-import card sat in Done and was never migrated; the
      import is moot with the bot account gone)
- [x] 4.3 Stop and remove the Planka service on ovh-vps (compose down, remove from
      backups/monitoring); keep the Postgres dump archived (containers/cron/service dir
      removed; no external backup/monitoring hooks found; dump + board JSON + service
      configs preserved at ovh-vps `~/planka-final-snapshot-2026-07-16/`)
- [x] 4.4 Archive the `planka-api` gem repo (read-only, README pointing at ADR-0042)
      (github.com/jaredswanson/planka archived; README banner commit e0472c4)

## 5. Records

- [x] 5.1 Update `docs/implementation-status/os-backlog.md` (rework entry) + one-line index
      headline; update the CLAUDE.md inventory bullet for os-backlog
- [x] 5.2 Update the backlog-pilot vault note (pilot outcome: Planka retired per ADR-0042)
      and the auto-memory `backlog-pilot-status` entry
- [x] 5.3 Verify ADR index shows 0033 Superseded by 0042; add a status note to ADR-0029
      body is NOT needed (subject removed — covered by 0042 text); confirm via
      `/os-adr:find` on plugins/os-backlog/
