Review: Board hygiene — label unlabeled items + add missing story:

review-398-2026-03-26 Review

review ready

Verdict: READY

Template Completeness

  • [x] Lineage — present (standalone, discovered during board audit)
  • [x] Type — present (Feature, with note about Task workaround for hook validation)
  • [x] Repo — present (forgejo_admin/claude-custom as tracking repo, pal-e-docs as actual target)
  • [x] User Story — present (Betty Sue / PM perspective)
  • [x] Context — present (explains pre-hook era gap and proactive cleanup rationale)
  • [x] File Targets — present (N/A for code; lists 10 board items with specific needs)
  • [x] Acceptance Criteria — present (3 criteria, all verifiable via list_board_items)
  • [x] Test Expectations — present (2 verification steps using board API)
  • [x] Constraints — present (3 constraints including story key lookup and valid key list)
  • [x] Checklist — present (2 items)
  • [x] Related — present (project, story, arch references)

File Targets

No code files involved. All work is update_board_item calls against board-pal-e-agency.
  • [x] Board item #65 (linkedin-scheduler CI) — verified: exists in backlog, labels=null
  • [x] Board item #63 (gcal-mcp CI) — verified: exists in backlog, labels=null
  • [x] Board item #164 (Phase 15: Capacitor Audit Agent) — verified: exists in backlog, labels=null, item_type=phase
  • [x] Board item #167 (Phase 17: Pipeline Enforcement Gates) — verified: exists in backlog, labels=null, item_type=phase
  • [x] Board item #377 (claude-custom#166) — verified: labels=type:convention,arch:enforcement,scope:discovered — no story:
  • [x] Board item #360 (forgejo-mcp#15) — verified: labels=type:feature,arch:mcp-tools,scope:discovered — no story:
  • [x] Board item #363 (pal-e-platform#163) — verified: labels=type:bug,arch:ci-pipeline,discovered-scope,priority:high — no story:
  • [x] Board item #342 (claude-custom#155) — verified: labels=type:bug,arch:mcp-tools — no story:
  • [x] Board item #365 (claude-custom#162) — verified: labels=type:feature,arch:forgejo-mcp,scope:unplanned — no story:
  • [x] Board item #347 (claude-custom#157) — verified: labels=type:bug,arch:agent-spawn,discovered-scope,depends:135 — no story:

Repo Placement

OK. Ticket correctly filed on claude-custom as a tracking repo. Actual work is pal-e-docs board operations (update_board_item API calls). No code changes in any repo. This is explicitly documented in the ticket body.

Dependencies

  • Forward dependency: claude-custom#167 (board item #395, "Upgrade story: label to hard-block") — once that ships, unlabeled items would fail validation. This ticket is proactive cleanup. Correctly documented in Context section.
  • No blocking dependencies — this ticket can execute immediately.

Acceptance Criteria

All 3 criteria are verifiable by an executing agent:
  • "All 10 items have type:, arch:, and story: labels" — verifiable via list_board_items after updates.
  • "Phase items evaluated and either labeled or removed with justification" — requires agent judgment on 2 phase items (#164, #167). Given feedback_kanban_over_plans.md says plans are obsolete, removal is the likely outcome. The ticket correctly leaves this as an evaluate step.
  • "Labels use valid keys from project-pal-e-agency User Stories table" — valid keys confirmed: superuser-manage, superuser-onboard, pm-scope, dev-execute, qa-review, dottie-docs.

Blast Radius

  • Other boards likely have the same problem. Board-westside-basketball (105 items), board-pal-e-platform (76 items), board-pal-e-docs (49 items) likely also have unlabeled items from the pre-hook era. This ticket correctly scopes to board-pal-e-agency only. Separate tickets should be filed for other boards.
  • story:scope-review on item #364 — board item #364 uses story:scope-review which is NOT in the User Stories table. This is outside ticket scope but indicates the story key vocabulary may need expansion or that item needs correction.
  • No downstream consumers affected — board label updates are metadata-only.

Recommendation

No action needed — scope is READY for execution. Two minor observations for the executing agent:
  • The 6 items missing story: labels will require reading each Forgejo issue to determine the correct story key. The Constraints section already mandates this.
  • The 2 phase items (#164, #167) should likely be removed given the kanban-over-plans feedback, but the ticket correctly frames this as an evaluation step.