fp-review
Manages commit-to-issue assignment and facilitates interactive code reviews.
Install
mkdir -p .claude/skills/fp-review && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/12302" && unzip -o skill.zip -d .claude/skills/fp-review && rm skill.zipInstalls to .claude/skills/fp-review
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Review code, create stories, and ensure commits are assigned to issues. Use when user asks to "review code", "assign commits", "check commits are assigned", "prepare for review", "create a story", or "write a story".Key capabilities
- →Verify commits are assigned to issues
- →Leave review comments on issues
- →Open interactive review in the desktop app
- →Create narrative documents for code changes
- →Assign commits to specific issues
- →View full diffs for issues
How it works
The skill verifies commit-to-issue assignments, allows leaving comments with severity prefixes, and opens an interactive review in the desktop application. It also enables the creation of narrative stories that combine markdown with embedded diffs and file excerpts.
Inputs & outputs
When to use fp-review
- →Assign commits to issues
- →Review code changes interactively
- →Generate documentation for new features
- →Verify commit tracking
About this skill
FP Review Skill
Ensure commits are properly linked to issues and provide review feedback.
Prerequisites
Before using fp commands, check setup:
# Check if fp is installed
fp --version
If fp is not installed, tell the user:
The
fpCLI is not installed. Install it with:curl -fsSL https://setup.fp.dev/install.sh | sh -s
# Check if project is initialized
fp tree
If project is not initialized, ask the user if they want to initialize:
This project hasn't been initialized with fp. Would you like to initialize it?
If yes:
fp init
Core Purpose
- Verify commits are assigned to the correct issues
- Leave review comments on issues
- Open interactive review in the desktop app
- Create stories — narrative documents that walk through code changes
Assigning Commits to Issues
Check Current Assignments
fp issue files <PREFIX>-X
If empty, the issue has no commits assigned.
Find Relevant Commits
jj log --limit 20 # Jujutsu
git log --oneline -20 # Git
View Commit Details
jj show <commit-id> # Jujutsu
git show <hash> --stat # Git
Match Commits to Issues
Compare:
- Files changed in commit vs issue description
- Commit message content vs issue title
- Code changes vs issue requirements
Assign Commits
Before assigning commits, confirm with the user. Some users prefer to work without committing until they're done, or may not want commits linked to issues.
Use AskUserTool to ask:
I found these commits that appear related to
<PREFIX>-X:
abc123- Add user modeldef456- Implement auth middlewareWould you like me to assign them to the issue? (If you prefer to review uncommitted changes instead, you can run
fp reviewfor the working copy.)
If confirmed:
# Single commit
fp issue assign <PREFIX>-X --rev abc123
# Multiple commits
fp issue assign <PREFIX>-X --rev abc123,def456,ghi789
# Current HEAD
fp issue assign <PREFIX>-X
# Reset and reassign
fp issue assign <PREFIX>-X --reset
fp issue assign <PREFIX>-X --rev abc123,def456
Verify Assignment
fp issue files <PREFIX>-X
fp issue diff <PREFIX>-X --stat
Leaving Review Comments
Use fp comment for review feedback. Reference files and lines for specificity.
File-Specific Comments
fp comment <PREFIX>-X "**src/utils/parser.ts**: Consider extracting the validation logic into a separate function for testability."
fp comment <PREFIX>-X "**src/api/handler.ts:45-60**: This error handling could swallow important exceptions. Suggest re-throwing after logging."
Severity Prefixes
Use prefixes to indicate importance:
fp comment <PREFIX>-X "[blocker] **src/auth.ts**: Missing input sanitization creates SQL injection risk."
fp comment <PREFIX>-X "[suggestion] **src/utils.ts:23**: Could use optional chaining here for cleaner code."
fp comment <PREFIX>-X "[nit] **README.md**: Typo in setup instructions."
[blocker]- Must fix before merging[suggestion]- Recommended improvement[nit]- Minor/cosmetic issue
General Comments
fp comment <PREFIX>-X "Overall looks good. Main concern is the error handling in the API layer - see specific comments above."
Interactive Review (Desktop App)
fp review opens the Fiberplane desktop app for interactive diff review.
Requires the desktop app. If not installed: https://setup.fp.dev/desktop/latest/
Review Working Copy (No Commits Needed)
If the user hasn't committed yet (or prefers not to commit while work is in progress):
fp review
This shows all uncommitted changes in the working directory. No commit assignment required.
Review by Issue
fp review <PREFIX>-X
Note: For issue-based review to work, the issue must have commits assigned. If no commits are assigned, either:
- Assign commits first with
fp issue assign, OR - Use
fp reviewto review the working copy instead
Review with Story
fp review <PREFIX>-X --with-story
Opens the review with the story panel visible alongside the diff. The issue must have a story created for it.
Other Review Targets
fp review git:abc123 # Specific git commit
fp review jj:abc123 # Specific jj revision
fp review git:abc123..def456 # Range of commits
Review Workflow
Step 1: Check Assignments
fp issue files <PREFIX>-X
Step 2: Assign Missing Commits
jj log --limit 20
fp issue assign <PREFIX>-X --rev abc,def
Step 3: View the Diff
fp issue diff <PREFIX>-X --stat # Overview
fp issue diff <PREFIX>-X # Full diff
fp review <PREFIX>-X # Open in desktop app
Step 4: Leave Comments
fp comment <PREFIX>-X "**file.ts:line**: feedback"
Stories
Stories are narrative documents that walk a reviewer through code changes. They combine markdown prose with embedded diffs, file excerpts, and chat transcripts.
Requires the experimental_story feature flag:
fp feature enable experimental_story
Creating a Story
# From a file
fp story create <PREFIX>-X --file story.md
# From stdin
cat story.md | fp story create <PREFIX>-X
The first ## heading in the markdown becomes the story title.
Story Format
Stories are markdown documents that use directives to embed code artifacts:
Diff Directive
Shows file changes from the issue's assigned commits:
## Moved validation to a shared module
The old approach duplicated validation in each handler.
:::diff{file="src/validation.ts"}
Extracted from handler.ts and api.ts into a single module.
:::
file(required): relative path to the changed file- The text between
:::diffand:::is the annotation — keep it to 1-2 sentences
File Directive
Shows file content (or a slice of it):
:::file{path="src/config.ts" lines="10-25"}
The new defaults that drive the behavior change.
:::
path(required): relative path to filelines(optional): line range, e.g."10-25"
Chat Directive
Embeds excerpts from an AI coding session:
:::chat{source="claude" session="/path/to/session.jsonl" messages="msg1,msg2"}
The key design discussion that led to this approach.
:::
source:"claude","pi", or"opencode"session: full path to session filemessages: comma-separated message IDs
Writing Guidelines
- Headings are past-tense verbs — describe what was done, not what to do (e.g. "Moved validation to a shared module")
- Start with the user problem — the opening prose should explain why the change exists
- Show diff, then explain — lead with the
:::diffdirective, follow with the annotation - Annotations are 1-2 sentences — brief context, not a full explanation
UI Support
Only :::diff is fully rendered in the desktop app right now. :::file works but the collapsed attribute is ignored. The hunks attribute on :::diff is also ignored.
Managing Stories
fp story list # List all stories in the project
fp story get <story-id> # Get story details (supports ID prefix)
fp story get <PREFIX>-X # Get story by issue ID
fp story delete <story-id> # Delete a story (supports ID prefix)
fp story delete <story-id> --yes # Skip confirmation
One story per issue. Creating a new story for an issue replaces the previous one.
Quick Reference
Commands
# Check assignments
fp issue files <PREFIX>-X
# Assign commits
fp issue assign <PREFIX>-X --rev <commits>
# View changes
fp issue diff <PREFIX>-X --stat
fp issue diff <PREFIX>-X
# Leave comments
fp comment <PREFIX>-X "message"
# Interactive review (desktop app)
fp review <PREFIX>-X
# Stories
fp story create <PREFIX>-X --file story.md
fp story list
fp story get <PREFIX>-X
fp story delete <story-id>
fp review <PREFIX>-X --with-story
Comment Format
**filepath**: general comment about file
**filepath:line**: comment about specific line
**filepath:start-end**: comment about line range
[severity] **filepath**: prefixed comment
Severity Levels
[blocker]- Must fix[suggestion]- Should consider[nit]- Minor issue
When not to use it
- →When the user prefers to work without committing changes
- →When the user does not want commits linked to issues
Prerequisites
Limitations
- →Interactive review requires the Fiberplane desktop app
- →Issue-based review requires assigned commits
- →Story creation requires the 'experimental_story' feature flag
How it compares
This skill automates the process of linking commits to issues and generating review documentation, unlike manual tracking and separate document creation.
Compared to similar skills
fp-review side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| fp-review (this skill) | 0 | 4mo | Review | Intermediate |
| github-contributor | 1 | 2mo | Review | Intermediate |
| open-source-maintainer | 1 | 6mo | Review | Intermediate |
| code-changelog | 0 | 9mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
github-contributor
daymade
Strategic guide for becoming an effective GitHub contributor. Covers opportunity discovery, project selection, high-quality PR creation, and reputation building. Use when looking to contribute to open-source projects, building GitHub presence, or learning contribution best practices.
open-source-maintainer
numman-ali
End-to-end GitHub repository maintenance for open-source projects. Use when asked to triage issues, review PRs, analyze contributor activity, generate maintenance reports, or maintain a repository. Triggers include "triage", "maintain", "review PRs", "analyze issues", "repo maintenance", "what needs attention", "open source maintenance", or any request to understand and act on GitHub issues/PRs. Supports human-in-the-loop workflows with persistent memory across sessions.
code-changelog
bear2u
AI가 만든 모든 코드 변경사항을 reviews 폴더에 기록하고 간단한 HTML 뷰어로 웹 브라우저에서 실시간 확인할 수 있습니다. 매 수정마다 문서가 생성되고 Python 서버로 즉시 확인 가능합니다.
code-review
jonatron55
Instructions for reviewing changes and ensuring quality before completion. Use when asking for a review or before committing changes.
pr
mlrun
Analyze branch changes and generate a fully filled PR description ready to paste into GitHub
pr
Chemaclass
Push branch and create a GitHub PR following the bashdep PR template