Repository navigation
Optimize Spec Kit for Copilot CLI and Copilot App with a configurable SDD bundle #54
Description
Goal
Deliver copilot-sdd-bundle (“Copilot SDD Bundle”): a streamlined, configurable Spec Kit experience for Copilot CLI and Copilot App.
Provide explicit Lean and Full SDD baselines, compatible delegation options, and opt-in extension lifecycle hooks. Reduce unnecessary instruction overhead without weakening the selected workflow’s safeguards.
Intended components and defaults
| Preset | Purpose | Default |
|---|---|---|
copilot-lean-sdd |
Minimal SDD workflow derived from upstream Lean, independently maintained for Copilot. | Enabled |
copilot-full-sdd |
Traditional full SDD process and artifacts, without embedded extension-hook dispatch. | Installed, disabled |
copilot-sub-agents |
Delegate useful independent work without imposing additional artifacts or phases. | Enabled |
copilot-sub-sessions |
Parent-coordinated child-session orchestration in Copilot App. | Installed, disabled; App-only |
copilot-extension-hooks |
Spec Kit extension lifecycle-hook handling for either baseline. | Installed, disabled |
Lean and Full are alternative baselines, not cumulative layers. Extension hooks remain an explicit opt-in because their instructions and execution add token cost.
Feasibility findings and prerequisites
Investigation against local Spec Kit commit 6ad208241af0b94b2dc22b5c0534a9a82465bf0a identified limitations that prevent the intended experience from being delivered through a plain bundle manifest:
- Disabled defaults: Bundle components cannot currently declare an effective installed-but-disabled preset state.
- Choice-preserving updates: Refreshing bundle-owned presets can re-enable them and reset their priorities.
- Generated-output reconciliation: Enable, disable, and priority changes do not regenerate skills. Re-registration does not reliably restore core output after the last contributing preset is disabled.
- Baseline selection: Bundles do not express mutually exclusive preset choices. Enabling two replacement baselines resolves precedence rather than enforcing a coherent selection.
These findings are pinned to the checked fork, not a claim about uninspected upstream changes.
For a turnkey experience, shared Spec Kit capability work is needed. Explicit configuration tooling is an alternative, but must not be presented as native declarative bundle support.
Copilot preset requirements
SDD baselines
- Introduce
copilot-lean-sddandcopilot-full-sddunderspec-kit-presets/. - Retain upstream license and attribution, document provenance, and version each independently.
- Update repository guidance to permit these upstream-derived Copilot baselines.
- Cover the complete supported ten-command core inventory, including shared commands, so extension-hook dispatch does not leak through core fallbacks.
- Keep Lean’s artifact requirements minimal.
- Preserve Full SDD’s traditional artifacts, constitution checks, quality gates, and validation.
- Establish compatibility with clarify, analyze, and checklist, including their artifact prerequisites.
Delegation
- Adapt
copilot-sub-agentsto the selected workflow rather than assuming full-workflow phases and artifacts. - Introduce
copilot-sub-sessionsfor Copilot App. - Keep the initiating parent responsible for creating and coordinating children, collecting results, and handling approval needs.
- Children must not spawn successor sessions.
- Define selection or precedence rules that avoid conflicting or duplicate delegation.
- Validate App-specific capabilities separately; Spec Kit’s Copilot integration does not itself establish their availability.
Extension lifecycle hooks
- Introduce independently configurable
copilot-extension-hooks. - Make the preset the sole owner of extension-hook dispatch instructions within the supported baseline composition.
- Preserve established ordering and mandatory, optional, enabled, and conditional-hook semantics.
- Actually invoke mandatory hooks and wait for their results.
- Prevent duplicate dispatch.
- Do not conflate extension lifecycle hooks with Copilot’s native hooks/events; disabling this preset must not claim to disable native hooks.
Delivery workstreams
| Workstream | Scope | Dependency |
|---|---|---|
| Spec Kit prerequisite A | Install-time preset activation defaults and preservation of user activation/priority choices during bundle refresh. | Independent |
| Spec Kit prerequisite B | Reconcile generated commands/skills after activation or priority changes, including restoration to core fallback. | Independent |
| Copilot PR 1 | Introduce copilot-lean-sdd, provenance, catalog metadata, documentation, and guidance changes. |
Independent |
| Copilot PR 2 | Introduce copilot-full-sdd with full workflow semantics and no embedded extension-hook dispatch. |
Independent |
| Copilot PR 3 | Adapt copilot-sub-agents for both baselines. |
Validate against both baselines |
| Copilot PR 4 | Introduce opt-in copilot-sub-sessions. |
Validate baseline and delegation composition |
| Copilot PR 5 | Introduce opt-in copilot-extension-hooks. |
Validate against both baselines |
| Copilot PR 6 | Assemble copilot-sdd-bundle, configure selection/defaults, and document installation, switching, and updates. |
Component releases and required capabilities |
The estimate is six Copilot PRs plus at least two shared Spec Kit prerequisite workstreams. Final PR boundaries depend on prerequisite design. Decide whether baseline exclusivity belongs in shared declarative capabilities or explicit configuration tooling before implementing bundle assembly.
Acceptance criteria
- Fresh installation produces the documented enabled and disabled states without temporarily exposing unintended command layers.
- Exactly one SDD baseline is selected through the supported configuration flow.
- Switching baselines preserves authored specifications, plans, tasks, and constitution content.
- Updates preserve user activation and priority choices.
- Activation, deactivation, and priority changes reconcile generated skills without stale instructions.
- Lean and Full retain their respective artifact and safeguard contracts.
- Clarify, analyze, and checklist have documented, verified prerequisites for each baseline.
- Default composed commands contain no extension lifecycle-hook dispatch instructions.
- Enabling hooks restores applicable handling exactly once; disabling them removes it.
- Delegation modes do not create conflicting or duplicate orchestration.
- Supported behavior is validated in Copilot CLI and Copilot App; App-only orchestration is clearly identified.
- Representative composed-command token counts show the cost of optional layers.
- Existing projects are not implicitly migrated.
- Each preset has an installable release with aligned manifest, catalog, release URL, and documentation.
Scope boundaries
No unrelated integration changes, removal of native Copilot hooks, or automatic migration of existing projects. Missing shared capabilities require explicit design and approval rather than silent expansion of the bundle implementation.
Activity