You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/reference/workflows.md
+35Lines changed: 35 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -286,6 +286,40 @@ edits:
286
286
287
287
Lower priority values have higher precedence. Change this overlay to `priority: 5` if it must win a conflict with the `add-lint` overlay above. It replaces the `review-plan` gate with a non-interactive command.
288
288
289
+
### Plugin slots (upstream extension points)
290
+
291
+
Workflow authors can declare a named, no-op extension point with `type: plugin`:
292
+
293
+
```yaml
294
+
- id: post-implement
295
+
type: plugin
296
+
name: "Post-implementation checks"
297
+
```
298
+
299
+
The step `id` is the unique overlay anchor; `name` is a required non-blank,
300
+
human-readable label only. An unfilled slot completes as a `skipped` step with
301
+
`output: {slot: <name>}`, so subsequent steps continue normally.
302
+
303
+
Fill a slot with a schema-valid overlay `replace` edit anchored on the step
304
+
`id`, not its `name`:
305
+
306
+
```yaml
307
+
id: fill-post-implement
308
+
extends: my-workflow
309
+
edits:
310
+
- replace: post-implement
311
+
step:
312
+
id: post-implement
313
+
type: shell
314
+
run: "echo Run project-specific checks"
315
+
```
316
+
317
+
Reuse the slot's `id` when later expressions or `fan-in.wait_for` refer to it.
318
+
The replacement must also preserve every output key those later steps consume:
319
+
an unfilled plugin slot supplies only `steps.<id>.output.slot`. Plugin slots are
320
+
not supported inside `fan-out.step` templates because runtime-multiplied
321
+
templates cannot be overlay anchors.
322
+
289
323
### Interaction with Bundles and Updates
290
324
291
325
`specify workflow add <local-directory>`installs the complete local workflow
@@ -494,6 +528,7 @@ specify workflow run speckit -i spec="Build a kanban board with drag-and-drop ta
494
528
| `prompt` | Send an arbitrary prompt to the AI coding agent |
495
529
| `shell` | Execute a shell command and capture output |
496
530
| `init` | Bootstrap a project (like `specify init`) |
531
+
| `plugin` | Named extension point; skipped when unfilled |
497
532
| `gate` | Pause for human approval before continuing |
498
533
| `if` | Conditional branching (then/else) |
499
534
| `switch` | Multi-branch dispatch on an expression |
0 commit comments