boost-skill-cli 1.0.157__tar.gz → 1.0.158__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.158}/CONTRIBUTING.md +6 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/Makefile +2 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/layering-guard-import-linter.md +3 -3
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap.html +1 -1
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/pyproject.toml +21 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/.gitattributes +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/.gitignore +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/LICENSE +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/index.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/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.158}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/examples/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/index.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/setup.cfg +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/style/README.md +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/style/boost.css +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/style/boost.js +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/style/demo.html +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/tests/unit/test_workflows.py +0 -0
|
@@ -37,12 +37,18 @@ auto-fixes straight back onto the branch.
|
|
|
37
37
|
| `make mutation` | mutmut over `boost_cli/core`, **≥80% mutants killed** |
|
|
38
38
|
| `ruff check boost_cli tests` | lint, zero findings |
|
|
39
39
|
| `mypy` | type check, zero errors |
|
|
40
|
+
| `lint-imports` | layering: `core/` imports no `commands/`/`cli`; CLI depends inward |
|
|
40
41
|
|
|
41
42
|
## Ground rules
|
|
42
43
|
|
|
43
44
|
- **Stdlib only** at runtime. No third-party imports in `boost_cli/`.
|
|
44
45
|
- New commands live in `boost_cli/commands/<group>.py` as
|
|
45
46
|
`def cmd_<name>(argv) -> int` and are dispatched lazily from `cli.py`.
|
|
47
|
+
- **Respect the layers** (`cli → commands → core`): `core/` is the engine and
|
|
48
|
+
must import neither `commands/` nor `cli`; `commands/` must not reach up into
|
|
49
|
+
`cli`. `import-linter` enforces this — see `[tool.importlinter]` in
|
|
50
|
+
`pyproject.toml` (the one allowlisted edge is `completions` reading the
|
|
51
|
+
`COMMANDS` registry).
|
|
46
52
|
- Behavior changes need tests — functional tests drive the CLI in-process via
|
|
47
53
|
`boost_cli.cli.main` (see `tests/conftest.py` for the fixtures).
|
|
48
54
|
- Anything under `boost_cli/core/` is mutation-tested; expect to add unit
|
|
@@ -14,7 +14,7 @@ EVAL_HOME := $(CURDIR)/.eval-home
|
|
|
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
|
|
18
18
|
|
|
19
19
|
unit:
|
|
20
20
|
$(PYTEST) tests/unit -q
|
|
@@ -39,6 +39,7 @@ mutation:
|
|
|
39
39
|
lint:
|
|
40
40
|
$(VENV)/bin/ruff check boost_cli tests
|
|
41
41
|
$(VENV)/bin/mypy
|
|
42
|
+
$(VENV)/bin/lint-imports
|
|
42
43
|
$(VENV)/bin/codespell boost_cli docs README.md
|
|
43
44
|
@command -v actionlint >/dev/null 2>&1 && actionlint || echo "actionlint not on PATH — skipping (CI enforces it)"
|
|
44
45
|
$(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.158'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 158)
|
|
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
|
|
@@ -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.158}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/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.158}/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.158}/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.158}/docs/roadmap/items/one-command-every-env-nox.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
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/ranx-significance-monitor.md
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.157 → boost_skill_cli-1.0.158}/docs/roadmap/items/reconcile-the-theme-drift.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|