Central module registry for SpecFact CLI marketplace.
This repository hosts official nold-ai bundles only.
- Official bundles are maintained under
packages/. - Third-party bundles are published from third-party repositories and are not hosted here.
- Bundle and module documentation changes are made in this repository under
docs/. - Cross-site linking rules and canonical paths for core→modules handoffs:
docs/reference/documentation-url-contract.md(published:https://modules.specfact.io/reference/documentation-url-contract/). - GitHub Pages documentation target:
https://nold-ai.github.io/specfact-cli-modules/.
Bundle packages import from specfact_cli (models, runtime, validators, etc.). Use Hatch so that this repo and your local specfact-cli checkout share one dev environment.
- Create env:
hatch env create- Install
specfact-clieditable dependency:
# prefers $SPECFACT_CLI_REPO, then a matching specfact-cli-worktrees branch, then ../specfact-cli
hatch run dev-deps- In Cursor/VS Code choose interpreter:
specfact-cli-modules/.venv/bin/python
Run this sequence from repo root:
hatch run format
hatch run type-check
hatch run lint
hatch run yaml-lint
hatch run check-bundle-imports
hatch run verify-modules-signature --require-signature --payload-from-filesystem --enforce-version-bump
hatch run contract-test
hatch run smart-test
hatch run test
hatch run specfact code review run --json --out .specfact/code-review.jsonTo mirror CI locally with git hooks, enable pre-commit:
pre-commit install
pre-commit run --all-filesCode review gate (matches specfact-cli core): runs in Block 2 after module signatures and Block 1 quality hooks (pre-commit-quality-checks.sh block2, which calls scripts/pre_commit_code_review.py). Staged paths under packages/, registry/, scripts/, tools/, tests/, and openspec/changes/ (excluding TDD_EVIDENCE.md) are forwarded to the helper, which runs specfact code review run --json --out .specfact/code-review.json with that path list. The helper prints only a short findings summary and copy-paste prompts on stderr (not the nested CLI’s full tool output). Block 1 is split into separate pre-commit hooks so output appears between stages instead of buffering until the end. Requires a local specfact-cli install (hatch run dev-deps resolves sibling ../specfact-cli or SPECFACT_CLI_REPO).
Scope notes:
- Pre-commit runs
hatch run lintin the Block 1 — lint hook when any staged path matches*.py/*.pyi, matching the CI quality job (Ruff alone does not run pylint). ruffruns on the full repo.basedpyrightandpylintare scoped tosrc/,tests/, andtools/for modules-repo infrastructure parity.- Bundle-package behavioral validation is covered through
test,contract-test, and migration-specific suite additions undertests/. test,smart-test,contract-test,lint, andtype-checkauto-install the matching localspecfact-clieditable checkout when the active worktree venv is missing it.