Implement a feature by reading all prepared context, then commit, push, and create a PR.
Branch Setup
- In a worktree (sibling directory with a feature branch already checked out) → work in the current directory
- On main → invoke the
feature-branchskill (viaSkilltool) with the issue number as argument, thencdinto the created worktree before continuing
Steps
-
Resolve the issue — the argument can be:
- A GitHub issue number or URL → fetch with
gh issue view - A description → search with
gh issue list --search "<description>"to find the matching issue - Nothing → ask the user what to implement
- A GitHub issue number or URL → fetch with
-
Read all available context — start with what's already on the branch:
- Run
git log main..HEAD --onelineto see commits on the feature branch (design work, specs, ADRs may already be committed) - Read any specs in
doc/spec/related to the feature - Read any ADRs in
doc/adr/related to the feature - Read any docs in
doc/related to the feature - Review existing code and tests in the affected areas
- Run
-
Implement the feature based on the gathered context:
- Follow specs as acceptance criteria
- Respect architectural decisions from ADRs
- Match existing code style and patterns
-
When implementation is complete — commit, push, and create a PR:
- Stage relevant files — prefer
git add <file>...overgit add -A - Do NOT stage files that look like secrets (
.env, credentials, tokens) - Extract the issue number from the current branch name (e.g.
42-add-export→#42) - Commit with message:
#<number> <imperative summary> - Push with
git push -u origin <branch> - Create PR with
gh pr create:- Title: imperative, under 70 chars
- Body includes "Closes #<number>" to auto-link the issue
- Show the PR URL when done
- Stage relevant files — prefer
Rules
- Follow commit message convention:
#<number> <imperative summary> - If there are no changes to commit, tell the user