Skip to content

IDE Prompt Source Selection #382

@djm81

Description

@djm81

IDE Prompt Source Selection

Why

specfact init ide now sits downstream of two separate changes:

  • bundle-owned prompt/templates are moving into specfact-cli-modules
  • modules may be installed in different runtime roots such as ~/.specfact/modules, <repo>/.specfact/modules, built-in core package roots, and optional custom roots

The older proposal treated this as only a prompt selector. That is no longer enough. The remaining work in specfact-cli is the orchestration layer that discovers installed prompt/resource sources, lets users select them, and exports them safely without making core own those payloads again.

What Changes

  • narrow this issue to specfact-cli orchestration only
  • keep prompt/template payload migration in specfact-cli-modules change packaging-01-bundle-resource-payloads (nold-ai/specfact-cli-modules#101)
  • build an installation-aware prompt/resource catalog for specfact init ide from core built-ins plus discovered installed modules across user, project, and configured custom roots
  • default specfact init ide to exporting all discovered prompt sources
  • add interactive and non-interactive source selection with core and full installed module ids
  • keep exported prompt files attributable to their owning source so collisions are deterministic and readable
  • keep specfact init ide as an anytime re-sync/export command only; it must not download, install, or extract bundles itself
  • emit actionable guidance to the correct bootstrap/install path when resources are missing, for example specfact module init --scope <user|project> or specfact module install --scope <user|project>

Capabilities

New Capabilities

  • init-ide-prompt-selection: specfact init ide can export prompts from core and selected installed modules with consistent interactive and non-interactive behavior
  • init-ide-installed-resource-orchestration: specfact init ide can discover installed prompt/resource payloads from the effective module roots and direct users to the correct install/bootstrap command when those payloads are absent

Acceptance Criteria

  • specfact init ide builds its prompt-source catalog from the effective installed module roots for the current repository context, including user scope, project scope, built-in core modules, and configured custom roots
  • default execution exports all discovered prompt sources by default rather than only the first matching root
  • interactive mode shows a source picker containing core plus installed module ids that actually contribute prompt resources
  • non-interactive mode accepts --prompts all, --prompts core, and comma-separated full module ids
  • the command does not download or install module archives; missing sources produce actionable guidance to run the correct core install/bootstrap command for the relevant scope
  • exported prompt files are grouped or namespaced by source so prompt provenance remains visible and collisions stay deterministic
  • the scope respects canonical command ownership from active migration changes and must not reintroduce obsolete command paths into prompt export or recommendations

Dependencies

  • backlog-module-ownership-cleanup must land first so backlog prompt ownership is no longer split across core and module
  • packaging-02-cross-platform-runtime-and-module-resources provides the installed-resource discovery foundation in specfact-cli and remains the owner of payload discovery mechanics
  • specfact-cli-modules/packaging-01-bundle-resource-payloads (nold-ai/specfact-cli-modules#101) must provide the bundle-owned prompt/template payloads that this change selects and exports
  • module-migration-11-project-codebase-ownership-realignment provides command-surface alignment context so exported prompts do not preserve obsolete grouped command ownership
  • existing specfact module init and specfact module install commands in specfact-cli remain the install/bootstrap path for user/project module roots; init ide extends only the post-install discovery/export path

OpenSpec

  • Change: init-ide-prompt-source-selection
  • Repo path: openspec/changes/init-ide-prompt-source-selection/

Metadata

Metadata

Assignees

Labels

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions