specfact-cli 0.26.16__tar.gz → 0.27.0__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 (295) hide show
  1. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/.gitignore +14 -7
  2. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/PKG-INFO +94 -237
  3. specfact_cli-0.27.0/README.md +213 -0
  4. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/pyproject.toml +30 -4
  5. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/__init__.py +1 -1
  6. specfact_cli-0.27.0/src/specfact_cli/__init__.py +13 -0
  7. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/ambiguity_scanner.py +5 -9
  8. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/cli.py +177 -72
  9. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/backlog_commands.py +126 -53
  10. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/init.py +30 -0
  11. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/plan.py +12 -8
  12. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/sync.py +9 -0
  13. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/report_generator.py +2 -2
  14. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/merge/resolver.py +8 -8
  15. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/bridge.py +2 -2
  16. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/change.py +2 -2
  17. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/contract.py +2 -2
  18. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/deviation.py +3 -3
  19. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/enforcement.py +3 -3
  20. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/persona_template.py +2 -2
  21. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/project.py +2 -2
  22. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/task.py +3 -3
  23. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/modes/detector.py +2 -2
  24. specfact_cli-0.27.0/src/specfact_cli/modules/__init__.py +1 -0
  25. specfact_cli-0.27.0/src/specfact_cli/modules/analyze/module-package.yaml +10 -0
  26. specfact_cli-0.27.0/src/specfact_cli/modules/analyze/src/app.py +6 -0
  27. specfact_cli-0.27.0/src/specfact_cli/modules/auth/module-package.yaml +10 -0
  28. specfact_cli-0.27.0/src/specfact_cli/modules/auth/src/app.py +6 -0
  29. specfact_cli-0.27.0/src/specfact_cli/modules/backlog/module-package.yaml +10 -0
  30. specfact_cli-0.27.0/src/specfact_cli/modules/backlog/src/app.py +6 -0
  31. specfact_cli-0.27.0/src/specfact_cli/modules/contract/module-package.yaml +10 -0
  32. specfact_cli-0.27.0/src/specfact_cli/modules/contract/src/app.py +6 -0
  33. specfact_cli-0.27.0/src/specfact_cli/modules/drift/module-package.yaml +10 -0
  34. specfact_cli-0.27.0/src/specfact_cli/modules/drift/src/app.py +6 -0
  35. specfact_cli-0.27.0/src/specfact_cli/modules/enforce/module-package.yaml +10 -0
  36. specfact_cli-0.27.0/src/specfact_cli/modules/enforce/src/app.py +6 -0
  37. specfact_cli-0.27.0/src/specfact_cli/modules/generate/module-package.yaml +10 -0
  38. specfact_cli-0.27.0/src/specfact_cli/modules/generate/src/app.py +6 -0
  39. specfact_cli-0.27.0/src/specfact_cli/modules/import_cmd/module-package.yaml +10 -0
  40. specfact_cli-0.27.0/src/specfact_cli/modules/import_cmd/src/app.py +6 -0
  41. specfact_cli-0.27.0/src/specfact_cli/modules/init/module-package.yaml +10 -0
  42. specfact_cli-0.27.0/src/specfact_cli/modules/init/src/app.py +6 -0
  43. specfact_cli-0.27.0/src/specfact_cli/modules/migrate/module-package.yaml +10 -0
  44. specfact_cli-0.27.0/src/specfact_cli/modules/migrate/src/app.py +6 -0
  45. specfact_cli-0.27.0/src/specfact_cli/modules/plan/module-package.yaml +10 -0
  46. specfact_cli-0.27.0/src/specfact_cli/modules/plan/src/app.py +6 -0
  47. specfact_cli-0.27.0/src/specfact_cli/modules/project/module-package.yaml +10 -0
  48. specfact_cli-0.27.0/src/specfact_cli/modules/project/src/app.py +6 -0
  49. specfact_cli-0.27.0/src/specfact_cli/modules/repro/module-package.yaml +10 -0
  50. specfact_cli-0.27.0/src/specfact_cli/modules/repro/src/app.py +6 -0
  51. specfact_cli-0.27.0/src/specfact_cli/modules/sdd/module-package.yaml +10 -0
  52. specfact_cli-0.27.0/src/specfact_cli/modules/sdd/src/app.py +6 -0
  53. specfact_cli-0.27.0/src/specfact_cli/modules/spec/module-package.yaml +10 -0
  54. specfact_cli-0.27.0/src/specfact_cli/modules/spec/src/app.py +6 -0
  55. specfact_cli-0.27.0/src/specfact_cli/modules/sync/module-package.yaml +10 -0
  56. specfact_cli-0.27.0/src/specfact_cli/modules/sync/src/app.py +6 -0
  57. specfact_cli-0.27.0/src/specfact_cli/modules/upgrade/module-package.yaml +10 -0
  58. specfact_cli-0.27.0/src/specfact_cli/modules/upgrade/src/app.py +6 -0
  59. specfact_cli-0.27.0/src/specfact_cli/modules/validate/module-package.yaml +10 -0
  60. specfact_cli-0.27.0/src/specfact_cli/modules/validate/src/app.py +6 -0
  61. specfact_cli-0.27.0/src/specfact_cli/registry/__init__.py +12 -0
  62. specfact_cli-0.27.0/src/specfact_cli/registry/bootstrap.py +16 -0
  63. specfact_cli-0.27.0/src/specfact_cli/registry/help_cache.py +141 -0
  64. specfact_cli-0.27.0/src/specfact_cli/registry/metadata.py +19 -0
  65. specfact_cli-0.27.0/src/specfact_cli/registry/module_packages.py +232 -0
  66. specfact_cli-0.27.0/src/specfact_cli/registry/module_state.py +60 -0
  67. specfact_cli-0.27.0/src/specfact_cli/registry/registry.py +101 -0
  68. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/runtime.py +2 -2
  69. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/env_manager.py +2 -2
  70. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/ide_setup.py +1 -0
  71. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/structured_io.py +2 -2
  72. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/crosshair_summary.py +2 -2
  73. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/django.py +3 -6
  74. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/fastapi.py +3 -6
  75. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/flask.py +3 -6
  76. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/models.py +2 -2
  77. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/versioning/analyzer.py +2 -2
  78. specfact_cli-0.26.16/README.md +0 -356
  79. specfact_cli-0.26.16/src/specfact_cli/__init__.py +0 -14
  80. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/LICENSE.md +0 -0
  81. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/mappings/node-async.yaml +0 -0
  82. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/mappings/python-async.yaml +0 -0
  83. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/mappings/speckit-default.yaml +0 -0
  84. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/shared/cli-enforcement.md +0 -0
  85. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.01-import.md +0 -0
  86. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.02-plan.md +0 -0
  87. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.03-review.md +0 -0
  88. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.04-sdd.md +0 -0
  89. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.05-enforce.md +0 -0
  90. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.06-sync.md +0 -0
  91. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.07-contracts.md +0 -0
  92. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.backlog-daily.md +0 -0
  93. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.backlog-refine.md +0 -0
  94. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.compare.md +0 -0
  95. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.sync-backlog.md +0 -0
  96. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/prompts/specfact.validate.md +0 -0
  97. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/schemas/deviation.schema.json +0 -0
  98. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/schemas/plan.schema.json +0 -0
  99. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/schemas/protocol.schema.json +0 -0
  100. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/defaults/defect_v1.yaml +0 -0
  101. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/defaults/enabler_v1.yaml +0 -0
  102. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/defaults/spike_v1.yaml +0 -0
  103. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/defaults/user_story_v1.yaml +0 -0
  104. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/field_mappings/ado_agile.yaml +0 -0
  105. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/field_mappings/ado_default.yaml +0 -0
  106. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/field_mappings/ado_kanban.yaml +0 -0
  107. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/field_mappings/ado_safe.yaml +0 -0
  108. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/field_mappings/ado_scrum.yaml +0 -0
  109. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/frameworks/safe/safe_feature_v1.yaml +0 -0
  110. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/frameworks/scrum/user_story_v1.yaml +0 -0
  111. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/personas/developer/developer_task_v1.yaml +0 -0
  112. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/personas/product-owner/user_story_v1.yaml +0 -0
  113. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/backlog/providers/ado/work_item_v1.yaml +0 -0
  114. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/github-action.yml.j2 +0 -0
  115. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/persona/architect.md.j2 +0 -0
  116. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/persona/developer.md.j2 +0 -0
  117. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/persona/product-owner.md.j2 +0 -0
  118. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/plan.bundle.yaml.j2 +0 -0
  119. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/pr-template.md.j2 +0 -0
  120. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/protocol.yaml.j2 +0 -0
  121. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/resources/templates/telemetry.yaml.example +0 -0
  122. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/__main__.py +0 -0
  123. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/__init__.py +0 -0
  124. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/ado.py +0 -0
  125. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/backlog_base.py +0 -0
  126. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/base.py +0 -0
  127. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/github.py +0 -0
  128. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/openspec.py +0 -0
  129. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/openspec_parser.py +0 -0
  130. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/registry.py +0 -0
  131. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/adapters/speckit.py +0 -0
  132. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/__init__.py +0 -0
  133. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/analyze_agent.py +0 -0
  134. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/base.py +0 -0
  135. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/plan_agent.py +0 -0
  136. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/registry.py +0 -0
  137. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/agents/sync_agent.py +0 -0
  138. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/__init__.py +0 -0
  139. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/code_analyzer.py +0 -0
  140. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
  141. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
  142. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
  143. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/graph_analyzer.py +0 -0
  144. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/relationship_mapper.py +0 -0
  145. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
  146. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
  147. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/__init__.py +0 -0
  148. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/adapters/__init__.py +0 -0
  149. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/adapters/base.py +0 -0
  150. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/adapters/local_yaml_adapter.py +0 -0
  151. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/ai_refiner.py +0 -0
  152. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/converter.py +0 -0
  153. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/filters.py +0 -0
  154. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/format_detector.py +0 -0
  155. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/formats/__init__.py +0 -0
  156. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/formats/base.py +0 -0
  157. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/formats/markdown_format.py +0 -0
  158. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/formats/structured_format.py +0 -0
  159. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/mappers/__init__.py +0 -0
  160. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/mappers/ado_mapper.py +0 -0
  161. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/mappers/base.py +0 -0
  162. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/mappers/github_mapper.py +0 -0
  163. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/mappers/template_config.py +0 -0
  164. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/backlog/template_detector.py +0 -0
  165. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/__init__.py +0 -0
  166. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/analyze.py +0 -0
  167. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/auth.py +0 -0
  168. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/contract_cmd.py +0 -0
  169. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/drift.py +0 -0
  170. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/enforce.py +0 -0
  171. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/generate.py +0 -0
  172. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/import_cmd.py +0 -0
  173. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/migrate.py +0 -0
  174. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/project_cmd.py +0 -0
  175. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/repro.py +0 -0
  176. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/sdd.py +0 -0
  177. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/spec.py +0 -0
  178. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/update.py +0 -0
  179. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/commands/validate.py +0 -0
  180. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/common/__init__.py +0 -0
  181. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/common/logger_setup.py +0 -0
  182. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/common/logging_utils.py +0 -0
  183. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/common/text_utils.py +0 -0
  184. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/common/utils.py +0 -0
  185. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/comparators/__init__.py +0 -0
  186. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/comparators/plan_comparator.py +0 -0
  187. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/contracts/__init__.py +0 -0
  188. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/contracts/crosshair_props.py +0 -0
  189. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
  190. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
  191. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/__init__.py +0 -0
  192. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/contract_generator.py +0 -0
  193. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/openapi_extractor.py +0 -0
  194. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/persona_exporter.py +0 -0
  195. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/plan_generator.py +0 -0
  196. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/protocol_generator.py +0 -0
  197. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/task_generator.py +0 -0
  198. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/test_to_openapi.py +0 -0
  199. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/generators/workflow_generator.py +0 -0
  200. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/importers/__init__.py +0 -0
  201. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/importers/speckit_converter.py +0 -0
  202. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/importers/speckit_scanner.py +0 -0
  203. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/integrations/__init__.py +0 -0
  204. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/integrations/specmatic.py +0 -0
  205. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/merge/__init__.py +0 -0
  206. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/migrations/__init__.py +0 -0
  207. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/migrations/plan_migrator.py +0 -0
  208. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/__init__.py +0 -0
  209. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/backlog_item.py +0 -0
  210. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/capabilities.py +0 -0
  211. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/dor_config.py +0 -0
  212. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/plan.py +0 -0
  213. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/protocol.py +0 -0
  214. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/quality.py +0 -0
  215. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/sdd.py +0 -0
  216. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/models/source_tracking.py +0 -0
  217. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/modes/__init__.py +0 -0
  218. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/modes/router.py +0 -0
  219. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/parsers/__init__.py +0 -0
  220. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/parsers/persona_importer.py +0 -0
  221. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/resources/semgrep/async.yml +0 -0
  222. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
  223. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
  224. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/__init__.py +0 -0
  225. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/bridge_probe.py +0 -0
  226. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/bridge_sync.py +0 -0
  227. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/bridge_watch.py +0 -0
  228. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/change_detector.py +0 -0
  229. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/code_to_spec.py +0 -0
  230. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/drift_detector.py +0 -0
  231. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/repository_sync.py +0 -0
  232. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/spec_to_code.py +0 -0
  233. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/spec_to_tests.py +0 -0
  234. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/watcher.py +0 -0
  235. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
  236. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/telemetry.py +0 -0
  237. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/__init__.py +0 -0
  238. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/bridge_templates.py +0 -0
  239. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/defaults/defect_v1.yaml +0 -0
  240. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/defaults/enabler_v1.yaml +0 -0
  241. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/defaults/spike_v1.yaml +0 -0
  242. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/defaults/user_story_v1.yaml +0 -0
  243. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/frameworks/scrum/user_story_v1.yaml +0 -0
  244. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/personas/product-owner/user_story_v1.yaml +0 -0
  245. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/providers/ado/work_item_v1.yaml +0 -0
  246. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/registry.py +0 -0
  247. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/templates/specification_templates.py +0 -0
  248. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/__init__.py +0 -0
  249. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
  250. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/auth_tokens.py +0 -0
  251. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/bundle_loader.py +0 -0
  252. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/code_change_detector.py +0 -0
  253. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/console.py +0 -0
  254. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/content_sanitizer.py +0 -0
  255. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/context_detection.py +0 -0
  256. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/enrichment_context.py +0 -0
  257. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/enrichment_parser.py +0 -0
  258. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/feature_keys.py +0 -0
  259. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/git.py +0 -0
  260. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/github_annotations.py +0 -0
  261. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/incremental_check.py +0 -0
  262. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/metadata.py +0 -0
  263. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/optional_deps.py +0 -0
  264. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/performance.py +0 -0
  265. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/progress.py +0 -0
  266. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
  267. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/prompts.py +0 -0
  268. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/sdd_discovery.py +0 -0
  269. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/source_scanner.py +0 -0
  270. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/startup_checks.py +0 -0
  271. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/structure.py +0 -0
  272. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/suggestions.py +0 -0
  273. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/terminal.py +0 -0
  274. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/utils/yaml_utils.py +0 -0
  275. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/__init__.py +0 -0
  276. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/agile_validation.py +0 -0
  277. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/change_proposal_integration.py +0 -0
  278. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/cli_first_validator.py +0 -0
  279. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/contract_validator.py +0 -0
  280. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/fsm.py +0 -0
  281. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/repro_checker.py +0 -0
  282. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/schema.py +0 -0
  283. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/__init__.py +0 -0
  284. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/contract_populator.py +0 -0
  285. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/crosshair_runner.py +0 -0
  286. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/dependency_installer.py +0 -0
  287. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/framework_detector.py +0 -0
  288. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/__init__.py +0 -0
  289. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/base.py +0 -0
  290. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/frameworks/drf.py +0 -0
  291. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/harness_generator.py +0 -0
  292. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/orchestrator.py +0 -0
  293. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/specmatic_runner.py +0 -0
  294. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/validators/sidecar/unannotated_detector.py +0 -0
  295. {specfact_cli-0.26.16 → specfact_cli-0.27.0}/src/specfact_cli/versioning/__init__.py +0 -0
