boost-skill-cli 1.0.157__tar.gz → 1.0.159__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.
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/CONTRIBUTING.md +7 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/Makefile +9 -2
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/layering-guard-import-linter.md +3 -3
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +3 -3
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap.html +2 -2
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/pyproject.toml +21 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/.gitattributes +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/.gitignore +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/LICENSE +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/index.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/examples/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/index.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/setup.cfg +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/style/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/style/boost.css +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/style/boost.js +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/style/demo.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/tests/unit/test_workflows.py +0 -0
|
@@ -33,16 +33,23 @@ auto-fixes straight back onto the branch.
|
|
|
33
33
|
| Command | Gate |
|
|
34
34
|
|---|---|
|
|
35
35
|
| `make test` | unit + functional suites, **≥80% line coverage** |
|
|
36
|
+
| `make patch-coverage` | changed-line coverage vs `main`, **≥80% of the diff** (PRs) |
|
|
36
37
|
| `bash tests/smoke.sh` | 152 end-to-end checks through the real `./boost` shim |
|
|
37
38
|
| `make mutation` | mutmut over `boost_cli/core`, **≥80% mutants killed** |
|
|
38
39
|
| `ruff check boost_cli tests` | lint, zero findings |
|
|
39
40
|
| `mypy` | type check, zero errors |
|
|
41
|
+
| `lint-imports` | layering: `core/` imports no `commands/`/`cli`; CLI depends inward |
|
|
40
42
|
|
|
41
43
|
## Ground rules
|
|
42
44
|
|
|
43
45
|
- **Stdlib only** at runtime. No third-party imports in `boost_cli/`.
|
|
44
46
|
- New commands live in `boost_cli/commands/<group>.py` as
|
|
45
47
|
`def cmd_<name>(argv) -> int` and are dispatched lazily from `cli.py`.
|
|
48
|
+
- **Respect the layers** (`cli → commands → core`): `core/` is the engine and
|
|
49
|
+
must import neither `commands/` nor `cli`; `commands/` must not reach up into
|
|
50
|
+
`cli`. `import-linter` enforces this — see `[tool.importlinter]` in
|
|
51
|
+
`pyproject.toml` (the one allowlisted edge is `completions` reading the
|
|
52
|
+
`COMMANDS` registry).
|
|
46
53
|
- Behavior changes need tests — functional tests drive the CLI in-process via
|
|
47
54
|
`boost_cli.cli.main` (see `tests/conftest.py` for the fixtures).
|
|
48
55
|
- Anything under `boost_cli/core/` is mutation-tested; expect to add unit
|
|
@@ -10,11 +10,11 @@ PYTEST := $(VENV)/bin/pytest
|
|
|
10
10
|
# pinned taps out of the developer's real ~/.boost.
|
|
11
11
|
EVAL_HOME := $(CURDIR)/.eval-home
|
|
12
12
|
|
|
13
|
-
.PHONY: venv test unit functional smoke coverage mutation lint check demo clean-test eval eval-ai eval-rec eval-stats eval-explain audit dist-check bdd bench bench-cli
|
|
13
|
+
.PHONY: venv test unit functional smoke coverage patch-coverage mutation lint check demo clean-test eval eval-ai eval-rec eval-stats eval-explain audit dist-check bdd bench bench-cli
|
|
14
14
|
|
|
15
15
|
venv:
|
|
16
16
|
python3 -m venv $(VENV)
|
|
17
|
-
$(VENV)/bin/pip -q install pytest pytest-cov coverage mutmut ruff mypy codespell hypothesis
|
|
17
|
+
$(VENV)/bin/pip -q install pytest pytest-cov coverage mutmut ruff mypy codespell hypothesis import-linter diff-cover
|
|
18
18
|
|
|
19
19
|
unit:
|
|
20
20
|
$(PYTEST) tests/unit -q
|
|
@@ -28,6 +28,12 @@ test:
|
|
|
28
28
|
|
|
29
29
|
coverage: test
|
|
30
30
|
|
|
31
|
+
# patch-coverage: gate coverage on the lines THIS branch changed vs main — the
|
|
32
|
+
# same check CI runs on every PR. Needs a diff base, so run it on a branch.
|
|
33
|
+
patch-coverage:
|
|
34
|
+
$(PYTEST) tests/unit tests/functional --cov=boost_cli --cov-report=xml --cov-fail-under=0 -q
|
|
35
|
+
$(VENV)/bin/diff-cover coverage.xml --compare-branch=origin/main --fail-under=80
|
|
36
|
+
|
|
31
37
|
# shell-level functional suite: drives the real shim end-to-end in a sandbox
|
|
32
38
|
smoke:
|
|
33
39
|
bash tests/smoke.sh
|
|
@@ -39,6 +45,7 @@ mutation:
|
|
|
39
45
|
lint:
|
|
40
46
|
$(VENV)/bin/ruff check boost_cli tests
|
|
41
47
|
$(VENV)/bin/mypy
|
|
48
|
+
$(VENV)/bin/lint-imports
|
|
42
49
|
$(VENV)/bin/codespell boost_cli docs README.md
|
|
43
50
|
@command -v actionlint >/dev/null 2>&1 && actionlint || echo "actionlint not on PATH — skipping (CI enforces it)"
|
|
44
51
|
$(PY) scripts/build_registries.py --check
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.159'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 159)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
id: layering-guard-import-linter
|
|
3
3
|
board: code
|
|
4
4
|
section: dx
|
|
5
|
-
status:
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Quality · Architecture
|
|
7
7
|
complexity: M
|
|
8
8
|
impact: Med
|
|
9
9
|
wow: 4
|
|
10
10
|
note: core/ ↛ commands/
|
|
11
11
|
order: 3
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/layering
|
|
13
|
+
pr: 182
|
|
14
14
|
title: Layering guard — <code>import-linter</code>
|
|
15
15
|
---
|
|
16
16
|
Enforce the architecture boost already assumes: <code>core/</code> must
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
id: patch-coverage-gate-diff-cover
|
|
3
3
|
board: code
|
|
4
4
|
section: pipeline
|
|
5
|
-
status:
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Testing · Gap
|
|
7
7
|
complexity: S
|
|
8
8
|
impact: Med
|
|
9
9
|
wow: 2
|
|
10
10
|
note: self-hosted
|
|
11
11
|
order: 8
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/patchcov
|
|
13
|
+
pr: 183
|
|
14
14
|
title: Patch-coverage gate — <code>diff-cover</code>
|
|
15
15
|
---
|
|
16
16
|
Enforce coverage on the <em>changed lines</em> of each PR — no external
|
|
@@ -1279,7 +1279,7 @@ improvement is real (or isn't)."</p>
|
|
|
1279
1279
|
</article>
|
|
1280
1280
|
|
|
1281
1281
|
<article class="cap rcard">
|
|
1282
|
-
<div class="head"><span class="pill
|
|
1282
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Testing · Gap</span></div>
|
|
1283
1283
|
<h3>Patch-coverage gate — <code>diff-cover</code></h3>
|
|
1284
1284
|
<p>Enforce coverage on the <em>changed lines</em> of each PR — no external
|
|
1285
1285
|
service needed, it reads the same <code>coverage.xml</code> the suite
|
|
@@ -1341,7 +1341,7 @@ improvement is real (or isn't)."</p>
|
|
|
1341
1341
|
</article>
|
|
1342
1342
|
|
|
1343
1343
|
<article class="cap rcard">
|
|
1344
|
-
<div class="head"><span class="pill
|
|
1344
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Architecture</span></div>
|
|
1345
1345
|
<h3>Layering guard — <code>import-linter</code></h3>
|
|
1346
1346
|
<p>Enforce the architecture boost already assumes: <code>core/</code> must
|
|
1347
1347
|
never import <code>commands/</code>, and the CLI depends inward only.
|
|
@@ -155,3 +155,24 @@ exclude_lines = [
|
|
|
155
155
|
"if TYPE_CHECKING:",
|
|
156
156
|
"raise NotImplementedError",
|
|
157
157
|
]
|
|
158
|
+
|
|
159
|
+
# import-linter: turn boost's assumed layering into an enforced contract, so a
|
|
160
|
+
# cross-layer import can't silently erode the engine. Run by `make lint`
|
|
161
|
+
# (lint-imports) and the CI lint job. Dev/CI-only — never imported at runtime.
|
|
162
|
+
[tool.importlinter]
|
|
163
|
+
root_package = "boost_cli"
|
|
164
|
+
|
|
165
|
+
[[tool.importlinter.contracts]]
|
|
166
|
+
name = "boost_cli is layered: cli -> commands -> core"
|
|
167
|
+
type = "layers"
|
|
168
|
+
# Higher layers may import lower ones, never the reverse: core/ (the engine)
|
|
169
|
+
# must import neither commands/ nor the CLI, and commands/ must not reach up
|
|
170
|
+
# into cli. This is the structural rule CLAUDE.md documents — core is the
|
|
171
|
+
# mutation-tested engine, commands/ is thin glue on top of it.
|
|
172
|
+
layers = ["cli", "commands", "core"]
|
|
173
|
+
containers = ["boost_cli"]
|
|
174
|
+
# The one intentional upward edge: `boost completions` reads COMMANDS — the
|
|
175
|
+
# command registry, which lives in cli.py by design (see CLAUDE.md) — to list
|
|
176
|
+
# every command. That single metadata lookup is allowlisted; any other
|
|
177
|
+
# commands -> cli import is still a violation.
|
|
178
|
+
ignore_imports = ["boost_cli.commands.configuration -> boost_cli.cli"]
|
|
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
|
|
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
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/boost_skill_cli.egg-info/entry_points.txt
RENAMED
|
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
|
|
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
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/boost-run-live-agents.md
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/list-rules-and-workflows.md
RENAMED
|
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
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.159}/docs/roadmap/items/one-command-every-env-nox.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|