specsmith 0.16.0.dev592__tar.gz → 0.16.0.dev599__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 (320) hide show
  1. {specsmith-0.16.0.dev592/src/specsmith.egg-info → specsmith-0.16.0.dev599}/PKG-INFO +27 -38
  2. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/README.md +26 -37
  3. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/pyproject.toml +1 -1
  4. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599/src/specsmith.egg-info}/PKG-INFO +27 -38
  5. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/LICENSE +0 -0
  6. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/setup.cfg +0 -0
  7. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/__init__.py +0 -0
  8. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/belief.py +0 -0
  9. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/certainty.py +0 -0
  10. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/failure_graph.py +0 -0
  11. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/py.typed +0 -0
  12. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/recovery.py +0 -0
  13. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/session.py +0 -0
  14. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/stress_tester.py +0 -0
  15. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/epistemic/trace.py +0 -0
  16. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/__init__.py +0 -0
  17. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/__main__.py +0 -0
  18. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/__init__.py +0 -0
  19. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/broker.py +0 -0
  20. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/chat_runner.py +0 -0
  21. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/cleanup.py +0 -0
  22. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/context_seed.py +0 -0
  23. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/core.py +0 -0
  24. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/__init__.py +0 -0
  25. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/_status.py +0 -0
  26. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/dag.py +0 -0
  27. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  28. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/events.py +0 -0
  29. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/dispatch/result.py +0 -0
  30. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/endpoints.py +0 -0
  31. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/events.py +0 -0
  32. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/execution_profiles.py +0 -0
  33. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/fallback.py +0 -0
  34. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/hf_leaderboard.py +0 -0
  35. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/hf_sync.py +0 -0
  36. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/indexer.py +0 -0
  37. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/llm_client.py +0 -0
  38. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/mcp.py +0 -0
  39. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/memory.py +0 -0
  40. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/model_intelligence.py +0 -0
  41. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/model_profiles.py +0 -0
  42. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/orchestrator.py +0 -0
  43. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/permissions.py +0 -0
  44. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/profiles.py +0 -0
  45. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/provider_registry.py +0 -0
  46. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/repl.py +0 -0
  47. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/router.py +0 -0
  48. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/rules.py +0 -0
  49. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/runner.py +0 -0
  50. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/safety.py +0 -0
  51. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/spawner.py +0 -0
  52. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/suggester.py +0 -0
  53. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/teams.py +0 -0
  54. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/tools.py +0 -0
  55. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/verifier.py +0 -0
  56. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/agent/voice.py +0 -0
  57. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/approvals.py +0 -0
  58. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/architect.py +0 -0
  59. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/auditor.py +0 -0
  60. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/auth.py +0 -0
  61. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/block_export.py +0 -0
  62. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/channel.py +0 -0
  63. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/ci_manager.py +0 -0
  64. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/cli.py +0 -0
  65. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/commands/__init__.py +0 -0
  66. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/commands/intelligence.py +0 -0
  67. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/commands/issues_policy.py +0 -0
  68. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/commands/reporting.py +0 -0
  69. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/__init__.py +0 -0
  70. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/_compat.py +0 -0
  71. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/checker.py +0 -0
  72. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/evidence.py +0 -0
  73. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/regulations.py +0 -0
  74. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compliance/reporter.py +0 -0
  75. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/compressor.py +0 -0
  76. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/config.py +0 -0
  77. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/console_utils.py +0 -0
  78. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/context_orchestrator.py +0 -0
  79. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/context_window.py +0 -0
  80. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/credit_analyzer.py +0 -0
  81. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/credits.py +0 -0
  82. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/dashboard.py +0 -0
  83. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/__init__.py +0 -0
  84. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/base.py +0 -0
  85. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/citations.py +0 -0
  86. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/fpd.py +0 -0
  87. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/odp.py +0 -0
  88. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/patentsview.py +0 -0
  89. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/pfw.py +0 -0
  90. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/ppubs.py +0 -0
  91. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/datasources/ptab.py +0 -0
  92. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/differ.py +0 -0
  93. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/doctor.py +0 -0
  94. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/drive.py +0 -0
  95. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/editor.py +0 -0
  96. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/__init__.py +0 -0
  97. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/belief.py +0 -0
  98. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/certainty.py +0 -0
  99. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/failure_graph.py +0 -0
  100. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/recovery.py +0 -0
  101. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/epistemic/stress_tester.py +0 -0
  102. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/esdb/__init__.py +0 -0
  103. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/esdb/_license.py +0 -0
  104. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/esdb/bridge.py +0 -0
  105. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/esdb/sqlite_store.py +0 -0
  106. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/eval/__init__.py +0 -0
  107. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/eval/builtins.py +0 -0
  108. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/eval/runner.py +0 -0
  109. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/executor.py +0 -0
  110. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/exporter.py +0 -0
  111. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/governance_logic.py +0 -0
  112. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/governance_store.py +0 -0
  113. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/governance_yaml.py +0 -0
  114. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/governed_pr.py +0 -0
  115. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/__init__.py +0 -0
  116. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/app.py +0 -0
  117. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/main_window.py +0 -0
  118. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/session_tab.py +0 -0
  119. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/theme.py +0 -0
  120. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/__init__.py +0 -0
  121. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/chat_view.py +0 -0
  122. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/input_bar.py +0 -0
  123. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  124. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/token_meter.py +0 -0
  125. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  126. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/widgets/update_checker.py +0 -0
  127. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/gui/worker.py +0 -0
  128. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/history_search.py +0 -0
  129. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/importer.py +0 -0
  130. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/instinct.py +0 -0
  131. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/__init__.py +0 -0
  132. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/agent_skill.py +0 -0
  133. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/aider.py +0 -0
  134. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/base.py +0 -0
  135. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/claude_code.py +0 -0
  136. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/codity.py +0 -0
  137. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/copilot.py +0 -0
  138. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/cursor.py +0 -0
  139. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/gemini.py +0 -0
  140. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/integrations/windsurf.py +0 -0
  141. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/issue_reporter.py +0 -0
  142. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/languages.py +0 -0
  143. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/ledger.py +0 -0
  144. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/mcp_generator.py +0 -0
  145. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/mcp_server.py +0 -0
  146. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/__init__.py +0 -0
  147. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  148. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  149. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  150. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  151. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  152. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/m006_session_governance.py +0 -0
  153. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/migrations/runner.py +0 -0
  154. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/ollama_cmds.py +0 -0
  155. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/patent.py +0 -0
  156. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/paths.py +0 -0
  157. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/phase.py +0 -0
  158. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/plugins.py +0 -0
  159. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/policy.py +0 -0
  160. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/profiles.py +0 -0
  161. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/rate_limits.py +0 -0
  162. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/recover.py +0 -0
  163. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/releaser.py +0 -0
  164. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/requirements.py +0 -0
  165. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/requirements_parser.py +0 -0
  166. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/retrieval.py +0 -0
  167. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/risk.py +0 -0
  168. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/safe_write.py +0 -0
  169. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/scaffolder.py +0 -0
  170. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/serve.py +0 -0
  171. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/session.py +0 -0
  172. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/session_init.py +0 -0
  173. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/session_store.py +0 -0
  174. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/__init__.py +0 -0
  175. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/ai_agents.py +0 -0
  176. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/cloud.py +0 -0
  177. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/corporate.py +0 -0
  178. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/cross_platform.py +0 -0
  179. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/data_engineering.py +0 -0
  180. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/devops.py +0 -0
  181. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/docs.py +0 -0
  182. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/embedded.py +0 -0
  183. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/governance.py +0 -0
  184. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/hardware.py +0 -0
  185. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/mobile.py +0 -0
  186. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/platform_engineering.py +0 -0
  187. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/productivity.py +0 -0
  188. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/software_engineering.py +0 -0
  189. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/specsmith_skills.py +0 -0
  190. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/ssh.py +0 -0
  191. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills/web_backend.py +0 -0
  192. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/skills_builder.py +0 -0
  193. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/sync.py +0 -0
  194. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/agents.md.j2 +0 -0
  195. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  196. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  197. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  198. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  199. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  200. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  201. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  202. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/community/security.md.j2 +0 -0
  203. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  204. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  205. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  206. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  207. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  208. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/editorconfig.j2 +0 -0
  209. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/gitattributes.j2 +0 -0
  210. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/gitignore.j2 +0 -0
  211. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/go/go.mod.j2 +0 -0
  212. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/go/main.go.j2 +0 -0
  213. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  214. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  215. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  216. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  217. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  218. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  219. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  220. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  221. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  222. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  223. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  224. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/js/package.json.j2 +0 -0
  225. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/ledger.md.j2 +0 -0
  226. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/python/cli.py.j2 +0 -0
  227. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/python/init.py.j2 +0 -0
  228. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  229. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/readme.md.j2 +0 -0
  230. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  231. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  232. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  233. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  234. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  235. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  236. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  237. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  238. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  239. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/tool_installer.py +0 -0
  240. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/toolrules.py +0 -0
  241. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/tools.py +0 -0
  242. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/trace.py +0 -0
  243. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/transcripts.py +0 -0
  244. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/updater.py +0 -0
  245. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/upgrader.py +0 -0
  246. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/validator.py +0 -0
  247. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs/__init__.py +0 -0
  248. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs/base.py +0 -0
  249. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs/bitbucket.py +0 -0
  250. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs/github.py +0 -0
  251. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs/gitlab.py +0 -0
  252. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/vcs_commands.py +0 -0
  253. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/wi_store.py +0 -0
  254. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/wireframes.py +0 -0
  255. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith/workspace.py +0 -0
  256. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith.egg-info/SOURCES.txt +0 -0
  257. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith.egg-info/dependency_links.txt +0 -0
  258. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith.egg-info/entry_points.txt +0 -0
  259. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith.egg-info/requires.txt +0 -0
  260. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/src/specsmith.egg-info/top_level.txt +0 -0
  261. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_CMD_001.py +0 -0
  262. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_agent_profiles.py +0 -0
  263. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_agent_run_feedback.py +0 -0
  264. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_agent_runner_ready.py +0 -0
  265. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_ai_client.py +0 -0
  266. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_ai_intelligence.py +0 -0
  267. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_architecture.py +0 -0
  268. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_auditor.py +0 -0
  269. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_channel.py +0 -0
  270. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_chat_diff_decision.py +0 -0
  271. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_chat_runner_openai_compat.py +0 -0
  272. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_chat_stdin_protocol.py +0 -0
  273. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_cli.py +0 -0
  274. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_cli_regressions.py +0 -0
  275. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_cli_workflows_history_drive.py +0 -0
  276. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_compliance.py +0 -0
  277. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_compliance_governance.py +0 -0
  278. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_compressor.py +0 -0
  279. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_dispatch.py +0 -0
  280. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_e2e_nexus.py +0 -0
  281. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_endpoints_cli.py +0 -0
  282. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_endpoints_store.py +0 -0
  283. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_epistemic.py +0 -0
  284. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_esdb_enforcement.py +0 -0
  285. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_esdb_license.py +0 -0
  286. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_esdb_sqlite.py +0 -0
  287. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_esdb_verify_chain_cli.py +0 -0
  288. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_fallback_chain.py +0 -0
  289. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_golden_path.py +0 -0
  290. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_importer.py +0 -0
  291. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_init_modes.py +0 -0
  292. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_integrations.py +0 -0
  293. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_integrations_codity.py +0 -0
  294. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_intelligence.py +0 -0
  295. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_issue_policy_features.py +0 -0
  296. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_issue_reporter.py +0 -0
  297. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_mcp_client.py +0 -0
  298. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_mcp_server.py +0 -0
  299. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_new_modules.py +0 -0
  300. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_nexus.py +0 -0
  301. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_permissions.py +0 -0
  302. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_phase1_4_new.py +0 -0
  303. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_phase34_completion.py +0 -0
  304. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_rate_limits.py +0 -0
  305. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_reporting_commands.py +0 -0
  306. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_req_248_262.py +0 -0
  307. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_req_358_359.py +0 -0
  308. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_scaffolder.py +0 -0
  309. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_schema_migrations.py +0 -0
  310. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_skill_marketplace.py +0 -0
  311. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_skills_mcp.py +0 -0
  312. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_smoke.py +0 -0
  313. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_suggester.py +0 -0
  314. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_tools.py +0 -0
  315. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_typing_guardrails.py +0 -0
  316. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_validator.py +0 -0
  317. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_vcs.py +0 -0
  318. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_warp_parity.py +0 -0
  319. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_warp_parity_followup.py +0 -0
  320. {specsmith-0.16.0.dev592 → specsmith-0.16.0.dev599}/tests/test_wi_lifecycle.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.16.0.dev592
