specfact-cli 0.22.1__tar.gz → 0.23.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 (198) hide show
  1. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/PKG-INFO +157 -282
  2. specfact_cli-0.23.0/README.md +330 -0
  3. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/pyproject.toml +1 -1
  4. specfact_cli-0.23.0/resources/templates/sidecar/STRUCTURE.md +70 -0
  5. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/README.md +21 -0
  6. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/adapters.py +295 -1
  7. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/generate_harness.py +1 -1
  8. specfact_cli-0.23.0/resources/templates/sidecar/common/populate_contracts.py +1013 -0
  9. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/run_sidecar.sh +101 -34
  10. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/sidecar-init.sh +2 -1
  11. specfact_cli-0.23.0/resources/templates/sidecar/frameworks/django/__init__.py +0 -0
  12. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/frameworks/django}/django_url_extractor.py +50 -16
  13. specfact_cli-0.23.0/resources/templates/sidecar/frameworks/drf/__init__.py +0 -0
  14. specfact_cli-0.23.0/resources/templates/sidecar/frameworks/drf/drf_serializer_extractor.py +372 -0
  15. specfact_cli-0.23.0/resources/templates/sidecar/frameworks/fastapi/__init__.py +0 -0
  16. specfact_cli-0.23.0/resources/templates/sidecar/frameworks/fastapi/fastapi_route_extractor.py +643 -0
  17. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/__init__.py +1 -1
  18. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/__init__.py +1 -1
  19. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/code_analyzer.py +23 -3
  20. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/graph_analyzer.py +58 -6
  21. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/relationship_mapper.py +112 -41
  22. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/import_cmd.py +735 -229
  23. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/project.py +81 -13
  24. specfact_cli-0.23.0/src/specfact_cli/utils/source_scanner.py +594 -0
  25. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/yaml_utils.py +32 -3
  26. specfact_cli-0.22.1/README.md +0 -455
  27. specfact_cli-0.22.1/resources/templates/sidecar/bindings.yaml +0 -26
  28. specfact_cli-0.22.1/resources/templates/sidecar/populate_contracts.py +0 -543
  29. specfact_cli-0.22.1/src/specfact_cli/utils/source_scanner.py +0 -315
  30. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/.gitignore +0 -0
  31. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/LICENSE.md +0 -0
  32. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/mappings/node-async.yaml +0 -0
  33. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/mappings/python-async.yaml +0 -0
  34. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/mappings/speckit-default.yaml +0 -0
  35. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/shared/cli-enforcement.md +0 -0
  36. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.01-import.md +0 -0
  37. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.02-plan.md +0 -0
  38. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.03-review.md +0 -0
  39. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.04-sdd.md +0 -0
  40. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.05-enforce.md +0 -0
  41. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.06-sync.md +0 -0
  42. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.07-contracts.md +0 -0
  43. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.compare.md +0 -0
  44. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.sync-backlog.md +0 -0
  45. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/prompts/specfact.validate.md +0 -0
  46. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/schemas/deviation.schema.json +0 -0
  47. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/schemas/plan.schema.json +0 -0
  48. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/schemas/protocol.schema.json +0 -0
  49. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/github-action.yml.j2 +0 -0
  50. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/persona/architect.md.j2 +0 -0
  51. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/persona/developer.md.j2 +0 -0
  52. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/persona/product-owner.md.j2 +0 -0
  53. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/plan.bundle.yaml.j2 +0 -0
  54. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/pr-template.md.j2 +0 -0
  55. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/protocol.yaml.j2 +0 -0
  56. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/sidecar/__init__.py +0 -0
  57. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/bindings.yaml.example +0 -0
  58. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/common}/crosshair_plugin.py +0 -0
  59. /specfact_cli-0.22.1/resources/templates/sidecar/harness_contracts.py → /specfact_cli-0.23.0/resources/templates/sidecar/common/harness_contracts.py.example +0 -0
  60. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/frameworks/django}/crosshair_django_wrapper.py +0 -0
  61. {specfact_cli-0.22.1/resources/templates/sidecar → specfact_cli-0.23.0/resources/templates/sidecar/frameworks/django}/django_form_extractor.py +0 -0
  62. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/resources/templates/telemetry.yaml.example +0 -0
  63. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/__init__.py +0 -0
  64. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/base.py +0 -0
  65. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/github.py +0 -0
  66. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/openspec.py +0 -0
  67. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/openspec_parser.py +0 -0
  68. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/registry.py +0 -0
  69. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/adapters/speckit.py +0 -0
  70. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/__init__.py +0 -0
  71. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/analyze_agent.py +0 -0
  72. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/base.py +0 -0
  73. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/plan_agent.py +0 -0
  74. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/registry.py +0 -0
  75. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/agents/sync_agent.py +0 -0
  76. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/__init__.py +0 -0
  77. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/ambiguity_scanner.py +0 -0
  78. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/constitution_evidence_extractor.py +0 -0
  79. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/contract_extractor.py +0 -0
  80. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/control_flow_analyzer.py +0 -0
  81. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/requirement_extractor.py +0 -0
  82. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/analyzers/test_pattern_extractor.py +0 -0
  83. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/cli.py +0 -0
  84. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/__init__.py +0 -0
  85. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/analyze.py +0 -0
  86. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/contract_cmd.py +0 -0
  87. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/drift.py +0 -0
  88. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/enforce.py +0 -0
  89. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/generate.py +0 -0
  90. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/init.py +0 -0
  91. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/migrate.py +0 -0
  92. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/plan.py +0 -0
  93. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/project_cmd.py +0 -0
  94. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/repro.py +0 -0
  95. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/sdd.py +0 -0
  96. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/spec.py +0 -0
  97. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/commands/sync.py +0 -0
  98. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/common/__init__.py +0 -0
  99. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/common/logger_setup.py +0 -0
  100. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/common/logging_utils.py +0 -0
  101. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/common/text_utils.py +0 -0
  102. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/common/utils.py +0 -0
  103. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/comparators/__init__.py +0 -0
  104. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/comparators/plan_comparator.py +0 -0
  105. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/enrichers/constitution_enricher.py +0 -0
  106. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/enrichers/plan_enricher.py +0 -0
  107. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/__init__.py +0 -0
  108. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/contract_generator.py +0 -0
  109. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/openapi_extractor.py +0 -0
  110. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/persona_exporter.py +0 -0
  111. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/plan_generator.py +0 -0
  112. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/protocol_generator.py +0 -0
  113. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/report_generator.py +0 -0
  114. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/task_generator.py +0 -0
  115. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/test_to_openapi.py +0 -0
  116. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/generators/workflow_generator.py +0 -0
  117. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/importers/__init__.py +0 -0
  118. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/importers/speckit_converter.py +0 -0
  119. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/importers/speckit_scanner.py +0 -0
  120. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/integrations/__init__.py +0 -0
  121. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/integrations/specmatic.py +0 -0
  122. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/merge/__init__.py +0 -0
  123. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/merge/resolver.py +0 -0
  124. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/migrations/__init__.py +0 -0
  125. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/migrations/plan_migrator.py +0 -0
  126. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/__init__.py +0 -0
  127. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/bridge.py +0 -0
  128. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/capabilities.py +0 -0
  129. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/change.py +0 -0
  130. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/contract.py +0 -0
  131. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/deviation.py +0 -0
  132. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/enforcement.py +0 -0
  133. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/persona_template.py +0 -0
  134. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/plan.py +0 -0
  135. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/protocol.py +0 -0
  136. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/quality.py +0 -0
  137. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/sdd.py +0 -0
  138. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/source_tracking.py +0 -0
  139. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/models/task.py +0 -0
  140. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/modes/__init__.py +0 -0
  141. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/modes/detector.py +0 -0
  142. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/modes/router.py +0 -0
  143. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/parsers/__init__.py +0 -0
  144. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/parsers/persona_importer.py +0 -0
  145. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/resources/semgrep/async.yml +0 -0
  146. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/resources/semgrep/code-quality.yml +0 -0
  147. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/resources/semgrep/feature-detection.yml +0 -0
  148. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/runtime.py +0 -0
  149. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/__init__.py +0 -0
  150. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/bridge_probe.py +0 -0
  151. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/bridge_sync.py +0 -0
  152. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/bridge_watch.py +0 -0
  153. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/change_detector.py +0 -0
  154. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/code_to_spec.py +0 -0
  155. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/drift_detector.py +0 -0
  156. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/repository_sync.py +0 -0
  157. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/spec_to_code.py +0 -0
  158. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/spec_to_tests.py +0 -0
  159. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/watcher.py +0 -0
  160. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/sync/watcher_enhanced.py +0 -0
  161. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/telemetry.py +0 -0
  162. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/templates/__init__.py +0 -0
  163. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/templates/bridge_templates.py +0 -0
  164. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/templates/specification_templates.py +0 -0
  165. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/__init__.py +0 -0
  166. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/acceptance_criteria.py +0 -0
  167. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/bundle_loader.py +0 -0
  168. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/code_change_detector.py +0 -0
  169. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/console.py +0 -0
  170. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/content_sanitizer.py +0 -0
  171. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/context_detection.py +0 -0
  172. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/enrichment_context.py +0 -0
  173. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/enrichment_parser.py +0 -0
  174. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/env_manager.py +0 -0
  175. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/feature_keys.py +0 -0
  176. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/git.py +0 -0
  177. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/github_annotations.py +0 -0
  178. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/ide_setup.py +0 -0
  179. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/incremental_check.py +0 -0
  180. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/optional_deps.py +0 -0
  181. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/performance.py +0 -0
  182. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/progress.py +0 -0
  183. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/progressive_disclosure.py +0 -0
  184. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/prompts.py +0 -0
  185. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/sdd_discovery.py +0 -0
  186. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/structure.py +0 -0
  187. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/structured_io.py +0 -0
  188. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/suggestions.py +0 -0
  189. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/utils/terminal.py +0 -0
  190. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/__init__.py +0 -0
  191. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/agile_validation.py +0 -0
  192. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/cli_first_validator.py +0 -0
  193. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/contract_validator.py +0 -0
  194. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/fsm.py +0 -0
  195. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/repro_checker.py +0 -0
  196. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/validators/schema.py +0 -0
  197. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/src/specfact_cli/versioning/__init__.py +0 -0
  198. {specfact_cli-0.22.1 → specfact_cli-0.23.0}/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.22.1
