specfact-cli 0.41.0__tar.gz → 0.42.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/PKG-INFO +33 -18
  2. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/README.md +30 -17
  3. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/pyproject.toml +4 -1
  4. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/__init__.py +1 -1
  5. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/__init__.py +1 -1
  6. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/.gitignore +0 -0
  7. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/LICENSE +0 -0
  8. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/keys/README.md +0 -0
  9. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/keys/module-signing-public.pem +0 -0
  10. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/node-async.yaml +0 -0
  11. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/python-async.yaml +0 -0
  12. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/mappings/speckit-default.yaml +0 -0
  13. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/shared/cli-enforcement.md +0 -0
  14. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.01-import.md +0 -0
  15. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.02-plan.md +0 -0
  16. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.03-review.md +0 -0
  17. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.04-sdd.md +0 -0
  18. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.05-enforce.md +0 -0
  19. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.06-sync.md +0 -0
  20. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.07-contracts.md +0 -0
  21. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.compare.md +0 -0
  22. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/prompts/specfact.validate.md +0 -0
  23. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/deviation.schema.json +0 -0
  24. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/plan.schema.json +0 -0
  25. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/schemas/protocol.schema.json +0 -0
  26. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/github-action.yml.j2 +0 -0
  27. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/architect.md.j2 +0 -0
  28. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/developer.md.j2 +0 -0
  29. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/persona/product-owner.md.j2 +0 -0
  30. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/plan.bundle.yaml.j2 +0 -0
  31. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/kanban.yaml +0 -0
  32. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/mixed.yaml +0 -0
  33. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/safe.yaml +0 -0
  34. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/policies/scrum.yaml +0 -0
  35. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/pr-template.md.j2 +0 -0
  36. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/protocol.yaml.j2 +0 -0
  37. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/resources/templates/telemetry.yaml.example +0 -0
  38. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/__main__.py +0 -0
  39. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/__init__.py +0 -0
  40. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/ado.py +0 -0
  41. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/backlog_base.py +0 -0
  42. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/base.py +0 -0
  43. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/github.py +0 -0
  44. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/openspec.py +0 -0
  45. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/openspec_parser.py +0 -0
  46. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/registry.py +0 -0
  47. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/adapters/speckit.py +0 -0
  48. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/__init__.py +0 -0
  49. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/analyze_agent.py +0 -0
  50. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/base.py +0 -0
  51. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/plan_agent.py +0 -0
  52. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/registry.py +0 -0
  53. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/agents/sync_agent.py +0 -0
  54. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/__init__.py +0 -0
  55. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
  56. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
  57. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
  58. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
  59. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
  60. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
  61. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
  62. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
  63. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
  64. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/__init__.py +0 -0
  65. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
  66. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/adapters/base.py +0 -0
  67. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/converter.py +0 -0
  68. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/filters.py +0 -0
  69. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
  70. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
  71. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/base.py +0 -0
  72. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
  73. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
  74. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/cli.py +0 -0
  75. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/__init__.py +0 -0
  76. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/_bundle_shim.py +0 -0
  77. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/analyze.py +0 -0
  78. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/contract_cmd.py +0 -0
  79. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/drift.py +0 -0
  80. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/enforce.py +0 -0
  81. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/generate.py +0 -0
  82. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/import_cmd.py +0 -0
  83. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/init.py +0 -0
  84. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/migrate.py +0 -0
  85. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/plan.py +0 -0
  86. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/project_cmd.py +0 -0
  87. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/repro.py +0 -0
  88. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/sdd.py +0 -0
  89. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/spec.py +0 -0
  90. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/sync.py +0 -0
  91. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/update.py +0 -0
  92. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/commands/validate.py +0 -0
  93. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/__init__.py +0 -0
  94. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/bundle_factory.py +0 -0
  95. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/logger_setup.py +0 -0
  96. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/logging_utils.py +0 -0
  97. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/text_utils.py +0 -0
  98. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/common/utils.py +0 -0
  99. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/comparators/__init__.py +0 -0
  100. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/comparators/plan_comparator.py +0 -0
  101. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/__init__.py +0 -0
  102. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/crosshair_props.py +0 -0
  103. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/contracts/module_interface.py +0 -0
  104. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
  105. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
  106. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/__init__.py +0 -0
  107. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/contract_generator.py +0 -0
  108. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/openapi_extractor.py +0 -0
  109. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/persona_exporter.py +0 -0
  110. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/plan_generator.py +0 -0
  111. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/protocol_generator.py +0 -0
  112. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/report_generator.py +0 -0
  113. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/task_generator.py +0 -0
  114. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/test_to_openapi.py +0 -0
  115. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/generators/workflow_generator.py +0 -0
  116. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/__init__.py +0 -0
  117. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/codebase_group.py +0 -0
  118. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/govern_group.py +0 -0
  119. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/member_group.py +0 -0
  120. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/project_group.py +0 -0
  121. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/groups/spec_group.py +0 -0
  122. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/__init__.py +0 -0
  123. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/speckit_converter.py +0 -0
  124. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/importers/speckit_scanner.py +0 -0
  125. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/integrations/__init__.py +0 -0
  126. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/integrations/specmatic.py +0 -0
  127. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/merge/__init__.py +0 -0
  128. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/merge/resolver.py +0 -0
  129. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/migrations/__init__.py +0 -0
  130. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/migrations/plan_migrator.py +0 -0
  131. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/__init__.py +0 -0
  132. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/backlog_item.py +0 -0
  133. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/bridge.py +0 -0
  134. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/capabilities.py +0 -0
  135. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/change.py +0 -0
  136. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/contract.py +0 -0
  137. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/deviation.py +0 -0
  138. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/dor_config.py +0 -0
  139. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/enforcement.py +0 -0
  140. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/module_package.py +0 -0
  141. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/persona_template.py +0 -0
  142. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/plan.py +0 -0
  143. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/project.py +0 -0
  144. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/protocol.py +0 -0
  145. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/quality.py +0 -0
  146. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/sdd.py +0 -0
  147. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/source_tracking.py +0 -0
  148. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/task.py +0 -0
  149. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/models/validation.py +0 -0
  150. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/__init__.py +0 -0
  151. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/detector.py +0 -0
  152. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modes/router.py +0 -0
  153. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/__init__.py +0 -0
  154. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/_bundle_import.py +0 -0
  155. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/module-package.yaml +0 -0
  156. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/__init__.py +0 -0
  157. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/app.py +0 -0
  158. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/commands.py +0 -0
  159. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/init/src/first_run_selection.py +0 -0
  160. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_io_shim.py +0 -0
  161. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/module-package.yaml +0 -0
  162. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/__init__.py +0 -0
  163. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/app.py +0 -0
  164. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/module_registry/src/commands.py +0 -0
  165. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/module-package.yaml +0 -0
  166. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/__init__.py +0 -0
  167. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/app.py +0 -0
  168. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/modules/upgrade/src/commands.py +0 -0
  169. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/parsers/__init__.py +0 -0
  170. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/parsers/persona_importer.py +0 -0
  171. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/__init__.py +0 -0
  172. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/alias_manager.py +0 -0
  173. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/bootstrap.py +0 -0
  174. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/bridge_registry.py +0 -0
  175. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/crypto_validator.py +0 -0
  176. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/custom_registries.py +0 -0
  177. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/dependency_resolver.py +0 -0
  178. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/extension_registry.py +0 -0
  179. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/help_cache.py +0 -0
  180. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/marketplace_client.py +0 -0
  181. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/metadata.py +0 -0
  182. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_discovery.py +0 -0
  183. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_grouping.py +0 -0
  184. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_installer.py +0 -0
  185. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_lifecycle.py +0 -0
  186. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_packages.py +0 -0
  187. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_security.py +0 -0
  188. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/module_state.py +0 -0
  189. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/registry/registry.py +0 -0
  190. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/async.yml +0 -0
  191. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
  192. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
  193. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/runtime.py +0 -0
  194. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/__init__.py +0 -0
  195. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_probe.py +0 -0
  196. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_sync.py +0 -0
  197. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/bridge_watch.py +0 -0
  198. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/change_detector.py +0 -0
  199. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/code_to_spec.py +0 -0
  200. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/drift_detector.py +0 -0
  201. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/repository_sync.py +0 -0
  202. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/spec_to_code.py +0 -0
  203. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/spec_to_tests.py +0 -0
  204. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/watcher.py +0 -0
  205. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
  206. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/telemetry.py +0 -0
  207. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/__init__.py +0 -0
  208. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
  209. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
  210. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
  211. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
  212. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
  213. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
  214. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
  215. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/registry.py +0 -0
  216. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/templates/specification_templates.py +0 -0
  217. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/__init__.py +0 -0
  218. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
  219. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/auth_tokens.py +0 -0
  220. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/bundle_converters.py +0 -0
  221. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/bundle_loader.py +0 -0
  222. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/code_change_detector.py +0 -0
  223. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/console.py +0 -0
  224. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/content_sanitizer.py +0 -0
  225. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/context_detection.py +0 -0
  226. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/enrichment_context.py +0 -0
  227. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/enrichment_parser.py +0 -0
  228. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/env_manager.py +0 -0
  229. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/feature_keys.py +0 -0
  230. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/git.py +0 -0
  231. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/github_annotations.py +0 -0
  232. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/ide_setup.py +0 -0
  233. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/incremental_check.py +0 -0
  234. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/metadata.py +0 -0
  235. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/optional_deps.py +0 -0
  236. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/performance.py +0 -0
  237. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/persona_ownership.py +0 -0
  238. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/progress.py +0 -0
  239. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
  240. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/prompts.py +0 -0
  241. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/sdd_discovery.py +0 -0
  242. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/source_scanner.py +0 -0
  243. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/startup_checks.py +0 -0
  244. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/structure.py +0 -0
  245. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/structured_io.py +0 -0
  246. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/suggestions.py +0 -0
  247. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/terminal.py +0 -0
  248. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/utils/yaml_utils.py +0 -0
  249. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validation/__init__.py +0 -0
  250. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validation/command_audit.py +0 -0
  251. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/__init__.py +0 -0
  252. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/agile_validation.py +0 -0
  253. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
  254. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/cli_first_validator.py +0 -0
  255. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/contract_validator.py +0 -0
  256. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/fsm.py +0 -0
  257. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/repro_checker.py +0 -0
  258. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/schema.py +0 -0
  259. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
  260. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
  261. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
  262. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/crosshair_summary.py +0 -0
  263. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
  264. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
  265. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
  266. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
  267. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/django.py +0 -0
  268. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
  269. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +0 -0
  270. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/frameworks/flask.py +0 -0
  271. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
  272. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/models.py +0 -0
  273. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
  274. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
  275. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
  276. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/versioning/__init__.py +0 -0
  277. {specfact_cli-0.41.0 → specfact_cli-0.42.2}/src/specfact_cli/versioning/analyzer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specfact-cli
