Skip to content

Commit 00696e5

Browse files
committed
add claude skills
1 parent 84b25bd commit 00696e5

19 files changed

Lines changed: 411 additions & 0 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "at-kanban",
3+
"description": "Skyboard plugins",
4+
"owner": {
5+
"name": "disnet"
6+
},
7+
"plugins": [
8+
{
9+
"name": "sb",
10+
"version": "0.1.0",
11+
"description": "Skyboard kanban board CLI — manage boards, columns, and cards on AT Protocol",
12+
"source": "./"
13+
}
14+
]
15+
}

.claude-plugin/plugin.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name": "sb",
3+
"version": "0.1.0",
4+
"description": "Skyboard kanban board CLI — manage boards, columns, and cards on AT Protocol",
5+
"author": {
6+
"name": "disnet"
7+
},
8+
"keywords": ["kanban", "atproto", "skyboard", "cli"]
9+
}

cli/README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,29 @@ sb boards --json
104104
sb whoami --json
105105
```
106106

107+
## Claude Code plugin
108+
109+
The `sb` CLI includes a [Claude Code](https://claude.ai/code) plugin so you can manage boards directly from a Claude Code conversation using `/sb:cards`, `/sb:new`, `/sb:mv`, etc.
110+
111+
### Install the plugin
112+
113+
```bash
114+
# Add the marketplace (once)
115+
/plugin marketplace add /path/to/skyboard
116+
117+
# Install the plugin
118+
/plugin install sb@skyboard
119+
```
120+
121+
Or from the terminal:
122+
123+
```bash
124+
claude plugin marketplace add /path/to/skyboard
125+
claude plugin install sb@skyboard --scope user
126+
```
127+
128+
Restart Claude Code after installing. All 15 `sb` commands are available as skills (e.g. `/sb:status`, `/sb:cards`, `/sb:new`).
129+
107130
## How it works
108131

109132
The CLI authenticates via OAuth and talks directly to AT Protocol PDS endpoints — there is no local database. Each command fetches fresh data from the board owner's PDS and all trusted participants, runs the same `materializeTasks()` per-field LWW merge logic as the web app, and displays the result.

commands/add.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
description: "Join a board by link"
3+
argument-hint: "<link>"
4+
---
5+
6+
# sb add
7+
8+
Join a board by its AT URI or web URL.
9+
10+
## Usage
11+
12+
```
13+
sb add <link>
14+
```
15+
16+
- `<link>` — AT URI (`at://did:plc:xxx/dev.skyboard.board/rkey`) or web URL (`https://skyboard.dev/board/...`)
17+
18+
If the user doesn't provide a link, ask them for it.
19+
20+
This command does not support `--json`.

commands/boards.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
description: "List all boards (owned and joined)"
3+
argument-hint: ""
4+
---
5+
6+
# sb boards
7+
8+
List all boards the user owns or has joined.
9+
10+
## Usage
11+
12+
```
13+
sb boards --json
14+
```
15+
16+
Always use `--json`. Returns an array of boards with: `rkey`, `did`, `name`, `description`, `columns`, `open`.
17+
18+
Present as a numbered list showing board name, column count, and whether the board is open.

commands/cards.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
description: "List cards, optionally filtered by column, label, or search text"
3+
argument-hint: ""
4+
---
5+
6+
# sb cards
7+
8+
List cards on the current board, grouped by column.
9+
10+
## Usage
11+
12+
```
13+
sb cards --json
14+
```
15+
16+
Options:
17+
- `-c, --column <column>` — filter by column (name, prefix, or 1-based index)
18+
- `-l, --label <label>` — filter by label name
19+
- `-s, --search <text>` — search in title and description
20+
- `--board <ref>` — override default board
21+
22+
Always use `--json`. Returns an array of column objects, each with a `cards[]` array containing: `rkey`, `shortRef`, `title`, `description`, `labels`, `createdAt`, `lastModifiedAt`.
23+
24+
Present cards grouped by column. Show the short ref (for use in other commands), title, and labels if any.

commands/cols.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
description: "Show columns for the current board"
3+
argument-hint: ""
4+
---
5+
6+
# sb cols
7+
8+
Show columns for the current (or specified) board.
9+
10+
## Usage
11+
12+
```
13+
sb cols --json
14+
```
15+
16+
Options:
17+
- `--board <ref>` — override default board
18+
19+
Always use `--json`. Returns an array with: `index`, `id`, `name`, `taskCount`.
20+
21+
Present as a numbered list showing column name and card count.

commands/comment.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
description: "Add a comment to a card"
3+
argument-hint: "<ref> <text>"
4+
---
5+
6+
# sb comment
7+
8+
Add a comment to a card.
9+
10+
## Usage
11+
12+
```
13+
sb comment <ref> "<text>" --json
14+
```
15+
16+
- `<ref>` — card reference (rkey prefix, minimum 4 characters)
17+
- `<text>` — comment text
18+
19+
Options:
20+
- `--board <ref>` — override default board
21+
22+
Always use `--json`. Returns: `rkey`, `taskRkey`, `text`.
23+
24+
If the user doesn't provide the card ref or comment text, ask for the missing pieces. Quote the comment text to handle spaces.

commands/edit.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
description: "Edit card fields (title, description, labels)"
3+
argument-hint: "<ref>"
4+
---
5+
6+
# sb edit
7+
8+
Edit one or more fields of a card.
9+
10+
## Usage
11+
12+
```
13+
sb edit <ref> --json
14+
```
15+
16+
- `<ref>` — card reference (rkey prefix, minimum 4 characters)
17+
18+
Options:
19+
- `-t, --title <title>` — new title
20+
- `-d, --description <desc>` — new description
21+
- `-l, --label <label...>` — set labels (can be specified multiple times)
22+
- `--board <ref>` — override default board
23+
24+
At least one of `-t`, `-d`, or `-l` must be provided. Always use `--json`. Returns: `rkey`, `fields`.
25+
26+
If the user doesn't specify what to change, ask them which fields to update.

commands/login.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
description: "Log in to Skyboard via AT Protocol OAuth"
3+
argument-hint: "<handle>"
4+
---
5+
6+
# sb login
7+
8+
Log in to Skyboard using your AT Protocol handle.
9+
10+
## Usage
11+
12+
```
13+
sb login <handle>
14+
```
15+
16+
- `<handle>` — AT Protocol handle (e.g. `alice.bsky.social`)
17+
18+
If the user doesn't provide a handle, ask them for it.
19+
20+
This command opens a browser for OAuth authentication. Tell the user a browser window will open and they should complete login there.
21+
22+
This command does not support `--json`.

0 commit comments

Comments
 (0)