[Feature]: capture mode for command and prompt workflow steps
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 68/100
Rechercherichtung
Start with src/specify_cli/workflows/steps/command/init.py and the existing ShellStep capture pattern, then inspect prompt/init.py, validators.py, and IntegrationBase.dispatch_command(). Add regression coverage in tests/test_workflows.py for opt-in command and prompt capture, validation, and timeout behavior; done means captured stdout/stderr reach downstream step outputs while default streaming remains unchanged.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
Workflow command and prompt steps always stream output to the terminal. The stdout and stderr fields in the step output dict are always empty strings, making them inaccessible to downstream steps via {{ steps.<id>.output.stdout }}.
This limits workflow authors who need to:
- Parse AI agent output and branch on its content
- Pipe command output into a later step as structured data
- Conditionally act on specific output patterns (e.g. exit messages, generated file paths)
The command step docstring (line 26) notes this as a planned enhancement:
Full
stdout/stderrcapture is a planned enhancement.
Proposed Solution
Add an opt-in capture: true field to command and prompt step configs. When set, dispatch uses capture_output=True so stdout and stderr are returned in the step output dict and accessible to downstream steps.
# Before (streaming, stdout/stderr always empty):
- id: plan
type: command
config:
command: speckit.plan
integration: claude
# After (capture mode, stdout/stderr available):
- id: plan
type: command
config:
command: speckit.plan
integration: claude
capture: true
timeout: 300
Downstream steps can then reference:
- id: parse
type: shell
config:
command: "echo '{{ steps.plan.output.stdout | from_json }}'"
Design Notes
- Backward compatible:
capturedefaults tofalse; existing workflows are unaffected - Follows existing pattern:
ShellStepalready captures output withcapture_output=Trueand supportsoutput_format: json - Timeout support: A
timeoutfield (seconds, default 600) prevents hung commands from blocking the workflow, consistent withdispatch_command()default - Implementation: Requires forwarding
stream=not capturetoIntegrationBase.dispatch_command()which already supports both modes
Affected Files
src/specify_cli/workflows/steps/command/__init__.py- config schema, dispatch call, output assemblysrc/specify_cli/workflows/steps/prompt/__init__.py- same pattern for prompt stepssrc/specify_cli/workflows/validators.py-capture(bool) andtimeout(int) validationtests/test_workflows.py- capture mode regression tests
Questions
- Does this direction align with your roadmap for the workflow engine?
- Should capture mode also apply to the
promptstep, or onlycommandsteps? - Any preferences on the field name (
capturevscapture_outputvs something else)?
Happy to implement if this is something you'd like to move forward with.
- Vorherrschende Sprache
- Python
- Sterne
- 139k
- Forks
- 12.5k
- Ø Merge
- 2 T. 5 Std.
- Gemergte PRs (30 T.)
- 182
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus github/spec-kit
-
enhancement needs-triage
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
feature-assess feature-go triage-can-wait
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
github/spec-kit#4804 · 6 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs-triage triage-nice-to-have
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
github/spec-kit#4527 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: specify init writes speckit.manifest.json without the speckit-converge skill it just installedEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offenbug-assess severity-medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
github/spec-kit#4273 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Bug]: /speckit-implement counts checkbox markers inside fenced code blocks — example checkboxes can falsely block implementationEvtl. vergeben @ntdatt812 hat das vor 26 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in github/spec-kit
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 3 Tagen
-
Negation with "not" and "no" is ignored during sentiment analysisEvtl. vergeben @vivek-3728 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
techcsispit/mess-mood#11 · 1 Kommentar ·
-
changelog investigate
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
ramnes/notion-sdk-py#408 ·
-
good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
btclib-org/btclib-wallet#267 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue tech-debt
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
knnmelprop/YAADO#111 ·