specsmith 0.3.0.dev139__tar.gz → 0.3.6.dev164__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 (169) hide show
  1. specsmith-0.3.6.dev164/PKG-INFO +341 -0
  2. specsmith-0.3.6.dev164/README.md +276 -0
  3. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/pyproject.toml +39 -4
  4. specsmith-0.3.6.dev164/src/specsmith/agent/providers/gemini.py +246 -0
  5. specsmith-0.3.6.dev164/src/specsmith/agent/providers/ollama.py +318 -0
  6. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/providers/openai.py +33 -5
  7. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/runner.py +154 -4
  8. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/auditor.py +4 -4
  9. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/cli.py +1173 -3
  10. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/config.py +73 -9
  11. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/importer.py +210 -45
  12. specsmith-0.3.6.dev164/src/specsmith/languages.py +321 -0
  13. specsmith-0.3.6.dev164/src/specsmith/ollama_cmds.py +407 -0
  14. specsmith-0.3.6.dev164/src/specsmith/phase.py +376 -0
  15. specsmith-0.3.6.dev164/src/specsmith/profiles.py +425 -0
  16. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/agents.md.j2 +22 -22
  17. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/requirements.md.j2 +7 -7
  18. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/test-spec.md.j2 +3 -3
  19. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/editorconfig.j2 +10 -10
  20. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/gitattributes.j2 +13 -13
  21. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/gitignore.j2 +17 -17
  22. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/js/package.json.j2 +2 -2
  23. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/ledger.md.j2 +3 -3
  24. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/python/pyproject.toml.j2 +1 -1
  25. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/rust/Cargo.toml.j2 +2 -2
  26. specsmith-0.3.6.dev164/src/specsmith/tool_installer.py +471 -0
  27. specsmith-0.3.6.dev164/src/specsmith/toolrules.py +404 -0
  28. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/tools.py +40 -1
  29. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs_commands.py +3 -2
  30. specsmith-0.3.6.dev164/src/specsmith.egg-info/PKG-INFO +341 -0
  31. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith.egg-info/SOURCES.txt +6 -0
  32. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith.egg-info/requires.txt +1 -1
  33. specsmith-0.3.0.dev139/PKG-INFO +0 -332
  34. specsmith-0.3.0.dev139/README.md +0 -267
  35. specsmith-0.3.0.dev139/src/specsmith/agent/providers/gemini.py +0 -125
  36. specsmith-0.3.0.dev139/src/specsmith/agent/providers/ollama.py +0 -148
  37. specsmith-0.3.0.dev139/src/specsmith.egg-info/PKG-INFO +0 -332
  38. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/LICENSE +0 -0
  39. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/setup.cfg +0 -0
  40. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/__init__.py +0 -0
  41. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/belief.py +0 -0
  42. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/certainty.py +0 -0
  43. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/failure_graph.py +0 -0
  44. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/py.typed +0 -0
  45. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/recovery.py +0 -0
  46. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/session.py +0 -0
  47. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/stress_tester.py +0 -0
  48. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/epistemic/trace.py +0 -0
  49. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/__init__.py +0 -0
  50. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/__main__.py +0 -0
  51. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/__init__.py +0 -0
  52. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/core.py +0 -0
  53. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/hooks.py +0 -0
  54. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/optimizer.py +0 -0
  55. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
  56. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/profiles/planner.md +0 -0
  57. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/profiles/verifier.md +0 -0
  58. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/providers/__init__.py +0 -0
  59. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/providers/anthropic.py +0 -0
  60. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/providers/mistral.py +0 -0
  61. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/skills.py +0 -0
  62. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/agent/tools.py +0 -0
  63. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/architect.py +0 -0
  64. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/auth.py +0 -0
  65. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/commands/__init__.py +0 -0
  66. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/compressor.py +0 -0
  67. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/credit_analyzer.py +0 -0
  68. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/credits.py +0 -0
  69. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/differ.py +0 -0
  70. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/doctor.py +0 -0
  71. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/__init__.py +0 -0
  72. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/belief.py +0 -0
  73. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/certainty.py +0 -0
  74. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/failure_graph.py +0 -0
  75. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/recovery.py +0 -0
  76. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/epistemic/stress_tester.py +0 -0
  77. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/executor.py +0 -0
  78. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/exporter.py +0 -0
  79. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/__init__.py +0 -0
  80. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/app.py +0 -0
  81. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/main_window.py +0 -0
  82. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/session_tab.py +0 -0
  83. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/theme.py +0 -0
  84. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/__init__.py +0 -0
  85. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/chat_view.py +0 -0
  86. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/input_bar.py +0 -0
  87. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/provider_bar.py +0 -0
  88. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/token_meter.py +0 -0
  89. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/tool_panel.py +0 -0
  90. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/widgets/update_checker.py +0 -0
  91. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/gui/worker.py +0 -0
  92. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/__init__.py +0 -0
  93. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/aider.py +0 -0
  94. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/base.py +0 -0
  95. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/claude_code.py +0 -0
  96. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/copilot.py +0 -0
  97. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/cursor.py +0 -0
  98. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/gemini.py +0 -0
  99. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/warp.py +0 -0
  100. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/integrations/windsurf.py +0 -0
  101. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/ledger.py +0 -0
  102. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/patent.py +0 -0
  103. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/plugins.py +0 -0
  104. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/rate_limits.py +0 -0
  105. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/releaser.py +0 -0
  106. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/requirements.py +0 -0
  107. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/scaffolder.py +0 -0
  108. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/session.py +0 -0
  109. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
  110. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
  111. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/contributing.md.j2 +0 -0
  112. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
  113. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
  114. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/license-MIT.j2 +0 -0
  115. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
  116. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/community/security.md.j2 +0 -0
  117. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
  118. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
  119. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
  120. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/docs/workflow.md.j2 +0 -0
  121. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/go/go.mod.j2 +0 -0
  122. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/go/main.go.j2 +0 -0
  123. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
  124. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
  125. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
  126. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
  127. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
  128. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/roles.md.j2 +0 -0
  129. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/rules.md.j2 +0 -0
  130. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
  131. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/verification.md.j2 +0 -0
  132. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/governance/workflow.md.j2 +0 -0
  133. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/python/cli.py.j2 +0 -0
  134. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/python/init.py.j2 +0 -0
  135. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/readme.md.j2 +0 -0
  136. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/rust/main.rs.j2 +0 -0
  137. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
  138. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
  139. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
  140. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
  141. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
  142. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
  143. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
  144. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/trace.py +0 -0
  145. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/updater.py +0 -0
  146. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/upgrader.py +0 -0
  147. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/validator.py +0 -0
  148. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs/__init__.py +0 -0
  149. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs/base.py +0 -0
  150. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs/bitbucket.py +0 -0
  151. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs/github.py +0 -0
  152. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/vcs/gitlab.py +0 -0
  153. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith/workspace.py +0 -0
  154. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith.egg-info/dependency_links.txt +0 -0
  155. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith.egg-info/entry_points.txt +0 -0
  156. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/src/specsmith.egg-info/top_level.txt +0 -0
  157. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_auditor.py +0 -0
  158. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_cli.py +0 -0
  159. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_compressor.py +0 -0
  160. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_epistemic.py +0 -0
  161. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_importer.py +0 -0
  162. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_integrations.py +0 -0
  163. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_optimizer.py +0 -0
  164. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_rate_limits.py +0 -0
  165. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_scaffolder.py +0 -0
  166. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_smoke.py +0 -0
  167. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_tools.py +0 -0
  168. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_validator.py +0 -0
  169. {specsmith-0.3.0.dev139 → specsmith-0.3.6.dev164}/tests/test_vcs.py +0 -0
