boost-skill-cli 1.2.132__tar.gz → 1.2.134__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.134}/CLAUDE.md +30 -14
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/Makefile +15 -9
- {boost_skill_cli-1.2.132/boost_skill_cli.egg-info → boost_skill_cli-1.2.134}/PKG-INFO +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/README.md +10 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/cli.py +2 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/configuration.py +153 -82
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/discovery.py +31 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/hooks.py +7 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/info.py +28 -20
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/pkg.py +184 -77
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/quality.py +36 -19
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/quickstart.py +66 -13
- boost_skill_cli-1.2.134/boost_cli/core/bootstrap.py +343 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/catalog.py +35 -7
- boost_skill_cli-1.2.134/boost_cli/core/compact.py +186 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/complete.py +47 -10
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/config.py +34 -13
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/dense.py +35 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/embed.py +42 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/gitutil.py +13 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/jsonstate.py +12 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/localembed.py +153 -7
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/lockfile.py +25 -29
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/mcp.py +94 -17
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/output.py +79 -25
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/paths.py +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/policy.py +3 -11
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/projectlock.py +3 -7
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/rag.py +44 -17
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/registry.py +13 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/shards.py +76 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/store.py +378 -78
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/util.py +56 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/data/rules/boost-first.mdc +11 -8
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134/boost_skill_cli.egg-info}/PKG-INFO +11 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_skill_cli.egg-info/SOURCES.txt +11 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/commands.html +6 -6
- boost_skill_cli-1.2.134/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/eval.html +5 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/index.html +2 -2
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/mcp-hub.html +7 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/rag-architecture.md +5 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-bundle-findings.md +37 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-changelog-findings.md +29 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +4 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-import-findings.md +3 -3
- boost_skill_cli-1.2.134/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.134}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +5 -3
- boost_skill_cli-1.2.134/docs/roadmap/items/err-colour-judged-by-stdout.md +39 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +12 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +6 -4
- boost_skill_cli-1.2.134/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +20 -0
- boost_skill_cli-1.2.134/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +28 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +3 -3
- boost_skill_cli-1.2.134/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.134}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +3 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +3 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap.html +134 -417
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_scale_corpus.py +16 -7
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_corpus.py +73 -18
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_retrieval.py +14 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/conftest.py +110 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/taps-scale.txt +1 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/taps.txt +38 -23
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_configuration.py +43 -6
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_discovery.py +80 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_hooks.py +84 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_info.py +61 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_pkg.py +667 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_quality.py +227 -2
- boost_skill_cli-1.2.134/tests/functional/test_cli_quickstart.py +889 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_tap_pins.py +50 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_taps.py +26 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_builtin.py +36 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_catalog.py +52 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_cli_update_shards.py +39 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_complete.py +128 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_config.py +74 -0
- boost_skill_cli-1.2.134/tests/unit/test_corpus_prose.py +242 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_fix_hint.py +1 -0
- boost_skill_cli-1.2.134/tests/unit/test_dense_model_unavailable.py +613 -0
- boost_skill_cli-1.2.134/tests/unit/test_dry_run_parity.py +865 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_corpus.py +286 -26
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_first_run_pointer.py +21 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_jsonstate.py +16 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_lockfile.py +44 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mcp.py +163 -35
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mcp_read.py +13 -3
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_output.py +250 -5
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_output_table_drop.py +6 -4
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_policy.py +8 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_projectlock.py +8 -0
- boost_skill_cli-1.2.134/tests/unit/test_quickstart_readiness.py +305 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rag.py +108 -1
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_registry.py +23 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_scale_corpus.py +21 -7
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_shards.py +168 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_store.py +289 -0
- boost_skill_cli-1.2.134/tests/unit/test_upstream_path.py +169 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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/tests/functional/test_cli_quickstart.py +0 -428
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.gitattributes +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.gitignore +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/.vale.ini +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/DCO +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/LICENSE +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/codecov.yml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/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.134}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/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.134}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/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.134}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/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.134}/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.134}/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.134}/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.134}/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.134}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/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.134}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/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.134}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/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.134}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/examples/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/index.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/noxfile.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/setup.cfg +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/style/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/style/boost.css +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/style/boost.js +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/style/demo.html +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_corpus_bodies.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_lighthouse_budgets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.132 → boost_skill_cli-1.2.134}/tests/visual/visual_check.mjs +0 -0
|
@@ -63,31 +63,39 @@ 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
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
checks each clone out at it — most of the corpus is one third-party repo, so an
|
|
87
|
+
unpinned list left a required check hostage to someone else's push. The size
|
|
88
|
+
and that share are stated once, in a block at the top of `taps.txt` that
|
|
89
|
+
`--relock` and `--refresh` write from the rows; the sizes and the twenty-repo
|
|
90
|
+
scores quoted above (and in the `Makefile` and `docs/eval.html`) are checked
|
|
91
|
+
against the rows and `baseline.json` by `tests/unit/test_corpus_prose.py`,
|
|
92
|
+
because the monthly refresh moves both and nothing else would notice. CI and
|
|
93
|
+
`make eval` must invoke the gate with identical arguments, not just identical
|
|
94
|
+
floors — `-k` decides what two of them measure; `tests/unit/test_eval_corpus.py`
|
|
95
|
+
parses both calls and fails the build if they diverge, which they had (CI
|
|
96
|
+
floored recall alone at 0.85 against a measured 0.863 — a buffer of 1.15
|
|
97
|
+
queries out of 91 — and applied none of the other three). Moving a pin means
|
|
98
|
+
regenerating the baseline; the file says how.
|
|
91
99
|
|
|
92
100
|
**Baselines are keyed by query set** (`name@content-digest`), so one file holds
|
|
93
101
|
both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
|
|
@@ -628,7 +636,15 @@ backend, built store) is missing — or `disabled`, a fourth state that is no
|
|
|
628
636
|
missing link at all but the `BOOST_NO_EMBED` kill switch, which sits **first**
|
|
629
637
|
in the ladder (`embed.provider()` reads it before any key, so every other
|
|
630
638
|
remedy is a measured no-op under it) and is excluded from `degraded`, so a
|
|
631
|
-
deliberate opt-out never moves doctor's exit code. `
|
|
639
|
+
deliberate opt-out never moves doctor's exit code. `model-unavailable` is the
|
|
640
|
+
**last** rung: the store matches, but the local model could not be fetched or
|
|
641
|
+
loaded. `status()` reads a record of that failure and never probes, because
|
|
642
|
+
the probe *is* the 133 MB fetch. `core/localembed.py` keeps the record in
|
|
643
|
+
memory and in `cache/models/<rev>/unavailable.json`, and holds back the next
|
|
644
|
+
attempt for an hour (`RETRY_AFTER`): measured on a 5-chunk store, each search
|
|
645
|
+
paid one failed fetch (~3.6 s against 0.1 s) while doctor said "active".
|
|
646
|
+
`boost reindex --dense` retries at once, because it is the remedy the hint
|
|
647
|
+
names. `dense.ready()` still answers for the store alone. `dense.fix_hint()` maps
|
|
632
648
|
whichever state it is to the one next action — `boost doctor`, `boost search`,
|
|
633
649
|
the MCP `SEARCH ENGINE` line and both shard surfaces (`reindex --fetch-shards`,
|
|
634
650
|
`update --shards`) all read that same table, so they can't give contradictory
|
|
@@ -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.134
|
|
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.134'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 134)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -82,7 +82,7 @@ COMMANDS = [
|
|
|
82
82
|
("preview", "info", "info", "Render a SKILL.md with rich formatting"),
|
|
83
83
|
("explain", "info", "info", "Explain what a skill does in plain English"),
|
|
84
84
|
("log", "info", "info", "Git log for a skill, or boost's activity log"),
|
|
85
|
-
("home", "info", "info", "Open
|
|
85
|
+
("home", "info", "info", "Open an item's GitHub page in the browser"),
|
|
86
86
|
("deps", "info", "info", "Show dependency & conflict relationships"),
|
|
87
87
|
("tag", "info", "info", "Custom labels for organizing skills"),
|
|
88
88
|
# Registry (Taps) (5)
|
|
@@ -113,7 +113,7 @@ COMMANDS = [
|
|
|
113
113
|
("decay", "chk", "quality", "Flag skills irrelevant to your current stack"),
|
|
114
114
|
("heal", "chk", "quality", "Self-diagnose & repair the boost environment"),
|
|
115
115
|
("conflict", "chk", "quality", "Detect contradictory rules between skills"),
|
|
116
|
-
("changelog", "chk", "quality", "Show
|
|
116
|
+
("changelog", "chk", "quality", "Show an item's upstream change history"),
|
|
117
117
|
("attest", "chk", "safety", "Display/verify the install record for skills"),
|
|
118
118
|
("health", "chk", "quality", "Dashboard of skill-environment health"),
|
|
119
119
|
("trust", "chk", "quality", "Manage signing keys & verify tap provenance"),
|
|
@@ -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
|
|
|
@@ -473,7 +473,7 @@ def _fetch_shards(args) -> int:
|
|
|
473
473
|
why = shards.incompatible(manifest)
|
|
474
474
|
if why:
|
|
475
475
|
raise BoostError("published shards cannot serve this machine — %s" % why,
|
|
476
|
-
hint=
|
|
476
|
+
hint=shards.remedy(manifest))
|
|
477
477
|
commits = rag._tap_commits()
|
|
478
478
|
stored = dense.tap_commits()
|
|
479
479
|
by_name = {t.name: commits.get(t.safe_name, "") for t in registry.list_taps()}
|
|
@@ -620,12 +620,28 @@ def cmd_reindex(argv):
|
|
|
620
620
|
wrap=True)
|
|
621
621
|
else:
|
|
622
622
|
failed = dense_stats.get("failed") or []
|
|
623
|
+
model_error = dense_stats.get("model_error")
|
|
624
|
+
if model_error:
|
|
625
|
+
# Before the per-tap line, and instead of its guess at a
|
|
626
|
+
# cause: "rate limit, quota" describes an API provider, and
|
|
627
|
+
# sent a local-model user looking for an account they lack.
|
|
628
|
+
# A load failure is not a network problem, so it is not told
|
|
629
|
+
# to find a better network.
|
|
630
|
+
tail = ("" if model_error.get("stage") == "load" else
|
|
631
|
+
"; rerun `boost reindex --dense` on a network that "
|
|
632
|
+
"reaches huggingface.co")
|
|
633
|
+
out.warn("%s — searches use BM25 until it works%s"
|
|
634
|
+
% (embed.local_failure_text(model_error), tail),
|
|
635
|
+
wrap=True)
|
|
623
636
|
if failed:
|
|
624
|
-
|
|
637
|
+
cause = ("The local model could not be used"
|
|
638
|
+
if model_error else
|
|
625
639
|
"The provider rejected those batches (rate limit, "
|
|
626
|
-
"quota, or oversized input)
|
|
627
|
-
|
|
628
|
-
%
|
|
640
|
+
"quota, or oversized input)")
|
|
641
|
+
out.warn("embedding failed for %d tap(s) — %d passages stored. "
|
|
642
|
+
"%s; their commits were not recorded, so a rerun "
|
|
643
|
+
"retries them." % (len(failed), dense_stats["chunks"],
|
|
644
|
+
cause))
|
|
629
645
|
elif not dense_stats["chunks"]:
|
|
630
646
|
# Reporting success with an empty store sent a real user chasing
|
|
631
647
|
# the wrong cause: a stale run can mark every tap "built", so the
|
|
@@ -729,11 +745,21 @@ def _reindex_dense(force, spinner=None):
|
|
|
729
745
|
# free — they re-encode and re-key what is already on disk — so a user gets
|
|
730
746
|
# the disk back without having to know either word.
|
|
731
747
|
collapsed = dense.deduplicate()
|
|
748
|
+
# This command is the remedy `dense.fix_hint` names for a local model that
|
|
749
|
+
# could not be fetched, so it must actually try: searches hold a retry
|
|
750
|
+
# back for an hour after a failure, and a build whose taps are all reused
|
|
751
|
+
# embeds nothing and would otherwise never touch the model at all.
|
|
752
|
+
embed.retry_local()
|
|
732
753
|
stats = dense.build(force=force, on_progress=_embed_progress(spinner))
|
|
733
754
|
if migrated and isinstance(stats, dict):
|
|
734
755
|
stats = stats | {"quantized": migrated["chunks"]}
|
|
735
756
|
if collapsed and isinstance(stats, dict) and collapsed["freed"]:
|
|
736
757
|
stats = stats | {"deduplicated": collapsed["freed"]}
|
|
758
|
+
# Read after the build, not from the retry: a first build on a machine
|
|
759
|
+
# that cannot fetch the model has nothing to retry and fails inside it.
|
|
760
|
+
failure = embed.local_failure() if embed.provider() == "local" else None
|
|
761
|
+
if failure and isinstance(stats, dict):
|
|
762
|
+
stats = stats | {"model_error": failure}
|
|
737
763
|
return stats
|
|
738
764
|
|
|
739
765
|
|