22d5848e1a
- 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.
1.6 KiB
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
GetBoardis 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
GetBoardis called and the board has labels defined - THEN the returned Board SHALL contain a
Labelsslice with all board labels
Scenario: Get board includes card-label associations
- WHEN
GetBoardis called and cards on the board have labels attached - THEN the returned Board SHALL contain a
CardLabelsslice with all card-label associations - AND each
CardLabelentry SHALL containcardIdandlabelIdfields
Scenario: Get board includes card memberships
- WHEN
GetBoardis called and cards on the board have members assigned - THEN the returned Board SHALL contain a
CardMembershipsslice with all card-membership associations
Scenario: List board actions
- WHEN
ListBoardActionsis called with a board ID and limit - THEN the client SHALL paginate through
GET /boards/{boardId}/actionsand return action items