specsmith 0.16.0.dev593__tar.gz → 0.16.1__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.dev593/src/specsmith.egg-info → specsmith-0.16.1}/PKG-INFO +64 -54
  2. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/README.md +63 -53
  3. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/pyproject.toml +1 -1
  4. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/__init__.py +1 -1
  5. {specsmith-0.16.0.dev593 → specsmith-0.16.1/src/specsmith.egg-info}/PKG-INFO +64 -54
  6. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/LICENSE +0 -0
  7. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/setup.cfg +0 -0
  8. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/__init__.py +0 -0
  9. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/belief.py +0 -0
  10. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/certainty.py +0 -0
  11. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/failure_graph.py +0 -0
  12. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/py.typed +0 -0
  13. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/recovery.py +0 -0
  14. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/session.py +0 -0
  15. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/stress_tester.py +0 -0
  16. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/trace.py +0 -0
  17. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/__main__.py +0 -0
  18. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/__init__.py +0 -0
  19. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/broker.py +0 -0
  20. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/chat_runner.py +0 -0
  21. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/cleanup.py +0 -0
  22. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/context_seed.py +0 -0
  23. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/core.py +0 -0
  24. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/__init__.py +0 -0
  25. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/_status.py +0 -0
  26. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/dag.py +0 -0
  27. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  28. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/events.py +0 -0
  29. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/result.py +0 -0
  30. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/endpoints.py +0 -0
  31. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/events.py +0 -0
  32. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/execution_profiles.py +0 -0
  33. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/fallback.py +0 -0
  34. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/hf_leaderboard.py +0 -0
  35. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/hf_sync.py +0 -0
  36. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/indexer.py +0 -0
  37. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/llm_client.py +0 -0
  38. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/mcp.py +0 -0
  39. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/memory.py +0 -0
  40. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/model_intelligence.py +0 -0
  41. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/model_profiles.py +0 -0
  42. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/orchestrator.py +0 -0
  43. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/permissions.py +0 -0
  44. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/profiles.py +0 -0
  45. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/provider_registry.py +0 -0
  46. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/repl.py +0 -0
  47. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/router.py +0 -0
  48. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/rules.py +0 -0
  49. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/runner.py +0 -0
  50. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/safety.py +0 -0
  51. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/spawner.py +0 -0
  52. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/suggester.py +0 -0
  53. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/teams.py +0 -0
  54. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/tools.py +0 -0
  55. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/verifier.py +0 -0
  56. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/voice.py +0 -0
  57. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/approvals.py +0 -0
  58. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/architect.py +0 -0
  59. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/auditor.py +0 -0
  60. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/auth.py +0 -0
  61. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/block_export.py +0 -0
  62. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/channel.py +0 -0
  63. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ci_manager.py +0 -0
  64. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/cli.py +0 -0
  65. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/__init__.py +0 -0
  66. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/intelligence.py +0 -0
  67. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/issues_policy.py +0 -0
  68. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/reporting.py +0 -0
  69. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/__init__.py +0 -0
  70. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/_compat.py +0 -0
  71. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/checker.py +0 -0
  72. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/evidence.py +0 -0
  73. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/regulations.py +0 -0
  74. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/reporter.py +0 -0
  75. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compressor.py +0 -0
  76. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/config.py +0 -0
  77. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/console_utils.py +0 -0
  78. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/context_orchestrator.py +0 -0
  79. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/context_window.py +0 -0
  80. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/credit_analyzer.py +0 -0
  81. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/credits.py +0 -0
  82. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/dashboard.py +0 -0
  83. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/__init__.py +0 -0
  84. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/base.py +0 -0
  85. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/citations.py +0 -0
  86. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/fpd.py +0 -0
  87. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/odp.py +0 -0
  88. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/patentsview.py +0 -0
  89. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/pfw.py +0 -0
  90. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/ppubs.py +0 -0
  91. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/ptab.py +0 -0
  92. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/differ.py +0 -0
  93. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/doctor.py +0 -0
  94. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/drive.py +0 -0
  95. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/editor.py +0 -0
  96. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/__init__.py +0 -0
  97. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/belief.py +0 -0
  98. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/certainty.py +0 -0
  99. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/failure_graph.py +0 -0
  100. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/recovery.py +0 -0
  101. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/stress_tester.py +0 -0
  102. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/__init__.py +0 -0
  103. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/_license.py +0 -0
  104. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/bridge.py +0 -0
  105. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/sqlite_store.py +0 -0
  106. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/__init__.py +0 -0
  107. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/builtins.py +0 -0
  108. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/runner.py +0 -0
  109. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/executor.py +0 -0
  110. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/exporter.py +0 -0
  111. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_logic.py +0 -0
  112. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_store.py +0 -0
  113. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_yaml.py +0 -0
  114. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governed_pr.py +0 -0
  115. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/__init__.py +0 -0
  116. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/app.py +0 -0
  117. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/main_window.py +0 -0
  118. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/session_tab.py +0 -0
  119. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/theme.py +0 -0
  120. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/__init__.py +0 -0
  121. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/chat_view.py +0 -0
  122. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/input_bar.py +0 -0
  123. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  124. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/token_meter.py +0 -0
  125. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  126. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/update_checker.py +0 -0
  127. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/worker.py +0 -0
  128. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/history_search.py +0 -0
  129. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/importer.py +0 -0
  130. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/instinct.py +0 -0
  131. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/__init__.py +0 -0
  132. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/agent_skill.py +0 -0
  133. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/aider.py +0 -0
  134. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/base.py +0 -0
  135. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/claude_code.py +0 -0
  136. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/codity.py +0 -0
  137. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/copilot.py +0 -0
  138. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/cursor.py +0 -0
  139. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/gemini.py +0 -0
  140. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/windsurf.py +0 -0
  141. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/issue_reporter.py +0 -0
  142. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/languages.py +0 -0
  143. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ledger.py +0 -0
  144. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/mcp_generator.py +0 -0
  145. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/mcp_server.py +0 -0
  146. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/__init__.py +0 -0
  147. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  148. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  149. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  150. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  151. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  152. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m006_session_governance.py +0 -0
  153. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/runner.py +0 -0
  154. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ollama_cmds.py +0 -0
  155. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/patent.py +0 -0
  156. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/paths.py +0 -0
  157. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/phase.py +0 -0
  158. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/plugins.py +0 -0
  159. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/policy.py +0 -0
  160. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/profiles.py +0 -0
  161. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/rate_limits.py +0 -0
  162. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/recover.py +0 -0
  163. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/releaser.py +0 -0
  164. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/requirements.py +0 -0
  165. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/requirements_parser.py +0 -0
  166. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/retrieval.py +0 -0
  167. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/risk.py +0 -0
  168. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/safe_write.py +0 -0
  169. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/scaffolder.py +0 -0
  170. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/serve.py +0 -0
  171. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session.py +0 -0
  172. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session_init.py +0 -0
  173. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session_store.py +0 -0
  174. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/__init__.py +0 -0
  175. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/ai_agents.py +0 -0
  176. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/cloud.py +0 -0
  177. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/corporate.py +0 -0
  178. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/cross_platform.py +0 -0
  179. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/data_engineering.py +0 -0
  180. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/devops.py +0 -0
  181. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/docs.py +0 -0
  182. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/embedded.py +0 -0
  183. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/governance.py +0 -0
  184. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/hardware.py +0 -0
  185. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/mobile.py +0 -0
  186. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/platform_engineering.py +0 -0
  187. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/productivity.py +0 -0
  188. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/software_engineering.py +0 -0
  189. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/specsmith_skills.py +0 -0
  190. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/ssh.py +0 -0
  191. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/web_backend.py +0 -0
  192. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills_builder.py +0 -0
  193. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/sync.py +0 -0
  194. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/agents.md.j2 +0 -0
  195. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  196. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  197. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  198. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  199. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  200. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  201. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  202. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/security.md.j2 +0 -0
  203. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  204. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  205. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  206. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  207. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  208. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/editorconfig.j2 +0 -0
  209. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/gitattributes.j2 +0 -0
  210. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/gitignore.j2 +0 -0
  211. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/go/go.mod.j2 +0 -0
  212. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/go/main.go.j2 +0 -0
  213. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  214. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  215. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  216. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  217. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  218. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  219. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  220. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  221. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  222. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  223. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  224. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/js/package.json.j2 +0 -0
  225. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/ledger.md.j2 +0 -0
  226. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/cli.py.j2 +0 -0
  227. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/init.py.j2 +0 -0
  228. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  229. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/readme.md.j2 +0 -0
  230. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  231. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  232. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  233. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  234. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  235. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  236. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  237. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  238. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  239. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/tool_installer.py +0 -0
  240. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/toolrules.py +0 -0
  241. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/tools.py +0 -0
  242. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/trace.py +0 -0
  243. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/transcripts.py +0 -0
  244. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/updater.py +0 -0
  245. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/upgrader.py +0 -0
  246. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/validator.py +0 -0
  247. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/__init__.py +0 -0
  248. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/base.py +0 -0
  249. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/bitbucket.py +0 -0
  250. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/github.py +0 -0
  251. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/gitlab.py +0 -0
  252. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs_commands.py +0 -0
  253. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/wi_store.py +0 -0
  254. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/wireframes.py +0 -0
  255. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/workspace.py +0 -0
  256. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/SOURCES.txt +0 -0
  257. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/dependency_links.txt +0 -0
  258. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/entry_points.txt +0 -0
  259. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/requires.txt +0 -0
  260. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/top_level.txt +0 -0
  261. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_CMD_001.py +0 -0
  262. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_profiles.py +0 -0
  263. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_run_feedback.py +0 -0
  264. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_runner_ready.py +0 -0
  265. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_ai_client.py +0 -0
  266. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_ai_intelligence.py +0 -0
  267. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_architecture.py +0 -0
  268. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_auditor.py +0 -0
  269. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_channel.py +0 -0
  270. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_diff_decision.py +0 -0
  271. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_runner_openai_compat.py +0 -0
  272. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_stdin_protocol.py +0 -0
  273. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli.py +0 -0
  274. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli_regressions.py +0 -0
  275. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli_workflows_history_drive.py +0 -0
  276. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compliance.py +0 -0
  277. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compliance_governance.py +0 -0
  278. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compressor.py +0 -0
  279. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_dispatch.py +0 -0
  280. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_e2e_nexus.py +0 -0
  281. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_endpoints_cli.py +0 -0
  282. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_endpoints_store.py +0 -0
  283. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_epistemic.py +0 -0
  284. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_enforcement.py +0 -0
  285. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_license.py +0 -0
  286. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_sqlite.py +0 -0
  287. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_verify_chain_cli.py +0 -0
  288. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_fallback_chain.py +0 -0
  289. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_golden_path.py +0 -0
  290. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_importer.py +0 -0
  291. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_init_modes.py +0 -0
  292. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_integrations.py +0 -0
  293. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_integrations_codity.py +0 -0
  294. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_intelligence.py +0 -0
  295. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_issue_policy_features.py +0 -0
  296. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_issue_reporter.py +0 -0
  297. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_mcp_client.py +0 -0
  298. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_mcp_server.py +0 -0
  299. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_new_modules.py +0 -0
  300. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_nexus.py +0 -0
  301. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_permissions.py +0 -0
  302. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_phase1_4_new.py +0 -0
  303. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_phase34_completion.py +0 -0
  304. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_rate_limits.py +0 -0
  305. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_reporting_commands.py +0 -0
  306. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_req_248_262.py +0 -0
  307. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_req_358_359.py +0 -0
  308. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_scaffolder.py +0 -0
  309. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_schema_migrations.py +0 -0
  310. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_skill_marketplace.py +0 -0
  311. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_skills_mcp.py +0 -0
  312. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_smoke.py +0 -0
  313. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_suggester.py +0 -0
  314. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_tools.py +0 -0
  315. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_typing_guardrails.py +0 -0
  316. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_validator.py +0 -0
  317. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_vcs.py +0 -0
  318. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_warp_parity.py +0 -0
  319. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_warp_parity_followup.py +0 -0
  320. {specsmith-0.16.0.dev593 → specsmith-0.16.1}/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.dev593
3
+ Version: 0.16.1
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,43 +110,53 @@ 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
- **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
- specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
115
- and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
116
- every AI-generated output is disclosed, context windows are GPU-aware and protected against
117
- overflow, and compliance settings are configurable per-session and per-project.
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
+
129
+ **v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
130
+
131
+ specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
132
+
133
+ ### Selected v0.16 CLI highlights
118
134
 
119
135
  ```bash
120
136
  specsmith governance-serve --port 7700 # governance REST API
121
- specsmith sync # sync YAML → JSON → MD (YAML-first mode)
122
- specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md from YAML
123
- specsmith validate --strict # YAML schema checks: dup IDs, orphans, coverage
124
- specsmith agent permissions-check git_push # check tool permission (REQ-012)
137
+ specsmith sync # YAML → JSON → MD (YAML-first mode)
138
+ specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
139
+ specsmith validate --strict # dup IDs, orphans, coverage gaps
140
+ specsmith agent permissions-check git_push # tool permission gate (REQ-012)
125
141
  specsmith ollama gpu # detect GPU VRAM, recommend context size
126
142
  specsmith export # generate full compliance report
127
143
 
128
- # Update channel management (REQ-248)
144
+ # Update channels
129
145
  specsmith channel set stable # pin to stable releases
130
- specsmith channel set dev # opt in to dev/pre-release builds
131
- specsmith channel get --json # show current channel + source
146
+ specsmith channel set dev # opt in to pre-release builds
132
147
 
133
- # ESDB extended lifecycle (REQ-249..253)
134
- specsmith esdb export --json # dump all records to JSON snapshot
135
- specsmith esdb import backup.json # validate + stage an import
148
+ # ESDB lifecycle
149
+ specsmith esdb export --json # dump records to JSON snapshot
136
150
  specsmith esdb backup # create timestamped snapshot
137
- specsmith esdb rollback --steps 2 # report WAL rollback (stub)
138
- specsmith esdb compact # request WAL compaction
139
-
140
- # Skills lifecycle (REQ-254..255)
141
- specsmith skills deactivate <skill-id> # set active=false in skill.json
142
- specsmith skills delete <skill-id> --yes # permanently remove skill
151
+ specsmith esdb compact # WAL compaction
143
152
 
144
- # MCP config generation (REQ-256)
145
- specsmith mcp generate "Search USPTO patents" --json # JSON config stub
153
+ # Skills
154
+ specsmith skills deactivate <skill-id> # set active=false
155
+ specsmith skills delete <skill-id> --yes # permanently remove
146
156
 
147
- # Agent ask dispatcher — no LLM required (REQ-257)
157
+ # MCP + agent dispatch
158
+ specsmith mcp generate "Search USPTO patents" --json
148
159
  specsmith agent ask "show esdb status" --json-output
149
- specsmith agent ask "build skill for summarizing"
150
160
  ```
