specsmith 0.16.0.dev593__tar.gz → 0.16.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {specsmith-0.16.0.dev593/src/specsmith.egg-info → specsmith-0.16.1}/PKG-INFO +64 -54
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/README.md +63 -53
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/pyproject.toml +1 -1
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/__init__.py +1 -1
- {specsmith-0.16.0.dev593 → specsmith-0.16.1/src/specsmith.egg-info}/PKG-INFO +64 -54
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/LICENSE +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/setup.cfg +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/belief.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/certainty.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/failure_graph.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/py.typed +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/recovery.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/session.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/stress_tester.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/epistemic/trace.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/__main__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/broker.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/chat_runner.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/cleanup.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/context_seed.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/core.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/_status.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/dag.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/dispatcher.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/events.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/dispatch/result.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/endpoints.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/events.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/execution_profiles.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/fallback.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/hf_leaderboard.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/hf_sync.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/indexer.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/llm_client.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/mcp.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/memory.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/model_intelligence.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/model_profiles.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/orchestrator.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/permissions.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/profiles.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/provider_registry.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/repl.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/router.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/rules.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/runner.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/safety.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/spawner.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/suggester.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/teams.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/tools.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/verifier.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/agent/voice.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/approvals.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/architect.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/auditor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/auth.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/block_export.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/channel.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ci_manager.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/cli.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/intelligence.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/issues_policy.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/commands/reporting.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/_compat.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/checker.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/evidence.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/regulations.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compliance/reporter.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/compressor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/config.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/console_utils.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/context_orchestrator.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/context_window.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/credit_analyzer.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/credits.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/dashboard.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/base.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/citations.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/fpd.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/odp.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/patentsview.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/pfw.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/ppubs.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/datasources/ptab.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/differ.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/doctor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/drive.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/editor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/belief.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/certainty.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/failure_graph.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/recovery.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/epistemic/stress_tester.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/_license.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/bridge.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/esdb/sqlite_store.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/builtins.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/eval/runner.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/executor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/exporter.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_logic.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_store.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governance_yaml.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/governed_pr.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/app.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/main_window.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/session_tab.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/theme.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/chat_view.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/input_bar.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/provider_bar.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/token_meter.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/tool_panel.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/widgets/update_checker.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/gui/worker.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/history_search.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/importer.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/instinct.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/agent_skill.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/aider.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/base.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/claude_code.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/codity.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/copilot.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/cursor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/gemini.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/integrations/windsurf.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/issue_reporter.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/languages.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ledger.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/mcp_generator.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/mcp_server.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m001_governance_yaml.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m002_agents_slim.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m003_compliance_init.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m004_ledger_esdb.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m005_agent_run_tool.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/m006_session_governance.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/migrations/runner.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/ollama_cmds.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/patent.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/paths.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/phase.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/plugins.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/policy.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/profiles.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/rate_limits.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/recover.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/releaser.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/requirements.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/requirements_parser.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/retrieval.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/risk.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/safe_write.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/scaffolder.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/serve.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session_init.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/session_store.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/ai_agents.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/cloud.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/corporate.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/cross_platform.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/data_engineering.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/devops.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/docs.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/embedded.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/governance.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/hardware.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/mobile.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/platform_engineering.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/productivity.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/software_engineering.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/specsmith_skills.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/ssh.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills/web_backend.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/skills_builder.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/sync.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/agents.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/bug_report.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/code_of_conduct.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/contributing.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/feature_request.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/license-Apache-2.0.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/license-MIT.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/pull_request_template.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/community/security.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/architecture.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/mkdocs.yml.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/readthedocs.yaml.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/requirements.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/docs/test-spec.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/editorconfig.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/gitattributes.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/gitignore.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/go/go.mod.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/go/main.go.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/belief-registry.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/context-budget.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/drift-metrics.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/epistemic-axioms.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/failure-modes.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/lifecycle.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/roles.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/rules.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/session-protocol.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/uncertainty-map.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/governance/verification.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/js/package.json.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/ledger.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/cli.py.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/init.py.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/python/pyproject.toml.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/readme.md.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/rust/Cargo.toml.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/rust/main.rs.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/exec.cmd.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/exec.sh.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/run.cmd.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/run.sh.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/setup.cmd.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/scripts/setup.sh.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/templates/workflows/release.yml.j2 +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/tool_installer.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/toolrules.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/tools.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/trace.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/transcripts.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/updater.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/upgrader.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/validator.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/__init__.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/base.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/bitbucket.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/github.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs/gitlab.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/vcs_commands.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/wi_store.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/wireframes.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith/workspace.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/SOURCES.txt +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/dependency_links.txt +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/entry_points.txt +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/requires.txt +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/src/specsmith.egg-info/top_level.txt +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_CMD_001.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_profiles.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_run_feedback.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_agent_runner_ready.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_ai_client.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_ai_intelligence.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_architecture.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_auditor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_channel.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_diff_decision.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_runner_openai_compat.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_chat_stdin_protocol.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli_regressions.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_cli_workflows_history_drive.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compliance.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compliance_governance.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_compressor.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_dispatch.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_e2e_nexus.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_endpoints_cli.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_endpoints_store.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_epistemic.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_enforcement.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_license.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_sqlite.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_esdb_verify_chain_cli.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_fallback_chain.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_golden_path.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_importer.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_init_modes.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_integrations.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_integrations_codity.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_intelligence.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_issue_policy_features.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_issue_reporter.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_mcp_client.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_mcp_server.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_new_modules.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_nexus.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_permissions.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_phase1_4_new.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_phase34_completion.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_rate_limits.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_reporting_commands.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_req_248_262.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_req_358_359.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_scaffolder.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_schema_migrations.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_skill_marketplace.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_skills_mcp.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_smoke.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_suggester.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_tools.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_typing_guardrails.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_validator.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_vcs.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_warp_parity.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_warp_parity_followup.py +0 -0
- {specsmith-0.16.0.dev593 → specsmith-0.16.1}/tests/test_wi_lifecycle.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.1
|
|
4
4
|
Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
|
|
5
5
|
Author: Layer1Labs Silicon, Inc.
|
|
6
6
|
License-Expression: MIT
|
|
@@ -110,43 +110,53 @@ flowchart LR
|
|
|
110
110
|
- **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
|
|
111
111
|
- **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
### Governance efficiency benchmark
|
|
114
|
+
|
|
115
|
+
We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
|
|
116
|
+
|
|
117
|
+
| Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
|
|
118
|
+
|---|---|---|---|---|
|
|
119
|
+
| Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
|
|
120
|
+
| Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
|
|
121
|
+
| BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
|
|
122
|
+
| **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
|
|
123
|
+
| **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
|
|
124
|
+
|
|
125
|
+
**Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
|
|
126
|
+
|
|
127
|
+
See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
|
|
128
|
+
|
|
129
|
+
**v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
|
|
130
|
+
|
|
131
|
+
specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
|
|
132
|
+
|
|
133
|
+
### Selected v0.16 CLI highlights
|
|
118
134
|
|
|
119
135
|
```bash
|
|
120
136
|
specsmith governance-serve --port 7700 # governance REST API
|
|
121
|
-
specsmith sync #
|
|
122
|
-
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
123
|
-
specsmith validate --strict #
|
|
124
|
-
specsmith agent permissions-check git_push
|
|
137
|
+
specsmith sync # YAML → JSON → MD (YAML-first mode)
|
|
138
|
+
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
139
|
+
specsmith validate --strict # dup IDs, orphans, coverage gaps
|
|
140
|
+
specsmith agent permissions-check git_push # tool permission gate (REQ-012)
|
|
125
141
|
specsmith ollama gpu # detect GPU VRAM, recommend context size
|
|
126
142
|
specsmith export # generate full compliance report
|
|
127
143
|
|
|
128
|
-
# Update
|
|
144
|
+
# Update channels
|
|
129
145
|
specsmith channel set stable # pin to stable releases
|
|
130
|
-
specsmith channel set dev # opt in to
|
|
131
|
-
specsmith channel get --json # show current channel + source
|
|
146
|
+
specsmith channel set dev # opt in to pre-release builds
|
|
132
147
|
|
|
133
|
-
# ESDB
|
|
134
|
-
specsmith esdb export --json # dump
|
|
135
|
-
specsmith esdb import backup.json # validate + stage an import
|
|
148
|
+
# ESDB lifecycle
|
|
149
|
+
specsmith esdb export --json # dump records to JSON snapshot
|
|
136
150
|
specsmith esdb backup # create timestamped snapshot
|
|
137
|
-
specsmith esdb
|
|
138
|
-
specsmith esdb compact # request WAL compaction
|
|
139
|
-
|
|
140
|
-
# Skills lifecycle (REQ-254..255)
|
|
141
|
-
specsmith skills deactivate <skill-id> # set active=false in skill.json
|
|
142
|
-
specsmith skills delete <skill-id> --yes # permanently remove skill
|
|
151
|
+
specsmith esdb compact # WAL compaction
|
|
143
152
|
|
|
144
|
-
#
|
|
145
|
-
specsmith
|
|
153
|
+
# Skills
|
|
154
|
+
specsmith skills deactivate <skill-id> # set active=false
|
|
155
|
+
specsmith skills delete <skill-id> --yes # permanently remove
|
|
146
156
|
|
|
147
|
-
#
|
|
157
|
+
# MCP + agent dispatch
|
|
158
|
+
specsmith mcp generate "Search USPTO patents" --json
|
|
148
159
|
specsmith agent ask "show esdb status" --json-output
|
|
149
|
-
specsmith agent ask "build skill for summarizing"
|
|
150
160
|
```
|
|
151
161
|
|
|
152
162
|
It also co-installs the standalone `epistemic` Python library for direct use in any project:
|
|
@@ -291,11 +301,11 @@ To obtain a chronomemory ESDB license:
|
|
|
291
301
|
[licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
|
|
292
302
|
See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
|
|
293
303
|
|
|
294
|
-
**
|
|
304
|
+
**Upgrading specsmith:**
|
|
295
305
|
|
|
296
306
|
```bash
|
|
297
|
-
pipx upgrade specsmith
|
|
298
|
-
specsmith self-update
|
|
307
|
+
pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
|
|
308
|
+
specsmith self-update # alternative: self-update from within specsmith
|
|
299
309
|
```
|
|
300
310
|
|
|
301
311
|
---
|
|
@@ -303,36 +313,36 @@ specsmith self-update
|
|
|
303
313
|
## Quick Start
|
|
304
314
|
|
|
305
315
|
```bash
|
|
306
|
-
#
|
|
307
|
-
specsmith
|
|
316
|
+
# 1. Install
|
|
317
|
+
pipx install specsmith
|
|
308
318
|
|
|
309
|
-
#
|
|
310
|
-
specsmith
|
|
319
|
+
# 2. Start a new project (or import an existing one)
|
|
320
|
+
specsmith init # interactive scaffold wizard
|
|
321
|
+
specsmith import --project-dir ./my-project # adopt an existing repo
|
|
311
322
|
|
|
312
|
-
#
|
|
313
|
-
specsmith
|
|
323
|
+
# 3. Bootstrap every session (run once at the start of each work session)
|
|
324
|
+
specsmith migrate run # apply any pending schema migrations
|
|
325
|
+
specsmith audit # verify governance health
|
|
326
|
+
specsmith sync # YAML → JSON → MD sync
|
|
327
|
+
specsmith checkpoint # emit GOVERNANCE ANCHOR
|
|
314
328
|
|
|
315
|
-
#
|
|
316
|
-
specsmith
|
|
329
|
+
# 4. Before every code change: preflight
|
|
330
|
+
specsmith preflight "add paginated GET /todos endpoint" # gate the intent
|
|
331
|
+
# → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
|
|
317
332
|
|
|
318
|
-
#
|
|
319
|
-
specsmith
|
|
333
|
+
# 5. After making changes: verify + save
|
|
334
|
+
specsmith verify # check equilibrium
|
|
335
|
+
specsmith save # commit governance state + push
|
|
320
336
|
|
|
321
|
-
#
|
|
322
|
-
specsmith
|
|
323
|
-
|
|
324
|
-
# AG2 agent shell — Planner/Builder/Verifier over Ollama
|
|
325
|
-
specsmith agent status # check agent config + Ollama
|
|
326
|
-
specsmith agent plan "add logging" # plan only (no execution)
|
|
327
|
-
specsmith agent run "fix lint errors" # full Plan → Build → Verify
|
|
328
|
-
specsmith agent improve "add tests" # self-improvement with reports
|
|
329
|
-
specsmith agent verify # run Verifier on current state
|
|
330
|
-
specsmith agent reports # list improvement reports
|
|
331
|
-
|
|
332
|
-
# Check current AEE workflow phase
|
|
333
|
-
specsmith phase --project-dir ./my-project
|
|
337
|
+
# 6. Check AEE workflow phase and health
|
|
338
|
+
specsmith phase # current phase + readiness %
|
|
339
|
+
specsmith audit # full governance health check
|
|
334
340
|
```
|
|
335
341
|
|
|
342
|
+
> **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
|
|
343
|
+
> Every utterance is preflighted automatically. Use `/why` to see the governance trace.
|
|
344
|
+
> For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
|
|
345
|
+
|
|
336
346
|
---
|
|
337
347
|
|
|
338
348
|
## Machine State Sync + YAML Governance
|
|
@@ -377,7 +387,7 @@ be overwritten by the next sync.
|
|
|
377
387
|
`scripts/migrate_governance_to_yaml.py` once to convert an existing project.
|
|
378
388
|
Idempotent — safe to re-run.
|
|
379
389
|
|
|
380
|
-
## Least-Privilege Agent Permissions (
|
|
390
|
+
## Least-Privilege Agent Permissions (REQ-012)
|
|
381
391
|
|
|
382
392
|
```bash
|
|
383
393
|
specsmith agent permissions # show active permission profile
|
|
@@ -465,7 +475,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
|
|
|
465
475
|
"governance_gated": true,
|
|
466
476
|
"provider": "ollama",
|
|
467
477
|
"model": "qwen2.5:14b",
|
|
468
|
-
"spec_version": "0.16.
|
|
478
|
+
"spec_version": "0.16.1"
|
|
469
479
|
}
|
|
470
480
|
}
|
|
471
481
|
```
|
|
@@ -32,43 +32,53 @@ flowchart LR
|
|
|
32
32
|
- **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
|
|
33
33
|
- **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
### Governance efficiency benchmark
|
|
36
|
+
|
|
37
|
+
We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
|
|
38
|
+
|
|
39
|
+
| Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
|
|
40
|
+
|---|---|---|---|---|
|
|
41
|
+
| Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
|
|
42
|
+
| Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
|
|
43
|
+
| BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
|
|
44
|
+
| **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
|
|
45
|
+
| **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
|
|
46
|
+
|
|
47
|
+
**Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
|
|
48
|
+
|
|
49
|
+
See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
|
|
50
|
+
|
|
51
|
+
**v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
|
|
52
|
+
|
|
53
|
+
specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
|
|
54
|
+
|
|
55
|
+
### Selected v0.16 CLI highlights
|
|
40
56
|
|
|
41
57
|
```bash
|
|
42
58
|
specsmith governance-serve --port 7700 # governance REST API
|
|
43
|
-
specsmith sync #
|
|
44
|
-
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
45
|
-
specsmith validate --strict #
|
|
46
|
-
specsmith agent permissions-check git_push
|
|
59
|
+
specsmith sync # YAML → JSON → MD (YAML-first mode)
|
|
60
|
+
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
61
|
+
specsmith validate --strict # dup IDs, orphans, coverage gaps
|
|
62
|
+
specsmith agent permissions-check git_push # tool permission gate (REQ-012)
|
|
47
63
|
specsmith ollama gpu # detect GPU VRAM, recommend context size
|
|
48
64
|
specsmith export # generate full compliance report
|
|
49
65
|
|
|
50
|
-
# Update
|
|
66
|
+
# Update channels
|
|
51
67
|
specsmith channel set stable # pin to stable releases
|
|
52
|
-
specsmith channel set dev # opt in to
|
|
53
|
-
specsmith channel get --json # show current channel + source
|
|
68
|
+
specsmith channel set dev # opt in to pre-release builds
|
|
54
69
|
|
|
55
|
-
# ESDB
|
|
56
|
-
specsmith esdb export --json # dump
|
|
57
|
-
specsmith esdb import backup.json # validate + stage an import
|
|
70
|
+
# ESDB lifecycle
|
|
71
|
+
specsmith esdb export --json # dump records to JSON snapshot
|
|
58
72
|
specsmith esdb backup # create timestamped snapshot
|
|
59
|
-
specsmith esdb
|
|
60
|
-
specsmith esdb compact # request WAL compaction
|
|
61
|
-
|
|
62
|
-
# Skills lifecycle (REQ-254..255)
|
|
63
|
-
specsmith skills deactivate <skill-id> # set active=false in skill.json
|
|
64
|
-
specsmith skills delete <skill-id> --yes # permanently remove skill
|
|
73
|
+
specsmith esdb compact # WAL compaction
|
|
65
74
|
|
|
66
|
-
#
|
|
67
|
-
specsmith
|
|
75
|
+
# Skills
|
|
76
|
+
specsmith skills deactivate <skill-id> # set active=false
|
|
77
|
+
specsmith skills delete <skill-id> --yes # permanently remove
|
|
68
78
|
|
|
69
|
-
#
|
|
79
|
+
# MCP + agent dispatch
|
|
80
|
+
specsmith mcp generate "Search USPTO patents" --json
|
|
70
81
|
specsmith agent ask "show esdb status" --json-output
|
|
71
|
-
specsmith agent ask "build skill for summarizing"
|
|
72
82
|
```
|
|
73
83
|
|
|
74
84
|
It also co-installs the standalone `epistemic` Python library for direct use in any project:
|
|
@@ -213,11 +223,11 @@ To obtain a chronomemory ESDB license:
|
|
|
213
223
|
[licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
|
|
214
224
|
See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
|
|
215
225
|
|
|
216
|
-
**
|
|
226
|
+
**Upgrading specsmith:**
|
|
217
227
|
|
|
218
228
|
```bash
|
|
219
|
-
pipx upgrade specsmith
|
|
220
|
-
specsmith self-update
|
|
229
|
+
pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
|
|
230
|
+
specsmith self-update # alternative: self-update from within specsmith
|
|
221
231
|
```
|
|
222
232
|
|
|
223
233
|
---
|
|
@@ -225,36 +235,36 @@ specsmith self-update
|
|
|
225
235
|
## Quick Start
|
|
226
236
|
|
|
227
237
|
```bash
|
|
228
|
-
#
|
|
229
|
-
specsmith
|
|
238
|
+
# 1. Install
|
|
239
|
+
pipx install specsmith
|
|
230
240
|
|
|
231
|
-
#
|
|
232
|
-
specsmith
|
|
241
|
+
# 2. Start a new project (or import an existing one)
|
|
242
|
+
specsmith init # interactive scaffold wizard
|
|
243
|
+
specsmith import --project-dir ./my-project # adopt an existing repo
|
|
233
244
|
|
|
234
|
-
#
|
|
235
|
-
specsmith
|
|
245
|
+
# 3. Bootstrap every session (run once at the start of each work session)
|
|
246
|
+
specsmith migrate run # apply any pending schema migrations
|
|
247
|
+
specsmith audit # verify governance health
|
|
248
|
+
specsmith sync # YAML → JSON → MD sync
|
|
249
|
+
specsmith checkpoint # emit GOVERNANCE ANCHOR
|
|
236
250
|
|
|
237
|
-
#
|
|
238
|
-
specsmith
|
|
251
|
+
# 4. Before every code change: preflight
|
|
252
|
+
specsmith preflight "add paginated GET /todos endpoint" # gate the intent
|
|
253
|
+
# → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
|
|
239
254
|
|
|
240
|
-
#
|
|
241
|
-
specsmith
|
|
255
|
+
# 5. After making changes: verify + save
|
|
256
|
+
specsmith verify # check equilibrium
|
|
257
|
+
specsmith save # commit governance state + push
|
|
242
258
|
|
|
243
|
-
#
|
|
244
|
-
specsmith
|
|
245
|
-
|
|
246
|
-
# AG2 agent shell — Planner/Builder/Verifier over Ollama
|
|
247
|
-
specsmith agent status # check agent config + Ollama
|
|
248
|
-
specsmith agent plan "add logging" # plan only (no execution)
|
|
249
|
-
specsmith agent run "fix lint errors" # full Plan → Build → Verify
|
|
250
|
-
specsmith agent improve "add tests" # self-improvement with reports
|
|
251
|
-
specsmith agent verify # run Verifier on current state
|
|
252
|
-
specsmith agent reports # list improvement reports
|
|
253
|
-
|
|
254
|
-
# Check current AEE workflow phase
|
|
255
|
-
specsmith phase --project-dir ./my-project
|
|
259
|
+
# 6. Check AEE workflow phase and health
|
|
260
|
+
specsmith phase # current phase + readiness %
|
|
261
|
+
specsmith audit # full governance health check
|
|
256
262
|
```
|
|
257
263
|
|
|
264
|
+
> **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
|
|
265
|
+
> Every utterance is preflighted automatically. Use `/why` to see the governance trace.
|
|
266
|
+
> For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
|
|
267
|
+
|
|
258
268
|
---
|
|
259
269
|
|
|
260
270
|
## Machine State Sync + YAML Governance
|
|
@@ -299,7 +309,7 @@ be overwritten by the next sync.
|
|
|
299
309
|
`scripts/migrate_governance_to_yaml.py` once to convert an existing project.
|
|
300
310
|
Idempotent — safe to re-run.
|
|
301
311
|
|
|
302
|
-
## Least-Privilege Agent Permissions (
|
|
312
|
+
## Least-Privilege Agent Permissions (REQ-012)
|
|
303
313
|
|
|
304
314
|
```bash
|
|
305
315
|
specsmith agent permissions # show active permission profile
|
|
@@ -387,7 +397,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
|
|
|
387
397
|
"governance_gated": true,
|
|
388
398
|
"provider": "ollama",
|
|
389
399
|
"model": "qwen2.5:14b",
|
|
390
|
-
"spec_version": "0.16.
|
|
400
|
+
"spec_version": "0.16.1"
|
|
391
401
|
}
|
|
392
402
|
}
|
|
393
403
|
```
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "specsmith"
|
|
7
|
-
version = "0.16.
|
|
7
|
+
version = "0.16.1"
|
|
8
8
|
description = "AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -8,4 +8,4 @@ from importlib.metadata import version as _pkg_version
|
|
|
8
8
|
try:
|
|
9
9
|
__version__: str = _pkg_version("specsmith")
|
|
10
10
|
except PackageNotFoundError: # running from source without install
|
|
11
|
-
__version__ = "0.16.
|
|
11
|
+
__version__ = "0.16.1" # fallback: keep in sync with pyproject.toml
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: specsmith
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.1
|
|
4
4
|
Summary: AEE governance toolkit for AI-assisted development — session preflight gates, multi-agent dispatch, requirements↔test traceability, ESDB persistence, MCP server, and skills for Warp, Cursor, Claude Code, Copilot, Windsurf, and Aider.
|
|
5
5
|
Author: Layer1Labs Silicon, Inc.
|
|
6
6
|
License-Expression: MIT
|
|
@@ -110,43 +110,53 @@ flowchart LR
|
|
|
110
110
|
- **Aider / Claude Code / Cursor:** agentic coding interfaces; SpecSmith is the policy and evidence layer around these clients.
|
|
111
111
|
- **LangGraph / AutoGen:** orchestration frameworks; SpecSmith is a governance-first development layer with compliance-oriented traceability.
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
113
|
+
### Governance efficiency benchmark
|
|
114
|
+
|
|
115
|
+
We ran a [multi-condition benchmark](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) comparing specsmith governance against 11 alternatives (ungoverned, BMAD, Cursor rules, Copilot, Aider, Cline, Codex CLI, OpenSpec, Agile BDD/TDD, and context injection) across real coding tasks with gpt-4o-mini and gpt-5.5.
|
|
116
|
+
|
|
117
|
+
| Condition | Pass Rate | Mean Tokens | Cost/run | Cost-of-Pass |
|
|
118
|
+
|---|---|---|---|---|
|
|
119
|
+
| Ungoverned (raw agent) | 0% on T1 | 44.6k | $0.0079 | ∞ |
|
|
120
|
+
| Context injection (CLAUDE.md) | 100% | 43.7k | $0.0084 | $0.0084 |
|
|
121
|
+
| BMAD-style structured prompting | 50% | 139.1k | $0.0262 | $0.0523 |
|
|
122
|
+
| **specsmith LIGHT (preflight)** | **100%** | **21.1k** | **$0.0032** | **$0.0032** |
|
|
123
|
+
| **specsmith FULL (governed)** | **100%** | **17.1k** | **$0.0026** | **$0.0026** |
|
|
124
|
+
|
|
125
|
+
**Key findings:** specsmith FULL is the only condition to achieve 100% pass rate on the feature-addition task (T1). It uses 2.6× fewer tokens than ungoverned and produces a cost-of-pass 3.2× lower than the next-best alternative. With gpt-5.5, governance reduces cost-of-pass by **6.3×** ($0.028 vs $0.179).
|
|
126
|
+
|
|
127
|
+
See the [full benchmark report](https://specsmith.readthedocs.io/en/stable/efficiency-benchmark/) and [model comparison (gpt-4o-mini vs gpt-5.5)](https://specsmith.readthedocs.io/en/stable/model-comparison/).
|
|
128
|
+
|
|
129
|
+
**v0.16.1** — governance efficiency benchmark suite (12 conditions, 3 tasks, gpt-4o-mini + gpt-5.5 comparison); cross-model comparison report; real OpenAI agent harness; CI matrix job. Also includes the v0.16.0 stabilisation milestone: 20+ CLI commands, ESDB SQLite backend, chronomemory 0.2.0, Python 3.10–3.13 × Ubuntu + Windows green, 1 607 tests passing.
|
|
130
|
+
|
|
131
|
+
specsmith ships a full compliance and auditability layer aligned to the EU AI Act (2024/1689) and the NIST AI Risk Management Framework 1.0. Every agent action is cryptographically sealed, every AI-generated output is disclosed, context windows are GPU-aware, and compliance settings are configurable per-session and per-project.
|
|
132
|
+
|
|
133
|
+
### Selected v0.16 CLI highlights
|
|
118
134
|
|
|
119
135
|
```bash
|
|
120
136
|
specsmith governance-serve --port 7700 # governance REST API
|
|
121
|
-
specsmith sync #
|
|
122
|
-
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
123
|
-
specsmith validate --strict #
|
|
124
|
-
specsmith agent permissions-check git_push
|
|
137
|
+
specsmith sync # YAML → JSON → MD (YAML-first mode)
|
|
138
|
+
specsmith generate docs # regenerate REQUIREMENTS.md + TESTS.md
|
|
139
|
+
specsmith validate --strict # dup IDs, orphans, coverage gaps
|
|
140
|
+
specsmith agent permissions-check git_push # tool permission gate (REQ-012)
|
|
125
141
|
specsmith ollama gpu # detect GPU VRAM, recommend context size
|
|
126
142
|
specsmith export # generate full compliance report
|
|
127
143
|
|
|
128
|
-
# Update
|
|
144
|
+
# Update channels
|
|
129
145
|
specsmith channel set stable # pin to stable releases
|
|
130
|
-
specsmith channel set dev # opt in to
|
|
131
|
-
specsmith channel get --json # show current channel + source
|
|
146
|
+
specsmith channel set dev # opt in to pre-release builds
|
|
132
147
|
|
|
133
|
-
# ESDB
|
|
134
|
-
specsmith esdb export --json # dump
|
|
135
|
-
specsmith esdb import backup.json # validate + stage an import
|
|
148
|
+
# ESDB lifecycle
|
|
149
|
+
specsmith esdb export --json # dump records to JSON snapshot
|
|
136
150
|
specsmith esdb backup # create timestamped snapshot
|
|
137
|
-
specsmith esdb
|
|
138
|
-
specsmith esdb compact # request WAL compaction
|
|
139
|
-
|
|
140
|
-
# Skills lifecycle (REQ-254..255)
|
|
141
|
-
specsmith skills deactivate <skill-id> # set active=false in skill.json
|
|
142
|
-
specsmith skills delete <skill-id> --yes # permanently remove skill
|
|
151
|
+
specsmith esdb compact # WAL compaction
|
|
143
152
|
|
|
144
|
-
#
|
|
145
|
-
specsmith
|
|
153
|
+
# Skills
|
|
154
|
+
specsmith skills deactivate <skill-id> # set active=false
|
|
155
|
+
specsmith skills delete <skill-id> --yes # permanently remove
|
|
146
156
|
|
|
147
|
-
#
|
|
157
|
+
# MCP + agent dispatch
|
|
158
|
+
specsmith mcp generate "Search USPTO patents" --json
|
|
148
159
|
specsmith agent ask "show esdb status" --json-output
|
|
149
|
-
specsmith agent ask "build skill for summarizing"
|
|
150
160
|
```
|
|
151
161
|
|
|
152
162
|
It also co-installs the standalone `epistemic` Python library for direct use in any project:
|
|
@@ -291,11 +301,11 @@ To obtain a chronomemory ESDB license:
|
|
|
291
301
|
[licensing@layer1labs.com](mailto:licensing@layer1labs.com) · [layer1labs.com/esdb-licensing](https://layer1labs.com/esdb-licensing)
|
|
292
302
|
See the [full ESDB docs](https://specsmith.readthedocs.io/en/stable/esdb/) for a feature comparison and Python API reference.
|
|
293
303
|
|
|
294
|
-
**
|
|
304
|
+
**Upgrading specsmith:**
|
|
295
305
|
|
|
296
306
|
```bash
|
|
297
|
-
pipx upgrade specsmith
|
|
298
|
-
specsmith self-update
|
|
307
|
+
pipx upgrade specsmith # preferred — upgrades the pipx-isolated CLI
|
|
308
|
+
specsmith self-update # alternative: self-update from within specsmith
|
|
299
309
|
```
|
|
300
310
|
|
|
301
311
|
---
|
|
@@ -303,36 +313,36 @@ specsmith self-update
|
|
|
303
313
|
## Quick Start
|
|
304
314
|
|
|
305
315
|
```bash
|
|
306
|
-
#
|
|
307
|
-
specsmith
|
|
316
|
+
# 1. Install
|
|
317
|
+
pipx install specsmith
|
|
308
318
|
|
|
309
|
-
#
|
|
310
|
-
specsmith
|
|
319
|
+
# 2. Start a new project (or import an existing one)
|
|
320
|
+
specsmith init # interactive scaffold wizard
|
|
321
|
+
specsmith import --project-dir ./my-project # adopt an existing repo
|
|
311
322
|
|
|
312
|
-
#
|
|
313
|
-
specsmith
|
|
323
|
+
# 3. Bootstrap every session (run once at the start of each work session)
|
|
324
|
+
specsmith migrate run # apply any pending schema migrations
|
|
325
|
+
specsmith audit # verify governance health
|
|
326
|
+
specsmith sync # YAML → JSON → MD sync
|
|
327
|
+
specsmith checkpoint # emit GOVERNANCE ANCHOR
|
|
314
328
|
|
|
315
|
-
#
|
|
316
|
-
specsmith
|
|
329
|
+
# 4. Before every code change: preflight
|
|
330
|
+
specsmith preflight "add paginated GET /todos endpoint" # gate the intent
|
|
331
|
+
# → decision: accepted | needs_clarification + work_item_id: WI-XXXXXXXX
|
|
317
332
|
|
|
318
|
-
#
|
|
319
|
-
specsmith
|
|
333
|
+
# 5. After making changes: verify + save
|
|
334
|
+
specsmith verify # check equilibrium
|
|
335
|
+
specsmith save # commit governance state + push
|
|
320
336
|
|
|
321
|
-
#
|
|
322
|
-
specsmith
|
|
323
|
-
|
|
324
|
-
# AG2 agent shell — Planner/Builder/Verifier over Ollama
|
|
325
|
-
specsmith agent status # check agent config + Ollama
|
|
326
|
-
specsmith agent plan "add logging" # plan only (no execution)
|
|
327
|
-
specsmith agent run "fix lint errors" # full Plan → Build → Verify
|
|
328
|
-
specsmith agent improve "add tests" # self-improvement with reports
|
|
329
|
-
specsmith agent verify # run Verifier on current state
|
|
330
|
-
specsmith agent reports # list improvement reports
|
|
331
|
-
|
|
332
|
-
# Check current AEE workflow phase
|
|
333
|
-
specsmith phase --project-dir ./my-project
|
|
337
|
+
# 6. Check AEE workflow phase and health
|
|
338
|
+
specsmith phase # current phase + readiness %
|
|
339
|
+
specsmith audit # full governance health check
|
|
334
340
|
```
|
|
335
341
|
|
|
342
|
+
> **Agentic REPL:** run `specsmith run` to start the Nexus governance-gated LLM REPL.
|
|
343
|
+
> Every utterance is preflighted automatically. Use `/why` to see the governance trace.
|
|
344
|
+
> For the multi-agent DAG dispatcher, see `specsmith dispatch run "<task>"`.
|
|
345
|
+
|
|
336
346
|
---
|
|
337
347
|
|
|
338
348
|
## Machine State Sync + YAML Governance
|
|
@@ -377,7 +387,7 @@ be overwritten by the next sync.
|
|
|
377
387
|
`scripts/migrate_governance_to_yaml.py` once to convert an existing project.
|
|
378
388
|
Idempotent — safe to re-run.
|
|
379
389
|
|
|
380
|
-
## Least-Privilege Agent Permissions (
|
|
390
|
+
## Least-Privilege Agent Permissions (REQ-012)
|
|
381
391
|
|
|
382
392
|
```bash
|
|
383
393
|
specsmith agent permissions # show active permission profile
|
|
@@ -465,7 +475,7 @@ Every preflight response includes a mandatory `ai_disclosure` block:
|
|
|
465
475
|
"governance_gated": true,
|
|
466
476
|
"provider": "ollama",
|
|
467
477
|
"model": "qwen2.5:14b",
|
|
468
|
-
"spec_version": "0.16.
|
|
478
|
+
"spec_version": "0.16.1"
|
|
469
479
|
}
|
|
470
480
|
}
|
|
471
481
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|