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
Extract Canvas Design into an independently publishable Specify CLI extension package, with a Copilot-specific extension catalog parallel to the existing preset catalog. No Wizard/Designer consumer changes.
Extract spec-kit-extensions/ from the pinned source snapshot 22efef80d01a70178ca2357b5fcfc6b3e9ca3876 in Add required Canvas Design extension and dynamic Designer pages #40. Preserve version 0.1.0, command/template IDs, four JSON pages, and command. Add the requested copilot and exact lowercase canvas-design discovery tags to the source manifest. Tighten the page schema so a field's default requires an explicit boolean type, matching the pinned Designer's runtime validation.
Add spec-kit-extensions/catalog.json, scoped to extensions depending on Copilot tools/providers, with Canvas Design as its only entry. Its metadata and published ZIP URL agree with the manifest and release workflow. This is a Specify extension catalog, not a Copilot plugin marketplace entry or upstream community-catalog submission.
Document catalog registration using --install-allowed, install-by-ID, and direct --from <release-url> installation. Preserve Copilot --skills initialization and explicitly require a separately supplied compatible Designer provider exposing speckit_designer_load_pages. The package does not ship a Designer or imply existing released Wizards support the protocol. Installation requires the release ZIP to be published.
Add focused Python unittest package contracts with PyYAML/jsonschema, independent of Wizard dependencies or the Specify executable.
Add release-extension.yml: test and inline ZIP packaging on relevant PRs/main pushes; publish only from maintainer-pushed extension/canvas-design/vX.Y.Z tags, following the existing tag-driven Release Preset approach. Validate manifest/catalog/tag versions, catalog download URL, and archive contents before publishing. No custom manual-dispatch publisher or workflow tag creation remains. Extension tags do not match the existing preset release trigger, and releases do not become the repository's latest release.
Validation
13/13 tests passed, covering schema positive/negative cases, default page/field shape, manifest/file declarations, command contract, Copilot catalog and discovery tags, installation documentation, release permissions/triggers, version guards, and rejection of catalog version/download-URL drift.
The field-default regression reproduced all four invalid cases before the fix: omitted/string types with true/false defaults. They now fail schema validation while explicitly boolean fields accept both defaults.
Executed the workflow's exact inline ZIP builder locally and verified all 8 archive members, with extension.yml at the archive root and byte-for-byte matches to package files. The catalog and tests remain outside the installable ZIP; no plugin/provider code or cache files are packaged.
Checked the new catalog entry against the actual designerCatalogFingerprint implementation from the pinned Add required Canvas Design extension and dynamic Designer pages #40 source: the entry is included using canvas-design; wrong-case, partial, missing, and non-array tag variants are rejected.
This is a standalone PR targeting main, not a native stack member. No release/tag was published. No preset release behavior, plugin/marketplace metadata, core skills, Wizard/Designer implementation, or existing PR/stack was changed. #40 remains the consumer and was not modified or closed.
Repository-hosted catalog support and exact discovery tags were added at the user's request after the initial extraction. Publishing, upstream catalog submission, the full real-CLI normal-install/preset-composition matrix (Step 2), and migration of the consumer to a released URL remain separate follow-ups. These package tests do not claim that integration matrix has passed. The known development-symlink composition issue is not worked around by changing integration mode.
Remove the bespoke manual tag-and-publish path. Publish only from maintainer-pushed version tags, preserving archive validation and separate extension versioning.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove PR-specific publishing rationale and retry details from the extension README.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The shipped schema accepts a field with default: true when type is omitted (implicitly string) or explicitly string, but the compatible Designer provider rejects defaults unless the field type is boolean. This lets a preset pass the package's advertised schema validation and then fail during page loading. Require an explicit boolean type whenever default is present, and cover that schema-negative case.
The schema accepts a boolean default when type is omitted (implicitly a string) or is explicitly string, but the compatible Designer implementation pinned in #40 rejects both as an invalid field. Preset authors can therefore pass the published schema and still have the entire page batch rejected. Couple default to an explicit boolean type (and cover this case in the schema tests).
Mirror the preset catalog structure, document catalog installation, and enforce manifest/catalog version and release URL agreement. Preserve the exact canvas-design tag consumed by the source Designer integration.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Align the published page schema with the Designer validation contract and cover omitted/string field types with both true and false defaults.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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
Extract Canvas Design into an independently publishable Specify CLI extension package, with a Copilot-specific extension catalog parallel to the existing preset catalog. No Wizard/Designer consumer changes.
spec-kit-extensions/from the pinned source snapshot22efef80d01a70178ca2357b5fcfc6b3e9ca3876in Add required Canvas Design extension and dynamic Designer pages #40. Preserve version 0.1.0, command/template IDs, four JSON pages, and command. Add the requestedcopilotand exact lowercasecanvas-designdiscovery tags to the source manifest. Tighten the page schema so a field'sdefaultrequires an explicit boolean type, matching the pinned Designer's runtime validation.spec-kit-extensions/catalog.json, scoped to extensions depending on Copilot tools/providers, with Canvas Design as its only entry. Its metadata and published ZIP URL agree with the manifest and release workflow. This is a Specify extension catalog, not a Copilot plugin marketplace entry or upstream community-catalog submission.--install-allowed, install-by-ID, and direct--from <release-url>installation. Preserve Copilot--skillsinitialization and explicitly require a separately supplied compatible Designer provider exposingspeckit_designer_load_pages. The package does not ship a Designer or imply existing released Wizards support the protocol. Installation requires the release ZIP to be published.release-extension.yml: test and inline ZIP packaging on relevant PRs/main pushes; publish only from maintainer-pushedextension/canvas-design/vX.Y.Ztags, following the existing tag-driven Release Preset approach. Validate manifest/catalog/tag versions, catalog download URL, and archive contents before publishing. No custom manual-dispatch publisher or workflow tag creation remains. Extension tags do not match the existing preset release trigger, and releases do not become the repository's latest release.Validation
extension.ymlat the archive root and byte-for-byte matches to package files. The catalog and tests remain outside the installable ZIP; no plugin/provider code or cache files are packaged.designerCatalogFingerprintimplementation from the pinned Add required Canvas Design extension and dynamic Designer pages #40 source: the entry is included usingcanvas-design; wrong-case, partial, missing, and non-array tag variants are rejected.bash -n; staged diff checks pass.Scope and sequencing
This is a standalone PR targeting main, not a native stack member. No release/tag was published. No preset release behavior, plugin/marketplace metadata, core skills, Wizard/Designer implementation, or existing PR/stack was changed. #40 remains the consumer and was not modified or closed.
Repository-hosted catalog support and exact discovery tags were added at the user's request after the initial extraction. Publishing, upstream catalog submission, the full real-CLI normal-install/preset-composition matrix (Step 2), and migration of the consumer to a released URL remain separate follow-ups. These package tests do not claim that integration matrix has passed. The known development-symlink composition issue is not worked around by changing integration mode.
Blockers: none for this extraction PR.