Files
pcli/openspec/changes/archive/2026-02-17-add-project-board-crud/specs/api-client/spec.md
T

2.0 KiB

MODIFIED Requirements

Requirement: Project operations

The client SHALL provide methods to list all accessible projects (GET /projects), get a single project by ID (GET /projects/{id}), create a project (POST /projects), and delete a project (DELETE /projects/{id}).

Scenario: List projects

  • WHEN ListProjects is called
  • THEN the client SHALL send GET /projects and return a slice of Project models

Scenario: Get project

  • WHEN GetProject is called with a project ID
  • THEN the client SHALL send GET /projects/{id} and return a Project model

Scenario: Create project

  • WHEN CreateProject is called with project fields (type, name, description)
  • THEN the client SHALL send POST /projects with the provided fields and return the created Project

Scenario: Delete project

  • WHEN DeleteProject is called with a project ID
  • THEN the client SHALL send DELETE /projects/{id}

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}).

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

Scenario: List board actions

  • WHEN ListBoardActions is called with a board ID and limit
  • THEN the client SHALL send paginated GET /boards/{boardId}/actions requests and return a slice of Action models

Scenario: Create board

  • WHEN CreateBoard is called with a project ID and board fields (name, position)
  • THEN the client SHALL send POST /projects/{projectId}/boards with the provided fields and return the created Board

Scenario: Delete board

  • WHEN DeleteBoard is called with a board ID
  • THEN the client SHALL send DELETE /boards/{id}