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
Draft for installation and end-to-end testing. Not ready for review; please do not review or merge yet. No reviewer requests are intended. The branch provides a testable development version; the official release remains unchanged.
Changes
Wizard Generate/Regenerate canvas flow with configurable naming, workflow header, optional custom slug and installation approval.
Immutable workflow blueprints, request-local deterministic templates, protected-file validation, and declarative-only AI customization.
Self-contained generated project canvases with shared styling, workflow collections, phase execution/reruns, safe artifact viewing, folder access and confirmed deletion.
Portable Spec Kit setup, effective preset/extension composition, installed-component detection and optional complete-set installation approval, without bypassing host permissions.
Optional project-level Constitution card with View and Create / update. A Constitution selected anywhere in the source pipeline is excluded from the visual workflow; verified completion gates other phase execution.
Related scanner/composition fixes, documentation, regression coverage and Wizard 0.2.0 version metadata.
Validation
The full Wizard regression suite passed before the final button-label-only edit. A real template-10 generation in the detached test session selected Constitution LAST after the five Assess phases. Desktop1100/mobile360 checks verified five visual phases numbered1–5, exactly one top-level Constitution card, no Constitution below the pipeline, artifact viewing, empty Guidance dialog without slug, selection preservation and prerequisite gating. All125 source hashes matched; existing apps, artifacts, registries and dependency/SDK wiring were preserved.
The final Review overwrite to Regenerate copy change is included but intentionally untested at the user's request; overwrite confirmation behavior is unchanged. Recent live acceptance did not approve installations or execute phases.
Remaining before review
Formally install the branch version of the Wizard in an unrelated clean repository.
Exercise real setup/installation, Constitution creation, phase execution and reruns.
Verify rediscovery and artifact persistence in a new session.
Transfer a generated extension to a second clean repository and verify recipient onboarding without the Wizard.
Local tool caches, session mockups/evidence and generated acceptance applications are excluded.
Replace hidden comments with a separator and cover malformed comments, reconstructed delimiters, and HTML escaping.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This modal never moves focus into the dialog, handles Escape, traps Tab, or restores focus after closing. Keyboard users can interact with controls behind the modal. Reuse the complete focus lifecycle already implemented by the Constitution dialog in this file.
This issue also appears on line 413 of the same file.
Describe the fields that the generation dialog actually shows
The dialog intentionally omits the ordered-command and inferred-artifact review (the new UI test explicitly asserts those elements are absent), so these instructions send users looking for controls that do not exist. Describe the target and editable generation options instead.
Retain static integrity checks while leaving first open, setup, and phase execution to the user.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This scans every serialized value, so valid metadata or skill-derived text such as “Token rotation workflow” makes an otherwise valid generated canvas fail its success callback. The blueprint schema does not contain callback credentials; validate prohibited fields structurally and keep the workspace-path check instead of rejecting an ordinary word in user content.
Scope the shared theme before loading it in the Wizard
workflow-theme.css contains unscoped rules for body, .app-header, .app-body, .btn, .stepper, and .phase-card, and this link loads after every existing Wizard stylesheet. The cascade therefore restyles the header and controls across all tabs (for example, replacing the existing grid header with flex), not just the intended workflow surface. Scope the shared rules under .workflow-surface and apply that class to the Phases surface, or split global generated-app rules from reusable component rules.
Describe the options the generation dialog actually shows
The dialog intentionally does not display the ordered commands or inferred artifact targets (generation-ui.test.mjs:121-152 asserts their absence), so this instruction tells users to review information they cannot see. Update these steps to mention the actual target, naming, workflow-header, slug, and approval controls instead.
Report success, open the new canvas once, and stop without runtime testing or phase execution.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Clarify updates the existing spec.md, so using artifact existence as its completion signal makes it appear completed as soon as Specify creates that file—even if Clarify never ran. Include clarify in the transient/no-artifact completion set so it remains runnable and is not falsely reported complete.
The generated runtime records only artifact existence/mtime and never marks downstream phases stale after a rerun, so this confirmation promises behavior that does not occur. Either implement downstream invalidation in the runtime and render that state, or change the message to describe the actual rerun behavior.
Scope the generated workflow theme to avoid breaking the Wizard
This stylesheet is loaded last into the existing Wizard, but it contains global selectors (:root, body, .app-header, .btn, and .stepper) intended for generated canvases. For example, it changes .app-header from the Wizard's three-column grid in ui/styles/foundation.css:84-94 to flex, affecting navigation and status layout on every tab. Scope the shared rules under .workflow-surface or split generated-app globals from reusable workflow component styles.
Align the generation-dialog documentation with the UI
The dialog no longer displays the ordered commands or inferred artifact targets—generation-ui.test.mjs:123-127 explicitly asserts those summaries are absent. Document that the current pipeline is captured during generation rather than telling users they can review these details in the dialog.
The test directory now contains 20 *.test.mjs files, not five, so this validation guidance materially understates the suite. Avoid a brittle count or update it to reflect the current suite.
This drops the sign from the supported CLI priority domain: Priority: -3 does not match and becomes null. The generated setup contract then loses the exact extension priority, even though its runtime parser supports signed integers.
The generated setup runtime accepts signed integer priorities, but this parser only captures digits. An installed preset with priority -1 is hydrated with priority: null, so generated setup contracts omit its actual priority and cannot reproduce the source composition.
The generation dialog intentionally contains no pipeline or artifact-target review (the UI test asserts those elements are absent), so these steps tell users to look for controls that do not exist after clicking Generate canvas. Move the review step to the Phases page and describe the dialog as metadata/options only.
Share client and server validation, reject invalid runs before queueing, and add Windows/macOS source coverage in template v12.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This stylesheet is loaded after the Wizard's existing styles but its first ~430 lines are global, not scoped to .workflow-surface. For example, it changes .app-header from the Wizard's three-column grid (ui/styles/foundation.css:84-94) to flex and overrides global .stepper, .btn, modal, body, and theme rules. Split out/scoped shared component rules before importing them here so enabling the shared phase styles does not restyle the entire Wizard.
… guidance
Preserve artifact clarification indicators and quiet pipeline controls; derive shared final-phase labels only from complete workflow examples with a standard fallback.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Keep pipeline utilities enabled with confirmation, always expose artifact viewing, and add collection counts and per-workflow status pills. Share format-independent outcome guidance between generation and runtime reviews in template v23.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
A request without result.json is recovered as generating indefinitely, and /api/generation/start rejects while that state is active. If the host or agent session exits before reporting, reopening the Wizard permanently prevents any future generation. Recovery needs a stale-request policy or an explicit retry/cancel path before restoring this blocking state.
The block scan applies an unanchored priority match to the ID and description lines. For entries where the CLI omits a structured Priority row, prose mentioning a number becomes authoritative installed metadata and is later captured in generated setup contracts. Match only the CLI's structured Priority/Status row, as setup-runtime.mjs:129-132 does.
Parse priority only from structured preset metadata
This unanchored match scans every line in a preset block, so description text such as “uses priority 1 for triage” can be mistaken for the installed priority (and can win before the real wrapped field). Restrict matching to the CLI metadata suffix; also retain the signed integer handling used by the generated setup parser.
IDs such as con, aux, or com1 pass this validation but cannot be used as directory names on Windows, so preflight succeeds and scaffolding later fails. Apply the same portable reserved-name check already used for generated workflow slugs.
Replace generation-time artifact inference with an optional list of up to five labels. Preserve independent result counts, clarification-only defaults, and actionable reserved-label validation. Consolidate captured pre-load checks and keep completion reporting nonblocking.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
errors.push({ code: "extension_id_invalid", field: "extensionId", message: "Extension ID must be 1-63 lowercase letters, numbers, or hyphens, and cannot start or end with a hyphen." });
} else if (PROTECTED_EXTENSION_IDS.has(extensionId)) {
errors.push({ code: "extension_id_protected", field: "extensionId", message: "Choose a different extension ID; the Spec Kit Wizard extension is protected." });
}
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.
Status
Draft for installation and end-to-end testing. Not ready for review; please do not review or merge yet. No reviewer requests are intended. The branch provides a testable development version; the official release remains unchanged.
Changes
Validation
The full Wizard regression suite passed before the final button-label-only edit. A real template-10 generation in the detached test session selected Constitution LAST after the five Assess phases. Desktop1100/mobile360 checks verified five visual phases numbered1–5, exactly one top-level Constitution card, no Constitution below the pipeline, artifact viewing, empty Guidance dialog without slug, selection preservation and prerequisite gating. All125 source hashes matched; existing apps, artifacts, registries and dependency/SDK wiring were preserved.
The final
Review overwritetoRegeneratecopy change is included but intentionally untested at the user's request; overwrite confirmation behavior is unchanged. Recent live acceptance did not approve installations or execute phases.Remaining before review
Local tool caches, session mockups/evidence and generated acceptance applications are excluded.