Skip to content

feat(workflows): add plugin slots - #4352

Open
markuswondrak wants to merge 1 commit into
github:mainfrom
markuswondrak:feat/workflow-plugin-slots
Open

feat(workflows): add plugin slots#4352
markuswondrak wants to merge 1 commit into
github:mainfrom
markuswondrak:feat/workflow-plugin-slots

Conversation

@markuswondrak

Copy link
Copy Markdown
Contributor

Summary

Adds the upstream opt-in plugin workflow slot described in Discussion #3473, building on the standalone WorkflowResolver introduced by #3557.

  • Registers a stateless plugin step that persists an unfilled named slot as skipped with output.slot.
  • Allows project overlays to fill slots through the existing ID-anchored replace operation, without changing resolver or merge semantics.
  • Rejects slots inside fan-out.step templates because runtime-multiplied templates are not addressable overlay anchors.
  • Adds engine, resolver-attribution, bundled-reference, documentation, and manual testing-guide coverage.

Validation

  • .venv/bin/python -m pytest tests/workflows/ tests/test_workflows.py -v
  • .venv/bin/python -m pytest tests/unit/test_bundler_references.py -v
  • .venv/bin/python -m pytest tests/test_presets.py -v
  • Manual disposable-project smoke: unfilled state, overlay replacement, persisted state, and resolver attribution.

Scope

No new CLI verbs, PresetResolver changes, shared helper extraction, resolver/merge behavior changes, bundled workflow slot, or status-color change.

Posted on behalf of @markuswondrak by GitHub Copilot (model: gpt-5.6-terra, autonomous).

Copilot AI balanced review requested due to automatic review settings August 27, 2026 08:15
@markuswondrak
markuswondrak requested a review from mnriem as a code owner August 27, 2026 08:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds opt-in plugin slots to workflows, enabling project overlays to replace upstream extension points safely.

Changes:

  • Registers and validates the stateless plugin step.
  • Persists unfilled slots as skipped and rejects fan-out placement.
  • Adds automated tests and user documentation.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/specify_cli/workflows/__init__.py Registers the plugin step.
src/specify_cli/workflows/engine.py Validates plugin types and fan-out restrictions.
src/specify_cli/workflows/steps/plugin/__init__.py Implements plugin-slot behavior.
tests/workflows/test_plugin_step.py Tests validation, execution, overlays, and attribution.
tests/unit/test_bundler_references.py Covers bundled plugin references.
tests/test_workflows.py Updates built-in registry expectations.
docs/reference/workflows.md Documents plugin-slot usage.
workflows/README.md Adds the plugin step overview.
workflows/PUBLISHING.md Adds plugin to publishing validation.
workflows/ARCHITECTURE.md Updates workflow architecture documentation.
spec/workflow_overlays/OVERLAY_TESTING_GUIDE.md Adds a manual validation walkthrough.

馃挕 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread spec/workflow_overlays/OVERLAY_TESTING_GUIDE.md Outdated
Assisted-by: GitHub Copilot (model: gpt-5.6-terra, autonomous)
@markuswondrak
markuswondrak force-pushed the feat/workflow-plugin-slots branch from e3b7f59 to 3247ceb Compare August 27, 2026 08:23
Copilot AI review requested due to automatic review settings August 27, 2026 08:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 10 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants