boost-skill-cli 1.2.132__tar.gz → 1.2.133__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.2.132 → boost_skill_cli-1.2.133}/CLAUDE.md +15 -12
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/Makefile +15 -9
- {boost_skill_cli-1.2.132/boost_skill_cli.egg-info → boost_skill_cli-1.2.133}/PKG-INFO +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/README.md +10 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/configuration.py +153 -82
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/hooks.py +7 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/info.py +6 -6
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/quality.py +13 -9
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/quickstart.py +40 -11
- boost_skill_cli-1.2.133/boost_cli/core/bootstrap.py +302 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/catalog.py +13 -7
- boost_skill_cli-1.2.133/boost_cli/core/compact.py +186 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/complete.py +47 -10
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/config.py +34 -13
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/jsonstate.py +12 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/lockfile.py +23 -29
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcp.py +88 -15
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/output.py +44 -23
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/paths.py +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/policy.py +3 -11
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/projectlock.py +3 -7
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/rag.py +44 -17
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/registry.py +13 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/store.py +197 -72
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/util.py +56 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/data/rules/boost-first.mdc +11 -8
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133/boost_skill_cli.egg-info}/PKG-INFO +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/SOURCES.txt +6 -0
- boost_skill_cli-1.2.133/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/mcp-hub.html +7 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/rag-architecture.md +3 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +4 -4
- boost_skill_cli-1.2.133/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +26 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +12 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +6 -4
- boost_skill_cli-1.2.133/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +20 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +3 -3
- boost_skill_cli-1.2.133/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +20 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +3 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap.html +67 -201
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_retrieval.py +14 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/conftest.py +6 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_configuration.py +43 -6
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_discovery.py +80 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_hooks.py +84 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_info.py +32 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_quality.py +114 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_quickstart.py +327 -32
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_taps.py +26 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_builtin.py +36 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalog.py +52 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_complete.py +128 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_config.py +74 -0
- boost_skill_cli-1.2.133/tests/unit/test_dry_run_parity.py +865 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_corpus.py +196 -25
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_first_run_pointer.py +21 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_jsonstate.py +16 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_lockfile.py +44 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp.py +163 -35
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp_read.py +13 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_output.py +82 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_output_table_drop.py +6 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_policy.py +8 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_projectlock.py +8 -0
- boost_skill_cli-1.2.133/tests/unit/test_quickstart_readiness.py +246 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag.py +108 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry.py +23 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_util.py +66 -0
- boost_skill_cli-1.2.132/boost_cli/core/bootstrap.py +0 -137
- boost_skill_cli-1.2.132/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitattributes +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitignore +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/.vale.ini +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/DCO +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/LICENSE +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/codecov.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/index.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/index.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/noxfile.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/setup.cfg +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/boost.css +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/boost.js +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/style/demo.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_corpus_bodies.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_lighthouse_budgets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.133}/tests/visual/visual_check.mjs +0 -0
|
@@ -63,31 +63,34 @@ corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
|
|
|
63
63
|
--defaults` is NOT enough, it omits every rule/workflow repo). The list is
|
|
64
64
|
**twenty** repos: the first six cover every golden target, the rest exist so the
|
|
65
65
|
corpus is a realistic size. That matters more than it sounds — over the six
|
|
66
|
-
alone (
|
|
67
|
-
twenty (10,
|
|
68
|
-
|
|
66
|
+
alone (921 entries at the current pins) BM25 scores 0.989 / 0.769 / 0.848 /
|
|
67
|
+
0.880, and over the twenty (10,731) it scores **0.841 / 0.484 / 0.607 / 0.655**
|
|
68
|
+
on the same golden set (what `tests/eval/baseline.json` records), so three of
|
|
69
|
+
the four old floors fail once the corpus stops being tiny.
|
|
69
70
|
|
|
70
71
|
**The ranked list de-duplicates on the content hash, not the name.** A grade key
|
|
71
72
|
decides both relevance and identity, and keying identity on the name collapsed
|
|
72
73
|
13 different skills called `code-reviewer` into one rank slot — crediting the
|
|
73
74
|
ranker with a compression that existed only in the scoring code, and worth about
|
|
74
75
|
one query of recall@10. That is where the old "recall is 1.000" folklore came
|
|
75
|
-
from; the six-repo corpus
|
|
76
|
-
not. Relevance is still decided by name (or by content
|
|
77
|
-
pins an `exemplar`), so the sets can migrate a row at a
|
|
76
|
+
from; the six-repo corpus measured 0.978 at the pins of the time once mirrors
|
|
77
|
+
collapse and homonyms do not. Relevance is still decided by name (or by content
|
|
78
|
+
class when a golden row pins an `exemplar`), so the sets can migrate a row at a
|
|
79
|
+
time.
|
|
78
80
|
|
|
79
81
|
Each floor sits ~10% under its measured value — loose enough that upstream drift
|
|
80
82
|
can't flake the build, tight enough to catch a collapse. Regression-vs-baseline
|
|
81
83
|
stays relaxed (`--regression-eps 1`), so the absolute floors are the real gate.
|
|
82
84
|
|
|
83
85
|
**Every row of `taps.txt` pins a commit SHA**, and `scripts/eval_corpus.py`
|
|
84
|
-
checks each clone out at it — the corpus is 10,
|
|
85
|
-
third-party repo is 6,
|
|
86
|
+
checks each clone out at it — the corpus is 10,731 entries, of which one
|
|
87
|
+
third-party repo is 6,634 (62%), so an unpinned list left a required check
|
|
86
88
|
hostage to someone else's push. CI and `make eval` must invoke the gate with
|
|
87
|
-
identical floors
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
identical arguments, not just identical floors — `-k` decides what two of them
|
|
90
|
+
measure; `tests/unit/test_eval_corpus.py` parses both calls and fails the build
|
|
91
|
+
if they diverge, which they had (CI floored recall alone at 0.85 against a
|
|
92
|
+
measured 0.863 — a buffer of 1.15 queries out of 91 — and applied none of the
|
|
93
|
+
other three). Moving a pin means regenerating the baseline; the file says how.
|
|
91
94
|
|
|
92
95
|
**Baselines are keyed by query set** (`name@content-digest`), so one file holds
|
|
93
96
|
both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
|
|
@@ -122,15 +122,21 @@ dist-check:
|
|
|
122
122
|
# 0.000 passed.
|
|
123
123
|
#
|
|
124
124
|
# The floors are calibrated against a TWENTY-tap corpus, not the six it used to
|
|
125
|
-
# be. Over six
|
|
126
|
-
# scores 0.
|
|
127
|
-
#
|
|
128
|
-
#
|
|
129
|
-
# the corpus
|
|
130
|
-
#
|
|
131
|
-
# that a
|
|
132
|
-
#
|
|
133
|
-
#
|
|
125
|
+
# be. Over the six (921 entries) BM25 scores 0.989 / 0.769 / 0.848 / 0.880;
|
|
126
|
+
# over twenty it scores 0.841 / 0.484 / 0.607 / 0.655 on the same golden set,
|
|
127
|
+
# which is what tests/eval/baseline.json records at the current pins. The
|
|
128
|
+
# second set is what a real user sees, so flooring against the first was
|
|
129
|
+
# measuring the corpus rather than the retrieval — three of the four old floors
|
|
130
|
+
# fail outright once the corpus is realistic. Each floor now sits ~10% below
|
|
131
|
+
# its measured value: loose enough that a query or two cannot flake the build,
|
|
132
|
+
# tight enough that a collapse fails it. Regression-vs-baseline stays relaxed
|
|
133
|
+
# (--regression-eps 1); the absolute floors are the real gate. (It was relaxed
|
|
134
|
+
# while the corpus tracked upstream HEAD. tests/eval/taps.txt pins a commit per
|
|
135
|
+
# row now, so that is no longer the reason.)
|
|
136
|
+
#
|
|
137
|
+
# ci.yml and eval-corpus-refresh.yml run this same eval_retrieval.py call.
|
|
138
|
+
# tests/unit/test_eval_corpus.py parses all three with the script's own parser
|
|
139
|
+
# and fails the build on any difference, -k and --golden included.
|
|
134
140
|
eval:
|
|
135
141
|
PYTHON=$(PY) BOOST_HOME=$(EVAL_HOME) bash scripts/ensure_eval_corpus.sh
|
|
136
142
|
BOOST_HOME=$(EVAL_HOME) $(PY) scripts/eval_retrieval.py --build -k 10 \
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boost-skill-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.133
|
|
4
4
|
Summary: boost — Homebrew for AI coding skills
|
|
5
5
|
Author: Jonathan Reyes
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -320,11 +320,18 @@ If you tapped heavily before this landed, `boost compact` narrows the clones you
|
|
|
320
320
|
already have, offline and with no loss of search coverage:
|
|
321
321
|
|
|
322
322
|
```bash
|
|
323
|
-
boost compact --dry-run
|
|
324
|
-
boost compact
|
|
325
|
-
boost compact --reclone
|
|
323
|
+
boost compact --dry-run # what narrowing would reclaim
|
|
324
|
+
boost compact # narrow every clone in place
|
|
325
|
+
boost compact --reclone --dry-run # what a re-clone would remove first
|
|
326
|
+
boost compact --reclone # also drop downloaded git objects (needs network)
|
|
326
327
|
```
|
|
327
328
|
|
|
329
|
+
Narrowing removes only files git tracks. A file you dropped into a clone by
|
|
330
|
+
hand stays where it is, so `--dry-run` does not count it. `--reclone` deletes
|
|
331
|
+
the whole clone, so its preview does count those files, plus the `.git` it
|
|
332
|
+
drops. It gives no net figure, because the size of the fresh clone is up to
|
|
333
|
+
the remote.
|
|
334
|
+
|
|
328
335
|
boost indexes three item kinds from the same registries, and they install to
|
|
329
336
|
different places. A skill is copied into the canonical store and symlinked out.
|
|
330
337
|
A rule is materialised into each agent's context file (`~/.claude/CLAUDE.md`,
|
|
@@ -278,11 +278,18 @@ If you tapped heavily before this landed, `boost compact` narrows the clones you
|
|
|
278
278
|
already have, offline and with no loss of search coverage:
|
|
279
279
|
|
|
280
280
|
```bash
|
|
281
|
-
boost compact --dry-run
|
|
282
|
-
boost compact
|
|
283
|
-
boost compact --reclone
|
|
281
|
+
boost compact --dry-run # what narrowing would reclaim
|
|
282
|
+
boost compact # narrow every clone in place
|
|
283
|
+
boost compact --reclone --dry-run # what a re-clone would remove first
|
|
284
|
+
boost compact --reclone # also drop downloaded git objects (needs network)
|
|
284
285
|
```
|
|
285
286
|
|
|
287
|
+
Narrowing removes only files git tracks. A file you dropped into a clone by
|
|
288
|
+
hand stays where it is, so `--dry-run` does not count it. `--reclone` deletes
|
|
289
|
+
the whole clone, so its preview does count those files, plus the `.git` it
|
|
290
|
+
drops. It gives no net figure, because the size of the fresh clone is up to
|
|
291
|
+
the remote.
|
|
292
|
+
|
|
286
293
|
boost indexes three item kinds from the same registries, and they install to
|
|
287
294
|
different places. A skill is copied into the canonical store and symlinked out.
|
|
288
295
|
A rule is materialised into each agent's context file (`~/.claude/CLAUDE.md`,
|
|
@@ -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.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 2,
|
|
21
|
+
__version__ = version = '1.2.133'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 133)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -20,6 +20,7 @@ from pathlib import Path
|
|
|
20
20
|
from .. import __version__, cliparse
|
|
21
21
|
from ..core import (
|
|
22
22
|
agents,
|
|
23
|
+
ai,
|
|
23
24
|
bootstrap,
|
|
24
25
|
builtin,
|
|
25
26
|
catalog,
|
|
@@ -44,6 +45,9 @@ from ..core import (
|
|
|
44
45
|
typedvalue,
|
|
45
46
|
util,
|
|
46
47
|
)
|
|
48
|
+
from ..core import (
|
|
49
|
+
compact as compactplan,
|
|
50
|
+
)
|
|
47
51
|
from ..core import output as out
|
|
48
52
|
from ..errors import BoostError
|
|
49
53
|
from ._common import _s
|
|
@@ -284,34 +288,6 @@ def cmd_clean(argv) -> int:
|
|
|
284
288
|
return 0
|
|
285
289
|
|
|
286
290
|
|
|
287
|
-
def _freight_bytes(tap_path: Path, keep_dirs: list[str]) -> int:
|
|
288
|
-
"""Bytes that would leave `tap_path`'s working tree when the cone applies.
|
|
289
|
-
|
|
290
|
-
Mirrors what `gitutil.SPARSE_PATTERNS` keeps rather than approximating it,
|
|
291
|
-
so the dry run does not promise back the provenance files or the assets of
|
|
292
|
-
an already-installed skill — both of which survive and neither of which is
|
|
293
|
-
freed.
|
|
294
|
-
"""
|
|
295
|
-
kept = tuple("%s/" % d.strip("/") for d in keep_dirs)
|
|
296
|
-
total = 0
|
|
297
|
-
for f in tap_path.rglob("*"):
|
|
298
|
-
if not f.is_file():
|
|
299
|
-
continue
|
|
300
|
-
# Relative to the tap, never absolute: every clone lives *under*
|
|
301
|
-
# ~/.boost, so testing the absolute parts for ".boost" excluded every
|
|
302
|
-
# file in every tap and reported that nothing could be freed.
|
|
303
|
-
rel = f.relative_to(tap_path)
|
|
304
|
-
if ".git" in rel.parts or ".boost" in rel.parts:
|
|
305
|
-
continue
|
|
306
|
-
if (f.suffix.lower() in (".md", ".mdc")
|
|
307
|
-
or f.name in catalog.RULE_FILENAMES):
|
|
308
|
-
continue
|
|
309
|
-
if kept and rel.as_posix().startswith(kept):
|
|
310
|
-
continue
|
|
311
|
-
total += f.stat().st_size
|
|
312
|
-
return total
|
|
313
|
-
|
|
314
|
-
|
|
315
291
|
# `boost doctor`'s wording for the same condition (quality.py), so the two
|
|
316
292
|
# commands describe one missing clone in one sentence.
|
|
317
293
|
_NOT_CLONED = "not cloned — run `boost update`"
|
|
@@ -365,20 +341,49 @@ def cmd_compact(argv) -> int:
|
|
|
365
341
|
keep.setdefault(entry.get("tap", ""), []).append(entry["source_dir"])
|
|
366
342
|
|
|
367
343
|
freed = 0
|
|
344
|
+
removed = 0 # bytes deleted before any re-download (reclone)
|
|
368
345
|
changed = 0
|
|
369
346
|
broken = 0 # cloned taps this run failed on
|
|
370
347
|
for tap in taps:
|
|
371
348
|
before = util.dir_size(tap.path)
|
|
372
349
|
if args.dry_run:
|
|
373
|
-
|
|
374
|
-
|
|
350
|
+
try:
|
|
351
|
+
plan = compactplan.plan(tap.path, keep.get(tap.name, []),
|
|
352
|
+
reclone=args.reclone)
|
|
353
|
+
except BoostError as e:
|
|
354
|
+
# A clone git cannot read fails the real run at `narrow` one
|
|
355
|
+
# step later, so the preview reports it the same way rather
|
|
356
|
+
# than answering "nothing to free" for a tap it never read.
|
|
357
|
+
broken += 1
|
|
358
|
+
rows.append({"tap": tap.name, "error": str(e)})
|
|
359
|
+
out.warn("could not predict %s: %s" % (tap.name, e),
|
|
360
|
+
stream=sys.stderr if args.json else None)
|
|
361
|
+
continue
|
|
362
|
+
# `--reclone` does real work on every tap — it refreshes the clone
|
|
363
|
+
# and can move it back onto its pin — and the live run counts each
|
|
364
|
+
# one as changed for exactly that reason. A preview that went
|
|
365
|
+
# silent for a tap with no freight would under-report the run it
|
|
366
|
+
# is previewing.
|
|
367
|
+
if plan.removes or args.reclone:
|
|
375
368
|
changed += 1
|
|
376
|
-
freed +=
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
369
|
+
freed += plan.net or 0
|
|
370
|
+
removed += plan.removes
|
|
371
|
+
rows.append({"tap": tap.name, "bytes": plan.freight,
|
|
372
|
+
"git_bytes": plan.git_bytes,
|
|
373
|
+
"reclone": plan.reclone, "before": before,
|
|
374
|
+
# None, not a number: see compactplan.Plan.net —
|
|
375
|
+
# the re-download's size is the remote's answer.
|
|
376
|
+
"after": None if plan.reclone
|
|
377
|
+
else before - plan.freight})
|
|
378
|
+
if not args.json and plan.reclone:
|
|
379
|
+
out.info("would re-clone %s — removes %s of freight and "
|
|
380
|
+
"%s of git objects, then re-downloads a blobless "
|
|
381
|
+
"clone (final size set by the remote)"
|
|
382
|
+
% (tap.name, util.human_size(plan.freight),
|
|
383
|
+
util.human_size(plan.git_bytes)), wrap=True)
|
|
384
|
+
elif not args.json:
|
|
380
385
|
out.info("would free %s from %s"
|
|
381
|
-
% (util.human_size(
|
|
386
|
+
% (util.human_size(plan.freight), tap.name))
|
|
382
387
|
continue
|
|
383
388
|
try:
|
|
384
389
|
if args.reclone:
|
|
@@ -444,10 +449,17 @@ def cmd_compact(argv) -> int:
|
|
|
444
449
|
if args.dry_run:
|
|
445
450
|
if args.json:
|
|
446
451
|
print(json.dumps({"taps": rows, "count": changed, "bytes": freed,
|
|
452
|
+
"removes": removed, "reclone": args.reclone,
|
|
447
453
|
"dry_run": True, "ok": not failed}, indent=2))
|
|
448
454
|
return rc
|
|
449
|
-
|
|
450
|
-
|
|
455
|
+
if args.reclone:
|
|
456
|
+
# Deliberately not "would be freed": under `--reclone` that number
|
|
457
|
+
# is `removed` minus a re-download boost has not made yet.
|
|
458
|
+
out.dim(" %d tap(s) would be re-cloned · %s removed first"
|
|
459
|
+
% (changed, util.human_size(removed)))
|
|
460
|
+
else:
|
|
461
|
+
out.dim(" %d tap(s) · %s would be freed"
|
|
462
|
+
% (changed, util.human_size(freed)))
|
|
451
463
|
return rc
|
|
452
464
|
journal.log("compact", "%d taps" % changed, freed=util.human_size(freed))
|
|
453
465
|
if args.json:
|
|
@@ -769,6 +781,11 @@ def cmd_policy(argv) -> int:
|
|
|
769
781
|
|
|
770
782
|
_WORKFLOW_REL = ".github/workflows/boost-skill-inventory.yml"
|
|
771
783
|
_TELEMETRY_REL = ".boost/telemetry.json"
|
|
784
|
+
# Named once: `--dry-run --pr` rehearses the branch the real run creates,
|
|
785
|
+
# and a preview naming a different branch is the defect it exists to fix.
|
|
786
|
+
_PR_BRANCH = "boost/onboard-skill-tracker"
|
|
787
|
+
# Lines of each file the preview shows before saying how many it hid.
|
|
788
|
+
_PREVIEW_LINES = 24
|
|
772
789
|
|
|
773
790
|
_WORKFLOW_YML = """\
|
|
774
791
|
# generated by `boost onboard` — publishes this repo's AI-skill inventory
|
|
@@ -797,6 +814,19 @@ jobs:
|
|
|
797
814
|
"""
|
|
798
815
|
|
|
799
816
|
|
|
817
|
+
def _onboard_unchanged(dest: Path, content: str) -> bool:
|
|
818
|
+
"""True when `dest` already holds exactly `content`; the run skips it.
|
|
819
|
+
|
|
820
|
+
Shared with the dry run so the preview and the write agree on which files
|
|
821
|
+
the run leaves alone. An unreadable file counts as different, and the
|
|
822
|
+
real run asks before it overwrites one.
|
|
823
|
+
"""
|
|
824
|
+
try:
|
|
825
|
+
return dest.read_text(encoding="utf-8") == content
|
|
826
|
+
except (OSError, UnicodeDecodeError):
|
|
827
|
+
return False
|
|
828
|
+
|
|
829
|
+
|
|
800
830
|
def _write_onboard_file(dest: Path, content: str, force: bool) -> bool:
|
|
801
831
|
"""Write one generated onboard file; confirm first if it already exists.
|
|
802
832
|
|
|
@@ -813,11 +843,7 @@ def _write_onboard_file(dest: Path, content: str, force: bool) -> bool:
|
|
|
813
843
|
dest.write_text(content, encoding="utf-8")
|
|
814
844
|
out.ok("created %s" % _tilde(dest))
|
|
815
845
|
return True
|
|
816
|
-
|
|
817
|
-
unchanged = dest.read_text(encoding="utf-8") == content
|
|
818
|
-
except (OSError, UnicodeDecodeError):
|
|
819
|
-
unchanged = False # unreadable: treat as different and ask
|
|
820
|
-
if unchanged:
|
|
846
|
+
if _onboard_unchanged(dest, content):
|
|
821
847
|
# Re-running onboard regenerates the workflow byte-for-byte. Prompting
|
|
822
848
|
# to overwrite a file with its own contents is noise, not safety.
|
|
823
849
|
out.info("unchanged %s" % _tilde(dest))
|
|
@@ -882,17 +908,12 @@ def cmd_onboard(argv) -> int:
|
|
|
882
908
|
json.dumps(lockfile.portable(lockfile.read()),
|
|
883
909
|
indent=2, sort_keys=True) + "\n"))
|
|
884
910
|
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
for line in content.splitlines()[:24]:
|
|
892
|
-
out.dim(" " + line)
|
|
893
|
-
return 0
|
|
894
|
-
|
|
895
|
-
if args.pr: # check preconditions FIRST so we never leave the repo mid-state
|
|
911
|
+
# Preconditions FIRST so a real run never leaves the repo mid-state — and
|
|
912
|
+
# *before* the dry-run return, because all three are read-only and a
|
|
913
|
+
# preview that skips them is the one shape of dry run that is worse than
|
|
914
|
+
# none: `--dry-run --pr` outside a git repository exited 0 with no plan and
|
|
915
|
+
# no failure, so the flag the user was rehearsing was never rehearsed.
|
|
916
|
+
if args.pr:
|
|
896
917
|
if not gitutil.is_repo(repo):
|
|
897
918
|
raise BoostError("%s is not a git repository" % _tilde(repo),
|
|
898
919
|
hint="--pr needs a git checkout with a GitHub remote")
|
|
@@ -903,6 +924,34 @@ def cmd_onboard(argv) -> int:
|
|
|
903
924
|
raise BoostError("the `gh` CLI is required for --pr",
|
|
904
925
|
hint="brew install gh, or rerun without --pr")
|
|
905
926
|
|
|
927
|
+
if args.dry_run:
|
|
928
|
+
changes = 0
|
|
929
|
+
for rel, content in files:
|
|
930
|
+
dest = repo / rel
|
|
931
|
+
if dest.exists() and _onboard_unchanged(dest, content):
|
|
932
|
+
out.info("unchanged %s" % _tilde(dest))
|
|
933
|
+
continue
|
|
934
|
+
changes += 1
|
|
935
|
+
out.heading("would %s %s"
|
|
936
|
+
% ("overwrite" if dest.exists() else "write",
|
|
937
|
+
_tilde(dest)))
|
|
938
|
+
shown, hidden = util.head_lines(content, _PREVIEW_LINES)
|
|
939
|
+
for line in shown:
|
|
940
|
+
out.dim(" " + line)
|
|
941
|
+
if hidden:
|
|
942
|
+
# Say the preview was cut, and by how much. Without this the
|
|
943
|
+
# lock preview stopped mid-object and read as a malformed file
|
|
944
|
+
# rather than a shortened view of a well-formed one.
|
|
945
|
+
out.dim(" … %d more line%s"
|
|
946
|
+
% (hidden, "" if hidden == 1 else "s"))
|
|
947
|
+
if not changes:
|
|
948
|
+
# The real run's answer on this state, and it opens no PR.
|
|
949
|
+
out.info("nothing to do — %s already onboarded" % _tilde(repo))
|
|
950
|
+
elif args.pr:
|
|
951
|
+
out.info("would commit them on %s and run `gh pr create --fill`"
|
|
952
|
+
% _PR_BRANCH)
|
|
953
|
+
return 0
|
|
954
|
+
|
|
906
955
|
written = [rel for rel, content in files
|
|
907
956
|
if _write_onboard_file(repo / rel, content,
|
|
908
957
|
args.force or args.yes)]
|
|
@@ -915,7 +964,7 @@ def cmd_onboard(argv) -> int:
|
|
|
915
964
|
journal.log("onboard", _tilde(repo), pr=args.pr or None)
|
|
916
965
|
|
|
917
966
|
if args.pr:
|
|
918
|
-
branch =
|
|
967
|
+
branch = _PR_BRANCH
|
|
919
968
|
gitutil.run(["-C", str(repo), "checkout", "-b", branch])
|
|
920
969
|
gitutil.run(["-C", str(repo), "add", *written])
|
|
921
970
|
gitutil.run(["-C", str(repo), "commit", "-m",
|
|
@@ -1331,12 +1380,18 @@ REGISTRY = mcp.Registry()
|
|
|
1331
1380
|
def _ranking_note(ranker: str) -> str:
|
|
1332
1381
|
"""One line naming the ranking that actually produced this order.
|
|
1333
1382
|
|
|
1334
|
-
`boost_search`'s
|
|
1335
|
-
buys — the right skill first 95% of the time against 79%
|
|
1336
|
-
AI is configured that rerank degrades to the retrieval
|
|
1337
|
-
was byte-for-byte the shape of a reranked one: same
|
|
1338
|
-
confidence, 79%. An agent acts on the top result because
|
|
1339
|
-
told it to.
|
|
1383
|
+
`boost_search`'s description once promised an LLM rerank on every machine
|
|
1384
|
+
and quoted what it buys — the right skill first 95% of the time against 79%
|
|
1385
|
+
without. When no AI is configured that rerank degrades to the retrieval
|
|
1386
|
+
order, and the reply was byte-for-byte the shape of a reranked one: same
|
|
1387
|
+
ten lines, same confidence, 79%. An agent acts on the top result because
|
|
1388
|
+
the description told it to.
|
|
1389
|
+
|
|
1390
|
+
The description is now priced per machine (`mcp.search_cost`), so on a
|
|
1391
|
+
keyless one it already says the rerank is off. This line still matters on
|
|
1392
|
+
both: it is the per-call truth, and it covers a rerank that was available
|
|
1393
|
+
at connect time and failed on this call. So it names what did not run
|
|
1394
|
+
without claiming the description promised it.
|
|
1340
1395
|
|
|
1341
1396
|
`rag.rerank` already computes the only thing that distinguishes the two
|
|
1342
1397
|
cases, and its own comment says so — "the label is the only signal about
|
|
@@ -1344,10 +1399,9 @@ def _ranking_note(ranker: str) -> str:
|
|
|
1344
1399
|
"""
|
|
1345
1400
|
if ranker == rag.LLM_RANKER:
|
|
1346
1401
|
return "\n(ranked by %s)" % ranker
|
|
1347
|
-
return ("\n(ranked by %s — the LLM rerank
|
|
1348
|
-
"
|
|
1349
|
-
"
|
|
1350
|
-
"enable it.)" % ranker)
|
|
1402
|
+
return ("\n(ranked by %s — the LLM rerank did NOT run, so this is a "
|
|
1403
|
+
"shortlist to read rather than a verdict to act on. Configure "
|
|
1404
|
+
"ANTHROPIC_API_KEY or the `claude` CLI to enable it.)" % ranker)
|
|
1351
1405
|
|
|
1352
1406
|
|
|
1353
1407
|
# The label for the pre-RAG fallback below. `_ranking_note` needs a name for
|
|
@@ -1487,8 +1541,9 @@ def _tool_read(args: dict):
|
|
|
1487
1541
|
is worth adopting had one sentence written by whoever published it, and its
|
|
1488
1542
|
only route to the actual steps was to install into the user's real
|
|
1489
1543
|
``~/.agents/skills`` and read it off disk. That inverts the surface's own
|
|
1490
|
-
pitch — ``boost_search`` spends 10-15 s of rerank so
|
|
1491
|
-
acting on, and then nothing let the agent look at
|
|
1544
|
+
pitch — where AI is configured ``boost_search`` spends 10-15 s of rerank so
|
|
1545
|
+
the top result is worth acting on, and then nothing let the agent look at
|
|
1546
|
+
it.
|
|
1492
1547
|
|
|
1493
1548
|
The body is also the only thing separating a written skill from a generated
|
|
1494
1549
|
stub, and the catalogue holds both: two ranked hits share the description
|
|
@@ -1656,8 +1711,7 @@ def _tool_discover_github(args: dict):
|
|
|
1656
1711
|
# declarations are the only boost text reliably in context at the moment an
|
|
1657
1712
|
# agent chooses a tool, so each one repeats the trigger, the cost and the
|
|
1658
1713
|
# miss protocol rather than deferring to the server instructions.
|
|
1659
|
-
|
|
1660
|
-
"boost_search",
|
|
1714
|
+
_SEARCH_PITCH = (
|
|
1661
1715
|
"Someone has probably solved this already — one call tells you. Searches "
|
|
1662
1716
|
"every skill, rule and workflow in every registry you have tapped and "
|
|
1663
1717
|
"returns ranked matches, one per line: name, a [rule] or [workflow] kind "
|
|
@@ -1689,22 +1743,40 @@ REGISTRY.register(
|
|
|
1689
1743
|
"apart. Read-only where it counts: it "
|
|
1690
1744
|
"installs nothing and touches nothing you are working on, though the first "
|
|
1691
1745
|
"search builds a local index under ~/.boost. A hit commits you to nothing "
|
|
1692
|
-
"either: take what fits, discard the rest, the task stays yours.
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
"surprise — and only a novel search pays it: repeating an identical "
|
|
1696
|
-
"search skips the LLM and answers from a local cache. "
|
|
1746
|
+
"either: take what fits, discard the rest, the task stays yours. "
|
|
1747
|
+
)
|
|
1748
|
+
_SEARCH_MISS = (
|
|
1697
1749
|
"Coming back empty is a real answer too, not a "
|
|
1698
1750
|
"wasted turn: it means build it yourself, now knowing nothing already "
|
|
1699
1751
|
"covers it — and on a machine with nothing tapped yet it says so and names "
|
|
1700
1752
|
"the one command that fixes it, rather than reporting a miss. "
|
|
1701
|
-
# The bound, verbatim from
|
|
1753
|
+
# The bound, verbatim from the server instructions: six of their seven
|
|
1702
1754
|
# load-bearing elements were already duplicated into this description and
|
|
1703
1755
|
# the seventh — the one that says when not to call — was in none of the
|
|
1704
1756
|
# seven. On a Gemini-family host the description is the only boost text
|
|
1705
1757
|
# reliably in context, so what shipped there was every persuasive element
|
|
1706
1758
|
# and none of the restraint.
|
|
1707
|
-
+ mcp.SKIP_IT
|
|
1759
|
+
+ mcp.SKIP_IT
|
|
1760
|
+
)
|
|
1761
|
+
|
|
1762
|
+
|
|
1763
|
+
def _search_description(ai_available: bool) -> str:
|
|
1764
|
+
"""boost_search's description, priced for the machine the host connected to.
|
|
1765
|
+
|
|
1766
|
+
The cost clause is ``mcp.search_cost``, the same one the server
|
|
1767
|
+
instructions carry, so the two surfaces cannot disagree about the price.
|
|
1768
|
+
Registered as a callable so ``tools/list`` renders it when a host connects
|
|
1769
|
+
(``mcp.Registry.specs``), not when this module is imported.
|
|
1770
|
+
"""
|
|
1771
|
+
return "%s%s %s" % (_SEARCH_PITCH, mcp.search_cost(ai_available),
|
|
1772
|
+
_SEARCH_MISS)
|
|
1773
|
+
|
|
1774
|
+
|
|
1775
|
+
REGISTRY.register(
|
|
1776
|
+
"boost_search",
|
|
1777
|
+
# A lambda rather than the function itself so `ai.available` is looked up
|
|
1778
|
+
# on each call — the predicate `rag.rerank` branches on.
|
|
1779
|
+
lambda: _search_description(ai.available()),
|
|
1708
1780
|
{"type": "object",
|
|
1709
1781
|
"properties": {"query": {"type": "string",
|
|
1710
1782
|
"description": "what you are trying to do, in "
|
|
@@ -1724,7 +1796,7 @@ REGISTRY.register(
|
|
|
1724
1796
|
"kind nothing here could have loaded. boost_search is what reads the "
|
|
1725
1797
|
"registries themselves. "
|
|
1726
1798
|
# The cost clause names its own mechanism. Gemini CLI never delivers
|
|
1727
|
-
# server `instructions` in interactive mode, so
|
|
1799
|
+
# server `instructions` in interactive mode, so their "boost_list
|
|
1728
1800
|
# is free, call it whenever" is absent on that host and this declaration
|
|
1729
1801
|
# is the only place left to say it. "Instant" alone is a claim about the
|
|
1730
1802
|
# clock that an agent has to take on trust; "a local file read rather
|
|
@@ -1777,8 +1849,8 @@ REGISTRY.register(
|
|
|
1777
1849
|
"holds unfilled templates and stubs that echo their own name back, and "
|
|
1778
1850
|
"those rank and render exactly like a procedure someone debugged. The body "
|
|
1779
1851
|
"is the only thing that tells them apart. Read-only and offline — it "
|
|
1780
|
-
"installs nothing, changes nothing, and
|
|
1781
|
-
"
|
|
1852
|
+
"installs nothing, changes nothing, and never reranks, so it is fast. "
|
|
1853
|
+
"Long items are truncated at a stated character "
|
|
1782
1854
|
"count and the reply says so and names the command that returns the rest; "
|
|
1783
1855
|
"a body that arrives whole is whole.",
|
|
1784
1856
|
{"type": "object",
|
|
@@ -1844,10 +1916,9 @@ REGISTRY.register(
|
|
|
1844
1916
|
"description": "max repositories to return (default 20)"}}},
|
|
1845
1917
|
_tool_discover_github)
|
|
1846
1918
|
|
|
1847
|
-
# Back-compat
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1919
|
+
# Back-compat shim: the functional tests reference this name. The `_MCP_TOOLS`
|
|
1920
|
+
# snapshot that sat beside it is gone — taken at import, it froze boost_search's
|
|
1921
|
+
# machine-dependent description under whatever state held then.
|
|
1851
1922
|
def _mcp_tool(tool: str, args: dict):
|
|
1852
1923
|
"""Run one MCP tool -> (text, is_error). (None, _) for unknown tools.
|
|
1853
1924
|
|
|
@@ -88,11 +88,16 @@ def _list(scope, host, event=None, as_json=False) -> int:
|
|
|
88
88
|
+ (" for event '%s'" % event if event else ""))
|
|
89
89
|
return 0
|
|
90
90
|
out.table(
|
|
91
|
-
[(r["
|
|
91
|
+
[(r["name"], r["host"], r["scope"], r["event"], r["matcher"] or "-",
|
|
92
92
|
r["command"]) for r in rows],
|
|
93
|
-
|
|
93
|
+
# `name` leads because a narrow pane drops columns right to left: it is
|
|
94
|
+
# what `hooks remove -n` takes, so it goes last, while `host` — the
|
|
95
|
+
# same word on every row — goes before it. Fourth, it went second.
|
|
96
|
+
headers=("name", "host", "scope", "event", "matcher", "command"),
|
|
94
97
|
# A hook's command is what the user came to read — a clipped one
|
|
95
98
|
# cannot be compared against what they registered, or copied back.
|
|
99
|
+
# Only it: protecting `name` too let the two outgrow the pane together
|
|
100
|
+
# with nothing left to drop.
|
|
96
101
|
keep=("command",))
|
|
97
102
|
return 0
|
|
98
103
|
|
|
@@ -201,11 +201,6 @@ def _skill_meta(name: str):
|
|
|
201
201
|
return frontmatter.parse(_read(p))[0]
|
|
202
202
|
|
|
203
203
|
|
|
204
|
-
def _file_count(d: Path) -> int:
|
|
205
|
-
return sum(1 for p in Path(d).rglob("*")
|
|
206
|
-
if p.is_file() and not any(part in util.IGNORED for part in p.parts))
|
|
207
|
-
|
|
208
|
-
|
|
209
204
|
def _mark(installed: bool) -> str:
|
|
210
205
|
return (out.role("✓ installed", "success") if installed
|
|
211
206
|
else out.role("✗ not installed", "danger"))
|
|
@@ -498,7 +493,12 @@ def cmd_info(argv):
|
|
|
498
493
|
score = size = files = None
|
|
499
494
|
if skill_dir:
|
|
500
495
|
score, _notes = util.score_skill(skill_dir)
|
|
501
|
-
|
|
496
|
+
# What an install will copy, not what the tap's tree occupies: links
|
|
497
|
+
# dereferenced (a skill a tap ships as links arrives as their
|
|
498
|
+
# targets) and IGNORED names skipped, one set for both numbers.
|
|
499
|
+
copied = util.copied_files(skill_dir)
|
|
500
|
+
size = sum(f.stat().st_size for f in copied)
|
|
501
|
+
files = len(copied)
|
|
502
502
|
|
|
503
503
|
if args.json:
|
|
504
504
|
print(json.dumps({
|
|
@@ -1116,12 +1116,15 @@ def cmd_heal(argv):
|
|
|
1116
1116
|
|
|
1117
1117
|
# linking_agents, matching agents.ensure_agent_dirs below: a native-store
|
|
1118
1118
|
# agent's skills dir is never written to, so it is not a missing directory.
|
|
1119
|
-
wanted = [paths.
|
|
1119
|
+
wanted = [*paths.boost_dirs(), *agents.linking_agents().values()]
|
|
1120
1120
|
missing = [d for d in wanted if not d.is_dir()]
|
|
1121
1121
|
if missing:
|
|
1122
1122
|
if dry:
|
|
1123
|
-
|
|
1124
|
-
|
|
1123
|
+
# Named, like every other repair heal previews: a bare count was
|
|
1124
|
+
# the one line that never said which paths get written — on a
|
|
1125
|
+
# fresh HOME, `~/.agents/skills` and each agent's skills dir.
|
|
1126
|
+
for d in missing:
|
|
1127
|
+
out.info("would create directory %s" % _tilde(d))
|
|
1125
1128
|
else:
|
|
1126
1129
|
paths.ensure_dirs()
|
|
1127
1130
|
agents.ensure_agent_dirs()
|
|
@@ -1159,12 +1162,13 @@ def cmd_heal(argv):
|
|
|
1159
1162
|
continue
|
|
1160
1163
|
out.info("would remove stale link %s" % _tilde(p))
|
|
1161
1164
|
actions.append("stale %s" % p)
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1165
|
+
# The branch `sync_apply` will take, worded by the same planner it
|
|
1166
|
+
# uses: this said "would restore X from its tap (or drop it from the
|
|
1167
|
+
# lock)" where the live run reinstalls, and previewed no rule or
|
|
1168
|
+
# workflow repair at all.
|
|
1169
|
+
for msg in store.sync_preview(plan):
|
|
1170
|
+
out.info(msg.replace(str(paths.home()), "~"))
|
|
1171
|
+
actions.append(msg)
|
|
1168
1172
|
else:
|
|
1169
1173
|
for msg in store.sync_apply(plan):
|
|
1170
1174
|
out.ok(msg.replace(str(paths.home()), "~"))
|