Files
pcli/openspec/changes/expand-board-included-parsing/specs/api-client/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: Board operations

The client SHALL provide a method to get a single board by ID (GET /boards/{id}), list board actions (GET /boards/{boardId}/actions) with pagination support, create a board (POST /projects/{projectId}/boards), and delete a board (DELETE /boards/{id}). GetBoard SHALL parse the included object from the response and populate the Board model with lists, cards, labels, cardLabels, and cardMemberships.

Scenario: Get board

  • WHEN GetBoard is called with a board ID
  • THEN the client SHALL send GET /boards/{id} and return a Board model including its included lists, cards, labels, cardLabels, and cardMemberships

Scenario: Get board includes labels

  • WHEN GetBoard is called and the board has labels defined
  • THEN the returned Board SHALL contain a Labels slice with all board labels

Scenario: Get board includes card-label associations

  • WHEN GetBoard is called and cards on the board have labels attached
  • THEN the returned Board SHALL contain a CardLabels slice with all card-label associations
  • AND each CardLabel entry SHALL contain cardId and labelId fields

Scenario: Get board includes card memberships

  • WHEN GetBoard is called and cards on the board have members assigned
  • THEN the returned Board SHALL contain a CardMemberships slice with all card-membership associations

Scenario: List board actions

  • WHEN ListBoardActions is called with a board ID and limit
  • THEN the client SHALL paginate through GET /boards/{boardId}/actions and return action items