Firewatch Guide
Query GitHub PR activity and manage review feedback using the Firewatch CLI (fw) or MCP tools.
Quick Start
# Check setup fw doctor # View status (auth, cache, repo) fw status --short # Get per-PR summary fw --summary # See unaddressed feedback fw fb
Core Concepts
Short IDs: Firewatch generates human-friendly short IDs (e.g., @a7f3c) for comments. Use these instead of long GitHub IDs.
JSONL Output: Default output is newline-delimited JSON. Pipe to jq for filtering. Use --no-jsonl for human-readable format.
Auto-sync: Cache refreshes automatically if stale. Use --no-sync to skip or --sync-full to force a full sync.
Triage Workflow
Systematic review to identify what needs attention.
1. Get Overview
# Per-PR summary with activity counts fw --summary # Compact summary fw --summary --no-jsonl
2. Identify Priorities
P0 - Immediate:
# Changes requested on your PRs
fw --mine --type review | jq 'select(.body | contains("changes"))'
# Unaddressed feedback on your PRs
fw fb --repo owner/repo
P1 - Today:
# Approved PRs ready to merge fw --summary | jq 'select(.review_states.approved > 0)' # PRs needing your review fw --reviews --summary
P2 - This Week:
# Stale PRs (no activity in 3+ days) fw --summary | jq 'select(.last_activity_at < (now - 259200 | todate))' # Orphaned comments (unresolved on merged PRs) fw --orphaned
3. Graphite Stack Awareness
# PRs with stack metadata fw --summary | jq 'select(.graphite != null)' # Blocked stacks (lower PR has issues) fw --summary | jq 'select(.graphite.stack_position > 1) | select(.review_states.changes_requested > 0)'
Address stack issues bottom-up to avoid merge conflicts.
4. Present Findings
Format triage output for the user:
## Needs Immediate Attention - PR #123: Changes requested by @reviewer (2h ago) - PR #456: CI failing ## Ready to Merge - PR #789: Approved, all checks passing ## Review Requests - PR #101: @author requested your review (1d ago)
Response Workflow
Systematic approach to addressing PR feedback.
1. List Feedback
# All unaddressed feedback (repo-wide) fw fb # Feedback for specific PR fw fb 123 # All comments including resolved fw fb 123 --all
2. View Comment Details
# View by short ID fw fb @a7f3c
3. Address and Reply
After fixing code:
# Reply to comment fw fb @a7f3c "Fixed in latest commit" # Reply and resolve thread fw fb @a7f3c "Done" --resolve
For clarification only:
# Just reply fw fb @a7f3c "Good question! I chose X because..."
Acknowledge without action:
# Add thumbs-up reaction + local ack fw fb @a7f3c --ack # Bulk ack all feedback on a PR fw fb 123 --ack
4. Resolve Without Reply
# Resolve thread directly fw fb @a7f3c --resolve
5. Commit and Push
With Graphite:
gt modify -m "Address review feedback" gt submit --stack
Standard git:
git add -A && git commit -m "Address review feedback" && git push
Comment Categories
| Type | Action |
|---|---|
| Bug/logic error | Fix code, reply explaining fix |
| Style/preference | Apply if reasonable, or discuss tradeoffs |
| Question | Reply with explanation (no code change) |
| Nitpick | Fix quickly or ack for future |
Response Templates
Code Fixed:
Fixed in [commit]. [Brief explanation].
Clarification:
Good question! [Explanation]. I chose this because [reasoning].
Acknowledged:
Good point, I'll address this in a follow-up PR.
Disagreement:
I considered that, but [reasoning]. Happy to discuss further.
CLI Quick Reference
| Command | Purpose |
|---|---|
fw | Query activity (auto-syncs if stale) |
fw --summary | Per-PR aggregation |
fw fb | List/view/reply/resolve feedback |
fw fb 123 | Feedback for PR #123 |
fw fb @id "text" | Reply to comment |
fw fb @id --resolve | Resolve thread |
fw pr edit 123 --title "..." | Edit PR fields |
fw status | Auth/cache/repo info |
fw doctor | Diagnose issues |
fw schema entry | Output format schema |
See references/cli.md for complete command documentation.
MCP Tools Quick Reference
| Tool | Purpose |
|---|---|
fw_query | Query cached activity |
fw_fb | Feedback operations |
fw_pr | PR mutations (edit/rm/review) |
fw_status | Status info |
fw_doctor | Diagnostics |
fw_help | Usage docs |
See references/mcp.md for complete tool documentation.
Common Filters
# By time fw --since 24h fw --since 7d # By type fw --type review fw --type comment # By PR state fw --open # Open PRs only fw --draft # Drafts only fw --open # Open + draft fw --closed # Merged + closed # By ownership fw --mine # My PRs fw --reviews # PRs I need to review # Exclude bots fw --no-bots
Checklist
Before marking review complete:
- • All comments addressed or responded to
- • Code changes committed and pushed
- • Threads resolved where appropriate
- • CI passing on latest commit
Further Reading
- •references/cli.md - Complete CLI reference
- •references/mcp.md - MCP tool reference
- •references/troubleshooting.md - Setup and troubleshooting
- •examples/triage.md - Triage workflow examples
- •examples/respond.md - Response workflow examples
- •examples/jq-patterns.md - Common jq queries