3
- Version: 0.41.0
3
+ Version: 0.42.2
4
4
  Summary: The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases.
5
5
  Project-URL: Homepage, https://github.com/nold-ai/specfact-cli
6
6
  Project-URL: Repository, https://github.com/nold-ai/specfact-cli.git
@@ -240,6 +240,7 @@ Requires-Dist: pydantic>=2.12.3
240
240
  Requires-Dist: python-dotenv>=1.2.1
241
241
  Requires-Dist: pyyaml>=6.0.3
242
242
  Requires-Dist: questionary>=2.0.1
243
+ Requires-Dist: radon>=6.0.1
243
244
  Requires-Dist: requests>=2.32.3
244
245
  Requires-Dist: rich<13.6.0,>=13.5.2
245
246
  Requires-Dist: ruamel-yaml>=0.18.16
@@ -264,6 +265,7 @@ Requires-Dist: pytest-cov>=7.0.0; extra == 'dev'
264
265
  Requires-Dist: pytest-mock>=3.15.1; extra == 'dev'
265
266
  Requires-Dist: pytest-xdist>=3.8.0; extra == 'dev'
266
267
  Requires-Dist: pytest>=8.4.2; extra == 'dev'
268
+ Requires-Dist: radon>=6.0.1; extra == 'dev'
267
269
  Requires-Dist: ruff>=0.14.2; extra == 'dev'
