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.
feat(workflows): move --dry-run to specify workflow run; remove from specify spec/plan #2704
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
feat(workflows): move --dry-run to specify workflow run; remove from specify spec/plan #2704
Changes from all commits
071414fd271c5c3fa961fd112dac6a074badeb493eFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in latest commit.
specify_appTyper named "specify" (name="specify"), commands registered as@specify_app.command("spec")and@specify_app.command("plan"). CLI invocation isspecify spec/specify plan— no triple-nesting. Examples updated accordingly.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acknowledged. This is a valid limitation. Both commands currently execute the full speckit workflow. Adding start_at/stop_after step-ID filtering to WorkflowEngine.execute() would cleanly separate spec vs plan vs implement runs. Will address in a follow-up PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acknowledged: both
specify specandspecify plancurrently execute the fullspeckitworkflow (spec → gate → plan → gate → tasks → implement). Step isolation for spec vs plan vs implement requires engine-level support (start_at/stop_afterstep ID filtering), which is a follow-up enhancement.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed.
specify workflow run --dry-runnow surfaces step outputs after execution. The dry-run message (invoke_command, integration, model) is printed in CLI output. Step-level results are accessible in state for post-run inspection.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Valid point. The execute() docstring claims resume works for dry runs but resume() currently doesn't restore dry_run. I'll add dry_run to RunState so it's persisted, and restore it in resume(). Alternatively, --dry-run could be added to workflow resume CLI as a convenience flag.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added comprehensive reply to the main PR review. Summary: removed --dry-run from specify spec/plan (CLI is scaffolding, dry-run only meaningful for workflow run); added specify workflow run with --dry-run; fixed exit_code=0 in dry-run; documented execute() dry_run semantics; removed contradictory messaging; fixed Typer subcommand naming. Follow-up items noted for GateStep deterministic choice, start_at/stop_after step filtering, and dry_run persistence in RunState for safe resume.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acknowledged. dry_run is not persisted in RunState in this PR. resume() rebuilds StepContext with dry_run=False. This means interrupted dry-runs will invoke AI on resume — unsafe for production use. Follow-up PR will add dry_run persistence to state.json and restore on resume.
Uh oh!
There was an error while loading. Please reload this page.