3
+ Version: 0.16.0.dev599
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
@@ -110,6 +110,22 @@ flowchart LR
110
110
  - **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
111
111
  - **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
112
112
 
113
+ ### Governance efficiency benchmark
114
+
115
+ We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
116
+
117
+ | Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
118
+ |---|---|---|---|---|
119
+ | Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
120
+ | Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
121
+ | BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
122
+ | **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
123
+ | **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
124
+
125
+ **Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
126
+
127
+ See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
128
+
113
129
  **v0.16.0 — stabilisation milestone:** 20+ new CLI commands (quickstart, expand, verify-integrations, governed-pr, transcript import, policy, recover, dashboard, drift-check, trace score, export/import, approve); new governance modules; ESDB SQLite backend with full test coverage; chronomemory 0.2.0 with all phases complete; Python 3.10–3.13 × Ubuntu + Windows all green; 1 607 tests passing.
114
130
  specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
115
131
  and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
@@ -431,7 +447,7 @@ across the AI lifecycle. specsmith addresses all four core functions:
431
447
 
432
448
  | NIST AI RMF Function | specsmith Mechanism |
433
449
  |---|---|
434
- | **GOVERN** — Policies & accountability | Governance rules (H1–H22), permissions profile, `scaffold.yml` policy |
450
+ || **GOVERN** — Policies & accountability | Governance rules, permissions profile, `scaffold.yml` policy |
435
451
  | **MAP** — Risk identification | AEE stress-test, belief graph, contradictions and uncertainty metrics |
