ワンクリックで
finishing-a-development-branch
// Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for submitting diffs or cleanup
// Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for submitting diffs or cleanup
Build interface design with craft and consistency. Use for dashboards, admin panels, SaaS apps, tools, settings pages, and data interfaces. NOT for landing pages or marketing sites.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Quiz engineers on AI-generated code to deepen understanding. Uses adaptive difficulty and Socratic teaching to build debugging skills. Use after writing code when the user says "grill me", "challenge me", "quiz me on these changes", or wants to verify they understand what was generated.
Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation
| name | finishing-a-development-branch |
| description | Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for submitting diffs or cleanup |
Guide completion of development work by presenting clear options and handling chosen workflow.
Core principle: Verify tests → Present options → Execute choice → Clean up.
Announce at start: "I'm using the finishing-a-development-branch skill to complete this work."
Before presenting options, verify tests pass:
# Run project's test suite based on language:
# - Hack (www/): t TestClassName
# - JS/TS: jest or jest-e2e
# - Python/Rust/C++/Go: buck2 test //path:target
If tests fail:
Tests failing (<N> failures). Must fix before completing:
[Show failures]
Cannot proceed with diff submission until tests pass.
Stop. Don't proceed to Step 2.
If tests pass: Continue to Step 2.
# Check if current commit has a linked diff
sl log -r . -T "{desc|firstline}\n{phabdiff}\n"
# Check for uncommitted changes
sl status
Present exactly these 4 options:
Implementation complete. What would you like to do?
1. Submit as draft diff (jf submit --draft)
2. Publish diff for review (jf submit or jf action --publish)
3. Keep changes as-is (I'll handle it later)
4. Discard this work
Which option?
Don't add explanation - keep options concise.
# If there are uncommitted changes, commit first
sl status
# If changes exist:
sl commit -m "[Category] <title>
Summary: <description>
Test Plan: <test plan>"
# Submit as draft
jf submit --draft
Report: "Draft diff submitted. You can publish when ready with jf action --publish."
# If there are uncommitted changes, commit first
sl status
# If changes exist:
sl commit -m "[Category] <title>
Summary: <description>
Test Plan: <test plan>"
# Submit and publish
jf submit
Or if diff already exists as draft:
jf action --publish
Report: "Diff published for review. Check Phabricator for status."
Report: "Keeping changes as-is. You can submit later with jf submit --draft."
Don't modify anything.
Confirm first:
This will permanently discard:
- Uncommitted changes
- Current commit: <commit summary>
Type 'discard' to confirm.
Wait for exact confirmation.
If confirmed:
# Discard uncommitted changes
sl revert --all
# If you want to hide the current commit
sl hide .
| Option | Commit | Submit | Publish |
|---|---|---|---|
| 1. Draft diff | ✓ (if needed) | ✓ | - |
| 2. Publish | ✓ (if needed) | ✓ | ✓ |
| 3. Keep as-is | - | - | - |
| 4. Discard | - | - | - |
Skipping test verification
Open-ended questions
Submitting without proper commit message
No confirmation for discard
Never:
jf submit without checking if changes are committedAlways:
--draft flag for initial submissionsCalled by:
Related skills: