Skip to content

[Change] module-migration-02 - Bundle Extraction and Marketplace Publishing #316

@djm81

Description

@djm81

Why

module-migration-01 introduced category group commands and bundle metadata, but module source code still lives in src/specfact_cli/modules/ inside the core package — every specfact-cli install still ships all 21 modules unconditionally.

This change completes the extraction: it moves each category's module source into independently versioned bundle packages in the specfact-cli-modules repository, publishes signed packages to the marketplace registry, and installs the bundle-level dependency graph. After this change, the marketplace will carry all five official bundles (specfact-project, specfact-backlog, specfact-codebase, specfact-spec, specfact-govern) as first-class installable packages.

Without extraction, the specfact init --profile <name> first-run selection flow is cosmetic — extraction makes profile selection meaningful: only selected bundles arrive on disk.

What Changes

  • Create per-bundle package directories in specfact-cli-modules/packages/:
    • specfact-project — project, plan, import_cmd, sync, migrate
    • specfact-backlog — backlog, policy_engine
    • specfact-codebase — analyze, drift, validate, repro
    • specfact-spec — contract, spec, sdd, generate
    • specfact-govern — enforce, patch_mode
  • Move module source to bundle packages; core retains re-export shims to preserve import paths during migration window
  • Publish five signed official-tier bundles to the marketplace registry
  • Add bundle-level dependency declarations (specfact-specspecfact-project, specfact-governspecfact-project)
  • Extend scripts/publish-module.py with bundle packaging, per-bundle signing, and registry index update steps

Acceptance Criteria

  • All five bundle packages exist in specfact-cli-modules/packages/ with correct namespace structure
  • Each bundle is signed (SHA-256 + Ed25519) and appears in registry/index.json
  • specfact_cli.modules.* import paths remain functional via re-export shims
  • specfact module install nold-ai/specfact-codebase installs and activates the codebase bundle
  • Bundle-level dependencies resolve correctly (installing specfact-spec auto-installs specfact-project)

OpenSpec Change Proposal: module-migration-02-bundle-extraction

Metadata

Metadata

Assignees

Labels

change-proposalProposal for a new changeenhancementNew feature or requestmarketplaceModule marketplace featuresmodule-systemModule system and registry

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions