feat: feature-discovery - #27
Merged
RevCBH merged 7 commits intoJan 20, 2026
Merged
Conversation
added 7 commits
January 20, 2026 14:17
Closed
RevCBH
added a commit
that referenced
this pull request
Jan 21, 2026
* specs update * feat: feature-discovery (#27) * feat(feature-discovery): complete task #1 - Core Types * feat(feature-discovery): complete task #2 - Event Types * feat(feature-discovery): complete task #3 - Frontmatter Parser * feat(feature-discovery): complete task #4 - PRD Parser * feat(feature-discovery): complete task #5 - PRD Validator * feat(feature-discovery): complete task #6 - Discovery Functions * feat(feature-discovery): complete task #7 - PRD Repository --------- Co-authored-by: Test User <test@test.com> * feat: spec-review (#29) * feat(spec-review): complete task #1 - Review Core Types * feat(spec-review): complete task #2 - Schema Validation * feat(spec-review): complete task #3 - Review Criteria Definitions * feat(spec-review): complete task #4 - Review Event Types * feat(spec-review): complete task #5 - Feedback Application * feat(spec-review): complete task #6 - Review Loop Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-prioritizer (#31) * feat(feature-prioritizer): complete task #1 - Prioritization Types * feat(feature-prioritizer): complete task #2 - PRD Loader * feat(feature-prioritizer): complete task #4 - Response Parser * feat(feature-prioritizer): complete task #3 - Prioritizer Core * feat(feature-prioritizer): complete task #5 - CLI Command --------- Co-authored-by: Test User <test@test.com> * feat: feature-workflow (#32) * feat(feature-workflow): complete task #1 - Feature Status States * feat(feature-workflow): complete task #2 - Spec Commit Operations * feat(feature-workflow): complete task #3 - Drift Detection * feat(feature-workflow): complete task #4 - Auto-Triggered Completion * feat(feature-workflow): complete task #5 - Review Cycle Management * feat(feature-workflow): complete task #6 - Workflow Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-branch (#30) * feat(feature-branch): complete task #1 - Feature Types * feat(feature-branch): complete task #3 - Feature Config * feat(feature-branch): complete task #2 - Branch Manager * chore: update status frontmatter --------- Co-authored-by: Test User <test@test.com> * fix: orchestrator reliability and UX improvements - Add terminal state guard in scheduler.Complete() to prevent infinite loop when UnitCompleted events are re-emitted - Fix PR existence check to handle empty JSON array response from gh CLI - Add worktree-aware status refresh so `choo status` shows correct progress - Auto-detect current branch as default target (instead of always 'main') - Auto-push target branch if not on remote - Reorganize PRD docs into docs/prds/ directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve type conflicts from merged feature PRs - Remove duplicate Client type from git/commit.go (use exec.go's Client) - Add WorktreePath alias to git.Client for worktree operations - Rename feature.Status to LifecycleStatus to avoid collision with states.go - Rename PRD in drift.go to DriftPRD to avoid collision with types.go - Add NewDriftDetectorFromPRD helper for type conversion - Remove placeholder BranchManager from workflow.go (use branch.go's impl) - Add Units field to canonical PRD type for completion tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update tests for DriftPRD type change - Update drift_test.go to use DriftPRD and DriftUnit types - Add SetBody method to DriftDetector for testing - Update workflow_test.go to use drift.SetBody() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(feature-cli): complete task #1 - Feature State Types * feat(feature-cli): complete task #2 - PRD Store * feat(feature-cli): complete task #3 - Feature Parent Command * feat(feature-cli): complete task #4 - Feature Start Command * feat(feature-cli): complete task #5 - Feature Status Command * feat(feature-cli): complete task #6 - Feature Resume Command * feat: replace PR workflow with local merge for unit branches This simplifies the orchestrator flow by merging unit branches directly to the feature branch locally instead of creating PRs. Key changes: - Remove PR-related states (pr_open, in_review, merging) from scheduler - Simplify unit lifecycle: pending -> in_progress -> complete - Replace createPR() with mergeToFeatureBranch() in worker - Merge happens locally in main repo (no remote push during execution) - Add backwards compatibility for old PR status values - Add UnitMerged event for tracking merge operations Benefits: - Dependent units immediately see predecessor code (no PR merge delay) - Faster execution (no network operations during merge) - User controls when to push feature branch to remote Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback for feature workflow system - Rename docs/prds to docs/prd (singular) and update all references - Fix PRD ID usage: use prd.ID instead of prd.Body in completion.go and workflow.go - Fix spec commit scope: stage only specsDir instead of entire worktree - Add git.StagePath() for staging specific paths - Fix nil agent invoker: add agentInvoker field to App and return clear error - Add clarifying comment about RepoRoot branch checkout assumption in worker.go - Update all tests to use correct PRD ID field Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve golangci-lint issues - Fix errcheck: handle error returns in review.go - Remove unused functions: getTargetBranch, cleanup - Fix S1009: remove unnecessary nil check before len() - Fix SA5011: use t.Fatal for nil checks in tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: add baseline checks configuration to .choo.yaml Mirror CI workflow checks (build, vet, lint, test) in the baseline configuration for local validation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Test User <test@test.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
RevCBH
added a commit
that referenced
this pull request
Jan 21, 2026
* specs update * feat: feature-discovery (#27) * feat(feature-discovery): complete task #1 - Core Types * feat(feature-discovery): complete task #2 - Event Types * feat(feature-discovery): complete task #3 - Frontmatter Parser * feat(feature-discovery): complete task #4 - PRD Parser * feat(feature-discovery): complete task #5 - PRD Validator * feat(feature-discovery): complete task #6 - Discovery Functions * feat(feature-discovery): complete task #7 - PRD Repository --------- Co-authored-by: Test User <test@test.com> * feat: spec-review (#29) * feat(spec-review): complete task #1 - Review Core Types * feat(spec-review): complete task #2 - Schema Validation * feat(spec-review): complete task #3 - Review Criteria Definitions * feat(spec-review): complete task #4 - Review Event Types * feat(spec-review): complete task #5 - Feedback Application * feat(spec-review): complete task #6 - Review Loop Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-prioritizer (#31) * feat(feature-prioritizer): complete task #1 - Prioritization Types * feat(feature-prioritizer): complete task #2 - PRD Loader * feat(feature-prioritizer): complete task #4 - Response Parser * feat(feature-prioritizer): complete task #3 - Prioritizer Core * feat(feature-prioritizer): complete task #5 - CLI Command --------- Co-authored-by: Test User <test@test.com> * feat: feature-workflow (#32) * feat(feature-workflow): complete task #1 - Feature Status States * feat(feature-workflow): complete task #2 - Spec Commit Operations * feat(feature-workflow): complete task #3 - Drift Detection * feat(feature-workflow): complete task #4 - Auto-Triggered Completion * feat(feature-workflow): complete task #5 - Review Cycle Management * feat(feature-workflow): complete task #6 - Workflow Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-branch (#30) * feat(feature-branch): complete task #1 - Feature Types * feat(feature-branch): complete task #3 - Feature Config * feat(feature-branch): complete task #2 - Branch Manager * chore: update status frontmatter --------- Co-authored-by: Test User <test@test.com> * fix: orchestrator reliability and UX improvements - Add terminal state guard in scheduler.Complete() to prevent infinite loop when UnitCompleted events are re-emitted - Fix PR existence check to handle empty JSON array response from gh CLI - Add worktree-aware status refresh so `choo status` shows correct progress - Auto-detect current branch as default target (instead of always 'main') - Auto-push target branch if not on remote - Reorganize PRD docs into docs/prds/ directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve type conflicts from merged feature PRs - Remove duplicate Client type from git/commit.go (use exec.go's Client) - Add WorktreePath alias to git.Client for worktree operations - Rename feature.Status to LifecycleStatus to avoid collision with states.go - Rename PRD in drift.go to DriftPRD to avoid collision with types.go - Add NewDriftDetectorFromPRD helper for type conversion - Remove placeholder BranchManager from workflow.go (use branch.go's impl) - Add Units field to canonical PRD type for completion tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update tests for DriftPRD type change - Update drift_test.go to use DriftPRD and DriftUnit types - Add SetBody method to DriftDetector for testing - Update workflow_test.go to use drift.SetBody() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(feature-cli): complete task #1 - Feature State Types * feat(feature-cli): complete task #2 - PRD Store * feat(feature-cli): complete task #3 - Feature Parent Command * feat(feature-cli): complete task #4 - Feature Start Command * feat(feature-cli): complete task #5 - Feature Status Command * feat(feature-cli): complete task #6 - Feature Resume Command * feat: replace PR workflow with local merge for unit branches This simplifies the orchestrator flow by merging unit branches directly to the feature branch locally instead of creating PRs. Key changes: - Remove PR-related states (pr_open, in_review, merging) from scheduler - Simplify unit lifecycle: pending -> in_progress -> complete - Replace createPR() with mergeToFeatureBranch() in worker - Merge happens locally in main repo (no remote push during execution) - Add backwards compatibility for old PR status values - Add UnitMerged event for tracking merge operations Benefits: - Dependent units immediately see predecessor code (no PR merge delay) - Faster execution (no network operations during merge) - User controls when to push feature branch to remote Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback for feature workflow system - Rename docs/prds to docs/prd (singular) and update all references - Fix PRD ID usage: use prd.ID instead of prd.Body in completion.go and workflow.go - Fix spec commit scope: stage only specsDir instead of entire worktree - Add git.StagePath() for staging specific paths - Fix nil agent invoker: add agentInvoker field to App and return clear error - Add clarifying comment about RepoRoot branch checkout assumption in worker.go - Update all tests to use correct PRD ID field Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve golangci-lint issues - Fix errcheck: handle error returns in review.go - Remove unused functions: getTargetBranch, cleanup - Fix S1009: remove unnecessary nil check before len() - Fix SA5011: use t.Fatal for nil checks in tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: add baseline checks configuration to .choo.yaml Mirror CI workflow checks (build, vet, lint, test) in the baseline configuration for local validation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Test User <test@test.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
RevCBH
added a commit
that referenced
this pull request
Jan 21, 2026
* specs update * feat: feature-discovery (#27) * feat(feature-discovery): complete task #1 - Core Types * feat(feature-discovery): complete task #2 - Event Types * feat(feature-discovery): complete task #3 - Frontmatter Parser * feat(feature-discovery): complete task #4 - PRD Parser * feat(feature-discovery): complete task #5 - PRD Validator * feat(feature-discovery): complete task #6 - Discovery Functions * feat(feature-discovery): complete task #7 - PRD Repository --------- Co-authored-by: Test User <test@test.com> * feat: spec-review (#29) * feat(spec-review): complete task #1 - Review Core Types * feat(spec-review): complete task #2 - Schema Validation * feat(spec-review): complete task #3 - Review Criteria Definitions * feat(spec-review): complete task #4 - Review Event Types * feat(spec-review): complete task #5 - Feedback Application * feat(spec-review): complete task #6 - Review Loop Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-prioritizer (#31) * feat(feature-prioritizer): complete task #1 - Prioritization Types * feat(feature-prioritizer): complete task #2 - PRD Loader * feat(feature-prioritizer): complete task #4 - Response Parser * feat(feature-prioritizer): complete task #3 - Prioritizer Core * feat(feature-prioritizer): complete task #5 - CLI Command --------- Co-authored-by: Test User <test@test.com> * feat: feature-workflow (#32) * feat(feature-workflow): complete task #1 - Feature Status States * feat(feature-workflow): complete task #2 - Spec Commit Operations * feat(feature-workflow): complete task #3 - Drift Detection * feat(feature-workflow): complete task #4 - Auto-Triggered Completion * feat(feature-workflow): complete task #5 - Review Cycle Management * feat(feature-workflow): complete task #6 - Workflow Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-branch (#30) * feat(feature-branch): complete task #1 - Feature Types * feat(feature-branch): complete task #3 - Feature Config * feat(feature-branch): complete task #2 - Branch Manager * chore: update status frontmatter --------- Co-authored-by: Test User <test@test.com> * fix: orchestrator reliability and UX improvements - Add terminal state guard in scheduler.Complete() to prevent infinite loop when UnitCompleted events are re-emitted - Fix PR existence check to handle empty JSON array response from gh CLI - Add worktree-aware status refresh so `choo status` shows correct progress - Auto-detect current branch as default target (instead of always 'main') - Auto-push target branch if not on remote - Reorganize PRD docs into docs/prds/ directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve type conflicts from merged feature PRs - Remove duplicate Client type from git/commit.go (use exec.go's Client) - Add WorktreePath alias to git.Client for worktree operations - Rename feature.Status to LifecycleStatus to avoid collision with states.go - Rename PRD in drift.go to DriftPRD to avoid collision with types.go - Add NewDriftDetectorFromPRD helper for type conversion - Remove placeholder BranchManager from workflow.go (use branch.go's impl) - Add Units field to canonical PRD type for completion tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update tests for DriftPRD type change - Update drift_test.go to use DriftPRD and DriftUnit types - Add SetBody method to DriftDetector for testing - Update workflow_test.go to use drift.SetBody() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(feature-cli): complete task #1 - Feature State Types * feat(feature-cli): complete task #2 - PRD Store * feat(feature-cli): complete task #3 - Feature Parent Command * feat(feature-cli): complete task #4 - Feature Start Command * feat(feature-cli): complete task #5 - Feature Status Command * feat(feature-cli): complete task #6 - Feature Resume Command * feat: replace PR workflow with local merge for unit branches This simplifies the orchestrator flow by merging unit branches directly to the feature branch locally instead of creating PRs. Key changes: - Remove PR-related states (pr_open, in_review, merging) from scheduler - Simplify unit lifecycle: pending -> in_progress -> complete - Replace createPR() with mergeToFeatureBranch() in worker - Merge happens locally in main repo (no remote push during execution) - Add backwards compatibility for old PR status values - Add UnitMerged event for tracking merge operations Benefits: - Dependent units immediately see predecessor code (no PR merge delay) - Faster execution (no network operations during merge) - User controls when to push feature branch to remote Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback for feature workflow system - Rename docs/prds to docs/prd (singular) and update all references - Fix PRD ID usage: use prd.ID instead of prd.Body in completion.go and workflow.go - Fix spec commit scope: stage only specsDir instead of entire worktree - Add git.StagePath() for staging specific paths - Fix nil agent invoker: add agentInvoker field to App and return clear error - Add clarifying comment about RepoRoot branch checkout assumption in worker.go - Update all tests to use correct PRD ID field Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve golangci-lint issues - Fix errcheck: handle error returns in review.go - Remove unused functions: getTargetBranch, cleanup - Fix S1009: remove unnecessary nil check before len() - Fix SA5011: use t.Fatal for nil checks in tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: add baseline checks configuration to .choo.yaml Mirror CI workflow checks (build, vet, lint, test) in the baseline configuration for local validation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Test User <test@test.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
RevCBH
added a commit
that referenced
this pull request
Jan 21, 2026
* specs update * feat: feature-discovery (#27) * feat(feature-discovery): complete task #1 - Core Types * feat(feature-discovery): complete task #2 - Event Types * feat(feature-discovery): complete task #3 - Frontmatter Parser * feat(feature-discovery): complete task #4 - PRD Parser * feat(feature-discovery): complete task #5 - PRD Validator * feat(feature-discovery): complete task #6 - Discovery Functions * feat(feature-discovery): complete task #7 - PRD Repository --------- Co-authored-by: Test User <test@test.com> * feat: spec-review (#29) * feat(spec-review): complete task #1 - Review Core Types * feat(spec-review): complete task #2 - Schema Validation * feat(spec-review): complete task #3 - Review Criteria Definitions * feat(spec-review): complete task #4 - Review Event Types * feat(spec-review): complete task #5 - Feedback Application * feat(spec-review): complete task #6 - Review Loop Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-prioritizer (#31) * feat(feature-prioritizer): complete task #1 - Prioritization Types * feat(feature-prioritizer): complete task #2 - PRD Loader * feat(feature-prioritizer): complete task #4 - Response Parser * feat(feature-prioritizer): complete task #3 - Prioritizer Core * feat(feature-prioritizer): complete task #5 - CLI Command --------- Co-authored-by: Test User <test@test.com> * feat: feature-workflow (#32) * feat(feature-workflow): complete task #1 - Feature Status States * feat(feature-workflow): complete task #2 - Spec Commit Operations * feat(feature-workflow): complete task #3 - Drift Detection * feat(feature-workflow): complete task #4 - Auto-Triggered Completion * feat(feature-workflow): complete task #5 - Review Cycle Management * feat(feature-workflow): complete task #6 - Workflow Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-branch (#30) * feat(feature-branch): complete task #1 - Feature Types * feat(feature-branch): complete task #3 - Feature Config * feat(feature-branch): complete task #2 - Branch Manager * chore: update status frontmatter --------- Co-authored-by: Test User <test@test.com> * fix: orchestrator reliability and UX improvements - Add terminal state guard in scheduler.Complete() to prevent infinite loop when UnitCompleted events are re-emitted - Fix PR existence check to handle empty JSON array response from gh CLI - Add worktree-aware status refresh so `choo status` shows correct progress - Auto-detect current branch as default target (instead of always 'main') - Auto-push target branch if not on remote - Reorganize PRD docs into docs/prds/ directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve type conflicts from merged feature PRs - Remove duplicate Client type from git/commit.go (use exec.go's Client) - Add WorktreePath alias to git.Client for worktree operations - Rename feature.Status to LifecycleStatus to avoid collision with states.go - Rename PRD in drift.go to DriftPRD to avoid collision with types.go - Add NewDriftDetectorFromPRD helper for type conversion - Remove placeholder BranchManager from workflow.go (use branch.go's impl) - Add Units field to canonical PRD type for completion tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update tests for DriftPRD type change - Update drift_test.go to use DriftPRD and DriftUnit types - Add SetBody method to DriftDetector for testing - Update workflow_test.go to use drift.SetBody() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(feature-cli): complete task #1 - Feature State Types * feat(feature-cli): complete task #2 - PRD Store * feat(feature-cli): complete task #3 - Feature Parent Command * feat(feature-cli): complete task #4 - Feature Start Command * feat(feature-cli): complete task #5 - Feature Status Command * feat(feature-cli): complete task #6 - Feature Resume Command * feat: replace PR workflow with local merge for unit branches This simplifies the orchestrator flow by merging unit branches directly to the feature branch locally instead of creating PRs. Key changes: - Remove PR-related states (pr_open, in_review, merging) from scheduler - Simplify unit lifecycle: pending -> in_progress -> complete - Replace createPR() with mergeToFeatureBranch() in worker - Merge happens locally in main repo (no remote push during execution) - Add backwards compatibility for old PR status values - Add UnitMerged event for tracking merge operations Benefits: - Dependent units immediately see predecessor code (no PR merge delay) - Faster execution (no network operations during merge) - User controls when to push feature branch to remote Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback for feature workflow system - Rename docs/prds to docs/prd (singular) and update all references - Fix PRD ID usage: use prd.ID instead of prd.Body in completion.go and workflow.go - Fix spec commit scope: stage only specsDir instead of entire worktree - Add git.StagePath() for staging specific paths - Fix nil agent invoker: add agentInvoker field to App and return clear error - Add clarifying comment about RepoRoot branch checkout assumption in worker.go - Update all tests to use correct PRD ID field Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve golangci-lint issues - Fix errcheck: handle error returns in review.go - Remove unused functions: getTargetBranch, cleanup - Fix S1009: remove unnecessary nil check before len() - Fix SA5011: use t.Fatal for nil checks in tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: add baseline checks configuration to .choo.yaml Mirror CI workflow checks (build, vet, lint, test) in the baseline configuration for local validation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Test User <test@test.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
RevCBH
added a commit
that referenced
this pull request
Jan 21, 2026
* specs update * feat: feature-discovery (#27) * feat(feature-discovery): complete task #1 - Core Types * feat(feature-discovery): complete task #2 - Event Types * feat(feature-discovery): complete task #3 - Frontmatter Parser * feat(feature-discovery): complete task #4 - PRD Parser * feat(feature-discovery): complete task #5 - PRD Validator * feat(feature-discovery): complete task #6 - Discovery Functions * feat(feature-discovery): complete task #7 - PRD Repository --------- Co-authored-by: Test User <test@test.com> * feat: spec-review (#29) * feat(spec-review): complete task #1 - Review Core Types * feat(spec-review): complete task #2 - Schema Validation * feat(spec-review): complete task #3 - Review Criteria Definitions * feat(spec-review): complete task #4 - Review Event Types * feat(spec-review): complete task #5 - Feedback Application * feat(spec-review): complete task #6 - Review Loop Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-prioritizer (#31) * feat(feature-prioritizer): complete task #1 - Prioritization Types * feat(feature-prioritizer): complete task #2 - PRD Loader * feat(feature-prioritizer): complete task #4 - Response Parser * feat(feature-prioritizer): complete task #3 - Prioritizer Core * feat(feature-prioritizer): complete task #5 - CLI Command --------- Co-authored-by: Test User <test@test.com> * feat: feature-workflow (#32) * feat(feature-workflow): complete task #1 - Feature Status States * feat(feature-workflow): complete task #2 - Spec Commit Operations * feat(feature-workflow): complete task #3 - Drift Detection * feat(feature-workflow): complete task #4 - Auto-Triggered Completion * feat(feature-workflow): complete task #5 - Review Cycle Management * feat(feature-workflow): complete task #6 - Workflow Orchestration --------- Co-authored-by: Test User <test@test.com> * feat: feature-branch (#30) * feat(feature-branch): complete task #1 - Feature Types * feat(feature-branch): complete task #3 - Feature Config * feat(feature-branch): complete task #2 - Branch Manager * chore: update status frontmatter --------- Co-authored-by: Test User <test@test.com> * fix: orchestrator reliability and UX improvements - Add terminal state guard in scheduler.Complete() to prevent infinite loop when UnitCompleted events are re-emitted - Fix PR existence check to handle empty JSON array response from gh CLI - Add worktree-aware status refresh so `choo status` shows correct progress - Auto-detect current branch as default target (instead of always 'main') - Auto-push target branch if not on remote - Reorganize PRD docs into docs/prds/ directory Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve type conflicts from merged feature PRs - Remove duplicate Client type from git/commit.go (use exec.go's Client) - Add WorktreePath alias to git.Client for worktree operations - Rename feature.Status to LifecycleStatus to avoid collision with states.go - Rename PRD in drift.go to DriftPRD to avoid collision with types.go - Add NewDriftDetectorFromPRD helper for type conversion - Remove placeholder BranchManager from workflow.go (use branch.go's impl) - Add Units field to canonical PRD type for completion tracking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: update tests for DriftPRD type change - Update drift_test.go to use DriftPRD and DriftUnit types - Add SetBody method to DriftDetector for testing - Update workflow_test.go to use drift.SetBody() Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(feature-cli): complete task #1 - Feature State Types * feat(feature-cli): complete task #2 - PRD Store * feat(feature-cli): complete task #3 - Feature Parent Command * feat(feature-cli): complete task #4 - Feature Start Command * feat(feature-cli): complete task #5 - Feature Status Command * feat(feature-cli): complete task #6 - Feature Resume Command * feat: replace PR workflow with local merge for unit branches This simplifies the orchestrator flow by merging unit branches directly to the feature branch locally instead of creating PRs. Key changes: - Remove PR-related states (pr_open, in_review, merging) from scheduler - Simplify unit lifecycle: pending -> in_progress -> complete - Replace createPR() with mergeToFeatureBranch() in worker - Merge happens locally in main repo (no remote push during execution) - Add backwards compatibility for old PR status values - Add UnitMerged event for tracking merge operations Benefits: - Dependent units immediately see predecessor code (no PR merge delay) - Faster execution (no network operations during merge) - User controls when to push feature branch to remote Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback for feature workflow system - Rename docs/prds to docs/prd (singular) and update all references - Fix PRD ID usage: use prd.ID instead of prd.Body in completion.go and workflow.go - Fix spec commit scope: stage only specsDir instead of entire worktree - Add git.StagePath() for staging specific paths - Fix nil agent invoker: add agentInvoker field to App and return clear error - Add clarifying comment about RepoRoot branch checkout assumption in worker.go - Update all tests to use correct PRD ID field Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: resolve golangci-lint issues - Fix errcheck: handle error returns in review.go - Remove unused functions: getTargetBranch, cleanup - Fix S1009: remove unnecessary nil check before len() - Fix SA5011: use t.Fatal for nil checks in tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: add baseline checks configuration to .choo.yaml Mirror CI workflow checks (build, vet, lint, test) in the baseline configuration for local validation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Test User <test@test.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Auto-generated PR for unit feature-discovery