From b82d0e7c0f5688ac4256f8ecd36353465f017258 Mon Sep 17 00:00:00 2001 From: Steve Yegge Date: Thu, 25 Dec 2025 11:44:16 -0800 Subject: [PATCH] Fix expansion operators: update dependencies after expansion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a step is expanded (e.g., implement -> implement.draft, implement.refine-1, etc.), any steps that depended on the original step should now depend on the last step of the expansion. Call UpdateDependenciesForExpansion after both expand and map operations. Fixes gt-8tmz.3 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- internal/formula/expand.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal/formula/expand.go b/internal/formula/expand.go index 4ca9d4c6..5ddfd459 100644 --- a/internal/formula/expand.go +++ b/internal/formula/expand.go @@ -82,6 +82,13 @@ func ApplyExpansions(steps []*Step, compose *ComposeRules, parser *Parser) ([]*S result = replaceStep(result, rule.Target, expandedSteps) expanded[rule.Target] = true + // Update dependencies: any step that depended on the target should now + // depend on the last step of the expansion + if len(expandedSteps) > 0 { + lastStepID := expandedSteps[len(expandedSteps)-1].ID + result = UpdateDependenciesForExpansion(result, rule.Target, lastStepID) + } + // Update step map with new steps for _, s := range expandedSteps { stepMap[s.ID] = s @@ -122,6 +129,13 @@ func ApplyExpansions(steps []*Step, compose *ComposeRules, parser *Parser) ([]*S result = replaceStep(result, targetStep.ID, expandedSteps) expanded[targetStep.ID] = true + // Update dependencies: any step that depended on the target should now + // depend on the last step of the expansion + if len(expandedSteps) > 0 { + lastStepID := expandedSteps[len(expandedSteps)-1].ID + result = UpdateDependenciesForExpansion(result, targetStep.ID, lastStepID) + } + // Update step map for _, s := range expandedSteps { stepMap[s.ID] = s