specsmith 0.15.3.dev567__tar.gz → 0.15.3.dev570__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 (301) hide show
  1. {specsmith-0.15.3.dev567/src/specsmith.egg-info → specsmith-0.15.3.dev570}/PKG-INFO +8 -1
  2. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/README.md +7 -0
  3. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/pyproject.toml +1 -1
  4. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/codity.py +15 -0
  5. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/governance.py +15 -0
  6. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/gitignore.j2 +28 -2
  7. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570/src/specsmith.egg-info}/PKG-INFO +8 -1
  8. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_scaffolder.py +10 -0
  9. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/LICENSE +0 -0
  10. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/setup.cfg +0 -0
  11. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/__init__.py +0 -0
  12. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/belief.py +0 -0
  13. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/certainty.py +0 -0
  14. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/failure_graph.py +0 -0
  15. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/py.typed +0 -0
  16. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/recovery.py +0 -0
  17. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/session.py +0 -0
  18. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/stress_tester.py +0 -0
  19. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/epistemic/trace.py +0 -0
  20. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/__init__.py +0 -0
  21. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/__main__.py +0 -0
  22. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/__init__.py +0 -0
  23. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/broker.py +0 -0
  24. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/chat_runner.py +0 -0
  25. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/cleanup.py +0 -0
  26. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/context_seed.py +0 -0
  27. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/core.py +0 -0
  28. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/__init__.py +0 -0
  29. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/_status.py +0 -0
  30. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/dag.py +0 -0
  31. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  32. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/events.py +0 -0
  33. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/dispatch/result.py +0 -0
  34. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/endpoints.py +0 -0
  35. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/events.py +0 -0
  36. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/execution_profiles.py +0 -0
  37. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/fallback.py +0 -0
  38. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/hf_leaderboard.py +0 -0
  39. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/hf_sync.py +0 -0
  40. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/indexer.py +0 -0
  41. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/llm_client.py +0 -0
  42. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/mcp.py +0 -0
  43. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/memory.py +0 -0
  44. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/model_intelligence.py +0 -0
  45. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/model_profiles.py +0 -0
  46. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/orchestrator.py +0 -0
  47. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/permissions.py +0 -0
  48. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/profiles.py +0 -0
  49. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/provider_registry.py +0 -0
  50. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/repl.py +0 -0
  51. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/router.py +0 -0
  52. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/rules.py +0 -0
  53. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/runner.py +0 -0
  54. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/safety.py +0 -0
  55. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/spawner.py +0 -0
  56. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/suggester.py +0 -0
  57. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/teams.py +0 -0
  58. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/tools.py +0 -0
  59. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/verifier.py +0 -0
  60. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/agent/voice.py +0 -0
  61. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/architect.py +0 -0
  62. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/auditor.py +0 -0
  63. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/auth.py +0 -0
  64. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/block_export.py +0 -0
  65. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/channel.py +0 -0
  66. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/ci_manager.py +0 -0
  67. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/cli.py +0 -0
  68. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/commands/__init__.py +0 -0
  69. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/commands/intelligence.py +0 -0
  70. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/__init__.py +0 -0
  71. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/_compat.py +0 -0
  72. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/checker.py +0 -0
  73. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/evidence.py +0 -0
  74. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/regulations.py +0 -0
  75. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compliance/reporter.py +0 -0
  76. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/compressor.py +0 -0
  77. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/config.py +0 -0
  78. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/console_utils.py +0 -0
  79. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/context_orchestrator.py +0 -0
  80. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/context_window.py +0 -0
  81. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/credit_analyzer.py +0 -0
  82. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/credits.py +0 -0
  83. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/__init__.py +0 -0
  84. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/base.py +0 -0
  85. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/citations.py +0 -0
  86. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/fpd.py +0 -0
  87. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/odp.py +0 -0
  88. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/patentsview.py +0 -0
  89. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/pfw.py +0 -0
  90. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/ppubs.py +0 -0
  91. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/datasources/ptab.py +0 -0
  92. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/differ.py +0 -0
  93. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/doctor.py +0 -0
  94. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/drive.py +0 -0
  95. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/editor.py +0 -0
  96. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/__init__.py +0 -0
  97. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/belief.py +0 -0
  98. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/certainty.py +0 -0
  99. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/failure_graph.py +0 -0
  100. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/recovery.py +0 -0
  101. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/epistemic/stress_tester.py +0 -0
  102. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/esdb/__init__.py +0 -0
  103. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/esdb/_license.py +0 -0
  104. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/esdb/bridge.py +0 -0
  105. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/esdb/sqlite_store.py +0 -0
  106. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/eval/__init__.py +0 -0
  107. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/eval/builtins.py +0 -0
  108. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/eval/runner.py +0 -0
  109. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/executor.py +0 -0
  110. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/exporter.py +0 -0
  111. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/governance_logic.py +0 -0
  112. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/governance_store.py +0 -0
  113. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/governance_yaml.py +0 -0
  114. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/__init__.py +0 -0
  115. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/app.py +0 -0
  116. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/main_window.py +0 -0
  117. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/session_tab.py +0 -0
  118. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/theme.py +0 -0
  119. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/__init__.py +0 -0
  120. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/chat_view.py +0 -0
  121. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/input_bar.py +0 -0
  122. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  123. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/token_meter.py +0 -0
  124. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  125. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/widgets/update_checker.py +0 -0
  126. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/gui/worker.py +0 -0
  127. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/history_search.py +0 -0
  128. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/importer.py +0 -0
  129. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/instinct.py +0 -0
  130. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/__init__.py +0 -0
  131. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/agent_skill.py +0 -0
  132. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/aider.py +0 -0
  133. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/base.py +0 -0
  134. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/claude_code.py +0 -0
  135. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/copilot.py +0 -0
  136. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/cursor.py +0 -0
  137. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/gemini.py +0 -0
  138. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/integrations/windsurf.py +0 -0
  139. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/issue_reporter.py +0 -0
  140. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/languages.py +0 -0
  141. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/ledger.py +0 -0
  142. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/mcp_generator.py +0 -0
  143. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/mcp_server.py +0 -0
  144. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/__init__.py +0 -0
  145. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  146. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  147. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  148. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  149. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  150. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/m006_session_governance.py +0 -0
  151. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/migrations/runner.py +0 -0
  152. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/ollama_cmds.py +0 -0
  153. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/patent.py +0 -0
  154. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/paths.py +0 -0
  155. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/phase.py +0 -0
  156. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/plugins.py +0 -0
  157. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/profiles.py +0 -0
  158. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/rate_limits.py +0 -0
  159. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/releaser.py +0 -0
  160. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/requirements.py +0 -0
  161. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/requirements_parser.py +0 -0
  162. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/retrieval.py +0 -0
  163. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/safe_write.py +0 -0
  164. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/scaffolder.py +0 -0
  165. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/serve.py +0 -0
  166. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/session.py +0 -0
  167. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/session_init.py +0 -0
  168. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/session_store.py +0 -0
  169. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/__init__.py +0 -0
  170. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/ai_agents.py +0 -0
  171. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/cloud.py +0 -0
  172. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/corporate.py +0 -0
  173. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/cross_platform.py +0 -0
  174. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/data_engineering.py +0 -0
  175. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/devops.py +0 -0
  176. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/docs.py +0 -0
  177. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/embedded.py +0 -0
  178. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/hardware.py +0 -0
  179. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/mobile.py +0 -0
  180. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/platform_engineering.py +0 -0
  181. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/productivity.py +0 -0
  182. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/software_engineering.py +0 -0
  183. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/specsmith_skills.py +0 -0
  184. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/ssh.py +0 -0
  185. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills/web_backend.py +0 -0
  186. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/skills_builder.py +0 -0
  187. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/sync.py +0 -0
  188. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/agents.md.j2 +0 -0
  189. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  190. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  191. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  192. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  193. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  194. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  195. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  196. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/community/security.md.j2 +0 -0
  197. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  198. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  199. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  200. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  201. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  202. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/editorconfig.j2 +0 -0
  203. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/gitattributes.j2 +0 -0
  204. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/go/go.mod.j2 +0 -0
  205. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/go/main.go.j2 +0 -0
  206. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  207. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  208. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  209. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  210. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  211. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  212. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  213. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  214. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  215. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  216. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  217. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/js/package.json.j2 +0 -0
  218. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/ledger.md.j2 +0 -0
  219. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/python/cli.py.j2 +0 -0
  220. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/python/init.py.j2 +0 -0
  221. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  222. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/readme.md.j2 +0 -0
  223. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  224. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  225. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  226. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  227. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  228. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  229. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  230. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  231. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  232. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/tool_installer.py +0 -0
  233. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/toolrules.py +0 -0
  234. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/tools.py +0 -0
  235. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/trace.py +0 -0
  236. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/updater.py +0 -0
  237. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/upgrader.py +0 -0
  238. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/validator.py +0 -0
  239. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs/__init__.py +0 -0
  240. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs/base.py +0 -0
  241. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs/bitbucket.py +0 -0
  242. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs/github.py +0 -0
  243. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs/gitlab.py +0 -0
  244. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/vcs_commands.py +0 -0
  245. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/wi_store.py +0 -0
  246. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/wireframes.py +0 -0
  247. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith/workspace.py +0 -0
  248. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith.egg-info/SOURCES.txt +0 -0
  249. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith.egg-info/dependency_links.txt +0 -0
  250. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith.egg-info/entry_points.txt +0 -0
  251. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith.egg-info/requires.txt +0 -0
  252. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/src/specsmith.egg-info/top_level.txt +0 -0
  253. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_CMD_001.py +0 -0
  254. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_agent_profiles.py +0 -0
  255. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_agent_run_feedback.py +0 -0
  256. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_agent_runner_ready.py +0 -0
  257. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_ai_client.py +0 -0
  258. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_ai_intelligence.py +0 -0
  259. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_auditor.py +0 -0
  260. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_channel.py +0 -0
  261. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_chat_diff_decision.py +0 -0
  262. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_chat_runner_openai_compat.py +0 -0
  263. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_chat_stdin_protocol.py +0 -0
  264. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_cli.py +0 -0
  265. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_cli_workflows_history_drive.py +0 -0
  266. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_compliance.py +0 -0
  267. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_compliance_governance.py +0 -0
  268. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_compressor.py +0 -0
  269. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_dispatch.py +0 -0
  270. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_e2e_nexus.py +0 -0
  271. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_endpoints_cli.py +0 -0
  272. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_endpoints_store.py +0 -0
  273. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_epistemic.py +0 -0
  274. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_esdb_license.py +0 -0
  275. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_esdb_sqlite.py +0 -0
  276. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_fallback_chain.py +0 -0
  277. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_importer.py +0 -0
  278. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_integrations.py +0 -0
  279. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_integrations_codity.py +0 -0
  280. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_intelligence.py +0 -0
  281. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_issue_reporter.py +0 -0
  282. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_mcp_client.py +0 -0
  283. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_mcp_server.py +0 -0
  284. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_new_modules.py +0 -0
  285. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_nexus.py +0 -0
  286. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_permissions.py +0 -0
  287. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_phase1_4_new.py +0 -0
  288. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_phase34_completion.py +0 -0
  289. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_rate_limits.py +0 -0
  290. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_req_248_262.py +0 -0
  291. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_req_358_359.py +0 -0
  292. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_skill_marketplace.py +0 -0
  293. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_skills_mcp.py +0 -0
  294. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_smoke.py +0 -0
  295. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_suggester.py +0 -0
  296. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_tools.py +0 -0
  297. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_validator.py +0 -0
  298. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_vcs.py +0 -0
  299. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_warp_parity.py +0 -0
  300. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_warp_parity_followup.py +0 -0
  301. {specsmith-0.15.3.dev567 → specsmith-0.15.3.dev570}/tests/test_wi_lifecycle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.15.3.dev567
3
+ Version: 0.15.3.dev570
4
4
  Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
5
5
  Author: Layer1Labs Silicon, Inc.
6
6
  License-Expression: MIT
@@ -231,6 +231,11 @@ No additional packages, no license key, no configuration — it works out of the
231
231
  specsmith esdb status # shows: SQLite (free, MIT) — active by default
232
232
  ```
233
233
 
234
+ **ESDB version-control policy (this repository):**
235
+ - Commit canonical SQLite state file: `.specsmith/esdb.sqlite3`.
236
+ - Commit canonical ChronoMemory state files: `.chronomemory/events.wal` and `.chronomemory/snapshot.json`.
237
+ - Do not commit ChronoMemory timestamped backup copies under `.chronomemory/backup/` (regenerated by `specsmith save` / `specsmith esdb backup`).
238
+
234
239
  **Upgrading to chronomemory ChronoStore (commercial):**
235
240
 
236
241
  If you hold a chronomemory ESDB license, activate the commercial backend:
@@ -1048,6 +1053,8 @@ This generates:
1048
1053
  - `docs/codity-setup.md` — one-time setup checklist
1049
1054
  - Appends a TODO checklist to `LEDGER.md`
1050
1055
 
1056
+ **Windows note:** Codity's `install.sh` is Linux/macOS only. For native PowerShell use, install `codity.exe` from the official `codity-ai/codity-cli` GitHub release zip and place it on PATH (for example `~/.local/bin`).
1057
+
1051
1058
  **AGENTS.md rule (REQ-355):** Projects with Codity configured SHOULD run `codity review --staged` before any commit touching production code. HIGH-severity findings are blocking; MEDIUM findings require inline acknowledgement.
1052
1059
 
1053
1060
  See the `codity-ai-review` governance skill (`specsmith skill install codity-ai-review`) for the full CLI workflow reference.
@@ -153,6 +153,11 @@ No additional packages, no license key, no configuration — it works out of the
153
153
  specsmith esdb status # shows: SQLite (free, MIT) — active by default
154
154
  ```
155
155
 
156
+ **ESDB version-control policy (this repository):**
157
+ - Commit canonical SQLite state file: `.specsmith/esdb.sqlite3`.
158
+ - Commit canonical ChronoMemory state files: `.chronomemory/events.wal` and `.chronomemory/snapshot.json`.
159
+ - Do not commit ChronoMemory timestamped backup copies under `.chronomemory/backup/` (regenerated by `specsmith save` / `specsmith esdb backup`).
160
+
156
161
  **Upgrading to chronomemory ChronoStore (commercial):**
157
162
 
158
163
  If you hold a chronomemory ESDB license, activate the commercial backend:
@@ -970,6 +975,8 @@ This generates:
970
975
  - `docs/codity-setup.md` — one-time setup checklist
971
976
  - Appends a TODO checklist to `LEDGER.md`
972
977
 
978
+ **Windows note:** Codity's `install.sh` is Linux/macOS only. For native PowerShell use, install `codity.exe` from the official `codity-ai/codity-cli` GitHub release zip and place it on PATH (for example `~/.local/bin`).
979
+
973
980
  **AGENTS.md rule (REQ-355):** Projects with Codity configured SHOULD run `codity review --staged` before any commit touching production code. HIGH-severity findings are blocking; MEDIUM findings require inline acknowledgement.
974
981
 
975
982
  See the `codity-ai-review` governance skill (`specsmith skill install codity-ai-review`) for the full CLI workflow reference.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.15.3.dev567"
7
+ version = "0.15.3.dev570"
8
8
  description = "AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -229,6 +229,21 @@ steps:
229
229
  ```bash
230
230
  curl -fsSL https://cli.codity.ai/install.sh | sh
231
231
  ```
232
+ Native Windows (PowerShell) is also supported via GitHub Releases
233
+ (`codity-ai/codity-cli`), because the shell installer is Linux/macOS only:
234
+ ```powershell
235
+ # No official winget/scoop/choco package currently.
236
+ $release = Invoke-RestMethod -Uri "https://api.github.com/repos/codity-ai/codity-cli/releases/latest"
237
+ $version = $release.tag_name.TrimStart("v")
238
+ $assetName = "codity_" + $version + "_windows_amd64.zip"
239
+ $asset = $release.assets | Where-Object {{ $_.name -eq $assetName }} | Select-Object -First 1
240
+ $zip = Join-Path $env:TEMP $asset.name
241
+ $tmp = Join-Path $env:TEMP ("codity-install-" + [guid]::NewGuid().ToString())
242
+ Invoke-WebRequest -Uri $asset.browser_download_url -OutFile $zip
243
+ Expand-Archive -Path $zip -DestinationPath $tmp -Force
244
+ New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\\.local\\bin" | Out-Null
245
+ Copy-Item (Join-Path $tmp "codity.exe") "$env:USERPROFILE\\.local\\bin\\codity.exe" -Force
246
+ ```
232
247
 
233
248
  2. Authenticate:
234
249
  ```bash
@@ -1127,9 +1127,24 @@ generation that runs against staged changes (`--staged`) before every commit
1127
1127
  that touches production code.
1128
1128
 
1129
1129
  ## Installation
1130
+ Linux/macOS:
1130
1131
  ```bash
1131
1132
  curl -fsSL https://cli.codity.ai/install.sh | sh
1132
1133
  ```
1134
+ Native Windows (PowerShell):
1135
+ ```powershell
1136
+ # No official winget/scoop/choco package currently.
1137
+ $release = Invoke-RestMethod -Uri "https://api.github.com/repos/codity-ai/codity-cli/releases/latest"
1138
+ $version = $release.tag_name.TrimStart("v")
1139
+ $asset = $release.assets | Where-Object { $_.name -eq "codity_${version}_windows_amd64.zip" } | Select-Object -First 1
1140
+ $zip = Join-Path $env:TEMP $asset.name
1141
+ $tmp = Join-Path $env:TEMP ("codity-install-" + [guid]::NewGuid().ToString())
1142
+ Invoke-WebRequest -Uri $asset.browser_download_url -OutFile $zip
1143
+ Expand-Archive -Path $zip -DestinationPath $tmp -Force
1144
+ New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\\.local\\bin" | Out-Null
1145
+ Copy-Item (Join-Path $tmp "codity.exe") "$env:USERPROFILE\\.local\\bin\\codity.exe" -Force
1146
+ ```
1147
+ Verify with `codity doctor`.
1133
1148
 
1134
1149
  ## Authentication
1135
1150
  ```bash
@@ -37,8 +37,34 @@ htmlcov/
37
37
  .work/
38
38
  *.log
39
39
 
40
- # specsmith local data (credits, config)
41
- .specsmith/
40
+ # specsmith governance data policy
41
+ # Keep committed:
42
+ # - .specsmith/config.yml
43
+ # - .specsmith/requirements.json
44
+ # - .specsmith/testcases.json
45
+ # - .specsmith/esdb.sqlite3
46
+ # - .chronomemory/events.wal
47
+ # - .chronomemory/snapshot.json
48
+ #
49
+ # Ignore runtime-only / regeneratable artifacts:
50
+ .chronomemory/backup/
51
+ .specsmith/workitems.json
52
+ .specsmith/runs/
53
+ .specsmith/chat/
54
+ .specsmith/perf/
55
+ .specsmith/recovery/
56
+ .specsmith/ledger.jsonl
57
+ .specsmith/ledger-chain.txt
58
+ .specsmith/trace.jsonl
59
+ .specsmith/credit-budget.json
60
+ .specsmith/credits.json
61
+ .specsmith/model-rate-limits.json
62
+ .specsmith/pids/
63
+ .specsmith/logs/
64
+ .specsmith/sessions/
65
+ .specsmith/agent-reports/
66
+ .specsmith/dispatch/
67
+ .specsmith/esdb_migration_manifest.json
42
68
  {% if project.type in ('cli-rust', 'library-rust') %}
43
69
 
44
70
  # Rust
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.15.3.dev567
3
+ Version: 0.15.3.dev570
4
4
  Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
5
5
  Author: Layer1Labs Silicon, Inc.
6
6
  License-Expression: MIT
@@ -231,6 +231,11 @@ No additional packages, no license key, no configuration — it works out of the
231
231
  specsmith esdb status # shows: SQLite (free, MIT) — active by default
232
232
  ```
233
233
 
234
+ **ESDB version-control policy (this repository):**
235
+ - Commit canonical SQLite state file: `.specsmith/esdb.sqlite3`.
236
+ - Commit canonical ChronoMemory state files: `.chronomemory/events.wal` and `.chronomemory/snapshot.json`.
237
+ - Do not commit ChronoMemory timestamped backup copies under `.chronomemory/backup/` (regenerated by `specsmith save` / `specsmith esdb backup`).
238
+
234
239
  **Upgrading to chronomemory ChronoStore (commercial):**
235
240
 
236
241
  If you hold a chronomemory ESDB license, activate the commercial backend:
@@ -1048,6 +1053,8 @@ This generates:
1048
1053
  - `docs/codity-setup.md` — one-time setup checklist
1049
1054
  - Appends a TODO checklist to `LEDGER.md`
1050
1055
 
1056
+ **Windows note:** Codity's `install.sh` is Linux/macOS only. For native PowerShell use, install `codity.exe` from the official `codity-ai/codity-cli` GitHub release zip and place it on PATH (for example `~/.local/bin`).
1057
+
1051
1058
  **AGENTS.md rule (REQ-355):** Projects with Codity configured SHOULD run `codity review --staged` before any commit touching production code. HIGH-severity findings are blocking; MEDIUM findings require inline acknowledgement.
1052
1059
 
1053
1060
  See the `codity-ai-review` governance skill (`specsmith skill install codity-ai-review`) for the full CLI workflow reference.
@@ -86,6 +86,16 @@ class TestScaffoldCLIPython:
86
86
  files = scaffold_project(cfg, tmp_target)
87
87
  assert len(files) >= 25 # baseline for cli-python type
88
88
 
89
+ def test_gitignore_tracks_canonical_esdb_files(self, tmp_target: Path) -> None:
90
+ cfg = _make_config(ProjectType.CLI_PYTHON)
91
+ scaffold_project(cfg, tmp_target)
92
+ content = (tmp_target / ".gitignore").read_text(encoding="utf-8")
93
+ assert ".chronomemory/backup/" in content
94
+ assert ".specsmith/workitems.json" in content
95
+ assert ".specsmith/esdb_migration_manifest.json" in content
96
+ assert "\n.specsmith/\n" not in content
97
+ assert "\n.chronomemory/\n" not in content
98
+
89
99
 
90
100
  class TestScaffoldFPGA:
91
101
  """Tests for FPGA/RTL project type."""