268
270
  Requires-Dist: semgrep>=1.144.0; extra == 'dev'
269
271
  Requires-Dist: tomlkit>=0.13.3; extra == 'dev'
@@ -298,6 +300,19 @@ Description-Content-Type: text/markdown
298
300
 
299
301
  ---
300
302
 
303
+ ## Documentation Topology
304
+
305
+ `docs.specfact.io` is the canonical docs entry point for SpecFact.
306
+
307
+ - Core CLI/runtime/platform documentation remains owned by `specfact-cli`.
308
+ - Module-specific deep docs are canonically owned by `specfact-cli-modules`.
309
+ - The live modules docs site is currently published at `https://modules.specfact.io/`.
310
+
311
+ Use this repository's docs for core runtime, lifecycle, registry, trust, and architecture guidance. Use the modules docs site for bundle-specific workflow and module-authoring deep dives.
312
+ In short, module-specific deep docs are canonically owned by `specfact-cli-modules`.
313
+
314
+ ---
315
+
301
316
  ## Start Here (60 seconds)
302
317
 
303
318
  ### Install
@@ -346,9 +361,9 @@ specfact code validate sidecar run my-project /path/to/repo
346
361
 
347
362
  As of `0.40.0`, flat root commands are removed. Use grouped commands:
348
363
 
