Skip to content

feat: launch central module marketplace lifecycle#287

Merged
djm81 merged 3 commits intodevfrom
feature/marketplace-01-central-module-registry
Feb 21, 2026
Merged

feat: launch central module marketplace lifecycle#287
djm81 merged 3 commits intodevfrom
feature/marketplace-01-central-module-registry

Conversation

@djm81
Copy link
Copy Markdown
Collaborator

@djm81 djm81 commented Feb 21, 2026

Description

This PR launches the central module marketplace lifecycle for SpecFact CLI and aligns module management UX around the specfact module command group. It adds multi-source module discovery (built-in, marketplace, custom), trust/publisher visibility, improved install/uninstall/upgrade/search behaviors, and full module introspection via module show.

Fixes #214

New Features #214

Contract References: No new public contract surface was introduced beyond existing module lifecycle APIs; this change primarily extends module registry/discovery behavior and CLI command implementations.

Type of Change

Please check all that apply:

  • ✨ New feature (non-breaking change which adds functionality)
  • 📚 Documentation update
  • 🧪 Test enhancement (scenario tests, property-based tests)
  • 🔧 Refactoring (code improvement without functionality change)

Contract-First Testing Evidence

Required for all changes affecting CLI commands or public APIs:

Contract Validation

  • Runtime contracts added/updated (@icontract decorators on public APIs)
  • Type checking enforced (@beartype decorators applied)
  • CrossHair exploration completed: hatch run contract-test-exploration
  • Contract violations reviewed and addressed

Test Execution

  • Contract validation: hatch run contract-test-contracts
  • Contract exploration: hatch run contract-test-exploration
  • Scenario tests: hatch run contract-test-scenarios
  • Full test suite: hatch run contract-test-full

Test Quality

  • CLI commands tested with typer test client
  • Edge cases covered with Hypothesis property tests
  • Error handling tested with invalid inputs
  • Rich console output verified manually or with snapshots

How Has This Been Tested?

Contract-First Approach: Focused CLI and registry tests were run locally for changed surfaces; full contract/full-suite gates are deferred to CI as agreed.

Manual Testing

  • Tested CLI commands manually
  • Verified rich console output
  • Tested with different input scenarios
  • Checked error messages for clarity

Automated Testing

  • Contract validation passes
  • Property-based tests cover edge cases
  • Scenario tests cover user workflows
  • All existing tests still pass

Test Environment

  • Python version: 3.11
  • OS: Linux (Ubuntu kernel 6.8)

Checklist

  • My code follows the style guidelines (PEP 8, ruff format, isort)
  • I have performed a self-review of my code
  • I have added/updated contracts (@icontract, @beartype)
  • I have added/updated docstrings (Google style)
  • I have made corresponding changes to documentation
  • My changes generate no new warnings (basedpyright, ruff, pylint)
  • All tests pass locally
  • I have added tests that prove my fix/feature works
  • Any dependent changes have been merged

Quality Gates Status

  • Type checking ✅ (hatch run type-check)
  • Linting ✅ (hatch run lint)
  • Contract validation ✅ (hatch run contract-test-contracts)
  • Contract exploration ✅ (hatch run contract-test-exploration)
  • Scenario tests ✅ (hatch run contract-test-scenarios)

Screenshots/Recordings (if applicable)

N/A (CLI output validated via manual runs and automated typer tests).

Made with Cursor

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

architecture Architecture and design changes enhancement New feature or request marketplace Module marketplace features module-system Module system and registry

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Central Module Registry MVP for Official Modules

1 participant