specsmith 0.11.7.dev469__tar.gz → 0.11.8.dev483__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 (287) hide show
  1. {specsmith-0.11.7.dev469/src/specsmith.egg-info → specsmith-0.11.8.dev483}/PKG-INFO +1 -1
  2. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/pyproject.toml +1 -1
  3. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/__init__.py +1 -1
  4. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/config.py +1 -1
  5. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/__init__.py +13 -10
  6. specsmith-0.11.8.dev483/src/specsmith/skills/specsmith_skills.py +267 -0
  7. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483/src/specsmith.egg-info}/PKG-INFO +1 -1
  8. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith.egg-info/SOURCES.txt +1 -0
  9. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_cli.py +2 -2
  10. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/LICENSE +0 -0
  11. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/README.md +0 -0
  12. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/setup.cfg +0 -0
  13. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/__init__.py +0 -0
  14. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/belief.py +0 -0
  15. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/certainty.py +0 -0
  16. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/failure_graph.py +0 -0
  17. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/py.typed +0 -0
  18. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/recovery.py +0 -0
  19. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/session.py +0 -0
  20. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/stress_tester.py +0 -0
  21. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/epistemic/trace.py +0 -0
  22. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/__main__.py +0 -0
  23. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/__init__.py +0 -0
  24. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/broker.py +0 -0
  25. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/chat_runner.py +0 -0
  26. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/cleanup.py +0 -0
  27. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/context_seed.py +0 -0
  28. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/core.py +0 -0
  29. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/__init__.py +0 -0
  30. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/_status.py +0 -0
  31. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/dag.py +0 -0
  32. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
  33. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/events.py +0 -0
  34. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/dispatch/result.py +0 -0
  35. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/endpoints.py +0 -0
  36. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/events.py +0 -0
  37. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/execution_profiles.py +0 -0
  38. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/fallback.py +0 -0
  39. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/hf_leaderboard.py +0 -0
  40. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/hf_sync.py +0 -0
  41. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/indexer.py +0 -0
  42. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/llm_client.py +0 -0
  43. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/mcp.py +0 -0
  44. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/memory.py +0 -0
  45. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/model_intelligence.py +0 -0
  46. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/model_profiles.py +0 -0
  47. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/orchestrator.py +0 -0
  48. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/permissions.py +0 -0
  49. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/profiles.py +0 -0
  50. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/provider_registry.py +0 -0
  51. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/repl.py +0 -0
  52. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/router.py +0 -0
  53. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/rules.py +0 -0
  54. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/runner.py +0 -0
  55. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/safety.py +0 -0
  56. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/spawner.py +0 -0
  57. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/suggester.py +0 -0
  58. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/teams.py +0 -0
  59. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/tools.py +0 -0
  60. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/verifier.py +0 -0
  61. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/agent/voice.py +0 -0
  62. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/architect.py +0 -0
  63. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/auditor.py +0 -0
  64. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/auth.py +0 -0
  65. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/block_export.py +0 -0
  66. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/channel.py +0 -0
  67. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/ci_manager.py +0 -0
  68. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/cli.py +0 -0
  69. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/commands/__init__.py +0 -0
  70. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/commands/intelligence.py +0 -0
  71. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/__init__.py +0 -0
  72. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/_compat.py +0 -0
  73. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/checker.py +0 -0
  74. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/evidence.py +0 -0
  75. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/regulations.py +0 -0
  76. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compliance/reporter.py +0 -0
  77. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/compressor.py +0 -0
  78. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/console_utils.py +0 -0
  79. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/context_orchestrator.py +0 -0
  80. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/context_window.py +0 -0
  81. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/credit_analyzer.py +0 -0
  82. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/credits.py +0 -0
  83. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/__init__.py +0 -0
  84. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/base.py +0 -0
  85. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/citations.py +0 -0
  86. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/fpd.py +0 -0
  87. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/odp.py +0 -0
  88. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/patentsview.py +0 -0
  89. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/pfw.py +0 -0
  90. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/ppubs.py +0 -0
  91. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/datasources/ptab.py +0 -0
  92. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/differ.py +0 -0
  93. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/doctor.py +0 -0
  94. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/drive.py +0 -0
  95. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/editor.py +0 -0
  96. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/__init__.py +0 -0
  97. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/belief.py +0 -0
  98. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/certainty.py +0 -0
  99. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/failure_graph.py +0 -0
  100. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/recovery.py +0 -0
  101. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/epistemic/stress_tester.py +0 -0
  102. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/esdb/__init__.py +0 -0
  103. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/esdb/bridge.py +0 -0
  104. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/eval/__init__.py +0 -0
  105. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/eval/builtins.py +0 -0
  106. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/eval/runner.py +0 -0
  107. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/executor.py +0 -0
  108. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/exporter.py +0 -0
  109. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/governance_logic.py +0 -0
  110. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/governance_store.py +0 -0
  111. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/governance_yaml.py +0 -0
  112. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/__init__.py +0 -0
  113. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/app.py +0 -0
  114. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/main_window.py +0 -0
  115. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/session_tab.py +0 -0
  116. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/theme.py +0 -0
  117. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/__init__.py +0 -0
  118. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/chat_view.py +0 -0
  119. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/input_bar.py +0 -0
  120. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  121. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/token_meter.py +0 -0
  122. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  123. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/widgets/update_checker.py +0 -0
  124. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/gui/worker.py +0 -0
  125. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/history_search.py +0 -0
  126. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/importer.py +0 -0
  127. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/instinct.py +0 -0
  128. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/__init__.py +0 -0
  129. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/agent_skill.py +0 -0
  130. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/aider.py +0 -0
  131. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/base.py +0 -0
  132. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/claude_code.py +0 -0
  133. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/codity.py +0 -0
  134. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/copilot.py +0 -0
  135. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/cursor.py +0 -0
  136. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/gemini.py +0 -0
  137. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/integrations/windsurf.py +0 -0
  138. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/issue_reporter.py +0 -0
  139. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/languages.py +0 -0
  140. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/ledger.py +0 -0
  141. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/mcp_generator.py +0 -0
  142. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/__init__.py +0 -0
  143. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
  144. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m002_agents_slim.py +0 -0
  145. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m003_compliance_init.py +0 -0
  146. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
  147. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
  148. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/m006_session_governance.py +0 -0
  149. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/migrations/runner.py +0 -0
  150. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/ollama_cmds.py +0 -0
  151. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/patent.py +0 -0
  152. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/paths.py +0 -0
  153. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/phase.py +0 -0
  154. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/plugins.py +0 -0
  155. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/profiles.py +0 -0
  156. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/rate_limits.py +0 -0
  157. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/releaser.py +0 -0
  158. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/requirements.py +0 -0
  159. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/requirements_parser.py +0 -0
  160. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/retrieval.py +0 -0
  161. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/safe_write.py +0 -0
  162. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/scaffolder.py +0 -0
  163. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/serve.py +0 -0
  164. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/session.py +0 -0
  165. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/session_init.py +0 -0
  166. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/session_store.py +0 -0
  167. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/cloud.py +0 -0
  168. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/corporate.py +0 -0
  169. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/cross_platform.py +0 -0
  170. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/devops.py +0 -0
  171. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/docs.py +0 -0
  172. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/embedded.py +0 -0
  173. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/governance.py +0 -0
  174. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/hardware.py +0 -0
  175. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/mobile.py +0 -0
  176. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/productivity.py +0 -0
  177. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills/ssh.py +0 -0
  178. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/skills_builder.py +0 -0
  179. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/sync.py +0 -0
  180. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/agents.md.j2 +0 -0
  181. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  182. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  183. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  184. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  185. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  186. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  187. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  188. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/community/security.md.j2 +0 -0
  189. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  190. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  191. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  192. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
  193. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
  194. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/editorconfig.j2 +0 -0
  195. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/gitattributes.j2 +0 -0
  196. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/gitignore.j2 +0 -0
  197. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/go/go.mod.j2 +0 -0
  198. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/go/main.go.j2 +0 -0
  199. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  200. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  201. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  202. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  203. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  204. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
  205. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  206. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  207. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
  208. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  209. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  210. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/js/package.json.j2 +0 -0
  211. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/ledger.md.j2 +0 -0
  212. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/python/cli.py.j2 +0 -0
  213. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/python/init.py.j2 +0 -0
  214. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
  215. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/readme.md.j2 +0 -0
  216. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
  217. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  218. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  219. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  220. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  221. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  222. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  223. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  224. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  225. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/tool_installer.py +0 -0
  226. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/toolrules.py +0 -0
  227. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/tools.py +0 -0
  228. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/trace.py +0 -0
  229. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/updater.py +0 -0
  230. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/upgrader.py +0 -0
  231. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/validator.py +0 -0
  232. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs/__init__.py +0 -0
  233. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs/base.py +0 -0
  234. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs/bitbucket.py +0 -0
  235. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs/github.py +0 -0
  236. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs/gitlab.py +0 -0
  237. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/vcs_commands.py +0 -0
  238. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/wireframes.py +0 -0
  239. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith/workspace.py +0 -0
  240. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith.egg-info/dependency_links.txt +0 -0
  241. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith.egg-info/entry_points.txt +0 -0
  242. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith.egg-info/requires.txt +0 -0
  243. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/src/specsmith.egg-info/top_level.txt +0 -0
  244. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_CMD_001.py +0 -0
  245. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_agent_profiles.py +0 -0
  246. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_agent_run_feedback.py +0 -0
  247. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_agent_runner_ready.py +0 -0
  248. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_ai_client.py +0 -0
  249. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_ai_intelligence.py +0 -0
  250. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_auditor.py +0 -0
  251. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_channel.py +0 -0
  252. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_chat_diff_decision.py +0 -0
  253. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_chat_runner_openai_compat.py +0 -0
  254. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_chat_stdin_protocol.py +0 -0
  255. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_cli_workflows_history_drive.py +0 -0
  256. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_compliance.py +0 -0
  257. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_compressor.py +0 -0
  258. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_dispatch.py +0 -0
  259. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_e2e_nexus.py +0 -0
  260. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_endpoints_cli.py +0 -0
  261. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_endpoints_store.py +0 -0
  262. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_epistemic.py +0 -0
  263. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_fallback_chain.py +0 -0
  264. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_importer.py +0 -0
  265. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_integrations.py +0 -0
  266. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_integrations_codity.py +0 -0
  267. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_intelligence.py +0 -0
  268. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_issue_reporter.py +0 -0
  269. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_mcp_client.py +0 -0
  270. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_new_modules.py +0 -0
  271. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_nexus.py +0 -0
  272. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_permissions.py +0 -0
  273. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_phase1_4_new.py +0 -0
  274. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_phase34_completion.py +0 -0
  275. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_rate_limits.py +0 -0
  276. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_req_248_262.py +0 -0
  277. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_req_358_359.py +0 -0
  278. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_scaffolder.py +0 -0
  279. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_skill_marketplace.py +0 -0
  280. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_skills_mcp.py +0 -0
  281. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_smoke.py +0 -0
  282. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_suggester.py +0 -0
  283. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_tools.py +0 -0
  284. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_validator.py +0 -0
  285. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_vcs.py +0 -0
  286. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_warp_parity.py +0 -0
  287. {specsmith-0.11.7.dev469 → specsmith-0.11.8.dev483}/tests/test_warp_parity_followup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.11.7.dev469
