Files
trello-plugin/docs/backend/002_manage_boards_spec.md
T

117 lines
3.0 KiB
Markdown

# Trello Plugin — Manage Trello Boards
**Feature:** US: Manage Trello Boards
**Issue:** #2
**Branch:** `feature/manage-boards`
**Doc:** 002
## Overview
Extends the Trello plugin with board management capabilities: create, rename, close/archive, open, and view details of Trello boards.
## Design Decisions
- **Extends existing TrelloClient** — All board operations go through the same `TrelloClient` class from the auth feature.
- **Board selection by ID** — The Trello API identifies boards by ID. The tool accepts both ID and name (client resolves name to ID).
- **Resolves board name to ID** — When a user provides a board name instead of ID, the client fetches all boards and matches by name.
## Tools
### `trello_create_board`
Create a new Trello board.
**Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Board name |
| `default_lists` | bool | No | Whether to create the default lists (default: true) |
**Returns:**
```json
{
"success": true,
"board": {"id": "abc123", "name": "My Board", "url": "https://trello.com/b/abc123"}
}
```
### `trello_rename_board`
Rename an existing board.
**Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `board_id` | string | Yes | Board ID or name |
| `name` | string | Yes | New board name |
**Returns:**
```json
{"success": true, "board": {"id": "abc123", "name": "New Name"}}
```
### `trello_archive_board`
Close/archive a board.
**Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `board_id` | string | Yes | Board ID or name |
**Returns:**
```json
{"success": true, "message": "Board 'My Board' archived."}
```
### `trello_open_board`
Re-open a closed/archived board.
**Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `board_id` | string | Yes | Board ID or name |
**Returns:**
```json
{"success": true, "message": "Board 'My Board' opened."}
```
### `trello_board_details`
View details of a specific board, including its lists and members.
**Parameters:**
| Param | Type | Required | Description |
|-------|------|----------|-------------|
| `board_id` | string | Yes | Board ID or name |
**Returns:**
```json
{
"success": true,
"board": {
"id": "abc123",
"name": "My Board",
"url": "https://trello.com/b/abc123",
"desc": "",
"closed": false,
"starred": false,
"lists": [{"id": "l1", "name": "To Do"}, {"id": "l2", "name": "In Progress"}],
"members": [{"id": "m1", "username": "user1", "full_name": "User One"}]
}
}
```
## Trello API Endpoints
| Purpose | Method | Endpoint |
|---------|--------|----------|
| Create board | POST | `/1/boards/` |
| Update board | PUT | `/1/boards/{id}` |
| Get board details | GET | `/1/boards/{id}` (with lists and members fields) |
## Error Handling
- Board not found → clear message suggesting `trello_list_boards` to find the ID
- Validation errors → surfaced directly from Trello API