151
161
 
152
162
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -291,11 +301,11 @@ To obtain a chronomemory ESDB license:
291
301
  [licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
292
302
  See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
293
303
 
294
- **Update:**
304
+ **Upgrading specsmith:**
295
305
 
296
306
  ```bash
297
- pipx upgrade specsmith
298
- specsmith self-update
307
+ pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
308
+ specsmith self-update # alternative: self-update from within specsmith
299
309
  ```
300
310
 
301
311
  ---
@@ -303,36 +313,36 @@ specsmith self-update
303
313
  ## Quick Start
304
314
 
305
315
  ```bash
306
- # New project (interactive)
307
- specsmith init
316
+ # 1. Install
317
+ pipx install specsmith
308
318
 
309
- # Adopt an existing project
310
- specsmith import --project-dir ./my-project
319
+ # 2. Start a new project (or import an existing one)
320
+ specsmith init # interactive scaffold wizard
321
+ specsmith import --project-dir ./my-project # adopt an existing repo
311
322
 
312
- # Check governance health
313
- specsmith audit --project-dir ./my-project
323
+ # 3. Bootstrap every session (run once at the start of each work session)
324
+ specsmith migrate run # apply any pending schema migrations
325
+ specsmith audit # verify governance health
326
+ specsmith sync # YAML → JSON → MD sync
327
+ specsmith checkpoint # emit GOVERNANCE ANCHOR
314
328
 
315
- # Run AEE stress-test on requirements
316
- specsmith stress-test --project-dir ./my-project
329
+ # 4. Before every code change: preflight
330
+ specsmith preflight "add paginated GET /todos endpoint" # gate the intent
331
+ # → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
317
332
 
318
- # Full epistemic audit (certainty + logic knots + recovery proposals)
319
- specsmith epistemic-audit --project-dir ./my-project
333
+ # 5. After making changes: verify + save
334
+ specsmith verify # check equilibrium
335
+ specsmith save # commit governance state + push
320
336
 
321
- # Start the agentic REPL
322
- specsmith run --project-dir ./my-project
323
-
324
- # AG2 agent shell — Planner/Builder/Verifier over Ollama
325
- specsmith agent status # check agent config + Ollama
326
- specsmith agent plan "add logging" # plan only (no execution)
327
- specsmith agent run "fix lint errors" # full Plan → Build → Verify
328
- specsmith agent improve "add tests" # self-improvement with reports
329
- specsmith agent verify # run Verifier on current state
330
- specsmith agent reports # list improvement reports
331
-
332
- # Check current AEE workflow phase
333
- specsmith phase --project-dir ./my-project
337
+ # 6. Check AEE workflow phase and health
338
+ specsmith phase # current phase + readiness %
339
+ specsmith audit # full governance health check
334
340
  ```
335
341
 
342
+ > **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
343
+ > Every utterance is preflighted automatically. Use `/why` to see the governance trace.
344
+ > For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
345
+
336
346
  ---
337
347
 
338
348
  ## Machine State Sync + YAML Governance
@@ -377,7 +387,7 @@ be overwritten by the next sync.
377
387
  `scripts/migrate_governance_to_yaml.py` once to convert an existing project.
378
388
  Idempotent — safe to re-run.
379
389
 
380
- ## Least-Privilege Agent Permissions (REG-012)
390
+ ## Least-Privilege Agent Permissions (REQ-012)
381
391
 
382
392
  ```bash
383
393
  specsmith agent permissions # show active permission profile
@@ -465,7 +475,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
465
475
  "governance_gated": true,
466
476
  "provider": "ollama",
467
477
  "model": "qwen2.5:14b",
468
- "spec_version": "0.16.0"
478
+ "spec_version": "0.16.1"
469
479
  }
470
480
  }
471
481
  ```
@@ -32,43 +32,53 @@ 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
- **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
- specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
37
- and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
38
- every AI-generated output is disclosed, context windows are GPU-aware and protected against
39
- overflow, and compliance settings are configurable per-session and per-project.
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
+
51
+ **v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
52
+
53
+ specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
54
+
55
+ ### Selected v0.16 CLI highlights
40
56
 
41
57
  ```bash
42
58
  specsmith governance-serve --port 7700 # governance REST API
43
- specsmith sync # sync YAML → JSON → MD (YAML-first mode)
44
- specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md from YAML
45
- specsmith validate --strict # YAML schema checks: dup IDs, orphans, coverage
46
- specsmith agent permissions-check git_push # check tool permission (REQ-012)
59
+ specsmith sync # YAML → JSON → MD (YAML-first mode)
60
+ specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
61
+ specsmith validate --strict # dup IDs, orphans, coverage gaps
62
+ specsmith agent permissions-check git_push # tool permission gate (REQ-012)
47
63
  specsmith ollama gpu # detect GPU VRAM, recommend context size
48
64
  specsmith export # generate full compliance report
49
65
 
50
- # Update channel management (REQ-248)
66
+ # Update channels
51
67
  specsmith channel set stable # pin to stable releases
52
- specsmith channel set dev # opt in to dev/pre-release builds
53
- specsmith channel get --json # show current channel + source
68
+ specsmith channel set dev # opt in to pre-release builds
54
69
 
55
- # ESDB extended lifecycle (REQ-249..253)
56
- specsmith esdb export --json # dump all records to JSON snapshot
57
- specsmith esdb import backup.json # validate + stage an import
70
+ # ESDB lifecycle
71
+ specsmith esdb export --json # dump records to JSON snapshot
58
72
  specsmith esdb backup # create timestamped snapshot
59
- specsmith esdb rollback --steps 2 # report WAL rollback (stub)
60
- specsmith esdb compact # request WAL compaction
61
-
62
- # Skills lifecycle (REQ-254..255)
63
- specsmith skills deactivate <skill-id> # set active=false in skill.json
64
- specsmith skills delete <skill-id> --yes # permanently remove skill
73
+ specsmith esdb compact # WAL compaction
65
74
 
66
- # MCP config generation (REQ-256)
67
- specsmith mcp generate "Search USPTO patents" --json # JSON config stub
75
+ # Skills
76
+ specsmith skills deactivate <skill-id> # set active=false
77
+ specsmith skills delete <skill-id> --yes # permanently remove
68
78
 
69
- # Agent ask dispatcher — no LLM required (REQ-257)
79
+ # MCP + agent dispatch
80
+ specsmith mcp generate "Search USPTO patents" --json
70
81
  specsmith agent ask "show esdb status" --json-output
71
- specsmith agent ask "build skill for summarizing"
72
82
  ```
73
83
 
74
84
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -213,11 +223,11 @@ To obtain a chronomemory ESDB license:
213
223
  [licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
214
224
  See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
215
225
 
216
- **Update:**
226
+ **Upgrading specsmith:**
217
227
 
218
228
  ```bash
219
- pipx upgrade specsmith
220
- specsmith self-update
229
+ pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
230
+ specsmith self-update # alternative: self-update from within specsmith
221
231
  ```
222
232
 
223
233
  ---
@@ -225,36 +235,36 @@ specsmith self-update
225
235
  ## Quick Start
226
236
 
227
237
  ```bash
228
- # New project (interactive)
229
- specsmith init
238
+ # 1. Install
239
+ pipx install specsmith
230
240
 
231
- # Adopt an existing project
232
- specsmith import --project-dir ./my-project
241
+ # 2. Start a new project (or import an existing one)
242
+ specsmith init # interactive scaffold wizard
243
+ specsmith import --project-dir ./my-project # adopt an existing repo
233
244
 
234
- # Check governance health
235
- specsmith audit --project-dir ./my-project
245
+ # 3. Bootstrap every session (run once at the start of each work session)
246
+ specsmith migrate run # apply any pending schema migrations
247
+ specsmith audit # verify governance health
248
+ specsmith sync # YAML → JSON → MD sync
249
+ specsmith checkpoint # emit GOVERNANCE ANCHOR
236
250
 
237
- # Run AEE stress-test on requirements
238
- specsmith stress-test --project-dir ./my-project
251
+ # 4. Before every code change: preflight
252
+ specsmith preflight "add paginated GET /todos endpoint" # gate the intent
253
+ # → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
239
254
 
240
- # Full epistemic audit (certainty + logic knots + recovery proposals)
241
- specsmith epistemic-audit --project-dir ./my-project
255
+ # 5. After making changes: verify + save
256
+ specsmith verify # check equilibrium
257
+ specsmith save # commit governance state + push
242
258
 
243
- # Start the agentic REPL
244
- specsmith run --project-dir ./my-project
245
-
246
- # AG2 agent shell — Planner/Builder/Verifier over Ollama
247
- specsmith agent status # check agent config + Ollama
248
- specsmith agent plan "add logging" # plan only (no execution)
249
- specsmith agent run "fix lint errors" # full Plan → Build → Verify
250
- specsmith agent improve "add tests" # self-improvement with reports
251
- specsmith agent verify # run Verifier on current state
252
- specsmith agent reports # list improvement reports
253
-
254
- # Check current AEE workflow phase
255
- specsmith phase --project-dir ./my-project
259
+ # 6. Check AEE workflow phase and health
260
+ specsmith phase # current phase + readiness %
261
+ specsmith audit # full governance health check
256
262
  ```
257
263
 
264
+ > **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
265
+ > Every utterance is preflighted automatically. Use `/why` to see the governance trace.
266
+ > For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
267
+
258
268
  ---
259
269
 
260
270
  ## Machine State Sync + YAML Governance
@@ -299,7 +309,7 @@ be overwritten by the next sync.
299
309
  `scripts/migrate_governance_to_yaml.py` once to convert an existing project.
300
310
  Idempotent — safe to re-run.
301
311
 
302
- ## Least-Privilege Agent Permissions (REG-012)
312
+ ## Least-Privilege Agent Permissions (REQ-012)
303
313
 
304
314
  ```bash
305
315
  specsmith agent permissions # show active permission profile
@@ -387,7 +397,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
387
397
  "governance_gated": true,
388
398
  "provider": "ollama",
389
399
  "model": "qwen2.5:14b",
390
- "spec_version": "0.16.0"
400
+ "spec_version": "0.16.1"
391
401
  }
392
402
  }
393
403
  ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.16.0.dev593"
7
+ version = "0.16.1"
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"
@@ -8,4 +8,4 @@ from importlib.metadata import version as _pkg_version
8
8
  try:
9
9
  __version__: str = _pkg_version("specsmith")
10
10
  except PackageNotFoundError: # running from source without install
11
- __version__ = "0.16.0" # fallback: keep in sync with pyproject.toml
11
+ __version__ = "0.16.1" # fallback: keep in sync with pyproject.toml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.16.0.dev593
3
+ Version: 0.16.1
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,43 +110,53 @@ 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
- **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
- specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689)
115
- and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed,
116
- every AI-generated output is disclosed, context windows are GPU-aware and protected against
117
- overflow, and compliance settings are configurable per-session and per-project.
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
+
129
+ **v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
130
+
131
+ specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
132
+
133
+ ### Selected v0.16 CLI highlights
118
134
 
119
135
  ```bash
120
136
  specsmith governance-serve --port 7700 # governance REST API
121
- specsmith sync # sync YAML → JSON → MD (YAML-first mode)
122
- specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md from YAML
123
- specsmith validate --strict # YAML schema checks: dup IDs, orphans, coverage
124
- specsmith agent permissions-check git_push # check tool permission (REQ-012)
137
+ specsmith sync # YAML → JSON → MD (YAML-first mode)
138
+ specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
139
+ specsmith validate --strict # dup IDs, orphans, coverage gaps
140
+ specsmith agent permissions-check git_push # tool permission gate (REQ-012)
125
141
  specsmith ollama gpu # detect GPU VRAM, recommend context size
126
142
  specsmith export # generate full compliance report
127
143
 
128
- # Update channel management (REQ-248)
144
+ # Update channels
129
145
  specsmith channel set stable # pin to stable releases
130
- specsmith channel set dev # opt in to dev/pre-release builds
131
- specsmith channel get --json # show current channel + source
146
+ specsmith channel set dev # opt in to pre-release builds
132
147
 
133
- # ESDB extended lifecycle (REQ-249..253)
134
- specsmith esdb export --json # dump all records to JSON snapshot
135
- specsmith esdb import backup.json # validate + stage an import
148
+ # ESDB lifecycle
149
+ specsmith esdb export --json # dump records to JSON snapshot
136
150
  specsmith esdb backup # create timestamped snapshot
137
- specsmith esdb rollback --steps 2 # report WAL rollback (stub)
138
- specsmith esdb compact # request WAL compaction
139
-
140
- # Skills lifecycle (REQ-254..255)
141
- specsmith skills deactivate <skill-id> # set active=false in skill.json
142
- specsmith skills delete <skill-id> --yes # permanently remove skill
151
+ specsmith esdb compact # WAL compaction
143
152
 
144
- # MCP config generation (REQ-256)
145
- specsmith mcp generate "Search USPTO patents" --json # JSON config stub
153
+ # Skills
154
+ specsmith skills deactivate <skill-id> # set active=false
155
+ specsmith skills delete <skill-id> --yes # permanently remove
146
156
 
147
- # Agent ask dispatcher — no LLM required (REQ-257)
157
+ # MCP + agent dispatch
158
+ specsmith mcp generate "Search USPTO patents" --json
148
159
  specsmith agent ask "show esdb status" --json-output
149
- specsmith agent ask "build skill for summarizing"
150
160
  ```
151
161
 
152
162
  It also co-installs the standalone `epistemic` Python library for direct use in any project:
@@ -291,11 +301,11 @@ To obtain a chronomemory ESDB license:
291
301
  [licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
292
302
  See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
293
303
 
294
- **Update:**
304
+ **Upgrading specsmith:**
295
305
 
296
306
  ```bash
297
- pipx upgrade specsmith
298
- specsmith self-update
307
+ pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
308
+ specsmith self-update # alternative: self-update from within specsmith
299
309
  ```
300
310
 
301
311
  ---
@@ -303,36 +313,36 @@ specsmith self-update
303
313
  ## Quick Start
304
314
 
305
315
  ```bash
306
- # New project (interactive)
307
- specsmith init
316
+ # 1. Install
317
+ pipx install specsmith
308
318
 
309
- # Adopt an existing project
310
- specsmith import --project-dir ./my-project
319
+ # 2. Start a new project (or import an existing one)
320
+ specsmith init # interactive scaffold wizard
321
+ specsmith import --project-dir ./my-project # adopt an existing repo
311
322
 
312
- # Check governance health
313
- specsmith audit --project-dir ./my-project
323
+ # 3. Bootstrap every session (run once at the start of each work session)
324
+ specsmith migrate run # apply any pending schema migrations
325
+ specsmith audit # verify governance health
326
+ specsmith sync # YAML → JSON → MD sync
327
+ specsmith checkpoint # emit GOVERNANCE ANCHOR
314
328
 
315
- # Run AEE stress-test on requirements
316
- specsmith stress-test --project-dir ./my-project
329
+ # 4. Before every code change: preflight
330
+ specsmith preflight "add paginated GET /todos endpoint" # gate the intent
331
+ # → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
317
332
 
318
- # Full epistemic audit (certainty + logic knots + recovery proposals)
319
- specsmith epistemic-audit --project-dir ./my-project
333
+ # 5. After making changes: verify + save
334
+ specsmith verify # check equilibrium
335
+ specsmith save # commit governance state + push
320
336
 
321
- # Start the agentic REPL
322
- specsmith run --project-dir ./my-project
323
-
324
- # AG2 agent shell — Planner/Builder/Verifier over Ollama
325
- specsmith agent status # check agent config + Ollama
326
- specsmith agent plan "add logging" # plan only (no execution)
327
- specsmith agent run "fix lint errors" # full Plan → Build → Verify
328
- specsmith agent improve "add tests" # self-improvement with reports
329
- specsmith agent verify # run Verifier on current state
330
- specsmith agent reports # list improvement reports
331
-
332
- # Check current AEE workflow phase
333
- specsmith phase --project-dir ./my-project
337
+ # 6. Check AEE workflow phase and health
338
+ specsmith phase # current phase + readiness %
339
+ specsmith audit # full governance health check
334
340
  ```
335
341
 
342
+ > **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
343
+ > Every utterance is preflighted automatically. Use `/why` to see the governance trace.
344
+ > For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
345
+
336
346
  ---
337
347
 
338
348
  ## Machine State Sync + YAML Governance
@@ -377,7 +387,7 @@ be overwritten by the next sync.
377
387
  `scripts/migrate_governance_to_yaml.py` once to convert an existing project.
378
388
  Idempotent — safe to re-run.
379
389
 
380
- ## Least-Privilege Agent Permissions (REG-012)
390
+ ## Least-Privilege Agent Permissions (REQ-012)
381
391
 
382
392
  ```bash
383
393
  specsmith agent permissions # show active permission profile
@@ -465,7 +475,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
465
475
  "governance_gated": true,
466
476
  "provider": "ollama",
467
477
  "model": "qwen2.5:14b",
468
- "spec_version": "0.16.0"
478
+ "spec_version": "0.16.1"
469
479
  }
470
480
  }
471
481
  ```
File without changes
File without changes