3
+ Version: 0.11.8.dev483
4
4
  Summary: Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands.
5
5
  Author: BitConcepts
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.11.7.dev469"
7
+ version = "0.11.8.dev483"
8
8
  description = "Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands."
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.11.7" # fallback: keep in sync with pyproject.toml
11
+ __version__ = "0.11.8" # fallback: keep in sync with pyproject.toml
@@ -115,7 +115,7 @@ class ProjectConfig(BaseModel):
115
115
  ),
116
116
  )
117
117
  language: str = Field(default="python", description="Primary language/runtime")
118
- spec_version: str = Field(default="0.11.7", description="Spec version to scaffold from")
118
+ spec_version: str = Field(default="0.11.8", description="Spec version to scaffold from")
119
119
  description: str = Field(default="", description="Short project description")
120
120
 
121
121
  # Options
@@ -11,16 +11,17 @@ existing code continues to work without changes.
11
11
 
12
12
  Domain modules
13
13
  ~~~~~~~~~~~~~~
14
- governance — project governance, verification, review, release workflows
15
- embedded RTOS/BSP: Zephyr, Yocto, FreeRTOS, NuttX, Buildroot, Azure RTOS …
16
- hardware EDA: KiCad, Altium, Vivado, Quartus, GTKWave, OpenOCD, JTAG
17
- mobile iOS (Xcode/Swift/TestFlight), Android (Gradle/ADB), Flutter, RN
18
- cloud AWS CLI, Azure CLI, GCP, GitHub CLI (gh)
19
- devops Docker, Kubernetes, Terraform, CI/CD pipelines
20
- ssh SSH key management, remote-dev, WSL2
21
- cross_platform CMake/vcpkg/conan, package managers, cross-OS CI
22
- productivity Email, presentations, Gamma.ai, MS Office, LibreOffice
23
- corporate Budgets, project mgmt, HR, fundraising, marketing, sales, legal
14
+ governance — project governance, verification, review, release workflows
15
+ specsmith_skills specsmith self-referential skills (save, audit, reference)
16
+ embedded RTOS/BSP: Zephyr, Yocto, FreeRTOS, NuttX, Buildroot, Azure RTOS …
17
+ hardware EDA: KiCad, Altium, Vivado, Quartus, GTKWave, OpenOCD, JTAG
18
+ mobile iOS (Xcode/Swift/TestFlight), Android (Gradle/ADB), Flutter, RN
19
+ cloud AWS CLI, Azure CLI, GCP, GitHub CLI (gh)
20
+ devops Docker, Kubernetes, Terraform, CI/CD pipelines
21
+ ssh SSH key management, remote-dev, WSL2
22
+ cross_platform CMake/vcpkg/conan, package managers, cross-OS CI
23
+ productivity Email, presentations, Gamma.ai, MS Office, LibreOffice
24
+ corporate — Budgets, project mgmt, HR, fundraising, marketing, sales, legal
24
25
 
