.claude/skills/fizzy/SKILL.md
--- name: fizzy description: Interact with the Fizzy bug tracker - list, create, update, close cards, add comments, and more. Usage: /fizzy <action> [args] allowed-tools: Bash, Read, Grep --- # Fizzy Bug Tracker Interact with the Fizzy bug tracker via its API. ## Setup The Fizzy token is stored in the project `.env` file as `FIZZY_TOKEN`. Read it before making any API calls: ```bash grep '^FIZZY_TOKEN=' /Users/olly/dev/pagecord/.env | cut -d= -f2- ``` If `FIZZY_TOKEN` is missing or empty,
npx skillsauth add lylo/pagecord .claude/skills/fizzyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Interact with the Fizzy bug tracker via its API.
The Fizzy token is stored in the project .env file as FIZZY_TOKEN. Read it before making any API calls:
grep '^FIZZY_TOKEN=' /Users/olly/dev/pagecord/.env | cut -d= -f2-
If FIZZY_TOKEN is missing or empty, tell the user to add it to .env and stop.
Base URL: https://app.fizzy.do
The account slug is required for most endpoints. Discover it on first use:
curl -s -H "Authorization: Bearer $TOKEN" -H "Accept: application/json" https://app.fizzy.do/my/identity
This returns accounts[].slug (e.g. /897362094). If there's only one account, use it automatically. If multiple, ask the user which one.
Cache the slug value for the duration of the conversation - don't re-fetch it on every call.
All curl commands must include:
-H "Authorization: Bearer $TOKEN"-H "Accept: application/json"-H "Content-Type: application/json" (for POST/PUT/PATCH)Replace $SLUG with the account slug (just the number, no leading slash).
GET /$SLUG/cards
Useful query parameters:
indexed_by=all (default), closed, not_now, stalled, postponing_soon, goldensorted_by=latest (default), newest, oldestboard_ids[]=ID - filter by boardtag_ids[]=ID - filter by tagassignee_ids[]=ID - filter by assigneeterms[]=keyword - searchcreation=today, yesterday, thisweek, lastweek, thismonthassignment_status=unassignedDisplay cards in a concise table: number, title, status, tags, board name.
Follow Link header with rel="next" for pagination.
GET /$SLUG/cards/:card_number
Display: title, status, description (plain text from description_html), board, column, tags, assignees, steps, golden status.
POST /$SLUG/boards/:board_id/cards
Body: {"card": {"title": "...", "description": "..."}}
If the user doesn't specify a board, list boards first and ask.
PUT /$SLUG/cards/:card_number
Body: {"card": {"title": "...", "description": "..."}}
POST /$SLUG/cards/:card_number/closure
DELETE /$SLUG/cards/:card_number/closure
POST /$SLUG/cards/:card_number/not_now
POST /$SLUG/cards/:card_number/triage
Body: {"column_id": "..."}
If column not specified, list columns for the card's board and ask.
DELETE /$SLUG/cards/:card_number/triage
POST /$SLUG/cards/:card_number/taggings
Body: {"tag_title": "bug"} (leading # is stripped automatically)
POST /$SLUG/cards/:card_number/assignments
Body: {"assignee_id": "..."}
This toggles - if already assigned, it unassigns.
POST /$SLUG/cards/:card_number/comments
Body: {"comment": {"body": "..."}}
GET /$SLUG/cards/:card_number/comments
Display: creator name, date, plain text body.
GET /$SLUG/boards
GET /$SLUG/boards/:board_id/columns
GET /$SLUG/tags
GET /$SLUG/users
GET /$SLUG/notifications
Display unread notifications with title, body, card link.
Mark read: POST /$SLUG/notifications/:id/reading
Mark all read: POST /$SLUG/notifications/bulk_reading
Create: POST /$SLUG/cards/:card_number/steps with {"step": {"content": "..."}}
Complete: PUT /$SLUG/cards/:card_number/steps/:step_id with {"step": {"completed": true}}
Delete: DELETE /$SLUG/cards/:card_number/steps/:step_id
Pin: POST /$SLUG/cards/:card_number/pin
Unpin: DELETE /$SLUG/cards/:card_number/pin
List pins: GET /my/pins
Set: POST /$SLUG/cards/:card_number/goldness
Remove: DELETE /$SLUG/cards/:card_number/goldness
data-ai
Investigate a customer support email and draft a reply. Use when the user pastes a customer message, bug report, billing question, feature request, or how-to question.
development
Investigate and fix a Sentry issue in this codebase. Use when the user provides a Sentry issue URL or ID and wants diagnosis, a fix, verification, or a PR.
testing
Interact with Cloudflare R2 buckets used by Pagecord. Use when the user wants to list objects, inspect bucket stats, fetch files, or check backup integrity in R2.
development
Interact with the Pagecord API for a blog. Use when the user wants to inspect posts or pages, publish content through the API, check API connectivity, or inspect the home page.