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.
This commit is contained in:
Steve Cliff
2026-02-18 21:27:02 +00:00
parent 94dffdf8fc
commit 22d5848e1a
44 changed files with 494 additions and 77 deletions
+8 -2
View File
@@ -43,8 +43,11 @@ func (c *Client) GetBoard(ctx context.Context, id string) (*model.Board, error)
var response struct {
Item model.Board `json:"item"`
Included struct {
Lists []model.List `json:"lists"`
Cards []model.Card `json:"cards"`
Lists []model.List `json:"lists"`
Cards []model.Card `json:"cards"`
Labels []model.Label `json:"labels"`
CardLabels []model.CardLabel `json:"cardLabels"`
CardMemberships []model.CardMembership `json:"cardMemberships"`
} `json:"included"`
}
@@ -54,6 +57,9 @@ func (c *Client) GetBoard(ctx context.Context, id string) (*model.Board, error)
response.Item.Lists = response.Included.Lists
response.Item.Cards = response.Included.Cards
response.Item.Labels = response.Included.Labels
response.Item.CardLabels = response.Included.CardLabels
response.Item.CardMemberships = response.Included.CardMemberships
return &response.Item, nil
}