@@ -95,15 +95,17 @@ docs/internal/
95
95
 
96
96
  # Ignore .specify artifacts
97
97
  .specify/
98
- .cursor/commands/speckit.*
98
+ .cursor/commands/speckit.*.md
99
99
  /specs/
100
100
 
101
- # Include openspec/specs/ directory
102
- !openspec/
103
-
104
101
  # Ignore specfact-cli prompt templates
105
- .cursor/commands/specfact-*
106
- .github/prompts/specfact-*
102
+ .cursor/commands/specfact.*.md
103
+ .cursor/commands/opsx-*.md
104
+
105
+ .cursor/skills/openspec-*/
106
+
107
+ .github/prompts/specfact.*.md
108
+ .github/prompts/opsx-*.md
107
109
 
108
110
  # Semgrep rules (generated from tools/semgrep/ - source rules are versioned)
109
111
  .semgrep/
@@ -127,4 +129,9 @@ findings.json
127
129
  answers.json
128
130
  questions.json
129
131
  docs/project-plans/
130
- harness_contracts.py
132
+ harness_contracts.py
133
+
134
+ # semgrep artifacts
135
+ lang.json
136
+ Language.ml
137
+ Language.mli
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specfact-cli
3
- Version: 0.26.16
4
- Summary: Brownfield-first CLI: Reverse engineer legacy Python specs enforced contracts. Automate legacy code documentation and prevent modernization regressions.
3
+ Version: 0.27.0
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
7
7
  Project-URL: Documentation, https://github.com/nold-ai/specfact-cli#readme
@@ -211,7 +211,7 @@ License: Apache License
211
211
  See the License for the specific language governing permissions and
212
212
  limitations under the License.
213
213
  License-File: LICENSE.md
214
- Keywords: async,beartype,brownfield,cli,code-documentation,code-to-spec,contract-driven-development,contracts,crosshair,icontract,legacy-code,modernization,property-based-testing,quality-gates,refactoring,reverse-engineering,spec-first,specfact,state-machine,tdd,technical-debt
214
+ Keywords: agile,backlog,beartype,ceremonies,cli,contract-driven-development,contracts,crosshair,devops,existing-code,icontract,kanban,legacy,modernization,policy-as-code,property-based-testing,safe,scrum,specfact,specs,tdd,validation
215
215
  Classifier: Development Status :: 4 - Beta
216
216
  Classifier: Intended Audience :: Developers
217
217
  Classifier: License :: OSI Approved :: Apache Software License
@@ -278,319 +278,181 @@ Description-Content-Type: text/markdown
278
278
 
279
279
  # SpecFact CLI
280
280
 
281
- > **Brownfield-first legacy code modernization with runtime contract enforcement.**
282
- > Analyze existing Python code Extract specs Find gaps Enforce contracts Prevent regressions
281
+ > **The "swiss knife" CLI that turns any codebase into a clear, safe, and shippable workflow.**
282
+ > Keep backlog, specs, tests, and code in sync so AI-assisted changes do not break production.
283
+ > Works for brand-new projects and long-lived codebases - even if you are new to coding.
283
284
 
