specsmith 0.3.0.dev139__tar.gz → 0.3.6__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.
- specsmith-0.3.6/PKG-INFO +363 -0
- specsmith-0.3.6/README.md +298 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/pyproject.toml +39 -4
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/__init__.py +1 -1
- specsmith-0.3.6/src/specsmith/agent/providers/gemini.py +246 -0
- specsmith-0.3.6/src/specsmith/agent/providers/ollama.py +324 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/providers/openai.py +33 -5
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/runner.py +401 -18
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/tools.py +62 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/auditor.py +4 -4
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/cli.py +1302 -15
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/config.py +90 -14
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/importer.py +210 -45
- specsmith-0.3.6/src/specsmith/languages.py +321 -0
- specsmith-0.3.6/src/specsmith/ollama_cmds.py +407 -0
- specsmith-0.3.6/src/specsmith/phase.py +376 -0
- specsmith-0.3.6/src/specsmith/profiles.py +425 -0
- specsmith-0.3.6/src/specsmith/retrieval.py +118 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/agents.md.j2 +22 -22
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/requirements.md.j2 +7 -7
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/test-spec.md.j2 +3 -3
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/editorconfig.j2 +10 -10
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/gitattributes.j2 +13 -13
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/gitignore.j2 +17 -17
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/js/package.json.j2 +2 -2
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/ledger.md.j2 +3 -3
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/python/pyproject.toml.j2 +1 -1
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/rust/Cargo.toml.j2 +2 -2
- specsmith-0.3.6/src/specsmith/tool_installer.py +471 -0
- specsmith-0.3.6/src/specsmith/toolrules.py +404 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/tools.py +40 -1
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs_commands.py +3 -2
- specsmith-0.3.6/src/specsmith/wireframes.py +86 -0
- specsmith-0.3.6/src/specsmith.egg-info/PKG-INFO +363 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith.egg-info/SOURCES.txt +8 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith.egg-info/requires.txt +1 -1
- specsmith-0.3.0.dev139/PKG-INFO +0 -332
- specsmith-0.3.0.dev139/README.md +0 -267
- specsmith-0.3.0.dev139/src/specsmith/agent/providers/gemini.py +0 -125
- specsmith-0.3.0.dev139/src/specsmith/agent/providers/ollama.py +0 -148
- specsmith-0.3.0.dev139/src/specsmith.egg-info/PKG-INFO +0 -332
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/LICENSE +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/setup.cfg +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/belief.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/certainty.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/py.typed +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/recovery.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/session.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/epistemic/trace.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/__main__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/hooks.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/optimizer.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/profiles/epistemic-auditor.md +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/profiles/planner.md +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/profiles/verifier.md +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/providers/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/providers/anthropic.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/providers/mistral.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/agent/skills.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/architect.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/auth.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/compressor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/credits.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/differ.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/doctor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/executor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/exporter.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/warp.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/ledger.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/patent.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/plugins.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/releaser.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/requirements.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/session.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/docs/workflow.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/governance/workflow.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/trace.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/updater.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/validator.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith/workspace.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_auditor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_cli.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_compressor.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_epistemic.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_importer.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_integrations.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_optimizer.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_rate_limits.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_scaffolder.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_smoke.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_tools.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_validator.py +0 -0
- {specsmith-0.3.0.dev139 → specsmith-0.3.6}/tests/test_vcs.py +0 -0
specsmith-0.3.6/PKG-INFO
ADDED
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: specsmith
|
|
3
|
+
Version: 0.3.6
|
|
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
|
+
[](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
|
|
69
|
+
[](https://github.com/sponsors/BitConcepts)
|
|
70
|
+
[](https://specsmith.readthedocs.io/en/stable/)
|
|
71
|
+
[](https://pypi.org/project/specsmith/)
|
|
72
|
+
[](https://www.python.org/downloads/)
|
|
73
|
+
[](LICENSE)
|
|
74
|
+
[](https://github.com/BitConcepts/specsmith-vscode)
|
|
75
|
+
|
|
76
|
+
**Applied Epistemic Engineering toolkit for AI-assisted development.**
|
|
77
|
+
|
|
78
|
+
> Intelligence proposes. Constraints decide. The ledger remembers.
|
|
79
|
+
|
|
80
|
+
specsmith treats belief systems like code: codable, testable, and deployable. It scaffolds
|
|
81
|
+
epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
|
|
82
|
+
cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
|
|
83
|
+
|
|
84
|
+
It also co-installs the standalone `epistemic` Python library for direct use in any project:
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
from epistemic import AEESession # works in any Python 3.10+ project
|
|
88
|
+
from epistemic import BeliefArtifact, StressTester, CertaintyEngine
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## What is Applied Epistemic Engineering?
|
|
94
|
+
|
|
95
|
+
AEE treats requirements, decisions, and assumptions — the beliefs your project depends on — as
|
|
96
|
+
engineering artifacts subject to the same discipline as code: version control, testing, and refactoring.
|
|
97
|
+
|
|
98
|
+
**The 4-step core method: Frame → Disassemble → Stress-Test → Reconstruct**
|
|
99
|
+
|
|
100
|
+
**The 5 foundational axioms:**
|
|
101
|
+
1. **Observability** — every belief must be inspectable
|
|
102
|
+
2. **Falsifiability** — every belief must be challengeable
|
|
103
|
+
3. **Irreducibility** — beliefs decompose to atomic primitives
|
|
104
|
+
4. **Reconstructability** — every failed belief can be rebuilt
|
|
105
|
+
5. **Convergence** — stress-test + recovery always reaches Equilibrium
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## The AEE Workflow — 7 Phases
|
|
110
|
+
|
|
111
|
+
specsmith tracks your project through the full AEE development cycle:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
🌱 Inception → 🏗 Architecture → 📋 Requirements → ✅ Test Spec
|
|
115
|
+
→ ⚙ Implementation → 🔬 Verification → 🚀 Release
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
specsmith phase # show current phase + readiness checklist
|
|
120
|
+
specsmith phase next # advance to the next phase (runs checks first)
|
|
121
|
+
specsmith phase set requirements # jump to a specific phase
|
|
122
|
+
specsmith phase list # list all phases
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
|
|
126
|
+
Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
|
|
127
|
+
and a readiness percentage.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Install
|
|
132
|
+
|
|
133
|
+
**Recommended — via the VS Code extension (creates a project-isolated environment):**
|
|
134
|
+
|
|
135
|
+
1. Install the [specsmith AEE Workbench](https://github.com/BitConcepts/specsmith-vscode) VS Code extension
|
|
136
|
+
2. Open `Ctrl+Shift+,` (⚙ specsmith Settings)
|
|
137
|
+
3. Click **🔒 Create Environment** — creates `~/.specsmith/venv/` with specsmith + your provider packages
|
|
138
|
+
|
|
139
|
+
The extension uses this environment for all agent sessions and terminal commands.
|
|
140
|
+
|
|
141
|
+
**Or via pipx (system-wide):**
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
pipx install specsmith # core CLI + epistemic library
|
|
145
|
+
pipx inject specsmith anthropic # + Claude support
|
|
146
|
+
pipx inject specsmith openai # + GPT / O-series support
|
|
147
|
+
pipx inject specsmith google-generativeai # + Gemini support
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Or with pip:**
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pip install specsmith # core
|
|
154
|
+
pip install "specsmith[anthropic]" # + Claude
|
|
155
|
+
pip install "specsmith[openai]" # + GPT/O-series
|
|
156
|
+
pip install "specsmith[gemini]" # + Gemini
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Update:**
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
pipx upgrade specsmith
|
|
163
|
+
specsmith self-update
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Quick Start
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# New project (interactive)
|
|
172
|
+
specsmith init
|
|
173
|
+
|
|
174
|
+
# Adopt an existing project
|
|
175
|
+
specsmith import --project-dir ./my-project
|
|
176
|
+
|
|
177
|
+
# Check governance health
|
|
178
|
+
specsmith audit --project-dir ./my-project
|
|
179
|
+
|
|
180
|
+
# Run AEE stress-test on requirements
|
|
181
|
+
specsmith stress-test --project-dir ./my-project
|
|
182
|
+
|
|
183
|
+
# Full epistemic audit (certainty + logic knots + recovery proposals)
|
|
184
|
+
specsmith epistemic-audit --project-dir ./my-project
|
|
185
|
+
|
|
186
|
+
# Start the agentic REPL
|
|
187
|
+
specsmith run --project-dir ./my-project
|
|
188
|
+
|
|
189
|
+
# Check current AEE workflow phase
|
|
190
|
+
specsmith phase --project-dir ./my-project
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## VS Code Extension
|
|
196
|
+
|
|
197
|
+
The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
# VS Code: Ctrl+Shift+P → specsmith: New Agent Session
|
|
201
|
+
# Settings: Ctrl+Shift+, (⚙ specsmith Settings — global)
|
|
202
|
+
# Project Settings: Ctrl+Shift+G (⚙ Project Settings — per-project)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**Key features:**
|
|
206
|
+
- **Dual-panel architecture** — **⚙ specsmith Settings** (global: venv, version, Ollama, system)
|
|
207
|
+
and **⚙ Project Settings** (per-project: scaffold, tools, files, actions, execution)
|
|
208
|
+
- **Global environment management** — `~/.specsmith/venv/` with Create / Update / Rebuild / Delete;
|
|
209
|
+
persistent restart banner; Remove System Installs cleanup button
|
|
210
|
+
- **VCS context at session start** — git status + recent commits shown in chat and in system prompt
|
|
211
|
+
- **Execution profiles** — safe / standard / open / admin; custom allow/block command lists
|
|
212
|
+
- **AEE phase indicator** — shows current phase with readiness %, Next Phase button, phase selector
|
|
213
|
+
- **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
|
|
214
|
+
- **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
|
|
215
|
+
- **Ollama integration** — model manager (update/remove/update-all), version check, upgrade
|
|
216
|
+
- **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
|
|
217
|
+
- **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
|
|
218
|
+
- **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
|
|
219
|
+
- **Update checker** — PyPI version check, auto-checks on panel open, release channel selector
|
|
220
|
+
|
|
221
|
+
**[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Supporting specsmith
|
|
226
|
+
|
|
227
|
+
If specsmith is saving you time or helping your team ship better software, please consider:
|
|
228
|
+
|
|
229
|
+
- **[Sponsoring BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
230
|
+
- **Starring** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
231
|
+
- **Reporting bugs** and **requesting features** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues)
|
|
232
|
+
- **Contributing** — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Ollama — Local LLMs (Zero API Cost)
|
|
237
|
+
|
|
238
|
+
specsmith has first-class Ollama support, including:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
specsmith ollama gpu # detect GPU and VRAM tier
|
|
242
|
+
specsmith ollama available # show catalog filtered by VRAM budget
|
|
243
|
+
specsmith ollama available --task code # filter by task type
|
|
244
|
+
specsmith ollama pull qwen2.5:14b # download a model
|
|
245
|
+
specsmith ollama suggest requirements # task-based recommendations
|
|
246
|
+
specsmith ollama list # show installed models
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
|
|
250
|
+
Override with `specsmith.ollamaContextLength` in VS Code settings.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## FPGA / HDL Projects
|
|
255
|
+
|
|
256
|
+
specsmith supports FPGA-specific project types with full governance:
|
|
257
|
+
|
|
258
|
+
```yaml
|
|
259
|
+
# scaffold.yml
|
|
260
|
+
type: fpga-rtl-amd # or fpga-rtl-intel / fpga-rtl-lattice / fpga-rtl
|
|
261
|
+
fpga_tools:
|
|
262
|
+
- vivado
|
|
263
|
+
- gtkwave
|
|
264
|
+
- vsg
|
|
265
|
+
- ghdl
|
|
266
|
+
- verilator
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
Supported tools: **Synthesis:** vivado, quartus, radiant, diamond, gowin.
|
|
270
|
+
**Simulation:** ghdl, iverilog, verilator, modelsim, questasim, xsim.
|
|
271
|
+
**Waveform:** gtkwave, surfer. **Linting:** vsg, verible, svlint.
|
|
272
|
+
**Formal:** symbiyosys. **OSS flow:** yosys, nextpnr, openFPGALoader.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## 50+ CLI Commands
|
|
277
|
+
|
|
278
|
+
**Governance:** `init` `import` `audit` `validate` `diff` `upgrade` `compress` `doctor` `export` `architect`
|
|
279
|
+
|
|
280
|
+
**AEE Epistemic:** `stress-test` `epistemic-audit` `belief-graph` `trace seal/verify/log` `integrate`
|
|
281
|
+
|
|
282
|
+
**Workflow:** `phase show/set/next/list` `ledger add/list` `req list/add/gaps/trace`
|
|
283
|
+
|
|
284
|
+
**Agent:** `run` `agent providers/tools/skills`
|
|
285
|
+
|
|
286
|
+
**Ollama:** `ollama list/available/gpu/pull/suggest`
|
|
287
|
+
|
|
288
|
+
**Workspace:** `workspace init/audit/export`
|
|
289
|
+
|
|
290
|
+
**VCS:** `commit` `push` `sync` `branch` `pr` `status`
|
|
291
|
+
|
|
292
|
+
**Tools:** `tools scan [--fpga]` `tools install <tool>` `tools rules [--tool] [--list]`
|
|
293
|
+
|
|
294
|
+
**Tools:** `exec` `ps` `abort` `watch` `optimize` `credits` `self-update`
|
|
295
|
+
|
|
296
|
+
**Auth:** `auth set/list/remove/check`
|
|
297
|
+
|
|
298
|
+
**Patent:** `patent search/prior-art`
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## 35 Project Types
|
|
303
|
+
|
|
304
|
+
**Software:** Python CLI/lib/web, Rust, Go, C/C++, .NET, Node.js/TypeScript, mobile, microservices, data/ML.
|
|
305
|
+
|
|
306
|
+
**Hardware/Embedded:** FPGA/RTL (Xilinx, Intel, Lattice, generic), Yocto BSP, embedded C/C++.
|
|
307
|
+
|
|
308
|
+
**Documents:** Technical specs, research papers, API specs, requirements management.
|
|
309
|
+
|
|
310
|
+
**Business/Legal:** Business plans, patent applications, compliance frameworks.
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## epistemic Library
|
|
315
|
+
|
|
316
|
+
The standalone `epistemic` Python library works in any Python 3.10+ project — no specsmith coupling:
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
from epistemic import AEESession, BeliefArtifact, StressTester
|
|
320
|
+
|
|
321
|
+
session = AEESession("my-project", threshold=0.70)
|
|
322
|
+
session.add_belief(
|
|
323
|
+
artifact_id="HYP-001",
|
|
324
|
+
propositions=["The API always returns valid JSON"],
|
|
325
|
+
epistemic_boundary=["Valid auth token required"],
|
|
326
|
+
)
|
|
327
|
+
session.accept("HYP-001")
|
|
328
|
+
result = session.run()
|
|
329
|
+
print(result.summary())
|
|
330
|
+
# certainty=0.55, failures=2, equilibrium=False
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Use cases: linguistics research, compliance pipelines, AI alignment, patent prosecution.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Governance Rules (H1–H13)
|
|
338
|
+
|
|
339
|
+
13 hard rules enforced by `specsmith validate`:
|
|
340
|
+
|
|
341
|
+
- **H11** — Every loop or blocking wait must have a timeout, fallback exit, and diagnostic message.
|
|
342
|
+
- **H12** — Windows multi-step automation goes into `.cmd` files, not inline shell invocations.
|
|
343
|
+
- **H13** — Agent tools must declare epistemic contracts (what they claim and what they cannot detect).
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## Documentation
|
|
348
|
+
|
|
349
|
+
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
|
|
350
|
+
command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
|
|
351
|
+
|
|
352
|
+
## Links
|
|
353
|
+
|
|
354
|
+
- [PyPI](https://pypi.org/project/specsmith/)
|
|
355
|
+
- [Documentation](https://specsmith.readthedocs.io)
|
|
356
|
+
- [Changelog](CHANGELOG.md)
|
|
357
|
+
- [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
|
|
358
|
+
- [Contributing](CONTRIBUTING.md)
|
|
359
|
+
- [Security](SECURITY.md)
|
|
360
|
+
|
|
361
|
+
## License
|
|
362
|
+
|
|
363
|
+
MIT — Copyright (c) 2026 BitConcepts, LLC.
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# specsmith
|
|
2
|
+
|
|
3
|
+
[](https://github.com/BitConcepts/specsmith/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/sponsors/BitConcepts)
|
|
5
|
+
[](https://specsmith.readthedocs.io/en/stable/)
|
|
6
|
+
[](https://pypi.org/project/specsmith/)
|
|
7
|
+
[](https://www.python.org/downloads/)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://github.com/BitConcepts/specsmith-vscode)
|
|
10
|
+
|
|
11
|
+
**Applied Epistemic Engineering toolkit for AI-assisted development.**
|
|
12
|
+
|
|
13
|
+
> Intelligence proposes. Constraints decide. The ledger remembers.
|
|
14
|
+
|
|
15
|
+
specsmith treats belief systems like code: codable, testable, and deployable. It scaffolds
|
|
16
|
+
epistemically-governed projects, stress-tests requirements as BeliefArtifacts, runs
|
|
17
|
+
cryptographically-sealed trace vaults, and orchestrates AI agents under formal AEE governance.
|
|
18
|
+
|
|
19
|
+
It also co-installs the standalone `epistemic` Python library for direct use in any project:
|
|
20
|
+
|
|
21
|
+
```python
|
|
22
|
+
from epistemic import AEESession # works in any Python 3.10+ project
|
|
23
|
+
from epistemic import BeliefArtifact, StressTester, CertaintyEngine
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## What is Applied Epistemic Engineering?
|
|
29
|
+
|
|
30
|
+
AEE treats requirements, decisions, and assumptions — the beliefs your project depends on — as
|
|
31
|
+
engineering artifacts subject to the same discipline as code: version control, testing, and refactoring.
|
|
32
|
+
|
|
33
|
+
**The 4-step core method: Frame → Disassemble → Stress-Test → Reconstruct**
|
|
34
|
+
|
|
35
|
+
**The 5 foundational axioms:**
|
|
36
|
+
1. **Observability** — every belief must be inspectable
|
|
37
|
+
2. **Falsifiability** — every belief must be challengeable
|
|
38
|
+
3. **Irreducibility** — beliefs decompose to atomic primitives
|
|
39
|
+
4. **Reconstructability** — every failed belief can be rebuilt
|
|
40
|
+
5. **Convergence** — stress-test + recovery always reaches Equilibrium
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## The AEE Workflow — 7 Phases
|
|
45
|
+
|
|
46
|
+
specsmith tracks your project through the full AEE development cycle:
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
🌱 Inception → 🏗 Architecture → 📋 Requirements → ✅ Test Spec
|
|
50
|
+
→ ⚙ Implementation → 🔬 Verification → 🚀 Release
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
specsmith phase # show current phase + readiness checklist
|
|
55
|
+
specsmith phase next # advance to the next phase (runs checks first)
|
|
56
|
+
specsmith phase set requirements # jump to a specific phase
|
|
57
|
+
specsmith phase list # list all phases
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The current phase is persisted in `scaffold.yml` as `aee_phase` and displayed in the VS Code
|
|
61
|
+
Settings Panel. Each phase has a checklist of file/command criteria, recommended commands,
|
|
62
|
+
and a readiness percentage.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Install
|
|
67
|
+
|
|
68
|
+
**Recommended — via the VS Code extension (creates a project-isolated environment):**
|
|
69
|
+
|
|
70
|
+
1. Install the [specsmith AEE Workbench](https://github.com/BitConcepts/specsmith-vscode) VS Code extension
|
|
71
|
+
2. Open `Ctrl+Shift+,` (⚙ specsmith Settings)
|
|
72
|
+
3. Click **🔒 Create Environment** — creates `~/.specsmith/venv/` with specsmith + your provider packages
|
|
73
|
+
|
|
74
|
+
The extension uses this environment for all agent sessions and terminal commands.
|
|
75
|
+
|
|
76
|
+
**Or via pipx (system-wide):**
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
pipx install specsmith # core CLI + epistemic library
|
|
80
|
+
pipx inject specsmith anthropic # + Claude support
|
|
81
|
+
pipx inject specsmith openai # + GPT / O-series support
|
|
82
|
+
pipx inject specsmith google-generativeai # + Gemini support
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Or with pip:**
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
pip install specsmith # core
|
|
89
|
+
pip install "specsmith[anthropic]" # + Claude
|
|
90
|
+
pip install "specsmith[openai]" # + GPT/O-series
|
|
91
|
+
pip install "specsmith[gemini]" # + Gemini
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Update:**
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
pipx upgrade specsmith
|
|
98
|
+
specsmith self-update
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Quick Start
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# New project (interactive)
|
|
107
|
+
specsmith init
|
|
108
|
+
|
|
109
|
+
# Adopt an existing project
|
|
110
|
+
specsmith import --project-dir ./my-project
|
|
111
|
+
|
|
112
|
+
# Check governance health
|
|
113
|
+
specsmith audit --project-dir ./my-project
|
|
114
|
+
|
|
115
|
+
# Run AEE stress-test on requirements
|
|
116
|
+
specsmith stress-test --project-dir ./my-project
|
|
117
|
+
|
|
118
|
+
# Full epistemic audit (certainty + logic knots + recovery proposals)
|
|
119
|
+
specsmith epistemic-audit --project-dir ./my-project
|
|
120
|
+
|
|
121
|
+
# Start the agentic REPL
|
|
122
|
+
specsmith run --project-dir ./my-project
|
|
123
|
+
|
|
124
|
+
# Check current AEE workflow phase
|
|
125
|
+
specsmith phase --project-dir ./my-project
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## VS Code Extension
|
|
131
|
+
|
|
132
|
+
The **specsmith AEE Workbench** VS Code extension is the flagship client:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
# VS Code: Ctrl+Shift+P → specsmith: New Agent Session
|
|
136
|
+
# Settings: Ctrl+Shift+, (⚙ specsmith Settings — global)
|
|
137
|
+
# Project Settings: Ctrl+Shift+G (⚙ Project Settings — per-project)
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Key features:**
|
|
141
|
+
- **Dual-panel architecture** — **⚙ specsmith Settings** (global: venv, version, Ollama, system)
|
|
142
|
+
and **⚙ Project Settings** (per-project: scaffold, tools, files, actions, execution)
|
|
143
|
+
- **Global environment management** — `~/.specsmith/venv/` with Create / Update / Rebuild / Delete;
|
|
144
|
+
persistent restart banner; Remove System Installs cleanup button
|
|
145
|
+
- **VCS context at session start** — git status + recent commits shown in chat and in system prompt
|
|
146
|
+
- **Execution profiles** — safe / standard / open / admin; custom allow/block command lists
|
|
147
|
+
- **AEE phase indicator** — shows current phase with readiness %, Next Phase button, phase selector
|
|
148
|
+
- **AI agent sessions** — independent process per project, JSONL bridge, chat with file injection
|
|
149
|
+
- **Live model listing** — Anthropic, OpenAI, Gemini, Mistral, local Ollama (GPU-aware)
|
|
150
|
+
- **Ollama integration** — model manager (update/remove/update-all), version check, upgrade
|
|
151
|
+
- **FPGA/HDL tool support** — vivado, gtkwave, vsg, ghdl, verilator, yosys, nextpnr, and 15 more
|
|
152
|
+
- **Tool installer** — scan installed tools; one-click install via winget/brew/apt for missing tools
|
|
153
|
+
- **API key management** — stored in OS credential store (Windows Credential Manager / macOS Keychain)
|
|
154
|
+
- **Update checker** — PyPI version check, auto-checks on panel open, release channel selector
|
|
155
|
+
|
|
156
|
+
**[→ specsmith-vscode on GitHub](https://github.com/BitConcepts/specsmith-vscode)**
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Supporting specsmith
|
|
161
|
+
|
|
162
|
+
If specsmith is saving you time or helping your team ship better software, please consider:
|
|
163
|
+
|
|
164
|
+
- **[Sponsoring BitConcepts](https://github.com/sponsors/BitConcepts)** — directly funds development
|
|
165
|
+
- **Starring** [specsmith](https://github.com/BitConcepts/specsmith) and [specsmith-vscode](https://github.com/BitConcepts/specsmith-vscode) on GitHub
|
|
166
|
+
- **Reporting bugs** and **requesting features** via [GitHub Issues](https://github.com/BitConcepts/specsmith/issues)
|
|
167
|
+
- **Contributing** — see [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Ollama — Local LLMs (Zero API Cost)
|
|
172
|
+
|
|
173
|
+
specsmith has first-class Ollama support, including:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
specsmith ollama gpu # detect GPU and VRAM tier
|
|
177
|
+
specsmith ollama available # show catalog filtered by VRAM budget
|
|
178
|
+
specsmith ollama available --task code # filter by task type
|
|
179
|
+
specsmith ollama pull qwen2.5:14b # download a model
|
|
180
|
+
specsmith ollama suggest requirements # task-based recommendations
|
|
181
|
+
specsmith ollama list # show installed models
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
GPU-aware context sizing in the VS Code extension: 4K/8K/16K/32K tokens based on detected VRAM.
|
|
185
|
+
Override with `specsmith.ollamaContextLength` in VS Code settings.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## FPGA / HDL Projects
|
|
190
|
+
|
|
191
|
+
specsmith supports FPGA-specific project types with full governance:
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
# scaffold.yml
|
|
195
|
+
type: fpga-rtl-amd # or fpga-rtl-intel / fpga-rtl-lattice / fpga-rtl
|
|
196
|
+
fpga_tools:
|
|
197
|
+
- vivado
|
|
198
|
+
- gtkwave
|
|
199
|
+
- vsg
|
|
200
|
+
- ghdl
|
|
201
|
+
- verilator
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Supported tools: **Synthesis:** vivado, quartus, radiant, diamond, gowin.
|
|
205
|
+
**Simulation:** ghdl, iverilog, verilator, modelsim, questasim, xsim.
|
|
206
|
+
**Waveform:** gtkwave, surfer. **Linting:** vsg, verible, svlint.
|
|
207
|
+
**Formal:** symbiyosys. **OSS flow:** yosys, nextpnr, openFPGALoader.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 50+ CLI Commands
|
|
212
|
+
|
|
213
|
+
**Governance:** `init` `import` `audit` `validate` `diff` `upgrade` `compress` `doctor` `export` `architect`
|
|
214
|
+
|
|
215
|
+
**AEE Epistemic:** `stress-test` `epistemic-audit` `belief-graph` `trace seal/verify/log` `integrate`
|
|
216
|
+
|
|
217
|
+
**Workflow:** `phase show/set/next/list` `ledger add/list` `req list/add/gaps/trace`
|
|
218
|
+
|
|
219
|
+
**Agent:** `run` `agent providers/tools/skills`
|
|
220
|
+
|
|
221
|
+
**Ollama:** `ollama list/available/gpu/pull/suggest`
|
|
222
|
+
|
|
223
|
+
**Workspace:** `workspace init/audit/export`
|
|
224
|
+
|
|
225
|
+
**VCS:** `commit` `push` `sync` `branch` `pr` `status`
|
|
226
|
+
|
|
227
|
+
**Tools:** `tools scan [--fpga]` `tools install <tool>` `tools rules [--tool] [--list]`
|
|
228
|
+
|
|
229
|
+
**Tools:** `exec` `ps` `abort` `watch` `optimize` `credits` `self-update`
|
|
230
|
+
|
|
231
|
+
**Auth:** `auth set/list/remove/check`
|
|
232
|
+
|
|
233
|
+
**Patent:** `patent search/prior-art`
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 35 Project Types
|
|
238
|
+
|
|
239
|
+
**Software:** Python CLI/lib/web, Rust, Go, C/C++, .NET, Node.js/TypeScript, mobile, microservices, data/ML.
|
|
240
|
+
|
|
241
|
+
**Hardware/Embedded:** FPGA/RTL (Xilinx, Intel, Lattice, generic), Yocto BSP, embedded C/C++.
|
|
242
|
+
|
|
243
|
+
**Documents:** Technical specs, research papers, API specs, requirements management.
|
|
244
|
+
|
|
245
|
+
**Business/Legal:** Business plans, patent applications, compliance frameworks.
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## epistemic Library
|
|
250
|
+
|
|
251
|
+
The standalone `epistemic` Python library works in any Python 3.10+ project — no specsmith coupling:
|
|
252
|
+
|
|
253
|
+
```python
|
|
254
|
+
from epistemic import AEESession, BeliefArtifact, StressTester
|
|
255
|
+
|
|
256
|
+
session = AEESession("my-project", threshold=0.70)
|
|
257
|
+
session.add_belief(
|
|
258
|
+
artifact_id="HYP-001",
|
|
259
|
+
propositions=["The API always returns valid JSON"],
|
|
260
|
+
epistemic_boundary=["Valid auth token required"],
|
|
261
|
+
)
|
|
262
|
+
session.accept("HYP-001")
|
|
263
|
+
result = session.run()
|
|
264
|
+
print(result.summary())
|
|
265
|
+
# certainty=0.55, failures=2, equilibrium=False
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Use cases: linguistics research, compliance pipelines, AI alignment, patent prosecution.
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Governance Rules (H1–H13)
|
|
273
|
+
|
|
274
|
+
13 hard rules enforced by `specsmith validate`:
|
|
275
|
+
|
|
276
|
+
- **H11** — Every loop or blocking wait must have a timeout, fallback exit, and diagnostic message.
|
|
277
|
+
- **H12** — Windows multi-step automation goes into `.cmd` files, not inline shell invocations.
|
|
278
|
+
- **H13** — Agent tools must declare epistemic contracts (what they claim and what they cannot detect).
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Documentation
|
|
283
|
+
|
|
284
|
+
**[specsmith.readthedocs.io](https://specsmith.readthedocs.io)** — Full manual: AEE primer,
|
|
285
|
+
command reference, project types, tool registry, governance model, Ollama guide, VS Code extension.
|
|
286
|
+
|
|
287
|
+
## Links
|
|
288
|
+
|
|
289
|
+
- [PyPI](https://pypi.org/project/specsmith/)
|
|
290
|
+
- [Documentation](https://specsmith.readthedocs.io)
|
|
291
|
+
- [Changelog](CHANGELOG.md)
|
|
292
|
+
- [VS Code Extension](https://github.com/BitConcepts/specsmith-vscode)
|
|
293
|
+
- [Contributing](CONTRIBUTING.md)
|
|
294
|
+
- [Security](SECURITY.md)
|
|
295
|
+
|
|
296
|
+
## License
|
|
297
|
+
|
|
298
|
+
MIT — Copyright (c) 2026 BitConcepts, LLC.
|