25
26
  Usage
26
27
  ~~~~~
@@ -121,6 +122,7 @@ def _build_catalog() -> list[SkillEntry]:
121
122
  hardware,
122
123
  mobile,
123
124
  productivity,
125
+ specsmith_skills,
124
126
  ssh,
125
127
  )
126
128
 
@@ -136,6 +138,7 @@ def _build_catalog() -> list[SkillEntry]:
136
138
  + productivity.SKILLS
137
139
  + corporate.SKILLS
138
140
  + docs.SKILLS
141
+ + specsmith_skills.SKILLS
139
142
  )
140
143
 
141
144
 
@@ -0,0 +1,267 @@
1
+ # SPDX-License-Identifier: MIT
2
+ """Specsmith self-referential skills — how to USE specsmith in any project.
3
+
4
+ These skills teach AI agents (Warp, Claude Code, Codex, Cursor, etc.) the
5
+ core specsmith governance workflows. Install in any project via:
6
+
7
+ specsmith skill install specsmith
8
+ specsmith skill install specsmith-save
9
+ specsmith skill install specsmith-audit
10
+ """
11
+
12
+ from specsmith.skills import SkillDomain, SkillEntry
13
+
14
+ SKILLS: list[SkillEntry] = [
15
+ SkillEntry(
16
+ slug="specsmith",
17
+ name="Specsmith \u2014 AEE governance CLI reference",
18
+ description=(
19
+ "Master reference for the specsmith AEE governance tool: key concepts, "
20
+ "common commands, session workflow, phase advancement, and audit codes. "
21
+ "Use whenever working in a specsmith-governed project."
22
+ ),
23
+ domain=SkillDomain.GOVERNANCE,
24
+ tags=[
25
+ "specsmith",
26
+ "aee",
27
+ "governance",
28
+ "session",
29
+ "workflow",
30
+ "audit",
31
+ "phase",
32
+ "save",
33
+ "esdb",
34
+ "ledger",
35
+ ],
36
+ prerequisites=["specsmith"],
37
+ body="""\
38
+ # Specsmith \u2014 Project Governance Tool
39
+
40
+ Specsmith is the AEE (Agile Epistemic Engineering) governance CLI. It manages
41
+ requirements, phases, audit trails, and session state. It wraps git with
42
+ governance-aware commits and backs up the epistemic state DB (ESDB).
43
+
44
+ ## Key concepts
45
+
46
+ - **ESDB** \u2014 Epistemic State Database. Tracks certainty, audit state, session memory.
47
+ Backed up on `specsmith save`.
48
+ - **Phases** \u2014 AEE lifecycle: Inception \u2192 Elaboration \u2192 Construction \u2192
49
+ Transition \u2192 Validation \u2192 Hardening \u2192 Release.
50
+ - **Ledger** \u2014 Running log of changes in `LEDGER.md`. Auto-updated by commits.
51
+ - **Audit** \u2014 Checks requirements vs tests vs architecture for drift.
52
+ Required before phase advance.
53
+ - **Save** \u2014 ESDB backup + governance-aware git commit + push.
54
+
55
+ ## Session workflow
56
+
57
+ ```
58
+ 1. specsmith audit # check for drift before working
59
+ 2. <make code changes>
60
+ 3. specsmith save # commit + push + ESDB backup
61
+ ```
62
+
63
+ ## Common commands
64
+
65
+ | Command | What it does |
66
+ |---------|-------------|
67
+ | `specsmith save` | ESDB backup \u2192 commit (if needed) \u2192 push |
68
+ | `specsmith audit` | Drift/health check \u2014 requirements vs tests vs arch |
69
+ | `specsmith audit --suppress <CODE>` | Accept a known false positive |
70
+ | `specsmith phase` | Show current AEE phase |
71
+ | `specsmith phase advance` | Advance to next phase (requires clean audit) |
72
+ | `specsmith commit` | Governance-aware commit (wraps git commit) |
73
+ | `specsmith ledger` | Show/manage the change ledger |
74
+ | `specsmith compress` | Compress old ledger entries |
75
+ | `specsmith req` | Manage requirements |
76
+ | `specsmith test` | Manage test cases |
77
+ | `specsmith status` | VCS/CI/PR status |
78
+ | `specsmith skill list` | List built-in installable skills |
79
+ | `specsmith skill install <slug>` | Install a skill into `.agents/skills/` |
80
+
81
+ ## Commit conventions
82
+
83
+ Specsmith commits follow: `type: message` where type is one of:
84
+ `feat`, `fix`, `refactor`, `test`, `docs`, `chore`, `perf`
85
+
86
+ Always append `Co-Authored-By: Oz <oz-agent@warp.dev>` when committing as an AI agent.
87
+
88
+ ## Important rules
89
+
90
+ - **Never use `git commit` directly** \u2014 use `specsmith save` or `specsmith commit`.
91
+ - **Run `specsmith audit` before advancing a phase** \u2014 drift will cause failure.
92
+ - **Suppressed audit findings** are stored permanently; only suppress genuine false positives.
93
+ - After `specsmith save` outputs `\u2713 push: Everything up-to-date`, the repo is clean.
94
+
95
+ ## Audit result codes
96
+
97
+ - `PASS` \u2014 requirement/test/arch is consistent
98
+ - `WARN` \u2014 drift detected, investigate
99
+ - `SKIP` / suppressed \u2014 accepted false positive
100
+ - IDs like `R20`, `R21` \u2014 requirement IDs in ARCHITECTURE.md
101
+
102
+ ## Phase advancement
103
+
104
+ ```bash
105
+ specsmith audit # must be all-pass (or suppressed)
106
+ specsmith phase advance # bumps phase, writes ledger entry
107
+ specsmith save # commit the phase bump
108
+ ```
109
+
110
+ ## Installing skills in any project
111
+
112
+ ```bash
113
+ specsmith skill install specsmith # this reference card
114
+ specsmith skill install specsmith-save # save workflow
115
+ specsmith skill install specsmith-audit # audit workflow
116
+ ```
117
+ """,
118
+ ),
119
+ SkillEntry(
120
+ slug="specsmith-save",
121
+ name="Specsmith Save \u2014 commit and push with governance state backup",
122
+ description=(
123
+ "How and when to run `specsmith save`: backs up the ESDB, commits any "
124
+ "staged/unstaged changes, and pushes to the remote. Use at the end of "
125
+ "any work session or after completing a feature/fix."
126
+ ),
127
+ domain=SkillDomain.GOVERNANCE,
128
+ tags=[
129
+ "specsmith",
130
+ "save",
131
+ "commit",
132
+ "push",
133
+ "esdb",
134
+ "governance",
135
+ "session",
136
+ ],
137
+ prerequisites=["specsmith"],
138
+ body="""\
139
+ # Specsmith Save
140
+
141
+ Saves governance state: backs up the ESDB, commits any staged/unstaged changes,
142
+ and pushes to the remote.
143
+
144
+ ## When to use
145
+
146
+ - At the end of any work session
147
+ - After implementing a feature, fix, or refactor
148
+ - After advancing a phase
149
+ - Whenever the user says \"save\", \"commit and push\", or \"specsmith save\"
150
+
151
+ ## How to run
152
+
153
+ ```bash
154
+ specsmith save
155
+ ```
156
+
157
+ ## What it does (in order)
158
+
159
+ 1. **ESDB backup** \u2014 snapshots the epistemic state database
160
+ 2. **Commit** \u2014 stages all changes and commits (or reports \"Nothing to commit\")
161
+ 3. **Push** \u2014 pushes the branch to origin (or reports \"Everything up-to-date\")
162
+
163
+ ## Expected successful output
164
+
165
+ ```
166
+ \u2713 esdb_backup: JSON fallback (no WAL to backup)
167
+ \u2713 commit: Nothing to commit \u2190 or a commit hash
168
+ \u2713 push: Everything up-to-date \u2190 or \"pushed to origin/branch\"
169
+ ```
170
+
171
+ ## If there are changes to commit
172
+
173
+ Specsmith auto-stages and commits. You can also pre-stage manually:
174
+
175
+ ```bash
176
+ git add -A
177
+ git commit -m \"feat: description
178
+
179
+ Co-Authored-By: Oz <oz-agent@warp.dev>\"
180
+ specsmith save # will see nothing to commit, just pushes
181
+ ```
182
+
183
+ ## Do NOT use `git push` directly
184
+
185
+ Always use `specsmith save` \u2014 it ensures the ESDB backup runs before the push,
186
+ keeping governance state consistent with the remote.
187
+ """,
188
+ ),
189
+ SkillEntry(
190
+ slug="specsmith-audit",
191
+ name="Specsmith Audit \u2014 governance drift check",
192
+ description=(
193
+ "How to run `specsmith audit` to check for governance drift between "
194
+ "requirements, tests, and architecture. Required before advancing an AEE phase."
195
+ ),
196
+ domain=SkillDomain.GOVERNANCE,
197
+ tags=[
198
+ "specsmith",
199
+ "audit",
200
+ "drift",
201
+ "requirements",
202
+ "governance",
203
+ "aee",
204
+ "phase",
205
+ "verification",
206
+ ],
207
+ prerequisites=["specsmith"],
208
+ body="""\
209
+ # Specsmith Audit
210
+
211
+ Checks the project for drift between requirements (ARCHITECTURE.md), test cases,
212
+ and the codebase. Must pass before advancing an AEE phase.
213
+
214
+ ## How to run
215
+
216
+ ```bash
217
+ specsmith audit
218
+ ```
219
+
220
+ ## Interpreting results
221
+
222
+ ```
223
+ 29 PASS \u2190 all requirements have matching tests and implementation
224
+ 2 WARN \u2190 drift detected \u2014 investigate these
225
+ 0 FAIL
226
+ ```
227
+
228
+ **All items must be PASS or suppressed before `specsmith phase advance`.**
229
+
230
+ ## When a WARN appears
231
+
232
+ 1. Read the warning \u2014 it references a requirement ID (e.g. `R20`) and describes what's missing
233
+ 2. Fix it: add the missing test, update ARCHITECTURE.md, or implement the requirement
234
+ 3. Re-run `specsmith audit` to confirm it passes
235
+ 4. If it's a confirmed false positive: `specsmith audit --suppress <CODE>`
236
+
237
+ ## Suppressing a false positive
238
+
239
+ Only suppress if you've verified the requirement IS met but the audit can't detect it:
240
+
241
+ ```bash
242
+ specsmith audit --suppress SEAL-XXXX-001
243
+ ```
244
+
245
+ Suppressions are permanent \u2014 use sparingly.
246
+
247
+ ## Common causes of WARN
248
+
249
+ - Requirement in ARCHITECTURE.md has no corresponding test case
250
+ - Test exists but requirement ID reference is missing from the test
251
+ - Implementation exists but the architecture doc wasn't updated to match
252
+
253
+ ## After fixing all warnings
254
+
255
+ ```bash
256
+ specsmith audit # confirm all pass
257
+ specsmith phase advance # advance the phase
258
+ specsmith save # commit the phase bump
259
+ ```
260
+
261
+ ## Quick audit before a session
262
+
263
+ Run `specsmith audit` at the start of a session to catch drift from the previous
264
+ session before making new changes.
265
+ """,
266
+ ),
267
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: specsmith
3
- Version: 0.11.7.dev469
3
+ Version: 0.11.8.dev483
4
4
  Summary: Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands.
5
5
  Author: BitConcepts
6
6
  License-Expression: MIT
@@ -186,6 +186,7 @@ src/specsmith/skills/governance.py
186
186
  src/specsmith/skills/hardware.py
187
187
  src/specsmith/skills/mobile.py
188
188
  src/specsmith/skills/productivity.py
189
+ src/specsmith/skills/specsmith_skills.py
189
190
  src/specsmith/skills/ssh.py
190
191
  src/specsmith/templates/agents.md.j2
191
192
  src/specsmith/templates/editorconfig.j2
@@ -124,14 +124,14 @@ class TestCLIUpgrade:
124
124
  yaml.dump(data, fh, default_flow_style=False)
125
125
  runner = CliRunner()
126
126
  result = runner.invoke(
127
- main, ["upgrade", "--project-dir", str(target), "--spec-version", "0.11.7"]
127
+ main, ["upgrade", "--project-dir", str(target), "--spec-version", "0.11.8"]
128
128
  )
129
129
  assert result.exit_code == 0
130
130
  assert "Upgraded" in result.output
131
131
  # Verify scaffold.yml spec_version was updated to the target version
132
132
  with open(target / "scaffold.yml") as fh:
133
133
  data = yaml.safe_load(fh)
134
- assert data["spec_version"] == "0.11.7"
134
+ assert data["spec_version"] == "0.11.8"
135
135
 
136
136
 
137
137
  class TestCLICreditsLimits: