6.2 KiB
description
| description |
|---|
| Analyze open feature request issues, implement viable ones on dedicated branches, and respond to authors |
/implement-features — Feature Request Implementation Workflow
Overview
Fetches open feature request issues, analyzes each against the current codebase, implements viable ones on the current release branch (release/vX.Y.Z), and responds to authors with results. Does NOT merge to main — the release branch is later merged via PR.
BRANCH RULE: All work MUST happen on the current
release/vX.Y.Zbranch. Never create separatefeat/branches. If no release branch exists yet, create one first using/generate-releasePhase 1 steps 1–5.
Steps
1. Identify the Repository
// turbo
- Run:
git -C <project_root> remote get-url originto extract owner/repo
2. Ensure Release Branch Exists
// turbo
Before doing any work, ensure you are on the current release branch:
# Check current branch
git branch --show-current
# If on main, determine next version and create the release branch
VERSION=$(node -p "require('./package.json').version")
NEXT=$(node -p "const [a,b,c]=('$VERSION').split('.').map(Number); c>=9?a+'.'+(b+1)+'.0':a+'.'+b+'.'+(c+1)")
git checkout -b release/v$NEXT
npm version patch --no-git-tag-version
npm install
If already on a release/vX.Y.Z branch, continue working there.
3. Fetch Open Feature Request Issues
// turbo-all
⚠️ CRITICAL: The JSON output of gh issue list can be truncated by the tool, silently hiding issues and their comments. You MUST use the two-step approach below to guarantee all feature requests and their full conversations are fetched.
Step 3a — Get Issue numbers only (small output, never truncated):
- Run:
gh issue list --repo <owner>/<repo> --state open --labels "enhancement" --limit 500 --json number --jq '.[].number' - (Also run the same for
--labels "feature"if they are separated, or filter all open issues if labels are not strictly used). - This outputs one issue number per line. Count them and confirm total.
Step 3b — Fetch full metadata & conversations for each Issue (one call per issue):
- For each issue number from step 3a, run:
gh issue view <NUMBER> --repo <owner>/<repo> --json number,title,labels,body,comments,createdAt,author - Read not just the body, but ALL comments (
commentsarray) completely to understand the full context, agreements, and restrictions discussed by the community. - You may batch these into parallel calls (up to 4 at a time).
- Filter for issues that are feature requests (if not already filtered by label).
- Sort by oldest first.
4. Analyze Each Feature Request
For each feature request issue, perform a two-level analysis:
Level 1 — Viability Assessment
Ask yourself:
- Does this feature align with the project's goals and architecture?
- Is the request technically feasible with the current codebase?
- Does it duplicate existing functionality?
- Would it introduce breaking changes or security risks?
- Is there enough detail to implement it?
Verdict options:
- ✅ VIABLE — Makes sense, enough detail to implement → Go to Level 2
- ❓ NEEDS MORE INFO — Good idea but insufficient detail → Post comment asking for specifics
- ❌ NOT VIABLE — Doesn't fit the project or is fundamentally flawed → Post comment explaining why, close issue
Level 2 — Implementation (only for VIABLE features)
⚠️ ALL implementation happens on the release branch.
- Research — Read all related source files to understand the current architecture
- Design — Plan the implementation, filling gaps in the original request
- Implement — Build the complete solution following project patterns, on the release branch
- Build — Run
npm run buildto verify compilation - Commit — Commit with:
feat: <description> (#<NUMBER>) - Continue — Move to the next feature (do not switch branches)
5. Respond to Authors
For VIABLE (implemented) features:
// turbo Post a comment on the issue:
## ✅ Feature Implemented!
Hi @<author>! We've analyzed your request and implemented it.
**Branch:** `release/vX.Y.Z` (upcoming release)
### What was implemented:
- <bullet list of what was done>
### How to try it:
```bash
git fetch origin
git checkout release/vX.Y.Z
npm install && npm run dev
```
### Next steps:
1. **Test it** — Please verify it works as you expected
2. **Want to improve it?** — Feel free to open a follow-up PR targeting `release/vX.Y.Z`
3. **Not quite right?** — Let us know in this issue what needs to change
This will be included in the next release. Looking forward to your feedback! 🚀
For NEEDS MORE INFO:
// turbo Post a comment asking for specific missing details needed to implement, e.g.:
- "Could you describe the exact behavior when X happens?"
- "Which API endpoints should be affected?"
- "Should this apply to all providers or only specific ones?"
Add the context of WHY you need each piece of information.
For NOT VIABLE:
// turbo Post a polite comment explaining why the feature doesn't fit at this time:
- If the idea is decent but timing is wrong: "This is an interesting idea, but it doesn't align with our current priorities. Feel free to open a new issue with more details if you'd like us to reconsider."
- If fundamentally flawed: Explain the technical or architectural reasons why it won't work, suggest alternatives if possible.
- Close the issue after posting the comment.
6. Finalize & Push
After implementing all viable features:
- Update CHANGELOG.md on the release branch with all new feature entries
- Push the release branch:
git push origin release/vX.Y.Z - Run
/generate-releaseworkflow Phase 1 steps 7–10 (tests → commit → push → open PR to main → wait for user)
7. Summary Report
Present a summary report to the user via notify_user:
| Issue | Title | Verdict | Action |
|---|---|---|---|
| #N | Title | ✅ Implemented | Committed on release/vX |
| #N | Title | ❓ Needs Info | Comment posted |
| #N | Title | ❌ Not Viable | Closed with explanation |