3
+ Version: 0.23.0
4
4
  Summary: Brownfield-first CLI: Reverse engineer legacy Python → specs → enforced contracts. Automate legacy code documentation and prevent modernization regressions.
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
@@ -287,10 +287,17 @@ Description-Content-Type: text/markdown
287
287
 
288
288
  <div align="center">
289
289
 
290
- **[🌐 Website](https://noldai.com)** • **[📚 Documentation](https://nold-ai.github.io/specfact-cli)** • **[💬 Support](mailto:hello@noldai.com)**
290
+ **[🌐 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)**
291
291
 
292
292
  </div>
293
293
 
294
+ ## 🌐 SpecFact Domains
295
+
296
+ - **[specfact.com](https://specfact.com)** - Commercial landing page (marketing, pricing, enterprise)
297
+ - **[specfact.io](https://specfact.io)** - Product ecosystem hub (CLI reference, integrations, changelog, product docs)
298
+ - **[specfact.dev](https://specfact.dev)** - Developer community (tutorials, guides, blog, community content) ⭐ **For developers**
299
+ - **[docs.specfact.io](https://docs.specfact.io/)** - Complete online documentation
300
+
294
301
  ---
295
302
 
296
303
  ## What is SpecFact?
@@ -305,214 +312,108 @@ AI coding assistants are powerful but unpredictable when requirements live in ch
305
312
 
306
313
  **Key outcomes:**
307
314
 
308
- * **Understand legacy code** in minutes, not weeks (automatic spec extraction)
309
- * **Find gaps** in tests, contracts, and documentation automatically
310
- * **Prevent regressions** with runtime contract enforcement during modernization
311
- * **Works with the tools you already use**: VS Code, Cursor, GitHub Actions, pre-commit hooks
312
- * **No API keys required** - Works completely offline
313
-
314
- ## How SpecFact Compares (at a glance)
315
+ - **Understand legacy code** in minutes, not weeks (automatic spec extraction)
316
+ - **Find gaps** in tests, contracts, and documentation automatically
317
+ - **Prevent regressions** with runtime contract enforcement during modernization
318
+ - **Works with the tools you already use**: VS Code, Cursor, GitHub Actions, pre-commit hooks
319
+ - **No API keys required** - Works completely offline
315
320
 
316
- **New to spec-driven development?** Here's how SpecFact compares to other tools:
321
+ ---
317
322
 
318
- | Tool | Best For | SpecFact's Focus |
319
- |------|----------|------------------|
320
- | **GitHub Spec-Kit** | Greenfield specs, multi-language, interactive authoring | **Brownfield analysis**, runtime enforcement, formal verification |
321
- | **OpenSpec** | Specification anchoring, change tracking, cross-repo workflows | **Code analysis**, contract enforcement, DevOps integration |
322
- | **Traditional Testing** | Manual test writing, code review | **Automated gap detection**, contract-first validation, CI/CD gates |
323
+ ## 🚀 Quick Start
323
324
 
324
- **Key Differentiators:**
325
+ ### Step 1: Install SpecFact CLI
325
326
 
326
- * ✅ **Brownfield-first** - Reverse engineers existing code (primary use case)
327
- * **Runtime enforcement** - Contracts prevent regressions automatically
328
- * ✅ **Formal verification** - CrossHair symbolic execution (not just LLM suggestions)
329
- * ✅ **Team collaboration** - Role-based workflows for agile/scrum teams
330
- * ✅ **Works offline** - No API keys, no cloud, zero vendor lock-in
327
+ ```bash
328
+ # Zero-install (recommended - no setup needed)
329
+ uvx specfact-cli@latest
331
330
 
332
- **Compared to spec-kit & OpenSpec**: Those shine for brand-new features (0→1) and change tracking. SpecFact also excels when modernizing existing behavior (1→n), especially when you need runtime safety nets.
331
+ # Or install globally
332
+ pip install -U specfact-cli
333
+ ```
333
334
 
334
- 👉 **[See detailed comparison guide](docs/guides/speckit-comparison.md)** - Understand when to use SpecFact, Spec-Kit, OpenSpec, or all together
335
+ ### Step 2: Initialize IDE Integration
335
336
 
336
- ### The Problem It Solves
337
+ **Set up slash commands in your IDE (Cursor, VS Code, Copilot, etc.):**
337
338
 
338
- * ❌ **Legacy code** with no documentation or outdated specs
339
- * **Missing tests** and contracts that should exist
340
- * ❌ **Regressions** introduced during refactoring/modernization
341
- * ❌ **No safety net** to catch bugs before production
339
+ ```bash
340
+ # Auto-detect IDE and initialize
341
+ specfact init
342
342
 
343
- ### The Solution
343
+ # Or specify IDE explicitly
344
+ specfact init --ide cursor
345
+ specfact init --ide vscode
344
346
 
345
- SpecFact CLI:
347
+ # Install required packages for contract enhancement
348
+ specfact init --ide cursor --install-deps
349
+ ```
346
350
 
347
- 1. **Analyzes** your existing code → Extracts specs automatically
348
- 2. **Finds gaps** → Missing tests, contracts, documentation
349
- 3. **Enforces contracts** → Prevents regressions with runtime validation
350
- 4. **Integrates** → Works with VS Code, Cursor, GitHub Actions, pre-commit hooks
351
+ **What this does:**
351
352
 
352
- **Works offline. No account required. Zero vendor lock-in.**
353
+ - Copies prompt templates to your IDE
354
+ - Makes slash commands available in your IDE's AI chat
355
+ - Optionally installs required packages (`beartype`, `icontract`, `crosshair-tool`, `pytest`)
353
356
 
354
- ### How It Works
357
+ ### Step 3: Run Your First Analysis
355
358
 
356
- SpecFact follows a simple workflow that analyzes existing code and enforces contracts to prevent regressions:
359
+ **In your IDE's AI chat, use the slash command:**
357
360
 
358
- ```
359
- ┌────────────────────┐
360
- Analyze Legacy │
361
- │ Code │
362
- └────────┬───────────┘
363
- │ extract specs automatically
364
-
365
- ┌────────────────────┐
366
- │ Find Gaps │
367
- │ (tests, contracts) │◀──── feedback loop ──────┐
368
- └────────┬───────────┘ │
369
- │ add contracts │
370
- ▼ │
371
- ┌────────────────────┐ │
372
- │ Enforce Contracts │──────────────────────────┘
373
- │ (runtime validation)│
374
- └────────┬───────────┘
375
- │ modernize safely
376
-
377
- ┌────────────────────┐
378
- │ Prevent Regressions│
379
- │ (safety net) │
380
- └────────────────────┘
381
-
382
- 1. Analyze your existing code to extract specs automatically
383
- 2. Find gaps in tests, contracts, and documentation
384
- 3. Add contracts to critical paths for runtime enforcement
385
- 4. Modernize safely knowing contracts will catch regressions
361
+ ```bash
362
+ # In IDE chat (Cursor, VS Code, Copilot, etc.)
363
+ /specfact.01-import my-project --repo .
386
364
  ```
387
365
 
388
- ```mermaid
389
- graph TB
390
- subgraph "Your Legacy Code"
391
- LC[Legacy Python Code<br/>No docs, no tests]
392
- end
393
-
394
- subgraph "SpecFact Analysis"
395
- A1[import from-code<br/>Extract specs]
396
- A2[Find Gaps<br/>Missing tests & contracts]
397
- A3[Generate Plan Bundle<br/>Features & Stories]
398
- end
399
-
400
- subgraph "Contract Enforcement"
401
- E1[Add Contracts<br/>Runtime validation]
402
- E2[Enforce SDD<br/>Quality gates]
403
- E3[CI/CD Integration<br/>Block bad code]
404
- end
405
-
406
- subgraph "Team Collaboration"
407
- T1[Export by Role<br/>PO, Architect, Dev]
408
- T2[Markdown Workflows<br/>No YAML editing]
409
- T3[Sync to DevOps<br/>GitHub, Linear, Jira]
410
- end
411
-
412
- subgraph "Safety Net"
413
- S1[Prevent Regressions<br/>Catch bugs early]
414
- S2[Modernize Safely<br/>Refactor with confidence]
415
- end
416
-
417
- LC -->|Step 1| A1
418
- A1 --> A2
419
- A2 --> A3
420
- A3 -->|Step 2| E1
421
- E1 --> E2
422
- E2 --> E3
423
- E3 -->|Step 3| S1
424
- S1 --> S2
425
-
426
- A3 -->|Optional| T1
427
- T1 --> T2
428
- T2 --> T3
429
-
430
- style LC fill:#ef4444,stroke:#dc2626,stroke-width:2px,color:#fff
431
- style A1 fill:#f97316,stroke:#c2410c,stroke-width:2px,color:#fff
432
- style A2 fill:#f97316,stroke:#c2410c,stroke-width:2px,color:#fff
433
- style A3 fill:#f97316,stroke:#c2410c,stroke-width:2px,color:#fff
434
- style E1 fill:#3b82f6,stroke:#1e40af,stroke-width:2px,color:#fff
435
- style E2 fill:#3b82f6,stroke:#1e40af,stroke-width:2px,color:#fff
436
- style E3 fill:#3b82f6,stroke:#1e40af,stroke-width:2px,color:#fff
437
- style T1 fill:#10b981,stroke:#047857,stroke-width:2px,color:#fff
438
- style T2 fill:#10b981,stroke:#047857,stroke-width:2px,color:#fff
439
- style T3 fill:#10b981,stroke:#047857,stroke-width:2px,color:#fff
440
- style S1 fill:#8b5cf6,stroke:#6d28d9,stroke-width:2px,color:#fff
441
- style S2 fill:#8b5cf6,stroke:#6d28d9,stroke-width:2px,color:#fff
442
- ```
366
+ **Or use the CLI directly:**
443
367
 
444
- ### Typical Workflow
445
-
446
- ```mermaid
447
- sequenceDiagram
448
- participant Dev as Developer
449
- participant SF as SpecFact CLI
450
- participant Code as Legacy Code
451
- participant CI as CI/CD
452
-
453
- Note over Dev,CI: Step 1: Analyze Legacy Code
454
- Dev->>SF: specfact import from-code my-project
455
- SF->>Code: Analyze Python files
456
- Code-->>SF: Extract features & stories
457
- SF-->>Dev: Plan bundle created
458
-
459
- Note over Dev,CI: Step 2: Find & Fix Gaps
460
- Dev->>SF: specfact analyze gaps my-project
461
- SF-->>Dev: Missing tests & contracts found
462
- Dev->>Dev: Add tests & contracts
463
-
464
- Note over Dev,CI: Step 3: Enforce Contracts
465
- Dev->>SF: specfact enforce sdd my-project
466
- SF->>SF: Validate contracts
467
- SF-->>Dev: Quality gates configured
468
-
469
- Note over Dev,CI: Step 4: Modernize Safely
470
- Dev->>Code: Refactor code
471
- Code->>CI: Push changes
472
- CI->>SF: Run contract validation
473
- SF-->>CI: ✅ Pass or ❌ Block
474
-
475
- alt Contracts Pass
476
- CI-->>Dev: ✅ Merge allowed
477
- else Contracts Fail
478
- CI-->>Dev: ❌ Merge blocked
479
- Dev->>Code: Fix violations
480
- end
368
+ ```bash
369
+ # Analyze legacy codebase (most common use case)
370
+ specfact import from-code my-project --repo .
481
371
  ```
482
372
 
373
+ **⏱️ 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.
374
+
375
+ **💾 Checkpointing:** Features are saved immediately after initial analysis, so you can safely interrupt and resume the import process without losing progress.
376
+
377
+ **⚡ Performance:** Optimized for large codebases with pre-computed AST parsing and file hashes (5-15x faster than previous versions).
378
+
379
+ **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.
380
+
381
+ 👉 **[Getting Started Guide](docs/getting-started/README.md)** - Complete walkthrough with examples
382
+ 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** ⭐ - Complete AI-assisted development workflow
383
+
483
384
  ---
484
385
 
485
- ## 🚀 Quick Start
386
+ ## 🎯 Find Your Path
486
387
 
487
- ### Install (10 seconds)
388
+ ### New to SpecFact?
488
389
 
489
- ```bash
490
- # Zero-install (recommended - no setup needed)
491
- uvx specfact-cli@latest
390
+ **Primary Goal**: Analyze legacy Python → find gaps → enforce contracts
492
391
 
493
- # Or install globally
494
- pip install -U specfact-cli
495
- ```
392
+ 1. **[Getting Started](docs/getting-started/README.md)** - Install and run your first command
393
+ 2. **[Command Chains Reference](docs/guides/command-chains.md)** ⭐ **NEW** - Complete workflows from start to finish
394
+ 3. **[Common Tasks Quick Reference](docs/guides/common-tasks.md)** ⭐ **NEW** - Quick answers to "How do I X?"
395
+ 4. **[Modernizing Legacy Code?](docs/guides/brownfield-engineer.md)** ⭐ - Brownfield-first guide
396
+ 5. **[The Brownfield Journey](docs/guides/brownfield-journey.md)** ⭐ - Complete modernization workflow
496
397
 
497
- ### Your First Command (< 60 seconds)
398
+ **Time**: < 10 minutes | **Result**: Running your first brownfield analysis
498
399
 
499
- **Analyze your existing code:**
400
+ ### Using AI IDEs? (Cursor, Copilot, Claude)
500
401
 
501
- ```bash
502
- # Analyze legacy codebase (most common use case)
503
- specfact import from-code my-project --repo .
402
+ **Primary Goal**: Let SpecFact find gaps, use your AI IDE to fix them
504
403
 
505
- # Or start a new project
506
- specfact plan init my-project --interactive
507
- ```
404
+ 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** ⭐ **NEW** - Complete AI-assisted development workflow
405
+
406
+ ### Working with a Team?
407
+
408
+ **Primary Goal**: Enable team collaboration with role-based workflows
508
409
 
509
- **That's it!** SpecFact will:
410
+ 👉 **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** - Persona-based team collaboration
510
411
 
511
- * Extract features and stories from your code
512
- * Find missing tests and contracts
513
- * Generate a plan bundle you can enforce
412
+ ### Need Integrations?
514
413
 
515
- 👉 **[Getting Started Guide](docs/getting-started/README.md)** - Complete walkthrough with examples
414
+ **Primary Goal**: Integrate with Spec-Kit, OpenSpec, Specmatic, or DevOps tools
415
+
416
+ 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** ⭐ **NEW** - Complete guide to all integrations
516
417
 
517
418
  ---
518
419
 
@@ -520,28 +421,37 @@ specfact plan init my-project --interactive
520
421
 
521
422
  ### 🔍 Code Analysis
522
423
 
523
- * **Reverse engineer** legacy code into documented specs
524
- * **Find gaps** in tests, contracts, and documentation
525
- * **Works with** any Python project (no special setup required)
424
+ - **Reverse engineer** legacy code into documented specs
425
+ - **Find gaps** in tests, contracts, and documentation
426
+ - **Works with** any Python project (no special setup required)
427
+
428
+ 👉 **[Command Chains](docs/guides/command-chains.md)** - See complete workflows
526
429
 
527
430
  ### 🛡️ Contract Enforcement
528
431
 
529
- * **Prevent regressions** with runtime contract validation
530
- * **CI/CD integration** - Block bad code from merging
531
- * **Works offline** - No cloud required
432
+ - **Prevent regressions** with runtime contract validation
433
+ - **CI/CD integration** - Block bad code from merging
434
+ - **Works offline** - No cloud required
435
+
436
+ 👉 **[Command Reference](docs/reference/commands.md)** - All enforcement commands
532
437
 
533
438
  ### 👥 Team Collaboration
534
439
 
535
- * **Role-based workflows** - Product Owners, Architects, Developers work in parallel
536
- * **Markdown-based** - No YAML editing required
537
- * **Agile/scrum ready** - DoR checklists, story points, dependencies
440
+ - **Role-based workflows** - Product Owners, Architects, Developers work in parallel
441
+ - **Markdown-based** - No YAML editing required
442
+ - **Agile/scrum ready** - DoR checklists, story points, dependencies
443
+
444
+ 👉 **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** - Team collaboration guide
538
445
 
539
446
  ### 🔌 Integrations
540
447
 
541
- * **VS Code, Cursor** - Catch bugs before you commit
542
- * **GitHub Actions** - Automated quality gates
543
- * **AI IDEs** - Generate prompts for fixing gaps
544
- * **DevOps tools** - Sync with GitHub Issues, Linear, Jira
448
+ - **VS Code, Cursor** - Catch bugs before you commit
449
+ - **GitHub Actions** - Automated quality gates
450
+ - **AI IDEs** - Generate prompts for fixing gaps
451
+ - **DevOps tools** - Sync with GitHub Issues, Linear, Jira
452
+ - **Spec-Kit, OpenSpec, Specmatic** - Works with your existing tools
453
+
454
+ 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** - All integration options
545
455
 
546
456
  ---
547
457
 
@@ -551,137 +461,102 @@ specfact plan init my-project --interactive
551
461
 
552
462
  **Problem:** Existing codebase with no specs or outdated documentation
553
463
 
554
- ```bash
555
- # Step 1: Analyze your code
556
- specfact import from-code my-project --repo .
557
-
558
- # Step 2: Review what was found
559
- specfact plan review my-project
560
-
561
- # Step 3: Enforce contracts to prevent regressions
562
- specfact enforce sdd my-project
563
- ```
564
-
565
464
  👉 **[Brownfield Modernization Guide](docs/guides/brownfield-engineer.md)** - Complete walkthrough
566
465
 
567
466
  ### 2. Working with a Team
568
467
 
569
468
  **Problem:** Need team collaboration with role-based workflows
570
469
 
571
- ```bash
572
- # Product Owner: Export backlog
573
- specfact project export --bundle my-project --persona product-owner
574
-
575
- # Architect: Export technical design
576
- specfact project export --bundle my-project --persona architect
577
-
578
- # Developer: Export implementation tasks
579
- specfact project export --bundle my-project --persona developer
580
- ```
581
-
582
470
  👉 **[Agile/Scrum Workflows Guide](docs/guides/agile-scrum-workflows.md)** - Team collaboration guide
583
471
 
584
472
  ### 3. Using AI IDEs (Cursor, Copilot, Claude)
585
473
 
586
474
  **Problem:** Want AI to fix gaps, but need validation
587
475
 
588
- ```bash
589
- # Step 1: Find gaps
590
- specfact analyze gaps --bundle my-project
591
-
592
- # Step 2: Generate AI prompt
593
- specfact generate fix-prompt GAP-001 --bundle my-project
594
-
595
- # Step 3: Copy to AI IDE → AI fixes → Validate
596
- specfact enforce sdd --bundle my-project
597
- ```
598
-
599
- 👉 **[AI IDE Integration](docs/guides/ide-integration.md)** - Setup guide
600
-
601
- ---
602
-
603
- ## See It In Action
604
-
605
- We ran SpecFact CLI **on itself** to prove it works:
476
+ 👉 **[AI IDE Workflow Guide](docs/guides/ai-ide-workflow.md)** - Complete AI-assisted workflow
606
477
 
607
- * Analyzed 32 legacy Python files → Found **32 features** and **81 stories** in **3 seconds**
608
- * 🚫 Set enforcement → **Blocked 2 HIGH violations** automatically
609
- * 📊 Compared plans → Found **24 deviations** in **5 seconds**
478
+ ### 4. Integrating with Other Tools
610
479
 
611
- **Total time**: < 10 seconds | **Result**: Found real bugs and inconsistencies
480
+ **Problem:** Want to use SpecFact with Spec-Kit, OpenSpec, or Specmatic
612
481
 
613
- 👉 **[Read the complete example](docs/examples/dogfooding-specfact-cli.md)** - See actual commands and outputs
482
+ 👉 **[Integrations Overview](docs/guides/integrations-overview.md)** - Choose the right integration
614
483
 
615
484
  ---
616
485
 
617
486
  ## Documentation
618
487
 
619
- ### 🎯 Find Your Path
488
+ ### Quick References
620
489
 
621
- **New to SpecFact?**
490
+ - **[Command Chains](docs/guides/command-chains.md)** ⭐ **NEW** - Complete workflows from start to finish
491
+ - **[Common Tasks](docs/guides/common-tasks.md)** ⭐ **NEW** - Quick answers to "How do I X?"
492
+ - **[Command Reference](docs/reference/commands.md)** - All commands documented
622
493
 
623
- 1. **[Getting Started](docs/getting-started/README.md)** - Install and first commands
624
- 2. **[Tutorial: Using SpecFact with OpenSpec or Spec-Kit](docs/getting-started/tutorial-openspec-speckit.md)** ⭐ **NEW** - Complete beginner-friendly tutorial
625
- 3. **[Modernizing Legacy Code?](docs/guides/brownfield-engineer.md)** ⭐ - Complete guide
626
- 4. **[Use Cases](docs/guides/use-cases.md)** - Common scenarios
627
- 5. **[Command Reference](docs/reference/commands.md)** - All commands
494
+ ### Getting Started
628
495
 
629
- **Working with a Team?**
496
+ - **[Getting Started Guide](docs/getting-started/README.md)** - Install and first commands
497
+ - **[Modernizing Legacy Code?](docs/guides/brownfield-engineer.md)** ⭐ - Brownfield-first guide
498
+ - **[The Brownfield Journey](docs/guides/brownfield-journey.md)** ⭐ - Complete modernization workflow
630
499
 
631
- * **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** ⭐ - Persona-based collaboration
632
- * **[Project Commands](docs/reference/commands.md#project---project-bundle-management)** - Export/import workflows
500
+ ### Guides
633
501
 
634
- **Want Integrations?**
502
+ - **[AI IDE Workflow](docs/guides/ai-ide-workflow.md)** ⭐ **NEW** - AI-assisted development
503
+ - **[Agile/Scrum Workflows](docs/guides/agile-scrum-workflows.md)** ⭐ - Team collaboration
504
+ - **[Integrations Overview](docs/guides/integrations-overview.md)** ⭐ **NEW** - All integrations
505
+ - **[Use Cases](docs/guides/use-cases.md)** - Common scenarios
635
506
 
636
- * **[IDE Integration](docs/guides/ide-integration.md)** - VS Code, Cursor setup
637
- * **[Integration Showcases](docs/examples/integration-showcases/)** - Real bugs fixed
638
- * **[GitHub Actions](docs/guides/use-cases.md#use-case-4-cicd-integration)** - CI/CD setup
507
+ ### Integration Guides
639
508
 
640
- **Advanced Topics**
509
+ - **[Spec-Kit Journey](docs/guides/speckit-journey.md)** - From Spec-Kit to SpecFact
510
+ - **[OpenSpec Journey](docs/guides/openspec-journey.md)** - OpenSpec integration
511
+ - **[Specmatic Integration](docs/guides/specmatic-integration.md)** - API contract testing
512
+ - **[DevOps Adapter Integration](docs/guides/devops-adapter-integration.md)** - GitHub Issues, Linear, Jira
641
513
 
642
- * **[Architecture](docs/reference/architecture.md)** - How it works
643
- * **[Schema Versioning](docs/reference/schema-versioning.md)** - Bundle schemas
644
- * **[Testing Guide](docs/technical/testing.md)** - Development setup
645
-
646
- 👉 **[Full Documentation Index](docs/README.md)** - Browse all documentation
514
+ 👉 **[Full Documentation Index](docs/README.md)** - Browse all documentation
515
+ 👉 **[Online Documentation](https://docs.specfact.io/)** - Complete documentation site
647
516
 
648
517
  ---
649
518
 
650
- ## Version 0.22.0
519
+ ## How SpecFact Compares
520
+
521
+ **New to spec-driven development?** Here's how SpecFact compares to other tools:
651
522
 
652
- **Latest release** introduces bridge adapter architecture refactoring and OpenSpec integration.
523
+ | Tool | Best For | SpecFact's Focus |
524
+ |------|----------|------------------|
525
+ | **GitHub Spec-Kit** | Greenfield specs, multi-language, interactive authoring | **Brownfield analysis**, runtime enforcement, formal verification |
526
+ | **OpenSpec** | Specification anchoring, change tracking, cross-repo workflows | **Code analysis**, contract enforcement, DevOps integration |
527
+ | **Traditional Testing** | Manual test writing, code review | **Automated gap detection**, contract-first validation, CI/CD gates |
653
528
 
654
- **What's New:**
529
+ **Key Differentiators:**
655
530
 
656
- * ✅ **Bridge Adapter Architecture** - Plugin-based adapter registry pattern for extensible tool integration
657
- * ✅ **OpenSpec Adapter** - Read-only sync from OpenSpec to SpecFact (v0.22.0+)
658
- * ✅ **SpecKitAdapter** - Refactored Spec-Kit integration using adapter pattern
659
- * ✅ **Command Updates** - Constitution commands moved to `specfact sdd constitution`
660
- * ✅ **Breaking Changes** - Removed `specfact bridge` command group, `implement`, and `generate tasks` commands
531
+ - ✅ **Brownfield-first** - Reverse engineers existing code (primary use case)
532
+ - ✅ **Runtime enforcement** - Contracts prevent regressions automatically
533
+ - ✅ **Formal verification** - CrossHair symbolic execution (not just LLM suggestions)
534
+ - ✅ **Team collaboration** - Role-based workflows for agile/scrum teams
535
+ - ✅ **Works offline** - No API keys, no cloud, zero vendor lock-in
661
536
 
662
- 👉 **[Changelog](CHANGELOG.md)** - Complete release history
537
+ 👉 **[See detailed comparison guide](docs/guides/speckit-comparison.md)** - Understand when to use SpecFact, Spec-Kit, OpenSpec, or all together
663
538
 
664
539
  ---
665
540
 
666
- ## Why SpecFact?
541
+ ## Benefits
667
542
 
668
543
  ### Works with Your Existing Tools
669
544
 
670
- * ✅ **No new platform** - Pure CLI, works offline
671
- * ✅ **No account required** - Fully local, zero vendor lock-in
672
- * ✅ **Integrates everywhere** - VS Code, Cursor, GitHub Actions, pre-commit hooks
545
+ - ✅ **No new platform** - Pure CLI, works offline
546
+ - ✅ **No account required** - Fully local, zero vendor lock-in
547
+ - ✅ **Integrates everywhere** - VS Code, Cursor, GitHub Actions, pre-commit hooks
673
548
 
674
549
  ### Built for Real Teams
675
550
 
676
- * ✅ **Role-based workflows** - Product Owners, Architects, Developers work in parallel
677
- * ✅ **Markdown-based** - No YAML editing, human-readable conflicts
678
- * ✅ **Agile/scrum ready** - DoR checklists, story points, sprint planning
551
+ - ✅ **Role-based workflows** - Product Owners, Architects, Developers work in parallel
552
+ - ✅ **Markdown-based** - No YAML editing, human-readable conflicts
553
+ - ✅ **Agile/scrum ready** - DoR checklists, story points, sprint planning
679
554
 
680
555
  ### Proven Results
681
556
 
682
- * ✅ **Catches real bugs** - See [Integration Showcases](docs/examples/integration-showcases/)
683
- * ✅ **Prevents regressions** - Runtime contract enforcement
684
- * ✅ **Works on legacy code** - Analyzed itself successfully
557
+ - ✅ **Catches real bugs** - See [Integration Showcases](docs/examples/integration-showcases/)
558
+ - ✅ **Prevents regressions** - Runtime contract enforcement
559
+ - ✅ **Works on legacy code** - Analyzed itself successfully
685
560
 
686
561
  ---
687
562
 
@@ -702,9 +577,9 @@ hatch run contract-test-full
702
577
 
703
578
  **Apache License 2.0** - Open source and enterprise-friendly
704
579
 
705
- * ✅ Free to use for any purpose (commercial or non-commercial)
706
- * ✅ Modify and distribute as needed
707
- * ✅ Enterprise-friendly with explicit patent grant
580
+ - ✅ Free to use for any purpose (commercial or non-commercial)
581
+ - ✅ Modify and distribute as needed
582
+ - ✅ Enterprise-friendly with explicit patent grant
708
583
 
709
584
  [Full license](LICENSE.md)
710
585
 
@@ -712,10 +587,10 @@ hatch run contract-test-full
712
587
 
713
588
  ## Support
714
589
 
715
- * 💬 **Questions?** [GitHub Discussions](https://github.com/nold-ai/specfact-cli/discussions)
716
- * 🐛 **Found a bug?** [GitHub Issues](https://github.com/nold-ai/specfact-cli/issues)
717
- * 📧 **Need help?** [hello@noldai.com](mailto:hello@noldai.com)
718
- * 🌐 **Learn more:** [noldai.com](https://noldai.com)
590
+ - 💬 **Questions?** [GitHub Discussions](https://github.com/nold-ai/specfact-cli/discussions)
591
+ - 🐛 **Found a bug?** [GitHub Issues](https://github.com/nold-ai/specfact-cli/issues)
592
+ - 📧 **Need help?** [hello@noldai.com](mailto:hello@noldai.com)
593
+ - 🌐 **Learn more:** [specfact.com](https://specfact.com) • [specfact.io](https://specfact.io) • [specfact.dev](https://specfact.dev)
719
594
 
720
595
  ---
721
596