Files
pcli/openspec/changes/expand-board-included-parsing/specs/card-operations/spec.md
T
Steve Cliff 22d5848e1a feat: Add openspec-sync-specs and openspec-verify-change skills
- Introduced `openspec-sync-specs` skill to sync delta specs to main specs, allowing intelligent merging of requirements.
- Added `openspec-verify-change` skill to verify implementation against change artifacts, ensuring completeness, correctness, and coherence before archiving.

docs: Create CLAUDE.md for project guidance

- Added CLAUDE.md to provide an overview of the PCLI project, including build, test commands, architecture, and resource addition guidelines.

chore: Add new change and design documents for project filter in status command

- Created `.openspec.yaml`, `design.md`, `proposal.md`, and `tasks.md` for the `add-project-filter-to-status` change.
- Updated specs for CLI commands and status command to include project filtering functionality.

feat: Expand board included parsing in API client

- Added parsing for `labels`, `cardLabels`, and `cardMemberships` in the `GetBoard` response.
- Updated `ListCardsByBoard` to enrich card output with label names, enhancing usability in kanban sync workflows.
2026-02-18 21:27:02 +00:00

1.6 KiB

MODIFIED Requirements

Requirement: Enriched board-level card listing

The system SHALL provide a card list --board <id> operation that returns all cards across all lists in a board, with each card enriched with the listName field and a labels field. The operation SHALL: (1) call GET /boards/{id} to retrieve the board and its included lists, cards, labels, and cardLabels, (2) build a card-to-label-names map by joining cardLabels with labels, (3) inject listName and labels into each card. The labels field SHALL be an array of label name strings. The --limit flag SHALL apply to the total number of cards returned across all lists.

Scenario: List all cards on a board

  • WHEN pcli card list --board <id> is executed
  • THEN the system SHALL return all cards from all lists in the board
  • AND each card SHALL include a listName field with the name of its containing list
  • AND each card SHALL include a labels field with an array of label names attached to that card

Scenario: Card with multiple labels

  • WHEN a card has two labels ("bug" and "urgent") attached
  • THEN the labels array for that card SHALL contain both "bug" and "urgent"

Scenario: Card with no labels

  • WHEN a card has no labels attached
  • THEN the labels array for that card SHALL be an empty array (not null)

Scenario: Board card listing with limit

  • WHEN pcli card list --board <id> --limit 10 is executed
  • THEN the system SHALL return at most 10 cards total across all lists
  • AND each card SHALL include the listName and labels fields