boost-skill-cli 1.2.131__tar.gz → 1.2.132__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.131 → boost_skill_cli-1.2.132}/.lighthouserc.json +1 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CLAUDE.md +28 -6
- {boost_skill_cli-1.2.131/boost_skill_cli.egg-info → boost_skill_cli-1.2.132}/PKG-INFO +4 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/README.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/cli.py +31 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/configuration.py +23 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/discovery.py +14 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/info.py +12 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/pkg.py +16 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/quality.py +95 -9
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/quickstart.py +32 -6
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/taps.py +39 -6
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/catalog.py +30 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/config.py +55 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/dense.py +30 -5
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcp.py +13 -2
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/output.py +154 -10
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/rag.py +36 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/registry.py +38 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/store.py +30 -6
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132/boost_skill_cli.egg-info}/PKG-INFO +4 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/SOURCES.txt +8 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/commands.html +4 -3
- boost_skill_cli-1.2.132/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/index.html +4 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +3 -3
- boost_skill_cli-1.2.132/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +32 -0
- boost_skill_cli-1.2.132/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +22 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +4 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/explain-outline-has-no-cap.md +3 -3
- boost_skill_cli-1.2.132/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +20 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +5 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +3 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +3 -3
- boost_skill_cli-1.2.132/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +40 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap.html +126 -738
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/ensure_eval_corpus.sh +28 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_corpus.py +41 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_retrieval.py +121 -3
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_tools.py +174 -23
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_discovery.py +67 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_hooks.py +20 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_info.py +68 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_quality.py +162 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_quickstart.py +59 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/smoke.sh +19 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalog.py +84 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_config.py +32 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_fix_hint.py +43 -2
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_status.py +92 -4
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_corpus.py +215 -5
- boost_skill_cli-1.2.132/tests/unit/test_eval_corpus_bodies.py +499 -0
- boost_skill_cli-1.2.132/tests/unit/test_eval_tools.py +738 -0
- boost_skill_cli-1.2.132/tests/unit/test_first_run_pointer.py +274 -0
- boost_skill_cli-1.2.132/tests/unit/test_lighthouse_budgets.py +109 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_marketing_counts.py +159 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp.py +39 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_output.py +129 -5
- boost_skill_cli-1.2.132/tests/unit/test_output_table_drop.py +396 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag.py +64 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_roadmap_fresh.py +31 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_spdx_headers.py +25 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_store.py +32 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_store_materialize.py +93 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_tap_pins.py +33 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/a11y_check.mjs +4 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/package-lock.json +8 -8
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/package.json +1 -1
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/visual_check.mjs +5 -0
- boost_skill_cli-1.2.131/docs/demo.gif +0 -0
- boost_skill_cli-1.2.131/tests/unit/test_eval_tools.py +0 -378
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitattributes +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitignore +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/.vale.ini +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/DCO +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/LICENSE +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/Makefile +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/jsonstate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/codecov.yml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/README.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/README.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/index.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/noxfile.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/setup.cfg +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/README.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/boost.css +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/boost.js +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/style/demo.html +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_jsonstate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.131 → boost_skill_cli-1.2.132}/tests/visual/console_check.mjs +0 -0
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"matchingUrlPattern": "roadmap\\.html$",
|
|
29
29
|
"aggregationMethod": "median-run",
|
|
30
30
|
"assertions": {
|
|
31
|
-
"categories:performance": ["error", { "minScore": 0.
|
|
31
|
+
"categories:performance": ["error", { "minScore": 0.75 }],
|
|
32
32
|
"categories:accessibility": ["error", { "minScore": 0.95 }],
|
|
33
33
|
"categories:best-practices": ["error", { "minScore": 0.9 }],
|
|
34
34
|
"categories:seo": ["error", { "minScore": 0.95 }]
|
|
@@ -116,7 +116,20 @@ opt-in evals stay out of `check` and all degrade cleanly:
|
|
|
116
116
|
avoid. Rates carry a Wilson interval over N runs and floors are judged
|
|
117
117
|
against the bound, not the point estimate: at 3/3 the normal approximation
|
|
118
118
|
claims [1.00, 1.00] and would let a wording regression hide behind one lucky
|
|
119
|
-
run.
|
|
119
|
+
run. A bound judged that way needs **enough N to be reachable**, and the
|
|
120
|
+
ceiling half is where that bites: at k=0 the Wilson upper bound is
|
|
121
|
+
z²/(n+z²), a function of N alone, so at the old `--runs 1` default a
|
|
122
|
+
flawless host was told it FAILED (0.3244 against a 0.20 ceiling, which no
|
|
123
|
+
sample below n=16 can clear). `--runs` defaults to 3, `min_n_for_ceiling` computes the
|
|
124
|
+
minimum for any ceiling, and a sample below it reports INCONCLUSIVE with its
|
|
125
|
+
own exit code (2) rather than a red that says nothing about the host —
|
|
126
|
+
unless its Wilson *lower* bound is already over the ceiling. Too small to
|
|
127
|
+
pass is not too small to fail: a conclusive red below the minimum is still a
|
|
128
|
+
red (exit 1), and a no-call half with no observations at all is
|
|
129
|
+
INCONCLUSIVE, never a pass. The
|
|
130
|
+
ceiling is 0.25 so one slip in 24 passes and two do not — a zero-tolerance
|
|
131
|
+
half beside a floor that absorbs four misses is not the same measurement
|
|
132
|
+
twice. Drives a real host, so it is opt-in, out of `check`, and degrades
|
|
120
133
|
cleanly when `claude` is not on `PATH`.
|
|
121
134
|
|
|
122
135
|
The `[eval]` extra (`pip install -e '.[eval]'`) carries `ranx` + `ragas`; nothing
|
|
@@ -295,8 +308,11 @@ line coverage. Target `boost_cli/core` behavior with assertions, not just import
|
|
|
295
308
|
`noxfile.py` opens with `# Copyright the boost contributors.` and
|
|
296
309
|
`# SPDX-License-Identifier: Apache-2.0`. Run
|
|
297
310
|
`python3 scripts/add_spdx_headers.py` (idempotent) — the file list and the
|
|
298
|
-
expression live there, so changing the licence
|
|
299
|
-
than hundreds
|
|
311
|
+
expression live there (`SPDX_ID`), so changing the licence is one edit
|
|
312
|
+
rather than hundreds, and `tests/unit/test_spdx_headers.py` pins this
|
|
313
|
+
paragraph to that constant: #587 moved the tree off `GPL-3.0-only` and left
|
|
314
|
+
this sentence naming the old expression for every agent that read it since.
|
|
315
|
+
Separately, `prose-lint.yml` names the Markdown files vale checks
|
|
300
316
|
**explicitly**: a new doc that is not added to that list is never linted, and
|
|
301
317
|
`make lint` will not tell you.
|
|
302
318
|
|
|
@@ -608,9 +624,15 @@ upgrade rather than the entry fee. When both engines are built, `retrieve_any`
|
|
|
608
624
|
fuses them with reciprocal rank fusion (`rag.rrf_fuse`, `RRF_K = 60`) and
|
|
609
625
|
reports `hybrid RRF`; it degrades to whichever single engine is ready, and to
|
|
610
626
|
BM25 alone otherwise. `dense.status()` names which of the three links (extra,
|
|
611
|
-
backend, built store) is missing
|
|
612
|
-
|
|
613
|
-
|
|
627
|
+
backend, built store) is missing — or `disabled`, a fourth state that is no
|
|
628
|
+
missing link at all but the `BOOST_NO_EMBED` kill switch, which sits **first**
|
|
629
|
+
in the ladder (`embed.provider()` reads it before any key, so every other
|
|
630
|
+
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. `dense.fix_hint()` maps
|
|
632
|
+
whichever state it is to the one next action — `boost doctor`, `boost search`,
|
|
633
|
+
the MCP `SEARCH ENGINE` line and both shard surfaces (`reindex --fetch-shards`,
|
|
634
|
+
`update --shards`) all read that same table, so they can't give contradictory
|
|
635
|
+
advice.
|
|
614
636
|
|
|
615
637
|
**The dense store ranks twice, and `vec0` is why.** `sqlite-vec` has no ANN
|
|
616
638
|
index: a float32 `MATCH` scores *every* vector in the store, which on a real
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boost-skill-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.132
|
|
4
4
|
Summary: boost — Homebrew for AI coding skills
|
|
5
5
|
Author: Jonathan Reyes
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -62,9 +62,9 @@ Antigravity CLI (`agy`) is wired up the same way: skills link into
|
|
|
62
62
|
|
|
63
63
|
```bash
|
|
64
64
|
pipx install boost-skill-cli
|
|
65
|
-
boost quickstart
|
|
66
|
-
boost search tdd
|
|
67
|
-
boost install
|
|
65
|
+
boost quickstart # taps the 7 starter registries, builds the index
|
|
66
|
+
boost search tdd # ranked by full-content BM25
|
|
67
|
+
boost install test-driven-development # → every agent, version-pinned, one lock file
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
(No `pipx` yet? macOS ships neither it nor a new enough Python — run the
|
|
@@ -20,9 +20,9 @@ Antigravity CLI (`agy`) is wired up the same way: skills link into
|
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
22
|
pipx install boost-skill-cli
|
|
23
|
-
boost quickstart
|
|
24
|
-
boost search tdd
|
|
25
|
-
boost install
|
|
23
|
+
boost quickstart # taps the 7 starter registries, builds the index
|
|
24
|
+
boost search tdd # ranked by full-content BM25
|
|
25
|
+
boost install test-driven-development # → every agent, version-pinned, one lock file
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
(No `pipx` yet? macOS ships neither it nor a new enough Python — run the
|
|
@@ -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.132'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 132)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -118,7 +118,7 @@ COMMANDS = [
|
|
|
118
118
|
("health", "chk", "quality", "Dashboard of skill-environment health"),
|
|
119
119
|
("trust", "chk", "quality", "Manage signing keys & verify tap provenance"),
|
|
120
120
|
# Configuration (13)
|
|
121
|
-
("quickstart", "cfg", "quickstart", "Tap the starter registries and
|
|
121
|
+
("quickstart", "cfg", "quickstart", "Tap the starter registries and index them for search"),
|
|
122
122
|
("config", "cfg", "configuration", "Display or modify boost configuration"),
|
|
123
123
|
("clean", "cfg", "configuration", "Clear stale caches & broken symlinks"),
|
|
124
124
|
("compact", "cfg", "configuration", "Shrink tap clones to the files boost indexes"),
|
|
@@ -199,6 +199,7 @@ def print_help() -> None:
|
|
|
199
199
|
print(out.c(
|
|
200
200
|
"Options: -V/--version -v/--verbose --debug -q/--quiet",
|
|
201
201
|
out.DIM))
|
|
202
|
+
_print_first_run_line(cols)
|
|
202
203
|
|
|
203
204
|
width = max(len(n) for n, _, _, _ in COMMANDS)
|
|
204
205
|
for idx, (gkey, (_icon, title, desc)) in enumerate(GROUPS.items()):
|
|
@@ -223,6 +224,35 @@ def print_help() -> None:
|
|
|
223
224
|
print(out.c("%d commands · %d groups" % (len(COMMANDS), len(GROUPS)), out.DIM))
|
|
224
225
|
|
|
225
226
|
|
|
227
|
+
def _print_first_run_line(cols: int) -> None:
|
|
228
|
+
"""Name where setup lives, but only on a machine that has none.
|
|
229
|
+
|
|
230
|
+
This screen read no state at all, so it was byte-for-byte identical on a
|
|
231
|
+
virgin machine and a working one, and a newcomer met 81 commands with
|
|
232
|
+
`quickstart` sitting at line 80, in the same dim body type as the other 80.
|
|
233
|
+
The pointer is one line, it appears only while `config.first_run()` holds,
|
|
234
|
+
and it disappears the moment there is a tap: a permanent banner would be
|
|
235
|
+
noise for every user past their first minute, which is the reason there
|
|
236
|
+
wasn't one.
|
|
237
|
+
|
|
238
|
+
Asked of `config`, which help has already loaded for its log level, so the
|
|
239
|
+
question costs `boost --help` no module it was not importing anyway. Any
|
|
240
|
+
failure is swallowed — a broken config must cost the user a hint, never
|
|
241
|
+
their help screen.
|
|
242
|
+
"""
|
|
243
|
+
with contextlib.suppress(Exception):
|
|
244
|
+
from .core import config
|
|
245
|
+
if not config.first_run():
|
|
246
|
+
return
|
|
247
|
+
print()
|
|
248
|
+
# Wrap, then colour: `out.role` brackets its argument with a start code
|
|
249
|
+
# and a reset, so colouring first and splitting after leaves line one
|
|
250
|
+
# unterminated. The backtick span stays one atomic token, because a
|
|
251
|
+
# `boost quickstart` folded across two lines is not copy-pasteable.
|
|
252
|
+
for line in out.wrap(config.FIRST_RUN_HINT, max(cols, 20)):
|
|
253
|
+
print(out.role(line, "muted"))
|
|
254
|
+
|
|
255
|
+
|
|
226
256
|
def print_command_help(name: str) -> int:
|
|
227
257
|
# `main`'s own aliases (-h/--help, -V/--version/version, help itself)
|
|
228
258
|
# never appear in COMMANDS, so `boost help --help` used to fall straight
|
|
@@ -1538,6 +1538,10 @@ def _tool_install(args: dict):
|
|
|
1538
1538
|
lines.append("quality score: %d/100" % res.score)
|
|
1539
1539
|
if res.conflicts:
|
|
1540
1540
|
lines.append("conflicts (left in place): %s" % ", ".join(res.conflicts))
|
|
1541
|
+
if res.unwritable:
|
|
1542
|
+
lines.append("not linked, directory not writable: %s — ask the user to "
|
|
1543
|
+
"`chmod u+w` it, then `boost sync`"
|
|
1544
|
+
% ", ".join(res.unwritable))
|
|
1541
1545
|
# The same prompt-injection and secret scan `boost install` runs. This path
|
|
1542
1546
|
# needs it more, not less: nobody is watching a terminal here, and the skill
|
|
1543
1547
|
# was chosen and installed by an agent acting on its own. The install still
|
|
@@ -1591,7 +1595,16 @@ def _tool_doctor(args: dict):
|
|
|
1591
1595
|
# Additive, deliberately: an untapped machine can ALSO have a broken
|
|
1592
1596
|
# materialization, and folding the two into one branch would hide the
|
|
1593
1597
|
# issue count behind the setup note.
|
|
1594
|
-
|
|
1598
|
+
# With config.json unreadable the tap list reads as DEFAULTS' empty one,
|
|
1599
|
+
# and the note below would send the agent to re-tap the defaults over the
|
|
1600
|
+
# user's real list — the fix CLI `boost doctor` now names instead.
|
|
1601
|
+
cfg_err = config.check()
|
|
1602
|
+
if cfg_err:
|
|
1603
|
+
total += 1
|
|
1604
|
+
lines.append("%s — boost is running on defaults, so the user's taps are "
|
|
1605
|
+
"not listed; ask the user to repair the file or re-add "
|
|
1606
|
+
"their taps (run `boost doctor` for details)" % cfg_err)
|
|
1607
|
+
elif not taps:
|
|
1595
1608
|
# Same command, same order, as mcp.no_results: an agent that calls
|
|
1596
1609
|
# both tools in one session must not see the recommendation flipped
|
|
1597
1610
|
# and read it as two different fixes. `boost tap --defaults` leads
|
|
@@ -1603,7 +1616,7 @@ def _tool_doctor(args: dict):
|
|
|
1603
1616
|
if total == 0:
|
|
1604
1617
|
if taps:
|
|
1605
1618
|
lines.append("healthy — no issues found")
|
|
1606
|
-
elif mat_issues:
|
|
1619
|
+
elif mat_issues or cfg_err:
|
|
1607
1620
|
lines.append("%d issue(s) — run `boost doctor` for details" % total)
|
|
1608
1621
|
else:
|
|
1609
1622
|
lines.append("%d issue(s) — run `boost sync` to fix" % issues)
|
|
@@ -1684,7 +1697,14 @@ REGISTRY.register(
|
|
|
1684
1697
|
"Coming back empty is a real answer too, not a "
|
|
1685
1698
|
"wasted turn: it means build it yourself, now knowing nothing already "
|
|
1686
1699
|
"covers it — and on a machine with nothing tapped yet it says so and names "
|
|
1687
|
-
"the one command that fixes it, rather than reporting a miss."
|
|
1700
|
+
"the one command that fixes it, rather than reporting a miss. "
|
|
1701
|
+
# The bound, verbatim from `mcp.INSTRUCTIONS`: six of its seven
|
|
1702
|
+
# load-bearing elements were already duplicated into this description and
|
|
1703
|
+
# the seventh — the one that says when not to call — was in none of the
|
|
1704
|
+
# seven. On a Gemini-family host the description is the only boost text
|
|
1705
|
+
# reliably in context, so what shipped there was every persuasive element
|
|
1706
|
+
# and none of the restraint.
|
|
1707
|
+
+ mcp.SKIP_IT,
|
|
1688
1708
|
{"type": "object",
|
|
1689
1709
|
"properties": {"query": {"type": "string",
|
|
1690
1710
|
"description": "what you are trying to do, in "
|
|
@@ -233,18 +233,25 @@ def cmd_search(argv):
|
|
|
233
233
|
installed: set[str] = set()
|
|
234
234
|
with contextlib.suppress(Exception):
|
|
235
235
|
installed = set(store.installed())
|
|
236
|
-
|
|
236
|
+
# The meter reads across the whole shown page, so its fractions are one
|
|
237
|
+
# screen-wide decision rather than a per-row division — see
|
|
238
|
+
# out.relevance_fractions for why the top score alone cannot say it.
|
|
239
|
+
fracs = out.relevance_fractions([s for _e, s in shown])
|
|
237
240
|
# One column plan for the whole screen (name, kind, tap, description with
|
|
238
241
|
# a stated drop order), one assembler per row — both pure and unit-tested
|
|
239
242
|
# in core.output, so this loop only feeds and prints.
|
|
240
|
-
|
|
243
|
+
# Against the *pane*: a pipe has none, and planning for `term_width()`'s
|
|
244
|
+
# assumed 80 dropped the TAP column (it needs 84), so `boost search x |
|
|
245
|
+
# grep owner/repo` found nothing the same search shows on a wide pane.
|
|
246
|
+
# No pane (None) plans nothing to fit — see `search_layout`.
|
|
247
|
+
lay = out.search_layout(out.pane_width(),
|
|
241
248
|
[e["name"] for e, _ in shown],
|
|
242
249
|
[str(e.get("kind") or "skill") for e, _ in shown],
|
|
243
250
|
[str(e.get("tap") or "") for e, _ in shown])
|
|
244
|
-
for e,
|
|
251
|
+
for (e, _sc), frac in zip(shown, fracs, strict=True):
|
|
245
252
|
out.info(out.format_search_row(
|
|
246
253
|
e["name"], e.get("description") or "",
|
|
247
|
-
str(e.get("kind") or "skill"), str(e.get("tap") or ""),
|
|
254
|
+
str(e.get("kind") or "skill"), str(e.get("tap") or ""), frac,
|
|
248
255
|
curated=bool(e.get("curated")),
|
|
249
256
|
installed=e["name"] in installed, lay=lay))
|
|
250
257
|
if hit_cap:
|
|
@@ -1983,6 +1990,9 @@ def cmd_browse(argv):
|
|
|
1983
1990
|
+ ", ".join(agents.display_name(a) for a in res.linked))
|
|
1984
1991
|
for conflict in res.conflicts:
|
|
1985
1992
|
out.warn("conflict: %s exists and is not a symlink" % _tilde(conflict))
|
|
1993
|
+
for adir in res.unwritable:
|
|
1994
|
+
out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
|
|
1995
|
+
"`boost sync`" % (_tilde(adir), _tilde(adir)))
|
|
1986
1996
|
return 0
|
|
1987
1997
|
|
|
1988
1998
|
|
|
@@ -769,6 +769,13 @@ def cmd_preview(argv):
|
|
|
769
769
|
_FAITHFULNESS_MIN_KEY = "ai.explain_faithfulness_min"
|
|
770
770
|
_FAITHFULNESS_DEFAULT = 0.5
|
|
771
771
|
|
|
772
|
+
# The heuristic explain's outline is a summary, not a reprint of the file.
|
|
773
|
+
# Uncapped it printed 521 lines for one catalog entry, while "Key rules:" in
|
|
774
|
+
# the same function stopped at 12. 25 is the line the audit measured against:
|
|
775
|
+
# the median entry (16 headings) prints unchanged, and the ~28% over it get a
|
|
776
|
+
# counted "… and N more headings" instead of a wall.
|
|
777
|
+
_OUTLINE_CAP = 25
|
|
778
|
+
|
|
772
779
|
|
|
773
780
|
def _faithfulness_threshold() -> float:
|
|
774
781
|
"""The minimum faithfulness score an AI explanation must clear (config-tunable).
|
|
@@ -841,8 +848,12 @@ def cmd_explain(argv):
|
|
|
841
848
|
if headings:
|
|
842
849
|
print()
|
|
843
850
|
out.info(out.c("Outline:", out.BOLD))
|
|
844
|
-
for hashes, title in headings:
|
|
851
|
+
for hashes, title in headings[:_OUTLINE_CAP]:
|
|
845
852
|
out.info(" " * len(hashes) + title)
|
|
853
|
+
if len(headings) > _OUTLINE_CAP:
|
|
854
|
+
more = len(headings) - _OUTLINE_CAP
|
|
855
|
+
out.info(out.role(" … and %d more heading%s"
|
|
856
|
+
% (more, "" if more == 1 else "s"), "muted"))
|
|
846
857
|
rules, seen = [], set()
|
|
847
858
|
for line in body.splitlines():
|
|
848
859
|
stripped = re.sub(r"^\s*(?:[-*]|\d+\.)\s+", "", line).strip()
|
|
@@ -260,12 +260,23 @@ def _report_result(res: store.InstallResult, no_mcp: bool = False) -> None:
|
|
|
260
260
|
% " · ".join(agents.display_name(a) for a in res.native))
|
|
261
261
|
for path in res.conflicts:
|
|
262
262
|
out.warn("not linked: %s exists and is not managed by boost" % _tilde(path))
|
|
263
|
+
_warn_unwritable(res)
|
|
263
264
|
out.ok("lock updated (.skill-lock.json)")
|
|
264
265
|
_warn_injection(res)
|
|
265
266
|
_warn_secrets(res)
|
|
266
267
|
_offer_mcp(res, no_mcp=no_mcp)
|
|
267
268
|
|
|
268
269
|
|
|
270
|
+
def _warn_unwritable(res) -> None:
|
|
271
|
+
"""Name the remedy for each agent skills dir an install could not link
|
|
272
|
+
into — every path that installs, reinstall and update included, so none
|
|
273
|
+
reports success over a link it silently skipped."""
|
|
274
|
+
for adir in res.unwritable:
|
|
275
|
+
out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
|
|
276
|
+
"`boost sync` adds the link" % (_tilde(adir), _tilde(adir)),
|
|
277
|
+
wrap=True)
|
|
278
|
+
|
|
279
|
+
|
|
269
280
|
def _boostfile_text(skills: dict[str, dict], via: str = "boost bundle dump") -> str:
|
|
270
281
|
"""Render lock entries as a Boostfile (taps first, then sorted skills)."""
|
|
271
282
|
lines = ["# Boostfile — generated by %s" % via]
|
|
@@ -1159,7 +1170,7 @@ def cmd_update(argv: list[str]) -> int:
|
|
|
1159
1170
|
"--yes` to apply" % name)
|
|
1160
1171
|
continue
|
|
1161
1172
|
try:
|
|
1162
|
-
store.install(entry, force=True)
|
|
1173
|
+
_warn_unwritable(store.install(entry, force=True))
|
|
1163
1174
|
except BoostError as err:
|
|
1164
1175
|
out.warn("%s: %s" % (name, err.message))
|
|
1165
1176
|
continue
|
|
@@ -1245,8 +1256,9 @@ def cmd_reinstall(argv: list[str]) -> int:
|
|
|
1245
1256
|
if warning:
|
|
1246
1257
|
out.warn(warning)
|
|
1247
1258
|
try:
|
|
1248
|
-
store.install(
|
|
1249
|
-
|
|
1259
|
+
_warn_unwritable(store.install(
|
|
1260
|
+
entry, force=True,
|
|
1261
|
+
scope=lk.get("scope", "user"), base=lk.get("base")))
|
|
1250
1262
|
except BoostError as err:
|
|
1251
1263
|
out.warn("%s: %s" % (name, err.message))
|
|
1252
1264
|
failed += 1
|
|
@@ -1288,7 +1300,7 @@ def cmd_reinstall(argv: list[str]) -> int:
|
|
|
1288
1300
|
if warning:
|
|
1289
1301
|
out.warn(warning)
|
|
1290
1302
|
try:
|
|
1291
|
-
store.install(entry, force=True)
|
|
1303
|
+
_warn_unwritable(store.install(entry, force=True))
|
|
1292
1304
|
except BoostError as err:
|
|
1293
1305
|
out.warn("%s: %s" % (name, err.message))
|
|
1294
1306
|
failed += 1
|
|
@@ -27,6 +27,7 @@ from ..core import (
|
|
|
27
27
|
catalog,
|
|
28
28
|
claude_settings,
|
|
29
29
|
complete,
|
|
30
|
+
config,
|
|
30
31
|
frontmatter,
|
|
31
32
|
gitutil,
|
|
32
33
|
imperative,
|
|
@@ -412,6 +413,20 @@ def cmd_doctor(argv):
|
|
|
412
413
|
bad("git", "git not found on PATH — install git")
|
|
413
414
|
paths.ensure_dirs() # create silently; never a failure
|
|
414
415
|
|
|
416
|
+
# A corrupt config.json reads as DEFAULTS, so the tap list below comes
|
|
417
|
+
# back empty and the verdict used to be "ready to set up", exit 0, on a
|
|
418
|
+
# machine whose clones were all still on disk. Say what was lost instead.
|
|
419
|
+
cfg_err = config.check()
|
|
420
|
+
if cfg_err:
|
|
421
|
+
clones = config.unlisted_clones()
|
|
422
|
+
bad("config", "%s — boost is running on defaults, so %s. Repair the "
|
|
423
|
+
"file, or re-add your taps; the next write moves the bad file "
|
|
424
|
+
"to config.json.corrupt" % (cfg_err, (
|
|
425
|
+
"the %d tap clone%s on disk %s not listed" % (
|
|
426
|
+
len(clones), _s(len(clones)),
|
|
427
|
+
"is" if len(clones) == 1 else "are"))
|
|
428
|
+
if clones else "no taps or settings are read"), wrap=True)
|
|
429
|
+
|
|
415
430
|
taps = registry.list_taps()
|
|
416
431
|
tap_ok = 0
|
|
417
432
|
for tap in taps:
|
|
@@ -422,9 +437,21 @@ def cmd_doctor(argv):
|
|
|
422
437
|
% (tap.name, tap.name))
|
|
423
438
|
else:
|
|
424
439
|
tap_ok += 1
|
|
440
|
+
# A cache dir boost cannot write leaves every command rescanning its taps
|
|
441
|
+
# and warning that it could not keep the result (catalog.rebuild_tap), so
|
|
442
|
+
# "cloned & cached" below would be the one line on the screen claiming
|
|
443
|
+
# otherwise.
|
|
444
|
+
cache_writable = (not paths.cache_dir().is_dir()
|
|
445
|
+
or os.access(paths.cache_dir(), os.W_OK))
|
|
446
|
+
if taps and not cache_writable:
|
|
447
|
+
bad("cache", "%s is not writable — every command rescans its taps and "
|
|
448
|
+
"cannot keep the result; make it writable"
|
|
449
|
+
% _tilde(paths.cache_dir()), wrap=True)
|
|
425
450
|
if taps and tap_ok == len(taps):
|
|
426
|
-
rep.ok("taps", "%d tap%s cloned
|
|
427
|
-
|
|
451
|
+
rep.ok("taps", "%d tap%s cloned%s" % (len(taps), _s(len(taps)),
|
|
452
|
+
" & cached" if cache_writable
|
|
453
|
+
else ""))
|
|
454
|
+
elif not taps and not cfg_err:
|
|
428
455
|
# `boost tap --defaults` leads, and it is the same command in the same
|
|
429
456
|
# order that `boost search`'s error, `mcp.no_results` and the MCP
|
|
430
457
|
# `boost_doctor` tool all name. A user who hits two of these surfaces
|
|
@@ -660,9 +687,16 @@ def cmd_doctor(argv):
|
|
|
660
687
|
% (dup.name, agents.display_name(dup.agent), _tilde(dup.path),
|
|
661
688
|
_tilde(dup.target)), wrap=True)
|
|
662
689
|
|
|
663
|
-
|
|
690
|
+
# Linking agents only: a native-store agent's skills dir (Gemini's) is
|
|
691
|
+
# never written, so its permissions are not boost's problem and `boost
|
|
692
|
+
# sync` could not act on them.
|
|
693
|
+
for adir in agents.linking_agents().values():
|
|
664
694
|
if adir.is_dir() and not os.access(str(adir), os.W_OK):
|
|
665
|
-
|
|
695
|
+
# A next action, like the log line below it: without one this was
|
|
696
|
+
# the only issue doctor names that nothing can act on.
|
|
697
|
+
bad("agent-dir", "agent dir %s is not writable — `chmod u+w %s`, "
|
|
698
|
+
"then `boost sync` relinks what it missed"
|
|
699
|
+
% (_tilde(adir), _tilde(adir)), wrap=True)
|
|
666
700
|
|
|
667
701
|
rotation = journal.rotation_healthy()
|
|
668
702
|
if not rotation:
|
|
@@ -798,6 +832,27 @@ def _report_search_engine(rep) -> None:
|
|
|
798
832
|
hint=fix, wrap=True)
|
|
799
833
|
return
|
|
800
834
|
|
|
835
|
+
if st["reason"] == "disabled":
|
|
836
|
+
# A deliberate opt-out, not a fault, so it stays a note and doctor
|
|
837
|
+
# stays green: BOOST_NO_EMBED is documented as the hard kill switch,
|
|
838
|
+
# and the CI job that sets it is the one caller that most needs a
|
|
839
|
+
# zero exit code. Say the vectors are still there, because the user
|
|
840
|
+
# who turned it off is the user deciding whether to turn it back on.
|
|
841
|
+
held = ""
|
|
842
|
+
if st["store_exists"] and st["chunks"]:
|
|
843
|
+
# "still on disk", not "intact": the switch shadows every rung
|
|
844
|
+
# below it, so a store that is *also* stale (version/model/dim
|
|
845
|
+
# changed) reaches this line too, and unsetting the switch would
|
|
846
|
+
# turn it red rather than green. Say what is measured — the
|
|
847
|
+
# vectors were not discarded — and let the next status say more.
|
|
848
|
+
held = (" — the %d-chunk vector store is still on disk"
|
|
849
|
+
% st["chunks"])
|
|
850
|
+
rep.note("search-engine",
|
|
851
|
+
"semantic search off by BOOST_NO_EMBED — using the "
|
|
852
|
+
"full-content BM25 engine%s (%s)" % (held, fix),
|
|
853
|
+
hint=fix, wrap=True)
|
|
854
|
+
return
|
|
855
|
+
|
|
801
856
|
rep.note("search-engine",
|
|
802
857
|
"semantic search not configured — using the full-content BM25 "
|
|
803
858
|
"engine (%s)" % fix, hint=fix, wrap=True)
|
|
@@ -1139,18 +1194,26 @@ def cmd_heal(argv):
|
|
|
1139
1194
|
out.warn("%s is no longer a symlink into the store — left alone"
|
|
1140
1195
|
% _tilde(dup.path))
|
|
1141
1196
|
|
|
1197
|
+
# A dir that exists and refuses writes. A MISSING one is not stuck: the
|
|
1198
|
+
# real run creates it above, so a preview that called it unwritable would
|
|
1199
|
+
# exit 1 where the run it previews exits 0.
|
|
1200
|
+
cache_dir = paths.cache_dir()
|
|
1201
|
+
cache_stuck = cache_dir.is_dir() and not os.access(cache_dir, os.W_OK)
|
|
1142
1202
|
for tap in registry.list_taps():
|
|
1143
1203
|
if not tap.is_cloned:
|
|
1144
1204
|
out.warn("tap %s not cloned — skipped (run `boost update`)" % tap.name)
|
|
1145
1205
|
continue
|
|
1146
1206
|
had_cache = tap.cache_file.exists()
|
|
1147
1207
|
if dry:
|
|
1148
|
-
if not had_cache:
|
|
1208
|
+
if not had_cache and not cache_stuck:
|
|
1149
1209
|
out.info("would rebuild catalog cache for %s" % tap.name)
|
|
1150
1210
|
actions.append("cache %s" % tap.name)
|
|
1151
1211
|
else:
|
|
1152
1212
|
catalog.rebuild_tap(tap)
|
|
1153
|
-
|
|
1213
|
+
# rebuild_tap survives a cache it cannot write and warns; claiming
|
|
1214
|
+
# the rebuild under that warning would certify a file that is
|
|
1215
|
+
# still missing, and every later run would claim it again.
|
|
1216
|
+
if not had_cache and tap.cache_file.exists():
|
|
1154
1217
|
out.ok("rebuilt catalog cache for %s" % tap.name)
|
|
1155
1218
|
actions.append("cache %s" % tap.name)
|
|
1156
1219
|
|
|
@@ -1164,15 +1227,38 @@ def cmd_heal(argv):
|
|
|
1164
1227
|
out.ok("journal rotation scheduled (next write rotates)")
|
|
1165
1228
|
actions.append("rotate")
|
|
1166
1229
|
|
|
1167
|
-
|
|
1230
|
+
# Not repairable from here — the tap list is the user's, not derivable —
|
|
1231
|
+
# and never covered by an all-clear: with it unreadable, every check
|
|
1232
|
+
# above ran against DEFAULTS.
|
|
1233
|
+
cfg_err = config.check()
|
|
1234
|
+
if cfg_err:
|
|
1235
|
+
out.warn("%s — heal cannot repair it: boost is running on defaults "
|
|
1236
|
+
"until the file is fixed or your taps are re-added"
|
|
1237
|
+
% cfg_err, wrap=True)
|
|
1238
|
+
# Permissions are the user's to change, not heal's; but a dir heal saw and
|
|
1239
|
+
# cannot fix must not sit under an all-clear.
|
|
1240
|
+
stuck = [adir for adir in agents.linking_agents().values()
|
|
1241
|
+
if adir.is_dir() and not os.access(str(adir), os.W_OK)]
|
|
1242
|
+
for adir in stuck:
|
|
1243
|
+
out.warn("agent dir %s is not writable — heal does not change "
|
|
1244
|
+
"permissions; run `chmod u+w %s`, then `boost sync`"
|
|
1245
|
+
% (_tilde(adir), _tilde(adir)), wrap=True)
|
|
1246
|
+
# The same rule for the cache dir doctor flags: heal cannot make it
|
|
1247
|
+
# writable, so it must not answer "nothing to heal" beneath the problem.
|
|
1248
|
+
if registry.list_taps() and cache_stuck:
|
|
1249
|
+
stuck.append(cache_dir)
|
|
1250
|
+
out.warn("%s is not writable — heal does not change permissions; "
|
|
1251
|
+
"run `chmod u+w %s`" % (_tilde(cache_dir), _tilde(cache_dir)),
|
|
1252
|
+
wrap=True)
|
|
1253
|
+
if not actions and not stuck and not cfg_err:
|
|
1168
1254
|
# A duplicate this run declined to prune is something `heal` saw, can
|
|
1169
1255
|
# fix, and deliberately left. A bare "nothing to heal" printed under
|
|
1170
1256
|
# the line offering the flag contradicts it.
|
|
1171
1257
|
out.ok("nothing to heal automatically"
|
|
1172
1258
|
if declined_duplicates else "nothing to heal")
|
|
1173
|
-
|
|
1259
|
+
if actions and not dry:
|
|
1174
1260
|
journal.log("heal", "%d actions" % len(actions))
|
|
1175
|
-
return 0
|
|
1261
|
+
return 1 if cfg_err or stuck else 0
|
|
1176
1262
|
|
|
1177
1263
|
|
|
1178
1264
|
def cmd_conflict(argv):
|
|
@@ -135,6 +135,18 @@ def _report(results: list[dict]) -> None:
|
|
|
135
135
|
"`boost reindex --dense`")
|
|
136
136
|
|
|
137
137
|
|
|
138
|
+
def _muted(msg: str) -> None:
|
|
139
|
+
"""An indented muted line, wrapped to the pane.
|
|
140
|
+
|
|
141
|
+
Wrap first, colour each line after: `out.role` brackets its argument with
|
|
142
|
+
a start code and a reset, so colouring first and folding after leaves
|
|
143
|
+
line 1 unterminated and the rest unstyled (CLAUDE.md's wrap rule). `- 2`
|
|
144
|
+
pays for the indent `out.info` adds.
|
|
145
|
+
"""
|
|
146
|
+
for line in out.wrap(msg, max(out.term_width() - 2, 20)):
|
|
147
|
+
out.info(out.role(line, "muted"))
|
|
148
|
+
|
|
149
|
+
|
|
138
150
|
def cmd_quickstart(argv) -> int:
|
|
139
151
|
"""boost quickstart [--catalog] [--no-vectors] [--dry-run]"""
|
|
140
152
|
p = cliparse.parser(
|
|
@@ -161,7 +173,15 @@ def cmd_quickstart(argv) -> int:
|
|
|
161
173
|
manifest = shards.fetch_manifest()
|
|
162
174
|
pins = shards.rows(manifest)
|
|
163
175
|
except BoostError as exc:
|
|
164
|
-
|
|
176
|
+
# "no published shards" named the wrong cause — the project's
|
|
177
|
+
# shards are fine; this machine could not read the manifest (a
|
|
178
|
+
# proxy, a dropped connection, a BOOST_SHARD_MANIFEST typo, an
|
|
179
|
+
# air-gapped mirror). And the hint was the actionable half: every
|
|
180
|
+
# transport-shaped failure raised here carries one.
|
|
181
|
+
out.warn("could not read the shard manifest: %s" % exc.message,
|
|
182
|
+
wrap=True)
|
|
183
|
+
if exc.hint:
|
|
184
|
+
_muted(exc.hint)
|
|
165
185
|
manifest = None
|
|
166
186
|
|
|
167
187
|
selection = _selection(args.catalog)
|
|
@@ -184,12 +204,11 @@ def cmd_quickstart(argv) -> int:
|
|
|
184
204
|
"\"boost-skill-cli[rag]\"` — keyword search works "
|
|
185
205
|
"without it", wrap=True)
|
|
186
206
|
elif manifest is None:
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
"muted"), wrap=True)
|
|
207
|
+
_muted("(0 because the shard manifest could not be read — "
|
|
208
|
+
"keyword search is unaffected)")
|
|
190
209
|
else:
|
|
191
|
-
|
|
192
|
-
|
|
210
|
+
_muted("(0 because none of these registries have a "
|
|
211
|
+
"published shard yet)")
|
|
193
212
|
return 0
|
|
194
213
|
|
|
195
214
|
with spin.Spinner("building the keyword index"):
|
|
@@ -215,6 +234,13 @@ def cmd_quickstart(argv) -> int:
|
|
|
215
234
|
out.info("semantic search needs the extra: "
|
|
216
235
|
"`pipx inject boost-skill-cli \"boost-skill-cli[rag]\"`, "
|
|
217
236
|
"then `boost quickstart` again")
|
|
237
|
+
elif want_vectors:
|
|
238
|
+
# The whole vector step was skipped, and the only word about it was a
|
|
239
|
+
# warning many screens back. Without this the run ends "✓ ready" as
|
|
240
|
+
# though vectors had been imported.
|
|
241
|
+
_muted("no vectors imported — the shard manifest could not be read; "
|
|
242
|
+
"`boost update --shards` retries it, and `boost reindex "
|
|
243
|
+
"--dense` builds them locally")
|
|
218
244
|
|
|
219
245
|
complete.refresh_names()
|
|
220
246
|
out.ok("ready — try `boost search brainstorming`")
|