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
add the canonical intake-only issue form for community workflow step-type submissions
capture the current external package/catalog contract, including version-pinned file URLs with exact per-file SHA-256 digests
document the current manual community catalog path and executable-code trust boundary
add regression coverage for the exact triage-must-have label, absence of premature validation labels, field IDs, required fields, and unchanged behavior of other issue forms
This is phase 1 only. It does not add a validation workflow, classifier, draft-PR generator, functional workflow-step-submission trigger, or catalog entry.
Contract mapping
The form follows the implementation currently used by specify workflow step:
catalog ID = step.type_key = matching StepBase.type_key
one installed package registers one step type
catalog installs download step.yml, __init__.py, and declared extra_files
the SHA-256 mapping covers exactly those downloaded files
exact release selection uses PEP 440-compatible versions and verifies step.version
Repository, license, documentation, changelog, compatibility, and runtime dependency fields provide provenance and manual-review evidence. The documentation explicitly notes that compatibility and dependency semantics are not yet defined or enforced by a canonical step catalog schema.
Implemented with GitHub Copilot using GPT-5.6 Sol in autonomous mode. Copilot researched the existing workflow-step package and catalog contracts, authored the issue form, documentation, and regression tests, resolved the rebase overlap, addressed review feedback, ran validation, and prepared this pull request on behalf of @mnriem.
Add the canonical intake-only issue form for community workflow step types, document the current manual catalog path, and cover its exact labels and field contract.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Expose the new community workflow step type guide in the DocFX Community sidebar.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Clarify that the discovery-only catalog cannot install workflows
docs/community/workflow-steps.md:20
The accepted catalog is the built-in community source, which is explicitly configured as discovery-only (install_allowed=False in src/specify_cli/workflows/step/catalog/_domain.py:443-448), so workflow step add <id> refuses to install from it. Please state that security boundary here; otherwise readers may interpret acceptance and the later “consumed by catalog installation” wording as making the submitted executable code installable by ID. Direct archive installation after source review, or a separately curated install-allowed catalog, is the supported path.
Move the intake link after the package tree
docs/reference/workflows.md:591
This link interrupts the colon that introduces the package tree, leaving the preceding sentence grammatically attached to an unrelated paragraph. Move the intake link after the tree so the example remains the direct continuation of “containing metadata and executable Python:”.
Document that the built-in community step catalog is discovery-only and keep the package tree directly attached to its introduction.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Addressed the two previously missed documentation points in 54f7ee88:
clarified that the built-in community workflow-step catalog is discovery-only, so accepted entries are searchable but cannot be installed by ID unless the user configures a separate install-allowed catalog; direct reviewed archive installation remains supported
moved the community intake link after the package tree so the example directly follows its introductory colon
Validation: npx --yes markdownlint-cli2@0.23.2 docs/community/workflow-steps.md docs/reference/workflows.md passed with 0 issues, and git diff --check passed.
GitHub Copilot (GPT-5.6 Sol, autonomous) implemented and validated these documentation fixes on behalf of @mnriem.
Require commit-pinned URLs or immutable release-backed tags
docs/community/workflow-steps.md:78
A URL pinned only to a Git tag is still a moving target because the tag can be force-updated unless it is protected by an immutable release. This contradicts the next sentence and the review criterion at line 108. Specify commit-SHA-pinned URLs or tags backed by an immutable release so submitters and reviewers have an enforceable provenance requirement.
Match the established community forms by using a versioned download URL without claiming archive immutability, while documenting per-file catalog checksum protection.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This intake ends without the AI disclosure required for issues by CONTRIBUTING.md:349-368. The documented exception names only extension, preset, and bundle forms because they feed validation automation, while this form explicitly says no validation workflow runs. Add the standard ai-disclosure field and update the contract test, or explicitly extend the policy exemption to this manual workflow-step intake.
Correct PR summary wording about version-pinned URLs
The PR summary still says this intake captures “immutable file URLs,” but this field requests tag-pinned URLs and the guide correctly notes that tags can move. The SHA-256 values make changed bytes detectable; they do not make the URLs immutable. Update the PR description to say “version-pinned file URLs with exact per-file SHA-256 digests.”
Add the standard required AI disclosure to the manual intake form and clarify how release and testing evidence relate to catalog digests.
Assisted-by: GitHub Copilot (model: GPT-5.6 Sol, autonomous)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
added the repository-standard required AI Disclosure field because this phase is manual intake and does not qualify for the catalog-automation exemption
clarified that the Download URL and Testing Details fields jointly provide release/test evidence, while per-file SHA-256 digests protect the catalog-installation path
corrected the PR summary to say “version-pinned file URLs with exact per-file SHA-256 digests”
Validation: focused GitHub workflow tests passed (127), pinned Ruff passed, Markdown lint passed, YAML validation passed with 22 unique field IDs, and git diff --check passed.
AI disclosure: This response and the associated changes were generated by GitHub Copilot using GPT-5.6 Sol in autonomous mode; Copilot authored the form, documentation, test, and PR-description updates on behalf of @mnriem.
package-relative does not capture the catalog validator's accepted path syntax. validate_checksums rejects backslashes, absolute paths, empty/./.. segments, and case-insensitive aliases of step.yml or __init__.py; because this phase has no validator, the current prompt can collect mappings that later fail catalog release validation. State those constraints in the field itself so submitters and manual reviewers can enforce the actual contract.
Clarify installation versus code-loading trust boundaries
docs/community/workflow-steps.md:8
This warning misstates the execution boundary: installation validates and copies the package without importing __init__.py (installer.validate_step_package explicitly never executes it), while specify workflow add, run, and resume later call load_custom_steps and execute import-time code. Since this page is defining the trust boundary, distinguish installation from the commands that actually load the code.
Document extra_files path validation restrictions
docs/community/workflow-steps.md:69
The contract table omits the path restrictions enforced for extra_files: catalog release validation rejects absolute/backslash paths, empty/./.. segments, and aliases of the two required files. Documenting those rules here is necessary for the claimed package/catalog contract, especially while review is manual.
Addressed the three contract mismatches identified in review 5434714211 in e3bdf882:
the issue form now states the exact accepted extra_files path syntax: forward-slash relative paths, no empty/./.. segments, and no case-insensitive aliases of step.yml or __init__.py
the community guide documents the same path restrictions in both the package and submission contracts
the trust warning now distinguishes validation/copy during workflow step add from import-time execution when later workflow add, run, or resume commands load installed step packages
Validation: focused GitHub workflow tests passed (127), pinned Ruff passed, Markdown lint passed, YAML validation passed with 22 unique field IDs, and git diff --check passed.
AI disclosure: This response and the associated changes were generated by GitHub Copilot using GPT-5.6 Sol in autonomous mode; Copilot researched the implementation, authored the form/documentation/test updates, and ran validation on behalf of @mnriem.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Summary
triage-must-havelabel, absence of premature validation labels, field IDs, required fields, and unchanged behavior of other issue formsThis is phase 1 only. It does not add a validation workflow, classifier, draft-PR generator, functional
workflow-step-submissiontrigger, or catalog entry.Contract mapping
The form follows the implementation currently used by
specify workflow step:step.type_key= matchingStepBase.type_keystep.yml,__init__.py, and declaredextra_filesstep.versionRepository, license, documentation, changelog, compatibility, and runtime dependency fields provide provenance and manual-review evidence. The documentation explicitly notes that compatibility and dependency semantics are not yet defined or enforced by a canonical step catalog schema.
Validation
LC_ALL=en_US.UTF-8 .venv/bin/python -m pytest tests/test_github_workflows.py -q— 127 passeduvx ruff@0.15.0 check tests/test_github_workflows.py— passedgit diff --check— passedLC_ALL=en_US.UTF-8 .venv/bin/python -m pytest— 9,738 passed, 19 skipped; 9,757 collectedAI assistance disclosure
Implemented with GitHub Copilot using GPT-5.6 Sol in autonomous mode. Copilot researched the existing workflow-step package and catalog contracts, authored the issue form, documentation, and regression tests, resolved the rebase overlap, addressed review feedback, ran validation, and prepared this pull request on behalf of @mnriem.