boost-skill-cli 1.0.202__tar.gz → 1.0.204__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.202/boost_skill_cli.egg-info → boost_skill_cli-1.0.204}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/pkg.py +73 -2
- boost_skill_cli-1.0.204/boost_cli/core/resolve.py +136 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/SOURCES.txt +7 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/adapters.html +40 -9
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/commands.html +44 -4
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/design-roadmap.html +61 -38
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/eval.html +40 -15
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/index.html +43 -20
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/mcp-hub.html +40 -16
- boost_skill_cli-1.0.204/docs/roadmap/items/docsite-chrome-and-content-audit.md +41 -0
- boost_skill_cli-1.0.204/docs/roadmap/items/install-resolves-skill-dependencies.md +30 -0
- boost_skill_cli-1.0.204/docs/roadmap/items/installed-skill-trust-audit.md +25 -0
- boost_skill_cli-1.0.204/docs/roadmap/items/mcp-aware-skills.md +25 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap.html +257 -145
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_command_reference.py +40 -1
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_roadmap.py +5 -3
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/boost.css +51 -2
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_intelligence.py +3 -1
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_pkg.py +23 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_everyday_loop.py +3 -1
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/smoke.sh +4 -1
- boost_skill_cli-1.0.204/tests/unit/test_docsite_chrome.py +210 -0
- boost_skill_cli-1.0.204/tests/unit/test_resolve.py +162 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitattributes +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitignore +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/.vale.ini +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/LICENSE +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/Makefile +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/README.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/README.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/index.html +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/noxfile.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/setup.cfg +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/README.md +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/boost.js +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/style/demo.html +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.202 → boost_skill_cli-1.0.204}/tests/visual/visual_check.mjs +0 -0
|
@@ -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.204'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 204)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -17,8 +17,8 @@ from typing import Dict, List, Optional
|
|
|
17
17
|
from .. import cliparse
|
|
18
18
|
from ..core import (adapters, agents, catalog, config, frontmatter, gitutil,
|
|
19
19
|
injectscan, integrity, journal, lockfile, paths, projectlock,
|
|
20
|
-
registry, scopes, secretscan, staleness, store,
|
|
21
|
-
updatediff, util)
|
|
20
|
+
registry, resolve, scopes, secretscan, staleness, store,
|
|
21
|
+
typosquat, updatediff, util)
|
|
22
22
|
from ..core import output as out
|
|
23
23
|
from ..errors import BoostError
|
|
24
24
|
|
|
@@ -163,6 +163,56 @@ def _boostfile_text(skills: Dict[str, dict], via: str = "boost bundle dump") ->
|
|
|
163
163
|
return "\n".join(lines) + "\n"
|
|
164
164
|
|
|
165
165
|
|
|
166
|
+
def _rel_list(meta: dict, key: str) -> List[str]:
|
|
167
|
+
"""A skill's `requires:`/`conflicts:` frontmatter as a clean name list."""
|
|
168
|
+
val = (meta or {}).get(key)
|
|
169
|
+
if val in (None, "", False):
|
|
170
|
+
return []
|
|
171
|
+
if isinstance(val, list):
|
|
172
|
+
return [str(x).strip() for x in val if str(x).strip()]
|
|
173
|
+
return [s.strip() for s in str(val).split(",") if s.strip()]
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
def _skill_relations(name: str, key: str) -> List[str]:
|
|
177
|
+
"""`requires:`/`conflicts:` for a skill by name, from its catalog entry."""
|
|
178
|
+
matches = catalog.find(name)
|
|
179
|
+
if not matches:
|
|
180
|
+
return []
|
|
181
|
+
return _rel_list(matches[0].get("meta") or {}, key)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def _expand_dependencies(entries: List[dict]) -> "tuple[List[dict], resolve.Resolution]":
|
|
185
|
+
"""Grow the requested entries into their full `requires:` closure.
|
|
186
|
+
|
|
187
|
+
Returns ``(ordered_entries, resolution)`` — the entries to install in
|
|
188
|
+
dependency-first order (roots plus any pulled-in dependencies that are not
|
|
189
|
+
already installed), and the :class:`resolve.Resolution` carrying what was
|
|
190
|
+
added, any advisory conflicts, and unresolved (dangling) requirements.
|
|
191
|
+
"""
|
|
192
|
+
installed = frozenset(lockfile.installed())
|
|
193
|
+
res = resolve.resolve(
|
|
194
|
+
[e["name"] for e in entries],
|
|
195
|
+
lambda n: _skill_relations(n, "requires"),
|
|
196
|
+
lambda n: _skill_relations(n, "conflicts"),
|
|
197
|
+
installed=installed,
|
|
198
|
+
known=lambda n: bool(catalog.find(n)),
|
|
199
|
+
)
|
|
200
|
+
by_name = {e["name"]: e for e in entries}
|
|
201
|
+
ordered: List[dict] = []
|
|
202
|
+
for name in res.order:
|
|
203
|
+
if name in by_name:
|
|
204
|
+
ordered.append(by_name[name])
|
|
205
|
+
continue
|
|
206
|
+
try:
|
|
207
|
+
ordered.append(catalog.resolve_one(name))
|
|
208
|
+
except BoostError:
|
|
209
|
+
# A dep that resolves nowhere unambiguously is reported via
|
|
210
|
+
# res.unresolved; skip it here rather than abort the whole install.
|
|
211
|
+
if name not in res.unresolved:
|
|
212
|
+
res.unresolved.append(name)
|
|
213
|
+
return ordered, res
|
|
214
|
+
|
|
215
|
+
|
|
166
216
|
# ── install ──────────────────────────────────────────────────────────────
|
|
167
217
|
|
|
168
218
|
def cmd_install(argv: List[str]) -> int:
|
|
@@ -186,6 +236,8 @@ def cmd_install(argv: List[str]) -> int:
|
|
|
186
236
|
help="into your user config (= --scope user, default)")
|
|
187
237
|
ap.add_argument("--dry-run", action="store_true",
|
|
188
238
|
help="show what would happen without changing anything")
|
|
239
|
+
ap.add_argument("--no-deps", action="store_true",
|
|
240
|
+
help="install only the named skills, not their `requires:`")
|
|
189
241
|
args = ap.parse_args(argv)
|
|
190
242
|
args.scope = args.scope or scopes.SCOPE_USER
|
|
191
243
|
only = _check_agents(args.agent)
|
|
@@ -202,6 +254,25 @@ def cmd_install(argv: List[str]) -> int:
|
|
|
202
254
|
|
|
203
255
|
_warn_confusions(entries)
|
|
204
256
|
|
|
257
|
+
# Grow the request into its `requires:` closure (deps installed first),
|
|
258
|
+
# unless the caller opted out. Only skills carry dependency frontmatter;
|
|
259
|
+
# rules/workflows pass through unchanged.
|
|
260
|
+
if not args.no_deps and entries:
|
|
261
|
+
entries, dep_res = _expand_dependencies(entries)
|
|
262
|
+
if dep_res.added:
|
|
263
|
+
out.info("pulling in %s required by your selection: %s"
|
|
264
|
+
% (_plural(len(dep_res.added), "dependency"),
|
|
265
|
+
", ".join(dep_res.added)))
|
|
266
|
+
for name in dep_res.unresolved:
|
|
267
|
+
out.warn("required skill %r is in no tap — skipped "
|
|
268
|
+
"(install it manually or `boost tap` its source)" % name)
|
|
269
|
+
for skill, clash in dep_res.conflicts:
|
|
270
|
+
out.warn("%s declares a conflict with %s (also present)" % (skill, clash))
|
|
271
|
+
# Pulling in dependencies can turn a single-name request into a multi-item
|
|
272
|
+
# install (per-item headings); it must never *lower* multi (e.g. when an
|
|
273
|
+
# unknown co-requested name was dropped), so OR rather than reassign.
|
|
274
|
+
multi = multi or len(entries) > 1
|
|
275
|
+
|
|
205
276
|
if args.dry_run:
|
|
206
277
|
targets = [a for a in agents.enabled_agents() if not only or a in only]
|
|
207
278
|
pbase = scopes.resolve_base(args.scope)
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"""Skill dependency resolution — turn a set of requested skills into the full,
|
|
2
|
+
correctly-ordered install list by following each skill's ``requires:`` closure.
|
|
3
|
+
|
|
4
|
+
boost skills declare relationships in frontmatter (``requires:`` /
|
|
5
|
+
``conflicts:``); until now those were only *displayed* (``boost info`` /
|
|
6
|
+
``boost deps``). This module is the resolver that makes ``boost install`` act on
|
|
7
|
+
them — the "Homebrew installs dependencies" behavior — as a pure, dependency-
|
|
8
|
+
injected function so it is unit- and mutation-testable with no catalog or
|
|
9
|
+
filesystem access.
|
|
10
|
+
|
|
11
|
+
The caller supplies two lookups so the core stays I/O-free:
|
|
12
|
+
|
|
13
|
+
* ``requires_of(name) -> list[str]`` — the skills ``name`` declares it needs.
|
|
14
|
+
* ``conflicts_of(name) -> list[str]`` — the skills ``name`` declares it clashes
|
|
15
|
+
with (optional; defaults to none).
|
|
16
|
+
|
|
17
|
+
and, optionally, ``known(name) -> bool`` to tell a resolvable dependency from a
|
|
18
|
+
dangling one (a ``requires:`` naming a skill in no tap). Everything else is
|
|
19
|
+
plain graph work.
|
|
20
|
+
"""
|
|
21
|
+
from __future__ import annotations
|
|
22
|
+
|
|
23
|
+
from dataclasses import dataclass, field
|
|
24
|
+
from typing import Callable, FrozenSet, List, Optional, Sequence, Tuple
|
|
25
|
+
|
|
26
|
+
__all__ = ["Resolution", "resolve"]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@dataclass
|
|
30
|
+
class Resolution:
|
|
31
|
+
"""The outcome of resolving a set of requested skills.
|
|
32
|
+
|
|
33
|
+
* ``order`` — the install order, dependencies before dependents, with
|
|
34
|
+
already-installed skills that were only pulled in as dependencies dropped.
|
|
35
|
+
A *requested* skill stays in ``order`` even when already installed (so an
|
|
36
|
+
explicit ``boost install x`` still reinstalls/upgrades it, matching the
|
|
37
|
+
pre-resolver behavior).
|
|
38
|
+
* ``added`` — the transitive dependencies that were pulled in (``order``
|
|
39
|
+
minus the requested roots), in install order — what to tell the user got
|
|
40
|
+
added on their behalf.
|
|
41
|
+
* ``conflicts`` — ``(skill, clashes_with)`` pairs where a skill in the plan
|
|
42
|
+
declares a ``conflicts:`` against something already installed or also
|
|
43
|
+
being installed. Advisory (a warning), never a hard failure.
|
|
44
|
+
* ``unresolved`` — required skill names with no known source (a dangling
|
|
45
|
+
``requires:``); surfaced so the caller can warn rather than crash.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
order: List[str] = field(default_factory=list)
|
|
49
|
+
added: List[str] = field(default_factory=list)
|
|
50
|
+
conflicts: List[Tuple[str, str]] = field(default_factory=list)
|
|
51
|
+
unresolved: List[str] = field(default_factory=list)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _norm(names: Sequence[str]) -> List[str]:
|
|
55
|
+
"""De-dupe a name sequence preserving first-seen order."""
|
|
56
|
+
seen: List[str] = []
|
|
57
|
+
for n in names:
|
|
58
|
+
if n and n not in seen:
|
|
59
|
+
seen.append(n)
|
|
60
|
+
return seen
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def resolve(
|
|
64
|
+
roots: Sequence[str],
|
|
65
|
+
requires_of: Callable[[str], Sequence[str]],
|
|
66
|
+
conflicts_of: Optional[Callable[[str], Sequence[str]]] = None,
|
|
67
|
+
*,
|
|
68
|
+
installed: FrozenSet[str] = frozenset(),
|
|
69
|
+
known: Optional[Callable[[str], bool]] = None,
|
|
70
|
+
) -> Resolution:
|
|
71
|
+
"""Resolve ``roots`` plus their ``requires:`` closure into an install plan.
|
|
72
|
+
|
|
73
|
+
Post-order depth-first traversal yields dependencies before the skills that
|
|
74
|
+
need them. The traversal is cycle-safe (a skill on the current DFS stack is
|
|
75
|
+
not re-entered) and each skill is visited once. A dependency that is already
|
|
76
|
+
``installed`` is not re-added; a *requested* root is always kept so an
|
|
77
|
+
explicit reinstall/upgrade still happens. Unknown dependencies (per
|
|
78
|
+
``known``) are recorded in ``unresolved`` and not traversed further.
|
|
79
|
+
"""
|
|
80
|
+
conflicts_of = conflicts_of or (lambda _n: [])
|
|
81
|
+
known = known or (lambda _n: True)
|
|
82
|
+
roots = _norm(roots)
|
|
83
|
+
root_set = set(roots)
|
|
84
|
+
|
|
85
|
+
order: List[str] = []
|
|
86
|
+
done: set = set() # fully-processed (post-order emitted)
|
|
87
|
+
on_stack: set = set() # currently being visited — cycle guard
|
|
88
|
+
unresolved: List[str] = []
|
|
89
|
+
|
|
90
|
+
def visit(name: str, is_root: bool) -> None:
|
|
91
|
+
if name in done or name in on_stack:
|
|
92
|
+
return # already emitted, or a cycle — stop
|
|
93
|
+
# An already-installed skill pulled in only as a dependency is assumed
|
|
94
|
+
# satisfied — don't re-traverse or re-emit its subtree. (A requested root
|
|
95
|
+
# is still walked so an explicit reinstall re-checks its deps; gap-filling
|
|
96
|
+
# of a broken installed skill is `boost heal`'s job, not install's.)
|
|
97
|
+
if name in installed and not is_root:
|
|
98
|
+
done.add(name)
|
|
99
|
+
return
|
|
100
|
+
on_stack.add(name)
|
|
101
|
+
for dep in _norm(list(requires_of(name) or [])):
|
|
102
|
+
if dep == name:
|
|
103
|
+
continue # a self-require is a no-op, never a cycle error
|
|
104
|
+
if not known(dep):
|
|
105
|
+
if dep not in unresolved:
|
|
106
|
+
unresolved.append(dep)
|
|
107
|
+
continue
|
|
108
|
+
visit(dep, is_root=False)
|
|
109
|
+
on_stack.discard(name)
|
|
110
|
+
done.add(name)
|
|
111
|
+
# Emit unless it is an already-installed skill pulled in only as a dep;
|
|
112
|
+
# a requested root is always emitted (reinstall/upgrade semantics).
|
|
113
|
+
if is_root or name not in installed:
|
|
114
|
+
order.append(name)
|
|
115
|
+
|
|
116
|
+
for r in roots:
|
|
117
|
+
visit(r, is_root=True)
|
|
118
|
+
|
|
119
|
+
added = [n for n in order if n not in root_set]
|
|
120
|
+
|
|
121
|
+
# Conflict scan: anything in the plan (being installed) OR already installed
|
|
122
|
+
# is a live presence; flag a declared conflict against any live presence.
|
|
123
|
+
live = set(order) | set(installed)
|
|
124
|
+
conflicts: List[Tuple[str, str]] = []
|
|
125
|
+
seen_pairs: set = set()
|
|
126
|
+
for skill in order:
|
|
127
|
+
for clash in _norm(list(conflicts_of(skill) or [])):
|
|
128
|
+
if clash == skill or clash not in live:
|
|
129
|
+
continue
|
|
130
|
+
key = (skill, clash)
|
|
131
|
+
if key not in seen_pairs:
|
|
132
|
+
seen_pairs.add(key)
|
|
133
|
+
conflicts.append(key)
|
|
134
|
+
|
|
135
|
+
return Resolution(order=order, added=added,
|
|
136
|
+
conflicts=conflicts, unresolved=unresolved)
|
|
@@ -74,6 +74,7 @@ boost_cli/core/projectlock.py
|
|
|
74
74
|
boost_cli/core/provenance.py
|
|
75
75
|
boost_cli/core/rag.py
|
|
76
76
|
boost_cli/core/registry.py
|
|
77
|
+
boost_cli/core/resolve.py
|
|
77
78
|
boost_cli/core/rules.py
|
|
78
79
|
boost_cli/core/scopes.py
|
|
79
80
|
boost_cli/core/secretscan.py
|
|
@@ -149,6 +150,7 @@ docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md
|
|
|
149
150
|
docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md
|
|
150
151
|
docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md
|
|
151
152
|
docs/roadmap/items/dependency-cve-gate-pip-audit.md
|
|
153
|
+
docs/roadmap/items/docsite-chrome-and-content-audit.md
|
|
152
154
|
docs/roadmap/items/docstring-coverage-interrogate.md
|
|
153
155
|
docs/roadmap/items/doctor-checks-rules-and-workflows.md
|
|
154
156
|
docs/roadmap/items/end-of-options-guard-on-git-commands.md
|
|
@@ -165,7 +167,9 @@ docs/roadmap/items/github-pages-deploy-is-broken-every-push.md
|
|
|
165
167
|
docs/roadmap/items/golden-set-statistical-power.md
|
|
166
168
|
docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md
|
|
167
169
|
docs/roadmap/items/html-validation-html-validate.md
|
|
170
|
+
docs/roadmap/items/install-resolves-skill-dependencies.md
|
|
168
171
|
docs/roadmap/items/install-scope-user-or-project.md
|
|
172
|
+
docs/roadmap/items/installed-skill-trust-audit.md
|
|
169
173
|
docs/roadmap/items/integrity-verification-boost-verify.md
|
|
170
174
|
docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md
|
|
171
175
|
docs/roadmap/items/layering-guard-import-linter.md
|
|
@@ -177,6 +181,7 @@ docs/roadmap/items/log-timestamps-mislabeled-utc.md
|
|
|
177
181
|
docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md
|
|
178
182
|
docs/roadmap/items/make-the-roadmaps-discoverable.md
|
|
179
183
|
docs/roadmap/items/markdown-consistency-markdownlint-cli2.md
|
|
184
|
+
docs/roadmap/items/mcp-aware-skills.md
|
|
180
185
|
docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md
|
|
181
186
|
docs/roadmap/items/mcp-launch-objc-fork-safety.md
|
|
182
187
|
docs/roadmap/items/mcp-register-names-server-before-env.md
|
|
@@ -321,6 +326,7 @@ tests/unit/test_config.py
|
|
|
321
326
|
tests/unit/test_dense.py
|
|
322
327
|
tests/unit/test_dense_fallback.py
|
|
323
328
|
tests/unit/test_docs_pages_linked.py
|
|
329
|
+
tests/unit/test_docsite_chrome.py
|
|
324
330
|
tests/unit/test_ed25519.py
|
|
325
331
|
tests/unit/test_embed.py
|
|
326
332
|
tests/unit/test_errors_and_cli_table.py
|
|
@@ -352,6 +358,7 @@ tests/unit/test_provenance.py
|
|
|
352
358
|
tests/unit/test_rag.py
|
|
353
359
|
tests/unit/test_registries_fresh.py
|
|
354
360
|
tests/unit/test_registry.py
|
|
361
|
+
tests/unit/test_resolve.py
|
|
355
362
|
tests/unit/test_roadmap_fresh.py
|
|
356
363
|
tests/unit/test_rules.py
|
|
357
364
|
tests/unit/test_scopes.py
|
|
@@ -65,7 +65,23 @@
|
|
|
65
65
|
</head>
|
|
66
66
|
<body>
|
|
67
67
|
|
|
68
|
-
<
|
|
68
|
+
<header>
|
|
69
|
+
<div class="wrap site-nav">
|
|
70
|
+
<a class="logo" href="index.html"><b>boost</b><span>Adapters</span></a>
|
|
71
|
+
<ul>
|
|
72
|
+
<li><a href="index.html">Guide</a></li>
|
|
73
|
+
<li><a href="commands.html">Commands</a></li>
|
|
74
|
+
<li><a href="roadmap.html">Roadmap</a></li>
|
|
75
|
+
<li><a href="design-roadmap.html">Design</a></li>
|
|
76
|
+
<li><a href="mcp-hub.html">MCP Hub</a></li>
|
|
77
|
+
<li><a href="eval.html">Evaluation</a></li>
|
|
78
|
+
<li><a href="#top" aria-current="page">Adapters</a></li>
|
|
79
|
+
<li><a href="https://github.com/jonnyeclectic/boost">GitHub</a></li>
|
|
80
|
+
</ul>
|
|
81
|
+
</div>
|
|
82
|
+
</header>
|
|
83
|
+
|
|
84
|
+
<main id="top">
|
|
69
85
|
<!-- ===== hero ===== -->
|
|
70
86
|
<div class="wrap hero">
|
|
71
87
|
<p class="crumbs"><a href="index.html">boost</a> / docs / adapters · <span class="mono">boost adapt</span></p>
|
|
@@ -327,16 +343,31 @@ python3 -m venv /tmp/crew && /tmp/crew/bin/pip install <span class="s">"
|
|
|
327
343
|
</div>
|
|
328
344
|
</section>
|
|
329
345
|
|
|
330
|
-
<footer>
|
|
331
|
-
<div class="wrap">
|
|
332
|
-
<p>boost · <b>Framework adapters</b> — <code class="mono">boost adapt <skill> --to <framework></code> ·
|
|
333
|
-
<a href="index.html">docs home</a> ·
|
|
334
|
-
<a href="mcp-hub.html">RAG & MCP hub</a><br>
|
|
335
|
-
Styled with the shared <a href="../style/boost.css">Aurora</a> design system.</p>
|
|
336
|
-
</div>
|
|
337
|
-
</footer>
|
|
338
346
|
</main>
|
|
339
347
|
|
|
348
|
+
<footer>
|
|
349
|
+
<div class="wrap">
|
|
350
|
+
<p class="foot-brand"><b>boost</b> — a package manager for AI coding skills</p>
|
|
351
|
+
<p class="foot-note">Install with <code>pip install boost-skill-cli</code> · requires Python 3.9+ and <code>git</code></p>
|
|
352
|
+
<nav class="foot-links" aria-label="Documentation">
|
|
353
|
+
<a href="index.html">Guide</a>
|
|
354
|
+
<a href="commands.html">Commands</a>
|
|
355
|
+
<a href="roadmap.html">Roadmap</a>
|
|
356
|
+
<a href="design-roadmap.html">Design</a>
|
|
357
|
+
<a href="mcp-hub.html">MCP Hub</a>
|
|
358
|
+
<a href="eval.html">Evaluation</a>
|
|
359
|
+
<a href="#top" aria-current="page">Adapters</a>
|
|
360
|
+
</nav>
|
|
361
|
+
<p class="foot-legal">
|
|
362
|
+
<a href="https://github.com/jonnyeclectic/boost">GitHub</a> ·
|
|
363
|
+
<a href="https://pypi.org/project/boost-skill-cli/">PyPI</a> ·
|
|
364
|
+
<a href="https://jonnyeclectic.github.io/portfolio/">Portfolio</a> ·
|
|
365
|
+
Released under the GPL-3.0 license
|
|
366
|
+
</p>
|
|
367
|
+
</div>
|
|
368
|
+
</footer>
|
|
369
|
+
|
|
370
|
+
|
|
340
371
|
<script src="../style/boost.js" defer></script>
|
|
341
372
|
</body>
|
|
342
373
|
</html>
|
|
@@ -70,6 +70,25 @@
|
|
|
70
70
|
border-right: none; border-bottom: 1px solid var(--line); }
|
|
71
71
|
.arg { grid-template-columns: 1fr; gap: 2px; }
|
|
72
72
|
}
|
|
73
|
+
|
|
74
|
+
/* Site footer — same content as every other docs page. This page is
|
|
75
|
+
self-contained (its sidebar layout owns .wrap), so the rules are local. */
|
|
76
|
+
footer { border-top: 1px solid var(--line); padding: 30px 20px 40px; text-align: center; }
|
|
77
|
+
footer .foot-brand { font-size: 14.5px; color: var(--text-2); }
|
|
78
|
+
footer .foot-brand b { font-family: var(--mono); font-weight: 700; color: var(--amber); }
|
|
79
|
+
footer .foot-note { margin-top: 9px; font-size: 13px; color: var(--text-2); opacity: .8; }
|
|
80
|
+
footer .foot-note code { font-size: .92em; color: var(--amber);
|
|
81
|
+
background: rgba(34,211,238,.08); border: 1px solid var(--line);
|
|
82
|
+
border-radius: 6px; padding: 2px 8px; }
|
|
83
|
+
footer .foot-links { display: flex; flex-wrap: wrap; justify-content: center;
|
|
84
|
+
gap: 4px 6px; margin-top: 16px; }
|
|
85
|
+
footer .foot-links a { display: flex; align-items: center; min-height: 40px;
|
|
86
|
+
padding: 5px 11px; border-radius: 8px; font-size: 13px;
|
|
87
|
+
color: var(--text-2); text-decoration: none; }
|
|
88
|
+
footer .foot-links a:hover,
|
|
89
|
+
footer .foot-links a[aria-current="page"] { color: var(--text); background: var(--panel); }
|
|
90
|
+
footer .foot-legal { margin-top: 13px; font-size: 12.5px; color: var(--text-2); opacity: .75; }
|
|
91
|
+
footer .foot-legal a { color: var(--text-2); text-decoration: underline; }
|
|
73
92
|
</style>
|
|
74
93
|
</head>
|
|
75
94
|
<body>
|
|
@@ -80,7 +99,7 @@
|
|
|
80
99
|
<input id="q" type="search" placeholder="Filter 78 commands…" autocomplete="off" aria-label="Filter commands">
|
|
81
100
|
<div class="group" data-group="pkg">
|
|
82
101
|
<div class="group-h">Install & lifecycle</div>
|
|
83
|
-
<a class="cmd-link" href="#cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run name">install</a>
|
|
102
|
+
<a class="cmd-link" href="#cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run --no-deps name">install</a>
|
|
84
103
|
<a class="cmd-link" href="#cmd-uninstall" data-search="uninstall remove an installed skill, rule, workflow, or config --local name">uninstall</a>
|
|
85
104
|
<a class="cmd-link" href="#cmd-sync" data-search="sync reconcile installed skills & symlinks against the lock file --diff --prune --json">sync</a>
|
|
86
105
|
<a class="cmd-link" href="#cmd-update" data-search="update sync taps or update installed skills --taps-only tap">update</a>
|
|
@@ -182,15 +201,15 @@
|
|
|
182
201
|
</div>
|
|
183
202
|
<div id="nohits">No commands match.</div>
|
|
184
203
|
</aside>
|
|
185
|
-
<main>
|
|
204
|
+
<main id="top">
|
|
186
205
|
<h1>boost <b>command reference</b></h1>
|
|
187
206
|
<p class="lead">All <b>78</b> commands, generated from the CLI itself —
|
|
188
207
|
run <code>boost <command> --help</code> for the same in your terminal.</p>
|
|
189
208
|
<h2 class="group-h" id="grp-pkg">Install & lifecycle</h2>
|
|
190
|
-
<section class="cmd" id="cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run name">
|
|
209
|
+
<section class="cmd" id="cmd-install" data-search="install install a skill from a tap registry --force --agent a --scope {user,project} --local --global --dry-run --no-deps name">
|
|
191
210
|
<h3><span class="cname">install</span><span class="gtag">pkg</span></h3>
|
|
192
211
|
<p class="summary">Install a skill from a tap registry</p>
|
|
193
|
-
<pre class="syn">boost install [--force] [--agent A] [--scope {user,project}] [--local] [--global] [--dry-run] NAME [NAME ...]</pre>
|
|
212
|
+
<pre class="syn">boost install [--force] [--agent A] [--scope {user,project}] [--local] [--global] [--dry-run] [--no-deps] NAME [NAME ...]</pre>
|
|
194
213
|
<div class="args-h">Arguments</div>
|
|
195
214
|
<div class="args">
|
|
196
215
|
<div class="arg"><code>NAME</code><span>skill name, optionally qualified as tap:skill</span></div>
|
|
@@ -203,6 +222,7 @@
|
|
|
203
222
|
<div class="arg"><code>--local</code><span>into this repo, committable (= --scope project)</span></div>
|
|
204
223
|
<div class="arg"><code>--global</code><span>into your user config (= --scope user, default)</span></div>
|
|
205
224
|
<div class="arg"><code>--dry-run</code><span>show what would happen without changing anything</span></div>
|
|
225
|
+
<div class="arg"><code>--no-deps</code><span>install only the named skills, not their `requires:`</span></div>
|
|
206
226
|
</div>
|
|
207
227
|
</section>
|
|
208
228
|
<section class="cmd" id="cmd-uninstall" data-search="uninstall remove an installed skill, rule, workflow, or config --local name">
|
|
@@ -1148,6 +1168,26 @@
|
|
|
1148
1168
|
</section>
|
|
1149
1169
|
</main>
|
|
1150
1170
|
</div>
|
|
1171
|
+
|
|
1172
|
+
<footer>
|
|
1173
|
+
<p class="foot-brand"><b>boost</b> — a package manager for AI coding skills</p>
|
|
1174
|
+
<p class="foot-note">Install with <code>pip install boost-skill-cli</code> · requires Python 3.9+ and <code>git</code></p>
|
|
1175
|
+
<nav class="foot-links" aria-label="Documentation">
|
|
1176
|
+
<a href="index.html">Guide</a>
|
|
1177
|
+
<a href="#top" aria-current="page">Commands</a>
|
|
1178
|
+
<a href="roadmap.html">Roadmap</a>
|
|
1179
|
+
<a href="design-roadmap.html">Design</a>
|
|
1180
|
+
<a href="mcp-hub.html">MCP Hub</a>
|
|
1181
|
+
<a href="eval.html">Evaluation</a>
|
|
1182
|
+
<a href="adapters.html">Adapters</a>
|
|
1183
|
+
</nav>
|
|
1184
|
+
<p class="foot-legal">
|
|
1185
|
+
<a href="https://github.com/jonnyeclectic/boost">GitHub</a> ·
|
|
1186
|
+
<a href="https://pypi.org/project/boost-skill-cli/">PyPI</a> ·
|
|
1187
|
+
<a href="https://jonnyeclectic.github.io/portfolio/">Portfolio</a> ·
|
|
1188
|
+
Released under the GPL-3.0 license
|
|
1189
|
+
</p>
|
|
1190
|
+
</footer>
|
|
1151
1191
|
<script>
|
|
1152
1192
|
(function () {
|
|
1153
1193
|
var q = document.getElementById('q');
|