| name | description |
|---|---|
fizzy-workflow |
High-level workflows for managing work using Fizzy cards. This skill builds on top of the base `fizzy` skill to provide structured workflows for starting, working on, and completing cards. |
| Workflow | When to Use |
|---|---|
| Start Card | Begin work on a card, move to Doing, assign to self |
| Complete Card | Finish card, post commit link, close |
| Update Progress | Mark step complete, post progress |
| Assign to Human | Delegate to human for manual tasks |
When: Beginning work on a new card
Steps:
- Get card details:
fizzy card show CARD_NUMBER - Find "Doing" column ID:
fizzy column list --board BOARD_ID - Move to "Doing" column:
fizzy card column CARD_NUMBER --column <doing_column_id> - Assign to bot/self:
fizzy card assign CARD_NUMBER --user <bot_user_id>
Example:
# Get column IDs
fizzy column list --board BOARD_ID | jq '.data[] | {id: .id, name: .name}'
# Move to Doing
fizzy card column 15 --column <doing_column_id>
# Assign to bot
fizzy card assign 15 --user <bot_user_id>What to tell the user:
Card #X moved to "Doing" and assigned. Starting implementation...
During implementation:
Mark steps complete:
fizzy step update STEP_ID --card CARD_NUMBER --completedPost SHORT progress comments:
- Only for completed steps or important milestones
- Keep concise (1-2 sentences) to save tokens
- Include brief justification for design/decision changes
Example progress comment:
fizzy comment create --card 12 --body "$(cat <<'EOF'
<p>✅ Feature X completed</p>
<p>Migration applied: <code>20260211040415_init</code></p>
EOF
)"IMPORTANT:
- Comments are visible to team, so be clear but brief
- Focus on WHAT was done, not HOW
- Skip obvious/trivial updates
When: All work is done and committed
Required steps:
Use conventional commit format, NEVER mention Fizzy (it's external to the project):
git add <files>
git commit -m "$(cat <<'EOF'
feat(scope): implement feature X
Detailed description of what was implemented.
Key changes:
- Feature A
- Feature B
- Feature C
EOF
)"Conventional commit types:
feat: New featuresfix: Bug fixesdocs: Documentationrefactor: Code refactoringtest: Adding testschore: Maintenance tasks
COMMIT_HASH=$(git log -1 --format="%H")
REPO_URL=$(git remote get-url origin | sed 's/git@github.com:/https:\/\/github.com\//' | sed 's/\.git$//')fizzy comment create --card NUMBER --body "$(cat <<'EOF'
<p>✅ Completed and committed to GitHub</p>
<p><br></p>
<p>Commit: <a href="REPO_URL/commit/COMMIT_HASH">SHORT_HASH</a></p>
<p><br></p>
<p><strong>Summary:</strong></p>
<ul>
<li>Key deliverable 1</li>
<li>Key deliverable 2</li>
<li>Key deliverable 3</li>
</ul>
EOF
)"fizzy card close CARD_NUMBERWhat to tell the user:
✅ Card #X Complete!
**Commit:** [hash](github_url)
**Delivered:**
- Feature A
- Feature B
- Feature C
**Card Status:** ✅ Closed
When to assign to human:
- Tasks that can only be done manually by human
- Tasks requiring confirmation/approval
- Infrastructure decisions (deployment, hosting, CI/CD platforms)
- Security reviews or sensitive configurations
- UI/UX design decisions
How to find human user ID:
# List all users to find the right person
fizzy user list | jq '.data[] | {id: .id, name: .name, email: .email_address}'Assign:
fizzy card assign CARD_NUMBER --user <human_user_id>Post a comment explaining why:
fizzy comment create --card NUMBER --body "$(cat <<'EOF'
<p>🤝 Assigned for human decision</p>
<p><br></p>
<p><strong>Reason:</strong> [brief explanation]</p>
<p><strong>Questions:</strong></p>
<ul>
<li>Question 1?</li>
<li>Question 2?</li>
</ul>
EOF
)"✅ DO:
- Post when steps complete
- Post for design/decision changes
- Post for important milestones
- Keep to 1-2 sentences
- Use clear, actionable language
❌ DON'T:
- Post for every minor action
- Write long explanations
- Duplicate information already in code
- Use internal/technical jargon unnecessarily
✅ DO:
- Use conventional commit format
- Focus on WHAT and WHY
- Include relevant scope
- List key changes in body
❌ DON'T:
- Mention Fizzy (it's external to project)
- Reference card numbers in commits
- Write vague messages
- Skip the commit body for complex changes
✅ DO:
- Move cards through workflow stages
- Assign appropriately (bot vs human)
- Close cards when truly complete
- Update steps as you progress
❌ DON'T:
- Leave cards in wrong columns
- Close cards with incomplete work
- Forget to assign cards
- Skip step updates
# 1. Get board and column info
BOARD_ID=$(fizzy board list | jq -r '.data[0].id')
DOING_COL=$(fizzy column list --board $BOARD_ID | jq -r '.data[] | select(.name == "Doing") | .id')
BOT_USER=$(fizzy identity show | jq -r '.accounts[0].user.id')
# 2. Start the card
fizzy card column 15 --column $DOING_COL
fizzy card assign 15 --user $BOT_USER
# 3. Work and mark steps
fizzy step update STEP_1_ID --card 15 --completed
fizzy step update STEP_2_ID --card 15 --completed
# ... continue implementation ...
# 4. Commit
git add <files>
git commit -m "feat: implement feature"
# 5. Complete and close
COMMIT_HASH=$(git log -1 --format="%H")
SHORT_HASH=$(git log -1 --format="%h")
REPO_URL=$(git remote get-url origin | sed 's/git@github.com:/https:\/\/github.com\//' | sed 's/\.git$//')
fizzy comment create --card 15 --body "<p>✅ Done. Commit: <a href='$REPO_URL/commit/$COMMIT_HASH'>$SHORT_HASH</a></p>"
fizzy card close 15# 1. Start
fizzy card column 20 --column <doing_col_id>
fizzy card assign 20 --user <bot_user_id>
# 2. Work (no steps to update)
# ... implementation ...
# 3. Commit and complete
git commit -m "feat: implement X"
fizzy comment create --card 20 --body "<p>✅ Done</p>"
fizzy card close 20# Find human user
HUMAN_USER=$(fizzy user list | jq -r '.data[] | select(.role == "owner") | .id')
# Assign and explain
fizzy card assign 26 --user $HUMAN_USER
fizzy comment create --card 26 --body "$(cat <<'EOF'
<p>🤝 Needs human decision on deployment platform</p>
<p>Options: AWS, GCP, or DigitalOcean?</p>
EOF
)"This workflow skill uses the base fizzy skill for all Fizzy CLI operations. When you need to:
- Search cards: Use base
fizzyskill - List boards/columns: Use base
fizzyskill - View card details: Use base
fizzyskill - Execute workflow: Use this skill
Example decision tree:
- User asks "Which cards are available?" → Use base
fizzyskill - User says "Work on card #15" → Use this workflow skill
- User asks "Show card #15 details" → Use base
fizzyskill - User says "Complete card #15" → Use this workflow skill
Instead of:
<p>I have successfully completed the implementation of the feature which includes all components as specified in the requirements document. The changes have been tested and committed to the repository successfully.</p>Use:
<p>✅ Feature completed and tested. Changes committed.</p>When possible, complete multiple steps before posting a single summary comment:
# Instead of commenting after each step
fizzy step update STEP1 --card 12 --completed
# [work]
fizzy step update STEP2 --card 12 --completed
# [work]
fizzy step update STEP3 --card 12 --completed
# Post one summary
fizzy comment create --card 12 --body "<p>✅ Steps 1-3 complete</p>"Save this as a shell script to quickly get project-specific IDs:
#!/bin/bash
# fizzy-context.sh - Get project context for workflows
echo "=== Fizzy Project Context ==="
echo
# Board info
echo "Boards:"
fizzy board list | jq -r '.data[] | " \(.name): \(.id)"'
echo
# Ask for board
read -p "Enter board ID: " BOARD_ID
# Column info
echo "Columns:"
fizzy column list --board $BOARD_ID | jq -r '.data[] | " \(.name): \(.id)"'
echo
# User info
echo "Your user ID:"
fizzy identity show | jq -r '.accounts[0].user | " \(.name) (\(.email_address)): \(.id)"'
echo
# Repo info
echo "Git repository:"
git remote get-url origin 2>/dev/null || echo " Not in a git repository"This workflow skill provides structured patterns for:
- Starting cards - Move to Doing, assign to bot
- Working on cards - Mark steps, post concise updates
- Completing cards - Commit (no Fizzy mention), post link, close
- Delegating cards - Assign to human for manual tasks
Always use conventional commits, keep comments brief, and follow the established patterns for consistency across the project.