349
- - `specfact validate ...` -> `specfact code validate ...`
350
- - `specfact plan ...` -> `specfact project plan ...`
351
- - `specfact policy ...` -> `specfact backlog policy ...`
364
+ - `specfact validate ...` `specfact code validate ...`
365
+ - `specfact plan ...` removed; use `specfact project devops-flow` or `specfact project snapshot`
366
+ - `specfact policy ...` removed; use `specfact backlog verify-readiness`
352
367
 
353
368
  ### Backlog Bridge (60 seconds)
354
369
 
@@ -366,7 +381,7 @@ specfact backlog daily ado --ado-org <org> --ado-project "<project>" --state any
366
381
  specfact backlog refine ado --ado-org <org> --ado-project "<project>" --id <work-item-id> --preview
367
382
 
368
383
  # 3) Keep backlog + spec intent aligned (avoid silent drift)
369
- specfact backlog policy validate --group-by-item
384
+ specfact backlog verify-readiness --bundle <bundle-name>
370
385
  ```
371
386
 
372
387
  For GitHub, replace adapter/org/project with:
@@ -434,18 +449,18 @@ Most tools help **either** coders **or** agile teams. SpecFact does both:
434
449
  Recommended command entrypoints:
435
450
  - `specfact backlog ceremony standup ...`
436
451
  - `specfact backlog ceremony refinement ...`
437
- - `specfact backlog policy validate ...`
438
- - `specfact backlog policy suggest ...`
452
+ - `specfact backlog verify-readiness --bundle <bundle-name>`
453
+ - `specfact backlog analyze-deps --bundle <bundle-name>`
439
454
 
440
- What the Policy Engine does in practice:
455
+ What the backlog readiness and ceremony commands do in practice:
441
456
  - Turns team agreements (DoR, DoD, flow checks) into executable checks against your real backlog data.
442
457
  - Shows exactly what is missing per item (for example missing acceptance criteria or definition of done).
443
- - Generates patch-ready suggestions so teams can fix policy gaps quickly without guessing.
458
+ - Run structured ceremony workflows (standup, refinement, retrospective) directly from the CLI.
444
459
 
445
460
  Start with:
446
- - `specfact backlog policy init --template scrum`
447
- - `specfact backlog policy validate --group-by-item`
448
- - `specfact backlog policy suggest --group-by-item --limit 5`
461
+ - `specfact backlog ceremony standup --help`
462
+ - `specfact backlog verify-readiness --bundle <bundle-name>`
463
+ - `specfact backlog refine --help`
449
464
 
450
465
  **Try it now**
451
466
 
@@ -484,9 +499,10 @@ For technical architecture details (module lifecycle, registry internals, adapte
484
499
 
485
500
  SpecFact ships official bundle packages via the dedicated marketplace registry repository
486
501
  `nold-ai/specfact-cli-modules`.
487
- Bundle-specific docs are still temporarily hosted in this docs set while the long-term
488
- bundle docs home is prepared in the modules repository docs site:
489
- `https://nold-ai.github.io/specfact-cli-modules/`.
502
+
503
+ This core docs set remains the canonical docs entry point and release-line overview for marketplace concepts.
504
+ Bundle-specific deep docs are canonically owned by `specfact-cli-modules` and are currently published at:
505
+ `https://modules.specfact.io/`.
490
506
 
