Apply semver in packages/<bundle>/module-package.yaml: patch for bug fixes, minor for additive command or API work, major for breaking changes.
When a bundle requires a newer specfact-cli, update core_compatibility in the bundle manifest and the registry metadata when carried there.
Treat version bumps and registry updates as one release surface, not independent edits.
Registry and publish flow
Branch from origin/dev into a worktree branch whose name uses one of: feature/*, bugfix/*, hotfix/*, or chore/* (expected sibling worktrees live under ../specfact-cli-modules-worktrees/ per session-bootstrap rules).
Bump the bundle version in packages/<bundle>/module-package.yaml.
Run python scripts/publish_module.py --bundle <bundle> as the publish pre-check.
Publish with the project tooling wrapper when release work is actually intended.
Update registry/index.json with latest_version, artifact URL, and checksum.
Commits
Use Conventional Commits.
If signed commits fail in a non-interactive shell, stage files and hand the exact git commit -S -m "<message>" command to the user instead of bypassing signing.
Documentation
Keep docs current with every user-facing bundle, registry, or workflow change.
Preserve Jekyll frontmatter on docs edits.
Update navigation when adding or moving pages.
Keep cross-links between docs.specfact.io and modules.specfact.io honest.