284
285
  **No API keys required. Works offline. Zero vendor lock-in.**
285
286
 
286
- [![PyPI version](https://img.shields.io/pypi/v/specfact-cli.svg)](https://pypi.org/project/specfact-cli/)
287
+ [![PyPI version](https://img.shields.io/pypi/v/specfact-cli.svg?color=22c55e)](https://pypi.org/project/specfact-cli/)
287
288
  [![Python versions](https://img.shields.io/pypi/pyversions/specfact-cli.svg)](https://pypi.org/project/specfact-cli/)
288
289
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE.md)
289
- [![Status](https://img.shields.io/badge/status-beta-orange.svg)](https://github.com/nold-ai/specfact-cli)
290
+ [![Status](https://img.shields.io/badge/status-beta-F59E0B.svg)](https://github.com/nold-ai/specfact-cli)
290
291
 
291
292
  <div align="center">
292
293
 
293
- **[🌐 specfact.com](https://specfact.com)** • **[📚 specfact.io](https://specfact.io)** • **[👨‍💻 specfact.dev](https://specfact.dev)** • **[📖 Documentation](https://docs.specfact.io/)** • **[💬 Support](mailto:hello@noldai.com)**
294
+ **[specfact.com](https://specfact.com)** • **[specfact.io](https://specfact.io)** • **[specfact.dev](https://specfact.dev)** • **[Documentation](https://docs.specfact.io/)** • **[Support](mailto:hello@noldai.com)**
294
295
 
295
296
  </div>
296
297
 
297
- ## 🌐 SpecFact Domains
298
-
299
- - **[specfact.com](https://specfact.com)** - Commercial landing page (marketing, pricing, enterprise)
300
- - **[specfact.io](https://specfact.io)** - Product ecosystem hub (CLI reference, integrations, changelog, product docs)
301
- - **[specfact.dev](https://specfact.dev)** - Developer community (tutorials, guides, blog, community content) ⭐ **For developers**
302
- - **[docs.specfact.io](https://docs.specfact.io/)** - Complete online documentation
303
-
304
- ---
305
-
306
- ## What is SpecFact?
307
-
308
- **SpecFact CLI analyzes your existing Python code** to automatically extract specifications, find missing tests and contracts, and enforce them to prevent bugs during modernization.
309
-
310
- **Perfect for:** Teams modernizing legacy Python systems who can't afford production bugs during migration.
311
-
312
- ### Why SpecFact?
313
-
314
- AI coding assistants are powerful but unpredictable when requirements live in chat history. SpecFact adds a **brownfield-first analysis workflow** that understands existing code, extracts specs automatically, and enforces them as runtime contracts, giving you deterministic, reviewable outputs.
315
-
316
- **Key outcomes:**
317
-
318
- - **Understand legacy code** in minutes, not weeks (automatic spec extraction)
319
- - **Find gaps** in tests, contracts, and documentation automatically
320
- - **Prevent regressions** with runtime contract enforcement during modernization
321
- - **Works with the tools you already use**: VS Code, Cursor, GitHub Actions, pre-commit hooks
322
- - **No API keys required** - Works completely offline
323
-
324
298
  ---
325
299
 
326
- ## 🚀 Quick Start
300
+ ## Start Here (60 seconds)
327
301
 
328
- ### Step 1: Install SpecFact CLI
302
+ ### Install
329
303
 
330
304
  ```bash
331
- # Zero-install (recommended - no setup needed)
305
+ # Zero-install (recommended)
332
306
  uvx specfact-cli@latest
333
307
 
334
308
  # Or install globally
335
309
  pip install -U specfact-cli
336
310
  ```
337
311
 
338
- ### Step 2: Initialize IDE Integration
339
-
340
- **Set up slash commands in your IDE (Cursor, VS Code, Copilot, etc.):**
312
+ ### Initialize IDE Integration (optional but recommended)
341
313
 
342
314
  ```bash
343
- # Auto-detect IDE and initialize
344
315
  specfact init
345
-
346
- # Or specify IDE explicitly
347
316
  specfact init --ide cursor
348
317
  specfact init --ide vscode
349
-
350
- # Install required packages for contract enhancement
351
- specfact init --ide cursor --install-deps
352
- ```
353
-
354
- **What this does:**
355
-
356
- - Copies prompt templates to your IDE
357
- - Makes slash commands available in your IDE's AI chat
358
- - Optionally installs required packages (`beartype`, `icontract`, `crosshair-tool`, `pytest`)
359
-
360
- ### Step 3: Run Your First Analysis
361
-
362
- **In your IDE's AI chat, use the slash command:**
363
-
364
- ```bash
365
- # In IDE chat (Cursor, VS Code, Copilot, etc.)
366
- /specfact.01-import my-project --repo .
367
318
  ```
368
319
 
369
- **Or use the CLI directly:**
320
+ ### Run Your First Flow
370
321
 
371
322
  ```bash
372
- # Analyze legacy codebase (most common use case)
323
+ # Analyze an existing codebase
373
324
  specfact import from-code my-project --repo .
374
325
 
375
- # Or validate external codebase without modifying source (sidecar validation)
326
+ # Validate external code without modifying source
376
327
  specfact validate sidecar init my-project /path/to/repo
377
328
  specfact validate sidecar run my-project /path/to/repo
378
329
  ```
379
330
 
380
- **⏱️ Timing:** Analysis typically takes **10-15 minutes** for typical repositories (e.g., `specfact-cli` itself with several hundred features & contracts). Smaller codebases may complete in 2-5 minutes. Large codebases (3000+ features) may take 15-30 minutes, but progress reporting shows real-time status. The analysis performs AST parsing, Semgrep pattern detection, and Specmatic integration.
331
+ **AI IDE quick start**
381
332
 
382
- **💾 Checkpointing:** Features are saved immediately after initial analysis, so you can safely interrupt and resume the import process without losing progress.
383
-
384
- **⚡ Performance:** Optimized for large codebases with pre-computed AST parsing and file hashes (5-15x faster than previous versions).
333
+ ```bash
334
+ # In your IDE chat (Cursor, VS Code, Copilot, etc.)
335
+ /specfact.01-import my-project --repo .
336
+ ```
385
337
 
386
- **That's it!** SpecFact will extract features and stories from your code, find missing tests and contracts, and generate a plan bundle you can enforce.
338
+ **Next steps**
387
339
 
388
- 👉 **[Getting Started Guide](docs/getting-started/README.md)** - Complete walkthrough with examples
389
- 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** ⭐ - Complete AI-assisted development workflow
340
+ - **[Getting Started](docs/getting-started/README.md)**
341
+ - **[AI IDE Workflow](docs/guides/ai-ide-workflow.md)**
342
+ - **[Command Chains](docs/guides/command-chains.md)**
390
343
 
391
344
  ---
392
345
 
393
- ## 🎯 Find Your Path
394
-
395
- ### New to SpecFact?
396
-
397
- **Primary Goal**: Analyze legacy Python → find gaps → enforce contracts
398
-
399
- 1. **[Getting Started](docs/getting-started/README.md)** - Install and run your first command
400
- 2. **[Command Chains Reference](docs/guides/command-chains.md)** ⭐ **NEW** - Complete workflows from start to finish
401
- 3. **[Common Tasks Quick Reference](docs/guides/common-tasks.md)** ⭐ **NEW** - Quick answers to "How do I X?"
402
- 4. **[Modernizing Legacy Code?](docs/guides/brownfield-engineer.md)** ⭐ - Brownfield-first guide
403
- 5. **[The Brownfield Journey](docs/guides/brownfield-journey.md)** ⭐ - Complete modernization workflow
404
-
405
- **Time**: < 10 minutes | **Result**: Running your first brownfield analysis
406
-
407
- ### Using AI IDEs? (Cursor, Copilot, Claude)
408
-
409
- **Primary Goal**: Let SpecFact find gaps, use your AI IDE to fix them
346
+ ## Proof and Expectations
410
347
 
411
- 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** **NEW** - Complete AI-assisted development workflow
412
-
413
- ### Working with a Team?
414
-
415
- **Primary Goal**: Enable team collaboration with role-based workflows
416
-
417
- 👉 **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** ⭐ - Persona-based team collaboration
418
-
419
- ### Need Integrations?
420
-
421
- **Primary Goal**: Integrate with Spec-Kit, OpenSpec, Specmatic, or DevOps tools
422
-
423
- 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** ⭐ **NEW** - Complete guide to all integrations
348
+ - **Typical runtime**: 2-15 minutes depending on repo size and complexity.
349
+ - **Checkpointing**: Progress is saved during analysis so you can resume safely.
350
+ - **Performance**: Optimized for large codebases with cached parsing and file hashes.
424
351
 
425
352
  ---
426
353
 
427
- ## Key Features
428
-
429
- ### 🔍 Code Analysis
430
-
431
- - **Reverse engineer** legacy code into documented specs
432
- - **Find gaps** in tests, contracts, and documentation
433
- - **Works with** any Python project (no special setup required)
434
-
435
- 👉 **[Command Chains](docs/guides/command-chains.md)** - See complete workflows
436
-
437
- ### 🛡️ Contract Enforcement
438
-
439
- - **Prevent regressions** with runtime contract validation
440
- - **CI/CD integration** - Block bad code from merging
441
- - **Works offline** - No cloud required
442
- - **Sidecar validation** - Validate external codebases without modifying source code
443
-
444
- 👉 **[Command Reference](docs/reference/commands.md)** - All enforcement commands
445
- 👉 **[Sidecar Validation Guide](docs/guides/sidecar-validation.md)** - Validate external codebases
446
-
447
- ### 👥 Team Collaboration
448
-
449
- - **Role-based workflows** - Product Owners, Architects, Developers work in parallel
450
- - **Markdown-based** - No YAML editing required
451
- - **Agile/scrum ready** - DoR checklists, story points, dependencies
452
- - **Backlog standardization** 🆕 - Template-driven refinement with persona/framework filtering
453
- - **Sprint/iteration filtering** 🆕 - Filter by sprint, release, iteration for agile workflows
454
- - **Interactive field mapping** 🆕 - Discover and map Azure DevOps fields with arrow-key navigation
455
- - **Azure DevOps integration** 🆕 - Full support for ADO work items with automatic token resolution
456
-
457
- 👉 **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** - Team collaboration guide
458
- 👉 **[Backlog Refinement](docs/guides/backlog-refinement.md)** 🆕 - Standardize backlog items with templates
459
- 👉 **[Custom Field Mapping](docs/guides/custom-field-mapping.md)** 🆕 - Map ADO fields interactively
460
-
461
- ### 🔌 Integrations
354
+ ## Why It Matters (Plain Language)
462
355
 
463
- - **VS Code, Cursor** - Catch bugs before you commit
464
- - **GitHub Actions** - Automated quality gates
465
- - **AI IDEs** - Generate prompts for fixing gaps
466
- - **DevOps tools** - Sync with GitHub Issues, Azure DevOps, Linear, Jira
467
- - **Backlog Refinement** 🆕 - AI-assisted template-driven refinement for standardizing work items
468
- - **Azure DevOps field mapping** 🆕 - Interactive field discovery and mapping for custom ADO process templates
469
- - **Spec-Kit, OpenSpec, Specmatic** - Works with your existing tools
470
-
471
- 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** - All integration options
472
- 👉 **[Backlog Refinement Guide](docs/guides/backlog-refinement.md)** 🆕 **NEW** - Template-driven backlog standardization
473
- 👉 **[Custom Field Mapping](docs/guides/custom-field-mapping.md)** 🆕 **NEW** - Interactive ADO field mapping
356
+ - **Clarity**: Turn messy code into clear specs your team can trust.
357
+ - **Safety**: Catch risky changes early with validation and contract checks.
358
+ - **Sync**: Keep backlog items, specs, tests, and code aligned end to end.
359
+ - **Adoption**: Simple CLI, no platform lock-in, works offline.
474
360
 
475
361
  ---
476
362
 
477
- ## Common Use Cases
478
-
479
- ### 1. Modernizing Legacy Code ⭐ **Most Common**
480
-
481
- **Problem:** Existing codebase with no specs or outdated documentation
482
-
483
- 👉 **[Brownfield Modernization Guide](docs/guides/brownfield-engineer.md)** - Complete walkthrough
363
+ ## Who It Is For
484
364
 
485
- ### 1.5. Validating External Codebases (Sidecar Validation) 🆕
365
+ - **Vibe coders and new builders** who want to ship fast with guardrails and confidence.
366
+ - **Legacy professionals** who want AI speed without lowering standards.
367
+ - **DevOps and engineering leaders** who need evidence and repeatable workflows.
486
368
 
487
- **Problem:** Need to validate third-party libraries or legacy codebases without modifying source code
488
-
489
- 👉 **[Sidecar Validation Guide](docs/guides/sidecar-validation.md)** - Validate external codebases with contract testing
490
-
491
- ### 2. Working with a Team
369
+ ---
492
370
 
493
- **Problem:** Need team collaboration with role-based workflows
371
+ ## How It Works (High Level)
494
372
 
495
- 👉 **[Agile/Scrum Workflows Guide](docs/guides/agile-scrum-workflows.md)** - Team collaboration guide
373
+ 1. **Analyze**: Read code and extract specs, gaps, and risks.
374
+ 2. **Sync**: Connect specs, backlog items, and plans in one workflow.
375
+ 3. **Validate**: Enforce contracts and block regressions before production.
496
376
 
497
- ### 3. Using AI IDEs (Cursor, Copilot, Claude)
377
+ ---
498
378
 
499
- **Problem:** Want AI to fix gaps, but need validation
379
+ ## The Missing Link (Coder + DevOps Bridge)
500
380
 
501
- 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** - Complete AI-assisted workflow
381
+ Most tools help **either** coders **or** agile teams. SpecFact does both:
502
382
 
503
- ### 4. Integrating with Other Tools
383
+ - **Backlog sync that is actually strong**: round-trip sync + refinement with GitHub, Azure DevOps, Jira, Linear.
384
+ - **Ceremony support teams can run**: standup, refinement, sprint planning, flow metrics (Scrum/Kanban/SAFe).
385
+ - **Policy + validation**: DoR/DoD/flow checks plus contract enforcement for production-grade stability.
504
386
 
505
- **Problem:** Want to use SpecFact with Spec-Kit, OpenSpec, or Specmatic
387
+ **Try it now**
506
388
 
507
- 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** - Choose the right integration
389
+ - **Coders**: [AI IDE Workflow](docs/guides/ai-ide-workflow.md)
390
+ - **Agile teams**: [Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)
508
391
 
509
392
  ---
510
393
 
511
- ## Documentation
394
+ ## Modules and Capabilities
512
395
 
513
- ### Quick References
396
+ **Core modules**
514
397
 
515
- - **[Command Chains](docs/guides/command-chains.md)** **NEW** - Complete workflows from start to finish
516
- - **[Common Tasks](docs/guides/common-tasks.md)** **NEW** - Quick answers to "How do I X?"
517
- - **[Command Reference](docs/reference/commands.md)** - All commands documented
398
+ - **Analyze**: Extract specs and plans from existing code.
399
+ - **Validate**: Enforce contracts, run reproducible checks, and block regressions.
400
+ - **Report**: CI/CD summaries and evidence outputs.
518
401
 
519
- ### Getting Started
402
+ **Agile DevOps modules**
520
403
 
521
- - **[Getting Started Guide](docs/getting-started/README.md)** - Install and first commands
522
- - **[Modernizing Legacy Code?](docs/guides/brownfield-engineer.md)** - Brownfield-first guide
523
- - **[The Brownfield Journey](docs/guides/brownfield-journey.md)** - Complete modernization workflow
404
+ - **Backlog**: Refinement, dependency analysis, sprint summaries, risk rollups.
405
+ - **Ceremony**: Standup, refinement, and planning entry points.
406
+ - **Policy**: DoR, DoD, flow, PI readiness checks.
407
+ - **Patch**: Preview, apply, and write changes safely.
524
408
 
525
- ### Guides
409
+ **Adapters and bridges**
526
410
 
527
- - **[AI IDE Workflow](docs/guides/ai-ide-workflow.md)** **NEW** - AI-assisted development
528
- - **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** - Team collaboration
529
- - **[Integrations Overview](docs/guides/integrations-overview.md)** ⭐ **NEW** - All integrations
530
- - **[Sidecar Validation](docs/guides/sidecar-validation.md)** 🆕 - Validate external codebases without modifying source
531
- - **[Use Cases](docs/guides/use-cases.md)** - Common scenarios
532
-
533
- ### Integration Guides
534
-
535
- - **[Spec-Kit Journey](docs/guides/speckit-journey.md)** - From Spec-Kit to SpecFact
536
- - **[OpenSpec Journey](docs/guides/openspec-journey.md)** - OpenSpec integration
537
- - **[Specmatic Integration](docs/guides/specmatic-integration.md)** - API contract testing
538
- - **[DevOps Adapter Integration](docs/guides/devops-adapter-integration.md)** - GitHub Issues, Azure DevOps, Linear, Jira
539
- - **[Backlog Refinement](docs/guides/backlog-refinement.md)** 🆕 **NEW** - AI-assisted template-driven backlog standardization
540
- - **[Custom Field Mapping](docs/guides/custom-field-mapping.md)** 🆕 **NEW** - Interactive Azure DevOps field mapping
541
-
542
- 👉 **[Full Documentation Index](docs/README.md)** - Browse all documentation
543
- 👉 **[Online Documentation](https://docs.specfact.io/)** - Complete documentation site
411
+ - **Specs**: Spec-Kit and OpenSpec
412
+ - **Backlogs**: GitHub Issues, Azure DevOps, Jira, Linear
413
+ - **Contracts**: Specmatic, OpenAPI
544
414
 
545
415
  ---
546
416
 
547
- ## How SpecFact Compares
417
+ ## Where SpecFact Fits
548
418
 
549
- **New to spec-driven development?** Here's how SpecFact compares to other tools:
419
+ SpecFact complements your stack rather than replacing it.
550
420
 
551
- | Tool | Best For | SpecFact's Focus |
552
- |------|----------|------------------|
553
- | **GitHub Spec-Kit** | Greenfield specs, multi-language, interactive authoring | **Brownfield analysis**, runtime enforcement, formal verification |
554
- | **OpenSpec** | Specification anchoring, change tracking, cross-repo workflows | **Code analysis**, contract enforcement, DevOps integration |
555
- | **Traditional Testing** | Manual test writing, code review | **Automated gap detection**, contract-first validation, CI/CD gates |
421
+ - **Spec-Kit/OpenSpec** for authoring and change tracking
422
+ - **Backlog tools** for planning and delivery
423
+ - **CI/CD** for enforcement and regression prevention
556
424
 
557
- **Key Differentiators:**
425
+ **SpecFact connects them** with adapters, policy checks, and deterministic validation.
558
426
 
559
- - **Brownfield-first** - Reverse engineers existing code (primary use case)
560
- - ✅ **Runtime enforcement** - Contracts prevent regressions automatically
561
- - ✅ **Formal verification** - CrossHair symbolic execution (not just LLM suggestions)
562
- - ✅ **Team collaboration** - Role-based workflows for agile/scrum teams
563
- - ✅ **Works offline** - No API keys, no cloud, zero vendor lock-in
427
+ **Integrations snapshot**: GitHub, Azure DevOps, Jira, Linear, Spec-Kit, OpenSpec, Specmatic.
564
428
 
565
- 👉 **[See detailed comparison guide](docs/guides/speckit-comparison.md)** - Understand when to use SpecFact, Spec-Kit, OpenSpec, or all together
429
+ - **[Integrations Overview](docs/guides/integrations-overview.md)**
430
+ - **[DevOps Adapter Integration](docs/guides/devops-adapter-integration.md)**
566
431
 
567
432
  ---
568
433
 
569
- ## Benefits
570
-
571
- ### Works with Your Existing Tools
434
+ ## Recommended Paths
572
435
 
573
- - **No new platform** - Pure CLI, works offline
574
- - **No account required** - Fully local, zero vendor lock-in
575
- - **Integrates everywhere** - VS Code, Cursor, GitHub Actions, pre-commit hooks
436
+ - **I want a quick win**: [Getting Started](docs/getting-started/README.md)
437
+ - **I use an AI IDE**: [AI IDE Workflow](docs/guides/ai-ide-workflow.md)
438
+ - **We have a team backlog**: [Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)
439
+ - **We have a long-lived codebase**: [Working With Existing Code](docs/guides/brownfield-engineer.md)
576
440
 
577
- ### Built for Real Teams
578
-
579
- - ✅ **Role-based workflows** - Product Owners, Architects, Developers work in parallel
580
- - ✅ **Markdown-based** - No YAML editing, human-readable conflicts
581
- - ✅ **Agile/scrum ready** - DoR checklists, story points, sprint planning
441
+ ---
582
442
 
583
- ### Proven Results
443
+ ## Documentation Map
584
444
 
585
- - **Catches real bugs** - See [Integration Showcases](docs/examples/integration-showcases/)
586
- - **Prevents regressions** - Runtime contract enforcement
587
- - **Works on legacy code** - Analyzed itself successfully
445
+ - **[Documentation Index](docs/README.md)**
446
+ - **[Command Reference](docs/reference/commands.md)**
447
+ - **[Backlog Refinement](docs/guides/backlog-refinement.md)**
448
+ - **[Sidecar Validation](docs/guides/sidecar-validation.md)**
449
+ - **[OpenSpec Journey](docs/guides/openspec-journey.md)**
588
450
 
589
451
  ---
590
452
 
591
453
  ## Contributing
592
454
 
593
- We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
455
+ We welcome contributions. See [CONTRIBUTING.md](CONTRIBUTING.md).
594
456
 
595
457
  ```bash
596
458
  git clone https://github.com/nold-ai/specfact-cli.git
@@ -603,11 +465,7 @@ hatch run contract-test-full
603
465
 
604
466
  ## License
605
467
 
606
- **Apache License 2.0** - Open source and enterprise-friendly
607
-
608
- - ✅ Free to use for any purpose (commercial or non-commercial)
609
- - ✅ Modify and distribute as needed
610
- - ✅ Enterprise-friendly with explicit patent grant
468
+ **Apache License 2.0** - Open source and enterprise-friendly.
611
469
 
612
470
  [Full license](LICENSE.md)
613
471
 
@@ -615,17 +473,16 @@ hatch run contract-test-full
615
473
 
616
474
  ## Support
617
475
 
618
- - 💬 **Questions?** [GitHub Discussions](https://github.com/nold-ai/specfact-cli/discussions)
619
- - 🐛 **Found a bug?** [GitHub Issues](https://github.com/nold-ai/specfact-cli/issues)
620
- - 🔍 **Debugging I/O or API issues?** Run with `--debug`; logs are written to `~/.specfact/logs/specfact-debug.log`. With `--debug`, ADO API errors include response snippet and patch paths in the log. See [Debug Logging](docs/reference/debug-logging.md).
621
- - 📧 **Need help?** [hello@noldai.com](mailto:hello@noldai.com)
622
- - 🌐 **Learn more:** [specfact.com](https://specfact.com) • [specfact.io](https://specfact.io) • [specfact.dev](https://specfact.dev)
476
+ - **GitHub Discussions**: https://github.com/nold-ai/specfact-cli/discussions
477
+ - **GitHub Issues**: https://github.com/nold-ai/specfact-cli/issues
478
+ - **Email**: hello@noldai.com
479
+ - **Debug logs**: Run with `--debug` and check `~/.specfact/logs/specfact-debug.log`.
623
480
 
624
481
  ---
625
482
 
626
483
  <div align="center">
627
484
 
628
- **Built with ❤️ by [NOLD AI](https://noldai.com)**
485
+ **Built by [NOLD AI](https://noldai.com)**
629
486
 
630
487
  Copyright © 2025-2026 Nold AI (Owner: Dominikus Nold)
631
488