491
507
  Install examples:
492
508
 
@@ -511,9 +527,8 @@ auto-install dependencies:
511
527
  - `nold-ai/specfact-spec` pulls `nold-ai/specfact-project`
512
528
  - `nold-ai/specfact-govern` pulls `nold-ai/specfact-project`
513
529
 
514
- Use this repo's docs for the current CLI/runtime release branch. Module-specific guides
515
- will move to `specfact-cli-modules` so future bundle-only changes do not require ongoing
516
- docs maintenance in long-lived `specfact-cli` release branches.
530
+ Use this repo's docs for the current CLI/runtime release branch and for marketplace lifecycle overview content.
531
+ Use the modules docs site for bundle-specific deep guidance so bundle-only changes can ship without rebuilding the core docs release branch.
517
532
 
518
533
  ---
519
534
 
@@ -19,6 +19,19 @@
19
19
 
20
20
  ---
21
21
 
22
+ ## Documentation Topology
23
+
24
+ `docs.specfact.io` is the canonical docs entry point for SpecFact.
25
+
26
+ - Core CLI/runtime/platform documentation remains owned by `specfact-cli`.
27
+ - Module-specific deep docs are canonically owned by `specfact-cli-modules`.
28
+ - The live modules docs site is currently published at `https://modules.specfact.io/`.
29
+
30
+ Use this repository's docs for core runtime, lifecycle, registry, trust, and architecture guidance. Use the modules docs site for bundle-specific workflow and module-authoring deep dives.
31
+ In short, module-specific deep docs are canonically owned by `specfact-cli-modules`.
32
+
33
+ ---
34
+
22
35
  ## Start Here (60 seconds)
23
36
 
24
37
  ### Install
@@ -67,9 +80,9 @@ specfact code validate sidecar run my-project /path/to/repo
67
80
 
68
81
  As of `0.40.0`, flat root commands are removed. Use grouped commands:
69
82
 
70
- - `specfact validate ...` -> `specfact code validate ...`
71
- - `specfact plan ...` -> `specfact project plan ...`
72
- - `specfact policy ...` -> `specfact backlog policy ...`
83
+ - `specfact validate ...` `specfact code validate ...`
84
+ - `specfact plan ...` removed; use `specfact project devops-flow` or `specfact project snapshot`
85
+ - `specfact policy ...` removed; use `specfact backlog verify-readiness`
73
86
 
74
87
  ### Backlog Bridge (60 seconds)
75
88
 
@@ -87,7 +100,7 @@ specfact backlog daily ado --ado-org <org> --ado-project "<project>" --state any
87
100
  specfact backlog refine ado --ado-org <org> --ado-project "<project>" --id <work-item-id> --preview
88
101
 
89
102
  # 3) Keep backlog + spec intent aligned (avoid silent drift)