@@ -0,0 +1,341 @@
1
+ Metadata-Version: 2.4
2
+ Name: specsmith
3
+ Version: 0.3.6.dev164
4
+ Summary: Applied Epistemic Engineering toolkit — AEE agent sessions, execution profiles, FPGA/HDL governance, tool installer, 50+ CLI commands.
5
+ Author: BitConcepts
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/BitConcepts/specsmith
8
+ Project-URL: Documentation, https://specsmith.readthedocs.io
9
+ Project-URL: Repository, https://github.com/BitConcepts/specsmith
10
+ Project-URL: Changelog, https://github.com/BitConcepts/specsmith/blob/main/CHANGELOG.md
11
+ Project-URL: Issues, https://github.com/BitConcepts/specsmith/issues
12
+ Keywords: agentic,scaffold,governance,agents-md,cli,epistemic-engineering,belief-artifacts,stress-testing,certainty,trace-vault,aee,knowledge-engineering,fpga,hdl,vhdl,execution-profiles,tool-installer,llm,ollama,requirements-management
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Topic :: Software Development :: Code Generators
23
+ Classifier: Topic :: Software Development :: Build Tools
24
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: click>=8.1
30
+ Requires-Dist: jinja2>=3.1
31
+ Requires-Dist: pyyaml>=6.0
32
+ Requires-Dist: pydantic>=2.0
33
+ Requires-Dist: rich>=13.0
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest>=7.0; extra == "dev"
36
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
37
+ Requires-Dist: ruff>=0.4; extra == "dev"
38
+ Requires-Dist: mypy>=1.10; extra == "dev"
39
+ Requires-Dist: pre-commit>=3.0; extra == "dev"
40
+ Requires-Dist: types-pyyaml>=6.0; extra == "dev"
41
+ Provides-Extra: docs
42
+ Requires-Dist: mkdocs>=1.6; extra == "docs"
43
+ Requires-Dist: mkdocs-material>=9.5; extra == "docs"
44
+ Provides-Extra: anthropic
45
+ Requires-Dist: anthropic>=0.56; extra == "anthropic"
46
+ Provides-Extra: openai
47
+ Requires-Dist: openai>=1.0; extra == "openai"
48
+ Provides-Extra: gemini
49
+ Requires-Dist: google-genai>=1.0; extra == "gemini"
50
+ Provides-Extra: mistral
51
+ Requires-Dist: openai>=1.0; extra == "mistral"
52
+ Provides-Extra: gui
53
+ Requires-Dist: PySide6>=6.6; extra == "gui"
54
+ Provides-Extra: agent
55
+ Requires-Dist: anthropic>=0.56; extra == "agent"
56
+ Requires-Dist: openai>=1.0; extra == "agent"
57
+ Provides-Extra: all
58
+ Requires-Dist: anthropic>=0.56; extra == "all"
59
+ Requires-Dist: openai>=1.0; extra == "all"
60
+ Requires-Dist: pytest>=7.0; extra == "all"
61
+ Requires-Dist: pytest-cov>=4.0; extra == "all"
62
+ Requires-Dist: ruff>=0.4; extra == "all"
63
+ Requires-Dist: mypy>=1.10; extra == "all"
64
+ Dynamic: license-file
65
+
66
+ # specsmith
67
+
68
+ [![CI](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml/badge.svg)](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
69
+ [![Docs](https://readthedocs.org/projects/specsmith/badge/?version=stable)](https://specsmith.readthedocs.io/en/stable/)
70
+ [![PyPI](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
71
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
72
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
73
+ [![VS Code Extension](https://img.shields.io/badge/VS%20Code-AEE%20Workbench-4ec9b0?logo=visualstudiocode)](https://github.com/BitConcepts/specsmith-vscode)
74
+
75
+ **Applied Epistemic Engineering toolkit for AI-assisted development.**
76
+
77
+ > Intelligence proposes. Constraints decide. The ledger remembers.
78
+
79
+ specsmith treats belief systems like code: codable, testable, and deployable. It scaffolds
80
+ epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
81
+ cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
82
+
83
+ It also co-installs the standalone `epistemic` Python library for direct use in any project:
84
+
85
+ ```python
86
+ from epistemic import AEESession # works in any Python 3.10+ project
87
+ from epistemic import BeliefArtifact, StressTester, CertaintyEngine
88
+ ```
89
+
90
+ ---
91
+
92
+ ## What is Applied Epistemic Engineering?
93
+
94
+ AEE treats requirements, decisions, and assumptions — the beliefs your project depends on — as
95
+ engineering artifacts subject to the same discipline as code: version control, testing, and refactoring.
96
+
97
+ **The 4-step core method: Frame → Disassemble → Stress-Test → Reconstruct**
98
+
99
+ **The 5 foundational axioms:**
100
+ 1. **Observability** — every belief must be inspectable
101
+ 2. **Falsifiability** — every belief must be challengeable
102
+ 3. **Irreducibility** — beliefs decompose to atomic primitives
103
+ 4. **Reconstructability** — every failed belief can be rebuilt
104
+ 5. **Convergence** — stress-test + recovery always reaches Equilibrium
105
+
106
+ ---
107
+
108
+ ## The AEE Workflow — 7 Phases
109
+
110
+ specsmith tracks your project through the full AEE development cycle:
111
+
112
+ ```
113
+ 🌱 Inception → 🏗 Architecture → 📋 Requirements → ✅ Test Spec
114
+ → ⚙ Implementation → 🔬 Verification → 🚀 Release
115
+ ```
116
+
117
+ ```bash
118
+ specsmith phase # show current phase + readiness checklist
119
+ specsmith phase next # advance to the next phase (runs checks first)
120
+ specsmith phase set requirements # jump to a specific phase
121
+ specsmith phase list # list all phases
122
+ ```
123
+
124
+ The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
125
+ Governance Panel. Each phase has a checklist of file/command criteria, recommended commands,
126
+ and a readiness percentage.
127
+
128
+ ---
129
+
130
+ ## Install
131
+
132
+ **Recommended — global install via [pipx](https://pipx.pypa.io):**
133
+
134
+ ```bash
135
+ pipx install specsmith # core CLI + epistemic library
136
+ pipx inject specsmith anthropic # + Claude support
137
+ pipx inject specsmith openai # + GPT / O-series support
138
+ pipx inject specsmith google-generativeai # + Gemini support
139
+ ```
140
+
141
+ **Or with pip:**
142
+
143
+ ```bash
144
+ pip install specsmith # core
145
+ pip install "specsmith[anthropic]" # + Claude
146
+ pip install "specsmith[openai]" # + GPT/O-series
147
+ pip install "specsmith[gemini]" # + Gemini
148
+ ```
149
+
150
+ **Update:**
151
+
152
+ ```bash
153
+ pipx upgrade specsmith
154
+ specsmith self-update
155
+ ```
156
+
157
+ ---
158
+
159
+ ## Quick Start
160
+
161
+ ```bash
162
+ # New project (interactive)
163
+ specsmith init
164
+
165
+ # Adopt an existing project
166
+ specsmith import --project-dir ./my-project
167
+
168
+ # Check governance health
169
+ specsmith audit --project-dir ./my-project
170
+
171
+ # Run AEE stress-test on requirements
172
+ specsmith stress-test --project-dir ./my-project
173
+
174
+ # Full epistemic audit (certainty + logic knots + recovery proposals)
175
+ specsmith epistemic-audit --project-dir ./my-project
176
+
177
+ # Start the agentic REPL
178
+ specsmith run --project-dir ./my-project
179
+
180
+ # Check current AEE workflow phase
181
+ specsmith phase --project-dir ./my-project
182
+ ```
183
+
184
+ ---
185
+
186
+ ## VS Code Extension
187
+
188
+ The **specsmith AEE Workbench** VS Code extension is the flagship client:
189
+
190
+ ```
191
+ # Install specsmith first, then:
192
+ # VS Code: Ctrl+Shift+P → specsmith: New Agent Session
193
+ # Governance Panel: Ctrl+Shift+G
194
+ ```
195
+
196
+ **Key features:**
197
+ - **6-tab Settings panel** — Project / Tools / Files / Updates / Actions / Execution
198
+ - **Execution profiles** — safe (read-only) / standard / open / admin; custom allow/block command lists stored in `scaffold.yml`
199
+ - **AEE phase indicator** — shows current phase with readiness %, Next Phase button, and phase selector
200
+ - **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
201
+ - **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
202
+ - **Ollama integration** — browse curated catalog, download models with progress, task-based suggestions
203
+ - **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
204
+ - **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
205
+ - **Tool rules** — curated AI context rules for 20+ tools (VSG, GHDL, Verilator, ruff, mypy, etc.) auto-injected into agent system prompt
206
+ - **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
207
+ - **Update checker** — PyPI version check, Install Update button, release channel selector (stable / pre-release)
208
+ - **Auto-open** — Settings panel always opens alongside every new session; never a blank pane
209
+
210
+ **[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
211
+
212
+ ---
213
+
214
+ ## Ollama — Local LLMs (Zero API Cost)
215
+
216
+ specsmith has first-class Ollama support, including:
217
+
218
+ ```bash
219
+ specsmith ollama gpu # detect GPU and VRAM tier
220
+ specsmith ollama available # show catalog filtered by VRAM budget
221
+ specsmith ollama available --task code # filter by task type
222
+ specsmith ollama pull qwen2.5:14b # download a model
223
+ specsmith ollama suggest requirements # task-based recommendations
224
+ specsmith ollama list # show installed models
225
+ ```
226
+
227
+ GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
228
+ Override with `specsmith.ollamaContextLength` in VS Code settings.
229
+
230
+ ---
231
+
232
+ ## FPGA / HDL Projects
233
+
234
+ specsmith supports FPGA-specific project types with full governance:
235
+
236
+ ```yaml
237
+ # scaffold.yml
238
+ type: fpga-rtl-amd # or fpga-rtl-intel / fpga-rtl-lattice / fpga-rtl
239
+ fpga_tools:
240
+ - vivado
241
+ - gtkwave
242
+ - vsg
243
+ - ghdl
244
+ - verilator
245
+ ```
246
+
247
+ Supported tools: **Synthesis:** vivado, quartus, radiant, diamond, gowin.
248
+ **Simulation:** ghdl, iverilog, verilator, modelsim, questasim, xsim.
249
+ **Waveform:** gtkwave, surfer. **Linting:** vsg, verible, svlint.
250
+ **Formal:** symbiyosys. **OSS flow:** yosys, nextpnr, openFPGALoader.
251
+
252
+ ---
253
+
254
+ ## 50+ CLI Commands
255
+
256
+ **Governance:** `init` `import` `audit` `validate` `diff` `upgrade` `compress` `doctor` `export` `architect`
257
+
258
+ **AEE Epistemic:** `stress-test` `epistemic-audit` `belief-graph` `trace seal/verify/log` `integrate`
259
+
260
+ **Workflow:** `phase show/set/next/list` `ledger add/list` `req list/add/gaps/trace`
261
+
262
+ **Agent:** `run` `agent providers/tools/skills`
263
+
264
+ **Ollama:** `ollama list/available/gpu/pull/suggest`
265
+
266
+ **Workspace:** `workspace init/audit/export`
267
+
268
+ **VCS:** `commit` `push` `sync` `branch` `pr` `status`
269
+
270
+ **Tools:** `tools scan [--fpga]` `tools install <tool>` `tools rules [--tool] [--list]`
271
+
272
+ **Tools:** `exec` `ps` `abort` `watch` `optimize` `credits` `self-update`
273
+
274
+ **Auth:** `auth set/list/remove/check`
275
+
276
+ **Patent:** `patent search/prior-art`
277
+
278
+ ---
279
+
280
+ ## 35 Project Types
281
+
282
+ **Software:** Python CLI/lib/web, Rust, Go, C/C++, .NET, Node.js/TypeScript, mobile, microservices, data/ML.
283
+
284
+ **Hardware/Embedded:** FPGA/RTL (Xilinx, Intel, Lattice, generic), Yocto BSP, embedded C/C++.
285
+
286
+ **Documents:** Technical specs, research papers, API specs, requirements management.
287
+
288
+ **Business/Legal:** Business plans, patent applications, compliance frameworks.
289
+
290
+ ---
291
+
292
+ ## epistemic Library
293
+
294
+ The standalone `epistemic` Python library works in any Python 3.10+ project — no specsmith coupling:
295
+
296
+ ```python
297
+ from epistemic import AEESession, BeliefArtifact, StressTester
298
+
299
+ session = AEESession("my-project", threshold=0.70)
300
+ session.add_belief(
301
+ artifact_id="HYP-001",
302
+ propositions=["The API always returns valid JSON"],
303
+ epistemic_boundary=["Valid auth token required"],
304
+ )
305
+ session.accept("HYP-001")
306
+ result = session.run()
307
+ print(result.summary())
308
+ # certainty=0.55, failures=2, equilibrium=False
309
+ ```
310
+
311
+ Use cases: linguistics research, compliance pipelines, AI alignment, patent prosecution.
312
+
313
+ ---
314
+
315
+ ## Governance Rules (H1–H13)
316
+
317
+ 13 hard rules enforced by `specsmith validate`:
318
+
319
+ - **H11** — Every loop or blocking wait must have a timeout, fallback exit, and diagnostic message.
320
+ - **H12** — Windows multi-step automation goes into `.cmd` files, not inline shell invocations.
321
+ - **H13** — Agent tools must declare epistemic contracts (what they claim and what they cannot detect).
322
+
323
+ ---
324
+
325
+ ## Documentation
326
+
327
+ **[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
328
+ command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
329
+
330
+ ## Links
331
+
332
+ - [PyPI](https://pypi.org/project/specsmith/)
333
+ - [Documentation](https://specsmith.readthedocs.io)
334
+ - [Changelog](CHANGELOG.md)
335
+ - [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
336
+ - [Contributing](CONTRIBUTING.md)
337
+ - [Security](SECURITY.md)
338
+
339
+ ## License
340
+
341
+ MIT — Copyright (c) 2026 BitConcepts, LLC.
@@ -0,0 +1,276 @@
1
+ # specsmith
2
+
3
+ [![CI](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml/badge.svg)](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
4
+ [![Docs](https://readthedocs.org/projects/specsmith/badge/?version=stable)](https://specsmith.readthedocs.io/en/stable/)
5
+ [![PyPI](https://img.shields.io/pypi/v/specsmith?label=stable&style=flat&color=blue&cacheSeconds=60)](https://pypi.org/project/specsmith/)
6
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
7
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
8
+ [![VS Code Extension](https://img.shields.io/badge/VS%20Code-AEE%20Workbench-4ec9b0?logo=visualstudiocode)](https://github.com/BitConcepts/specsmith-vscode)
9
+
10
+ **Applied Epistemic Engineering toolkit for AI-assisted development.**
11
+
12
+ > Intelligence proposes. Constraints decide. The ledger remembers.
13
+
14
+ specsmith treats belief systems like code: codable, testable, and deployable. It scaffolds
15
+ epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
16
+ cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
17
+
18
+ It also co-installs the standalone `epistemic` Python library for direct use in any project:
19
+
20
+ ```python
21
+ from epistemic import AEESession # works in any Python 3.10+ project
22
+ from epistemic import BeliefArtifact, StressTester, CertaintyEngine
23
+ ```
24
+
25
+ ---
26
+
27
+ ## What is Applied Epistemic Engineering?
28
+
29
+ AEE treats requirements, decisions, and assumptions — the beliefs your project depends on — as
30
+ engineering artifacts subject to the same discipline as code: version control, testing, and refactoring.
31
+
32
+ **The 4-step core method: Frame → Disassemble → Stress-Test → Reconstruct**
33
+
34
+ **The 5 foundational axioms:**
35
+ 1. **Observability** — every belief must be inspectable
36
+ 2. **Falsifiability** — every belief must be challengeable
37
+ 3. **Irreducibility** — beliefs decompose to atomic primitives
38
+ 4. **Reconstructability** — every failed belief can be rebuilt
39
+ 5. **Convergence** — stress-test + recovery always reaches Equilibrium
40
+
41
+ ---
42
+
43
+ ## The AEE Workflow — 7 Phases
44
+
45
+ specsmith tracks your project through the full AEE development cycle:
46
+
47
+ ```
48
+ 🌱 Inception → 🏗 Architecture → 📋 Requirements → ✅ Test Spec
49
+ → ⚙ Implementation → 🔬 Verification → 🚀 Release
50
+ ```
51
+
52
+ ```bash
53
+ specsmith phase # show current phase + readiness checklist
54
+ specsmith phase next # advance to the next phase (runs checks first)
55
+ specsmith phase set requirements # jump to a specific phase
56
+ specsmith phase list # list all phases
57
+ ```
58
+
59
+ The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
60
+ Governance Panel. Each phase has a checklist of file/command criteria, recommended commands,
61
+ and a readiness percentage.
62
+
63
+ ---
64
+
65
+ ## Install
66
+
67
+ **Recommended — global install via [pipx](https://pipx.pypa.io):**
68
+
69
+ ```bash
70
+ pipx install specsmith # core CLI + epistemic library
71
+ pipx inject specsmith anthropic # + Claude support
72
+ pipx inject specsmith openai # + GPT / O-series support
73
+ pipx inject specsmith google-generativeai # + Gemini support
74
+ ```
75
+
76
+ **Or with pip:**
77
+
78
+ ```bash
79
+ pip install specsmith # core
80
+ pip install "specsmith[anthropic]" # + Claude
81
+ pip install "specsmith[openai]" # + GPT/O-series
82
+ pip install "specsmith[gemini]" # + Gemini
83
+ ```
84
+
85
+ **Update:**
86
+
87
+ ```bash
88
+ pipx upgrade specsmith
89
+ specsmith self-update
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Quick Start
95
+
96
+ ```bash
97
+ # New project (interactive)
98
+ specsmith init
99
+
100
+ # Adopt an existing project
101
+ specsmith import --project-dir ./my-project
102
+
103
+ # Check governance health
104
+ specsmith audit --project-dir ./my-project
105
+
106
+ # Run AEE stress-test on requirements
107
+ specsmith stress-test --project-dir ./my-project
108
+
109
+ # Full epistemic audit (certainty + logic knots + recovery proposals)
110
+ specsmith epistemic-audit --project-dir ./my-project
111
+
112
+ # Start the agentic REPL
113
+ specsmith run --project-dir ./my-project
114
+
115
+ # Check current AEE workflow phase
116
+ specsmith phase --project-dir ./my-project
117
+ ```
118
+
119
+ ---
120
+
121
+ ## VS Code Extension
122
+
123
+ The **specsmith AEE Workbench** VS Code extension is the flagship client:
124
+
125
+ ```
126
+ # Install specsmith first, then:
127
+ # VS Code: Ctrl+Shift+P → specsmith: New Agent Session
128
+ # Governance Panel: Ctrl+Shift+G
129
+ ```
130
+
131
+ **Key features:**
132
+ - **6-tab Settings panel** — Project / Tools / Files / Updates / Actions / Execution
133
+ - **Execution profiles** — safe (read-only) / standard / open / admin; custom allow/block command lists stored in `scaffold.yml`
134
+ - **AEE phase indicator** — shows current phase with readiness %, Next Phase button, and phase selector
135
+ - **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
136
+ - **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
137
+ - **Ollama integration** — browse curated catalog, download models with progress, task-based suggestions
138
+ - **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
139
+ - **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
140
+ - **Tool rules** — curated AI context rules for 20+ tools (VSG, GHDL, Verilator, ruff, mypy, etc.) auto-injected into agent system prompt
141
+ - **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
142
+ - **Update checker** — PyPI version check, Install Update button, release channel selector (stable / pre-release)
143
+ - **Auto-open** — Settings panel always opens alongside every new session; never a blank pane
144
+
145
+ **[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
146
+
147
+ ---
148
+
149
+ ## Ollama — Local LLMs (Zero API Cost)
150
+
151
+ specsmith has first-class Ollama support, including:
152
+
153
+ ```bash
154
+ specsmith ollama gpu # detect GPU and VRAM tier
155
+ specsmith ollama available # show catalog filtered by VRAM budget
156
+ specsmith ollama available --task code # filter by task type
157
+ specsmith ollama pull qwen2.5:14b # download a model
158
+ specsmith ollama suggest requirements # task-based recommendations
159
+ specsmith ollama list # show installed models
160
+ ```
161
+
162
+ GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
163
+ Override with `specsmith.ollamaContextLength` in VS Code settings.
164
+
165
+ ---
166
+
167
+ ## FPGA / HDL Projects
168
+
169
+ specsmith supports FPGA-specific project types with full governance:
170
+
171
+ ```yaml
172
+ # scaffold.yml
173
+ type: fpga-rtl-amd # or fpga-rtl-intel / fpga-rtl-lattice / fpga-rtl
174
+ fpga_tools:
175
+ - vivado
176
+ - gtkwave
177
+ - vsg
178
+ - ghdl
179
+ - verilator
180
+ ```
181
+
182
+ Supported tools: **Synthesis:** vivado, quartus, radiant, diamond, gowin.
183
+ **Simulation:** ghdl, iverilog, verilator, modelsim, questasim, xsim.
184
+ **Waveform:** gtkwave, surfer. **Linting:** vsg, verible, svlint.
185
+ **Formal:** symbiyosys. **OSS flow:** yosys, nextpnr, openFPGALoader.
186
+
187
+ ---
188
+
189
+ ## 50+ CLI Commands
190
+
191
+ **Governance:** `init` `import` `audit` `validate` `diff` `upgrade` `compress` `doctor` `export` `architect`
192
+
193
+ **AEE Epistemic:** `stress-test` `epistemic-audit` `belief-graph` `trace seal/verify/log` `integrate`
194
+
195
+ **Workflow:** `phase show/set/next/list` `ledger add/list` `req list/add/gaps/trace`
196
+
197
+ **Agent:** `run` `agent providers/tools/skills`
198
+
199
+ **Ollama:** `ollama list/available/gpu/pull/suggest`
200
+
201
+ **Workspace:** `workspace init/audit/export`
202
+
203
+ **VCS:** `commit` `push` `sync` `branch` `pr` `status`
204
+
205
+ **Tools:** `tools scan [--fpga]` `tools install <tool>` `tools rules [--tool] [--list]`
206
+
207
+ **Tools:** `exec` `ps` `abort` `watch` `optimize` `credits` `self-update`
208
+
209
+ **Auth:** `auth set/list/remove/check`
210
+
211
+ **Patent:** `patent search/prior-art`
212
+
213
+ ---
214
+
215
+ ## 35 Project Types
216
+
217
+ **Software:** Python CLI/lib/web, Rust, Go, C/C++, .NET, Node.js/TypeScript, mobile, microservices, data/ML.
218
+
219
+ **Hardware/Embedded:** FPGA/RTL (Xilinx, Intel, Lattice, generic), Yocto BSP, embedded C/C++.
220
+
221
+ **Documents:** Technical specs, research papers, API specs, requirements management.
222
+
223
+ **Business/Legal:** Business plans, patent applications, compliance frameworks.
224
+
225
+ ---
226
+
227
+ ## epistemic Library
228
+
229
+ The standalone `epistemic` Python library works in any Python 3.10+ project — no specsmith coupling:
230
+
231
+ ```python
232
+ from epistemic import AEESession, BeliefArtifact, StressTester
233
+
234
+ session = AEESession("my-project", threshold=0.70)
235
+ session.add_belief(
236
+ artifact_id="HYP-001",
237
+ propositions=["The API always returns valid JSON"],
238
+ epistemic_boundary=["Valid auth token required"],
239
+ )
240
+ session.accept("HYP-001")
241
+ result = session.run()
242
+ print(result.summary())
243
+ # certainty=0.55, failures=2, equilibrium=False
244
+ ```
245
+
246
+ Use cases: linguistics research, compliance pipelines, AI alignment, patent prosecution.
247
+
248
+ ---
249
+
250
+ ## Governance Rules (H1–H13)
251
+
252
+ 13 hard rules enforced by `specsmith validate`:
253
+
254
+ - **H11** — Every loop or blocking wait must have a timeout, fallback exit, and diagnostic message.
255
+ - **H12** — Windows multi-step automation goes into `.cmd` files, not inline shell invocations.
256
+ - **H13** — Agent tools must declare epistemic contracts (what they claim and what they cannot detect).
257
+
258
+ ---
259
+
260
+ ## Documentation
261
+
262
+ **[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
263
+ command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
264
+
265
+ ## Links
266
+
267
+ - [PyPI](https://pypi.org/project/specsmith/)
268
+ - [Documentation](https://specsmith.readthedocs.io)
269
+ - [Changelog](CHANGELOG.md)
270
+ - [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
271
+ - [Contributing](CONTRIBUTING.md)
272
+ - [Security](SECURITY.md)
273
+
274
+ ## License
275
+
276
+ MIT — Copyright (c) 2026 BitConcepts, LLC.
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "specsmith"
7
- version = "0.3.0.dev139"
8
- description = "Applied Epistemic Engineering toolkit — forge epistemically-governed scaffolds, stress-test belief systems, and run AEE pipelines."
7
+ version = "0.3.6.dev164"
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"
11
11
  requires-python = ">=3.10"
@@ -16,6 +16,8 @@ keywords = [
16
16
  "agentic", "scaffold", "governance", "agents-md", "cli",
17
17
  "epistemic-engineering", "belief-artifacts", "stress-testing",
18
18
  "certainty", "trace-vault", "aee", "knowledge-engineering",
19
+ "fpga", "hdl", "vhdl", "execution-profiles", "tool-installer",
20
+ "llm", "ollama", "requirements-management",
19
21
  ]
20
22
  classifiers = [
21
23
  "Development Status :: 4 - Beta",
@@ -57,7 +59,10 @@ docs = [
57
59
  # LLM provider extras for specsmith run (agentic client)
58
60
  anthropic = ["anthropic>=0.56"]
59
61
  openai = ["openai>=1.0"]
60
- gemini = ["google-generativeai>=0.8"]
62
+ # gemini: supports both the new google-genai SDK (GA May 2025, recommended)
63
+ # and the legacy google-generativeai SDK (deprecated Nov 2025, fallback).
64
+ # The provider auto-detects which is installed.
65
+ gemini = ["google-genai>=1.0"]
61
66
  mistral = ["openai>=1.0"] # Mistral uses the openai SDK pointed at api.mistral.ai
62
67
  gui = ["PySide6>=6.6"]
63
68
  # Install all optional LLM providers
@@ -96,6 +101,11 @@ line-length = 100
96
101
  [tool.ruff.lint]
97
102
  select = ["E", "F", "W", "I", "UP", "B", "SIM"]
98
103
 
104
+ [tool.ruff.lint.per-file-ignores]
105
+ # Long rule text and install command strings in documentation modules
106
+ "src/specsmith/toolrules.py" = ["E501"]
107
+ "src/specsmith/tool_installer.py" = ["E501"]
108
+
99
109
  [tool.mypy]
100
110
  python_version = "3.10"
101
111
  strict = true
@@ -115,10 +125,35 @@ module = [
115
125
  "openai.*",
116
126
  "google",
117
127
  "google.*",
118
- "keyring",
128
+ "yaml",
129
+ "yaml.*",
130
+ "keyring", # optional OS credential store; stubs not published
119
131
  "keyring.*",
120
132
  ]
121
133
  ignore_missing_imports = true
122
134
 
135
+ # epistemic library has pre-existing strict-mypy issues unrelated to specsmith changes
136
+ [[tool.mypy.overrides]]
137
+ module = ["epistemic", "epistemic.*"]
138
+ ignore_errors = true
139
+
140
+ # New modules that use dynamic typing patterns incompatible with strict mypy.
141
+ # These are correct at runtime; the Any-heavy urllib, json.loads, etc. patterns
142
+ # are the source of most errors here. Exclude from strict type checking.
143
+ [[tool.mypy.overrides]]
144
+ module = [
145
+ "specsmith.ollama_cmds",
146
+ "specsmith.languages",
147
+ "specsmith.phase",
148
+ "specsmith.cli",
149
+ "specsmith.importer",
150
+ "specsmith.agent.providers.gemini",
151
+ "specsmith.agent.runner",
152
+ "specsmith.profiles",
153
+ "specsmith.toolrules",
154
+ "specsmith.tool_installer",
155
+ ]
156
+ ignore_errors = true
157
+
123
158
  [tool.pytest.ini_options]
124
159
  testpaths = ["tests"]