436
452
  | **MEASURE** — Risk analysis | Confidence scoring, epistemic equilibrium, `specsmith epistemic-audit` |
437
453
  | **MANAGE** — Risk treatment | Kill-switch, escalation, bounded retry, safe-write backup, permissions deny-list |
@@ -1032,42 +1048,15 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
1032
1048
 
1033
1049
  ---
1034
1050
 
1035
- ## Governance Rules (H1–H22)
1036
-
1037
- 22 hard rules enforced by `specsmith validate` and `specsmith audit`.
1038
- Full rule text: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/main/docs/governance/RULES.md)
1039
-
1040
- **H1–H14 Core engineering and traceability rules:**
1041
- - **H1** — No ledger entry = work not done.
1042
- - **H2** — No proposal = no execution.
1043
- - **H3** All work must consider every target platform.
1044
- - **H4** — No system-dependent assumptions; virtual environments required.
1045
- - **H5** — No hidden service logic.
1046
- - **H6** — If the task grows beyond the proposal, stop and re-propose.
1047
- - **H7** — Every state change must be traceable and recorded.
1048
- - **H8** — Architecture changes MUST update docs in the same work cycle.
1049
- - **H9** — Every agent command must have a timeout.
1050
- - **H10** — No hardcoded version strings outside `pyproject.toml`.
1051
- - **H11** — Every loop must have a deadline; no unbounded blocking I/O.
1052
- - **H12** — Platform-aware automation: sh/bash on Unix, `.cmd`/`.ps1` on Windows.
1053
- - **H13** — Every proposal must declare its epistemic boundaries and assumptions.
1054
- - **H14** — Documentation must be updated in the same work cycle as code changes.
1055
-
1056
- **H15–H22 — Anti-hallucination and epistemic stability (OEA framework):**
1057
-
1058
- Rules H15–H22 are derived from the *"Ontology-Epistemic-Agentic (OEA) Recursive
1059
- Generative Stability"* study (Layer1Labs Research, 2026), which empirically validated
1060
- the primary control mechanisms for preventing hallucination and semantic drift in
1061
- production LLM systems:
1062
-
1063
- - **H15** — Epistemic scope bounding: no claims outside verified knowledge; say "unknown" rather than fabricate.
1064
- - **H16** — Anti-drift recursion guard: max 5 autonomous generation steps before a human checkpoint.
1065
- - **H17** — Calibration direction: express uncertainty, not false confidence.
1066
- - **H18** — RAG retrieval filtering: validate context relevance (similarity ≥ 0.6) before injection.
1067
- - **H19** — Synthetic contamination prevention: never mix synthetic and real data silently.
1068
- - **H20** — Falsifiability required: cite sources or flag claims as `[HYPOTHESIS]`.
1069
- - **H21** — Disclose all model-specific assumptions (context window, format, temperature).
1070
- - **H22** — Cross-platform CI: green on one OS ≠ cross-platform coverage.
1051
+ ## Governance Rules
1052
+
1053
+ 22 hard rules enforced by `specsmith validate` and `specsmith audit`. Rules 1–14 cover
1054
+ core engineering and traceability (ledger required, proposals required, platform-awareness,
1055
+ documentation currency, etc.). Rules 15–22 address anti-hallucination and epistemic
1056
+ stability, derived from the OEA (Ontological Epistemic Anchoring) research framework
1057
+ (Layer1Labs, 2026).
1058
+
1059
+ Full rule reference: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/develop/docs/governance/RULES.md)
1071
1060
 
1072
1061
  ---
1073
1062
 
@@ -32,6 +32,22 @@ flowchart LR
32
32
  - **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
33
33
  - **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
34
34
 
35
+ ### Governance efficiency benchmark
36
+
37
+ We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
38
+
39
+ | Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
40
+ |---|---|---|---|---|
41
+ | Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
42
+ | Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
43
+ | BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
44
+ | **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
45
+ | **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
46
+
47
+ **Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
48
+
49
+ See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
50
+
35
51
  **v0.16.0 — stabilisation milestone:** 20+ new CLI commands (quickstart, expand, verify-integrations, governed-pr, transcript import, policy, recover, dashboard, drift-check, trace score, export/import, approve); new governance modules; ESDB SQLite backend with full test coverage; chronomemory 0.2.0 with all phases complete; Python 3.10–3.13 × Ubuntu + Windows all green; 1 607 tests passing.
36
52
  specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
37
53
  and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
@@ -353,7 +369,7 @@ across the AI lifecycle. specsmith addresses all four core functions:
353
369
 
354
370
  | NIST AI RMF Function | specsmith Mechanism |
355
371
  |---|---|
356
- | **GOVERN** — Policies & accountability | Governance rules (H1–H22), permissions profile, `scaffold.yml` policy |
372
+ || **GOVERN** — Policies & accountability | Governance rules, permissions profile, `scaffold.yml` policy |
357
373
  | **MAP** — Risk identification | AEE stress-test, belief graph, contradictions and uncertainty metrics |
358
374
  | **MEASURE** — Risk analysis | Confidence scoring, epistemic equilibrium, `specsmith epistemic-audit` |
359
375
  | **MANAGE** — Risk treatment | Kill-switch, escalation, bounded retry, safe-write backup, permissions deny-list |
@@ -954,42 +970,15 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
954
970
 
955
971
  ---
956
972
 
957
- ## Governance Rules (H1–H22)
958
-
959
- 22 hard rules enforced by `specsmith validate` and `specsmith audit`.
960
- Full rule text: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/main/docs/governance/RULES.md)
961
-
962
- **H1–H14 Core engineering and traceability rules:**
963
- - **H1** — No ledger entry = work not done.
964
- - **H2** — No proposal = no execution.
965
- - **H3** All work must consider every target platform.
966
- - **H4** — No system-dependent assumptions; virtual environments required.
967
- - **H5** — No hidden service logic.
968
- - **H6** — If the task grows beyond the proposal, stop and re-propose.
969
- - **H7** — Every state change must be traceable and recorded.
970
- - **H8** — Architecture changes MUST update docs in the same work cycle.
971
- - **H9** — Every agent command must have a timeout.
972
- - **H10** — No hardcoded version strings outside `pyproject.toml`.
973
- - **H11** — Every loop must have a deadline; no unbounded blocking I/O.
974
- - **H12** — Platform-aware automation: sh/bash on Unix, `.cmd`/`.ps1` on Windows.
975
- - **H13** — Every proposal must declare its epistemic boundaries and assumptions.
976
- - **H14** — Documentation must be updated in the same work cycle as code changes.
977
-
978
- **H15–H22 — Anti-hallucination and epistemic stability (OEA framework):**
979
-
980
- Rules H15–H22 are derived from the *"Ontology-Epistemic-Agentic (OEA) Recursive
981
- Generative Stability"* study (Layer1Labs Research, 2026), which empirically validated
982
- the primary control mechanisms for preventing hallucination and semantic drift in
983
- production LLM systems:
984
-
985
- - **H15** — Epistemic scope bounding: no claims outside verified knowledge; say "unknown" rather than fabricate.
986
- - **H16** — Anti-drift recursion guard: max 5 autonomous generation steps before a human checkpoint.
987
- - **H17** — Calibration direction: express uncertainty, not false confidence.
988
- - **H18** — RAG retrieval filtering: validate context relevance (similarity ≥ 0.6) before injection.
989
- - **H19** — Synthetic contamination prevention: never mix synthetic and real data silently.
990
- - **H20** — Falsifiability required: cite sources or flag claims as `[HYPOTHESIS]`.
991
- - **H21** — Disclose all model-specific assumptions (context window, format, temperature).
992
- - **H22** — Cross-platform CI: green on one OS ≠ cross-platform coverage.
973
+ ## Governance Rules
974
+
975
+ 22 hard rules enforced by `specsmith validate` and `specsmith audit`. Rules 1–14 cover
976
+ core engineering and traceability (ledger required, proposals required, platform-awareness,
977
+ documentation currency, etc.). Rules 15–22 address anti-hallucination and epistemic
978
+ stability, derived from the OEA (Ontological Epistemic Anchoring) research framework
979
+ (Layer1Labs, 2026).
980
+
981
+ Full rule reference: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/develop/docs/governance/RULES.md)
993
982
 
994
983
  ---
995
984
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.16.0.dev592"
7
+ version = "0.16.0.dev599"
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"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.16.0.dev592
3
+ Version: 0.16.0.dev599
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
@@ -110,6 +110,22 @@ flowchart LR
110
110
  - **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
111
111
  - **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
112
112
 
113
+ ### Governance efficiency benchmark
114
+
115
+ We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
116
+
117
+ | Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
118
+ |---|---|---|---|---|
119
+ | Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
120
+ | Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
121
+ | BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
122
+ | **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
123
+ | **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
124
+
125
+ **Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
126
+
127
+ See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
128
+
113
129
  **v0.16.0 — stabilisation milestone:** 20+ new CLI commands (quickstart, expand, verify-integrations, governed-pr, transcript import, policy, recover, dashboard, drift-check, trace score, export/import, approve); new governance modules; ESDB SQLite backend with full test coverage; chronomemory 0.2.0 with all phases complete; Python 3.10–3.13 × Ubuntu + Windows all green; 1 607 tests passing.
114
130
  specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
115
131
  and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
@@ -431,7 +447,7 @@ across the AI lifecycle. specsmith addresses all four core functions:
431
447
 
432
448
  | NIST AI RMF Function | specsmith Mechanism |
433
449
  |---|---|
434
- | **GOVERN** — Policies & accountability | Governance rules (H1–H22), permissions profile, `scaffold.yml` policy |
450
+ || **GOVERN** — Policies & accountability | Governance rules, permissions profile, `scaffold.yml` policy |
435
451
  | **MAP** — Risk identification | AEE stress-test, belief graph, contradictions and uncertainty metrics |
436
452
  | **MEASURE** — Risk analysis | Confidence scoring, epistemic equilibrium, `specsmith epistemic-audit` |
437
453
  | **MANAGE** — Risk treatment | Kill-switch, escalation, bounded retry, safe-write backup, permissions deny-list |
@@ -1032,42 +1048,15 @@ Use cases: linguistics research, compliance pipelines, AI alignment, patent pros
1032
1048
 
1033
1049
  ---
1034
1050
 
1035
- ## Governance Rules (H1–H22)
1036
-
1037
- 22 hard rules enforced by `specsmith validate` and `specsmith audit`.
1038
- Full rule text: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/main/docs/governance/RULES.md)
1039
-
1040
- **H1–H14 Core engineering and traceability rules:**
1041
- - **H1** — No ledger entry = work not done.
1042
- - **H2** — No proposal = no execution.
1043
- - **H3** All work must consider every target platform.
1044
- - **H4** — No system-dependent assumptions; virtual environments required.
1045
- - **H5** — No hidden service logic.
1046
- - **H6** — If the task grows beyond the proposal, stop and re-propose.
1047
- - **H7** — Every state change must be traceable and recorded.
1048
- - **H8** — Architecture changes MUST update docs in the same work cycle.
1049
- - **H9** — Every agent command must have a timeout.
1050
- - **H10** — No hardcoded version strings outside `pyproject.toml`.
1051
- - **H11** — Every loop must have a deadline; no unbounded blocking I/O.
1052
- - **H12** — Platform-aware automation: sh/bash on Unix, `.cmd`/`.ps1` on Windows.
1053
- - **H13** — Every proposal must declare its epistemic boundaries and assumptions.
1054
- - **H14** — Documentation must be updated in the same work cycle as code changes.
1055
-
1056
- **H15–H22 — Anti-hallucination and epistemic stability (OEA framework):**
1057
-
1058
- Rules H15–H22 are derived from the *"Ontology-Epistemic-Agentic (OEA) Recursive
1059
- Generative Stability"* study (Layer1Labs Research, 2026), which empirically validated
1060
- the primary control mechanisms for preventing hallucination and semantic drift in
1061
- production LLM systems:
1062
-
1063
- - **H15** — Epistemic scope bounding: no claims outside verified knowledge; say "unknown" rather than fabricate.
1064
- - **H16** — Anti-drift recursion guard: max 5 autonomous generation steps before a human checkpoint.
1065
- - **H17** — Calibration direction: express uncertainty, not false confidence.
1066
- - **H18** — RAG retrieval filtering: validate context relevance (similarity ≥ 0.6) before injection.
1067
- - **H19** — Synthetic contamination prevention: never mix synthetic and real data silently.
1068
- - **H20** — Falsifiability required: cite sources or flag claims as `[HYPOTHESIS]`.
1069
- - **H21** — Disclose all model-specific assumptions (context window, format, temperature).
1070
- - **H22** — Cross-platform CI: green on one OS ≠ cross-platform coverage.
1051
+ ## Governance Rules
1052
+
1053
+ 22 hard rules enforced by `specsmith validate` and `specsmith audit`. Rules 1–14 cover
1054
+ core engineering and traceability (ledger required, proposals required, platform-awareness,
1055
+ documentation currency, etc.). Rules 15–22 address anti-hallucination and epistemic
1056
+ stability, derived from the OEA (Ontological Epistemic Anchoring) research framework
1057
+ (Layer1Labs, 2026).
1058
+
1059
+ Full rule reference: [`docs/governance/RULES.md`](https://github.com/layer1labs/specsmith/blob/develop/docs/governance/RULES.md)
1071
1060
 
1072
1061
  ---
1073
1062