90
- specfact backlog policy validate --group-by-item
103
+ specfact backlog verify-readiness --bundle <bundle-name>
91
104
  ```
92
105
 
93
106
  For GitHub, replace adapter/org/project with:
@@ -155,18 +168,18 @@ Most tools help **either** coders **or** agile teams. SpecFact does both:
155
168
  Recommended command entrypoints:
156
169
  - `specfact backlog ceremony standup ...`
157
170
  - `specfact backlog ceremony refinement ...`
158
- - `specfact backlog policy validate ...`
159
- - `specfact backlog policy suggest ...`
171
+ - `specfact backlog verify-readiness --bundle <bundle-name>`
172
+ - `specfact backlog analyze-deps --bundle <bundle-name>`
160
173
 
161
- What the Policy Engine does in practice:
174
+ What the backlog readiness and ceremony commands do in practice:
162
175
  - Turns team agreements (DoR, DoD, flow checks) into executable checks against your real backlog data.
163
176
  - Shows exactly what is missing per item (for example missing acceptance criteria or definition of done).
164
- - Generates patch-ready suggestions so teams can fix policy gaps quickly without guessing.
177
+ - Run structured ceremony workflows (standup, refinement, retrospective) directly from the CLI.
165
178
 
166
179
  Start with:
167
- - `specfact backlog policy init --template scrum`
168
- - `specfact backlog policy validate --group-by-item`
169
- - `specfact backlog policy suggest --group-by-item --limit 5`
180
+ - `specfact backlog ceremony standup --help`
181
+ - `specfact backlog verify-readiness --bundle <bundle-name>`
182
+ - `specfact backlog refine --help`
170
183
 
171
184
  **Try it now**
172
185
 
@@ -205,9 +218,10 @@ For technical architecture details (module lifecycle, registry internals, adapte
205
218
 
206
219
  SpecFact ships official bundle packages via the dedicated marketplace registry repository
207
220
  `nold-ai/specfact-cli-modules`.
208
- Bundle-specific docs are still temporarily hosted in this docs set while the long-term
209
- bundle docs home is prepared in the modules repository docs site:
210
- `https://nold-ai.github.io/specfact-cli-modules/`.
221
+
222
+ This core docs set remains the canonical docs entry point and release-line overview for marketplace concepts.
223
+ Bundle-specific deep docs are canonically owned by `specfact-cli-modules` and are currently published at:
224
+ `https://modules.specfact.io/`.
211
225
 
212
226
  Install examples:
213
227
 
@@ -232,9 +246,8 @@ auto-install dependencies:
232
246
  - `nold-ai/specfact-spec` pulls `nold-ai/specfact-project`
233
247
  - `nold-ai/specfact-govern` pulls `nold-ai/specfact-project`
234
248
 
235
- Use this repo's docs for the current CLI/runtime release branch. Module-specific guides
236
- will move to `specfact-cli-modules` so future bundle-only changes do not require ongoing
237
- docs maintenance in long-lived `specfact-cli` release branches.
249
+ Use this repo's docs for the current CLI/runtime release branch and for marketplace lifecycle overview content.
250
+ Use the modules docs site for bundle-specific deep guidance so bundle-only changes can ship without rebuilding the core docs release branch.
238
251
 
239
252
  ---
240
253
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "specfact-cli"
7
- version = "0.41.0"
7
+ version = "0.42.2"
8
8
  description = "The swiss knife CLI for agile DevOps teams. Keep backlog, specs, tests, and code in sync with validation and contract enforcement for new projects and long-lived codebases."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -88,6 +88,7 @@ dependencies = [
88
88
 
89
89
  # Code analysis
90
90
  "ruff>=0.14.2",
91
+ "radon>=6.0.1",
91
92
 
92
93
  # File system watching
93
94
  "watchdog>=6.0.0",
@@ -108,6 +109,7 @@ dev = [
108
109
  "isort>=7.0.0",
109
110
  "pylint>=4.0.2",
110
111
  "ruff>=0.14.2",
112
+ "radon>=6.0.1",
111
113
  "tomlkit>=0.13.3", # Style-preserving TOML library (recommended successor to pytoml)
112
114
  "types-PyYAML>=6.0.12.20250516",
113
115
  "pip-tools>=7.5.1",
@@ -175,6 +177,7 @@ dependencies = [
175
177
  "basedpyright>=1.32.1",
176
178
  "pylint>=4.0.2",
177
179
  "ruff>=0.14.2",
180
+ "radon>=6.0.1",
178
181
  "yamllint>=1.37.1",
179
182
  "semgrep>=1.144.0", # Latest version compatible with rich~=13.5.2
180
183
  # Contract-First Development Dependencies
@@ -3,4 +3,4 @@ SpecFact CLI - Spec→Contract→Sentinel tool for contract-driven development.
3
3
  """
4
4
 
5
5
  # Package version: keep in sync with pyproject.toml, setup.py, src/specfact_cli/__init__.py
6
- __version__ = "0.41.0"
6
+ __version__ = "0.42.1"
@@ -42,6 +42,6 @@ def _bootstrap_bundle_paths() -> None:
42
42
 
43
43
  _bootstrap_bundle_paths()
44
44
 
45
- __version__ = "0.41.0"
45
+ __version__ = "0.42.2"
46
46
 
47
47
  __all__ = ["__version__"]
File without changes
File without changes