boost-skill-cli 1.2.63__tar.gz → 1.2.64__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.63 → boost_skill_cli-1.2.64}/.gitignore +7 -0
- {boost_skill_cli-1.2.63/boost_skill_cli.egg-info → boost_skill_cli-1.2.64}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_skill_cli.egg-info/SOURCES.txt +2 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/tool-call-eval-tier.md +37 -15
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap.html +38 -16
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_tools.py +84 -4
- boost_skill_cli-1.2.64/tests/eval/fixtures/claude_init_event.jsonl +2 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_tools.py +32 -6
- boost_skill_cli-1.2.64/tests/unit/test_eval_tools_probe.py +127 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.gitattributes +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.vale.ini +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/CLAUDE.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/DCO +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/LICENSE +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/Makefile +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/codecov.yml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/index.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/examples/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/index.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/noxfile.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/setup.cfg +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/style/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/style/boost.css +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/style/boost.js +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/style/demo.html +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/tests/visual/visual_check.mjs +0 -0
|
@@ -281,3 +281,10 @@ node_modules/
|
|
|
281
281
|
# config). Written into the repo root by the language-server tooling, not by
|
|
282
282
|
# boost, and specific to one developer's machine.
|
|
283
283
|
.serena/
|
|
284
|
+
|
|
285
|
+
# A SQLite artifact from a tool that passed ":memory:" as a path rather than as
|
|
286
|
+
# the in-memory sentinel. Junk either way, and on Windows it is worse than junk:
|
|
287
|
+
# a colon cannot appear in a filename there, so committing it makes `git
|
|
288
|
+
# checkout` fail with exit 128 and every Windows CI job dies before it runs a
|
|
289
|
+
# single test.
|
|
290
|
+
:memory:*
|
|
@@ -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.64'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 64)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -592,6 +592,7 @@ tests/eval/recommend.jsonl
|
|
|
592
592
|
tests/eval/taps-scale.txt
|
|
593
593
|
tests/eval/taps.txt
|
|
594
594
|
tests/eval/tool_calls.jsonl
|
|
595
|
+
tests/eval/fixtures/claude_init_event.jsonl
|
|
595
596
|
tests/functional/test_bmad_all_hosts.py
|
|
596
597
|
tests/functional/test_capabilities_policy.py
|
|
597
598
|
tests/functional/test_cli_adapt.py
|
|
@@ -719,6 +720,7 @@ tests/unit/test_eval_grading.py
|
|
|
719
720
|
tests/unit/test_eval_metrics.py
|
|
720
721
|
tests/unit/test_eval_stats_summary.py
|
|
721
722
|
tests/unit/test_eval_tools.py
|
|
723
|
+
tests/unit/test_eval_tools_probe.py
|
|
722
724
|
tests/unit/test_failure_alerting_covers_unattended.py
|
|
723
725
|
tests/unit/test_faithfulness.py
|
|
724
726
|
tests/unit/test_frontmatter.py
|
|
@@ -7,7 +7,7 @@ category: Quality · Eval
|
|
|
7
7
|
complexity: L
|
|
8
8
|
impact: High
|
|
9
9
|
wow: 4
|
|
10
|
-
note: Claude Code
|
|
10
|
+
note: the Claude Code probe was broken and its finding was an artifact; fixed, second host still unwritten
|
|
11
11
|
owner:
|
|
12
12
|
order: 96
|
|
13
13
|
title: a Tier 3 eval for tool-call behaviour, floored in <b>both</b> directions
|
|
@@ -61,22 +61,44 @@ N runs per prompt with an interval rather than a single pass/fail, the way
|
|
|
61
61
|
<code>golden-set-statistical-power</code> established for retrieval — a one-shot replay cannot tell
|
|
62
62
|
a wording regression from a sampling wobble.
|
|
63
63
|
|
|
64
|
-
<b>Where this stands (2026-08-
|
|
64
|
+
<b>Where this stands (2026-08-31), and a correction.</b> The Claude Code arm shipped in #616:
|
|
65
65
|
<code>scripts/eval_tools.py</code>, a 16-prompt set halved into should-call and should-NOT-call,
|
|
66
|
-
Wilson intervals over N runs, and a verdict that floors call rate <em>and</em> ceilings false
|
|
67
|
-
calls. Its first real run measured <b>3/3 false calls</b> — boost's tools fired on "What is
|
|
68
|
-
the difference between a Python list and a tuple?", which the shipped skip list excuses by name.
|
|
69
|
-
Call rate alone would have scored that a perfect 1.00, which is the whole argument for flooring
|
|
70
|
-
both directions, now with a number behind it.
|
|
66
|
+
Wilson intervals over N runs, and a verdict that floors call rate <em>and</em> ceilings false calls.
|
|
71
67
|
|
|
72
|
-
<b>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
68
|
+
<b>Its probe was broken, and the finding this card recorded was an artifact of it.</b> An earlier
|
|
69
|
+
revision of this card reported “3/3 false calls — boost's tools fired on <em>What is the
|
|
70
|
+
difference between a Python list and a tuple?</em>”. They did not fire. <code>called_boost()</code>
|
|
71
|
+
substring-scanned the raw event stream, and <code>claude -p --output-format stream-json --verbose</code>
|
|
72
|
+
opens with a <code>system</code>/<code>init</code> event enumerating <em>every tool available to the
|
|
73
|
+
session</em> — which on any machine where boost is registered contains
|
|
74
|
+
<code>mcp__boost__boost_search</code> and the other three CONSULT names. So the check returned
|
|
75
|
+
<code>true</code> on every run, including runs with no tool call at all. Measured directly:
|
|
76
|
+
<code>Say OK and nothing else.</code> produced zero <code>tool_use</code> blocks and scored as a
|
|
77
|
+
boost consult.
|
|
78
|
+
|
|
79
|
+
Two consequences shipped with it. <code>make eval-tools</code> could never pass — eight
|
|
80
|
+
no-call rows × three runs is 24 forced trues, so the false-call rate's lower bound sat at
|
|
81
|
+
1.00 against a 0.20 ceiling, red on every machine forever. And the tier built to retire
|
|
82
|
+
unfalsifiable claims had produced one. <b>The lesson is the tier's own:</b> the existing tests
|
|
83
|
+
passed because they fed hand-written one-line fragments with no <code>init</code> event — a
|
|
84
|
+
fixture the author invented could not catch the author's wrong model of the input. The probe now
|
|
85
|
+
parses the NDJSON and counts only <code>tool_use</code> blocks inside <code>assistant</code>
|
|
86
|
+
events, and the regression test drives a <b>captured real stream</b>.
|
|
87
|
+
|
|
88
|
+
<b>The second host arm is still unwritten, and should stay that way until the fixed probe is
|
|
89
|
+
re-run.</b> Building arm two on a probe that cannot tell an offer from a call would produce two
|
|
90
|
+
hosts scoring an identical, meaningless 1.00. When it is built, the candidate is <b>Gemini CLI
|
|
91
|
+
proper</b>, not Antigravity CLI: the delivery claim below is about Gemini's Node bundle, and
|
|
92
|
+
<code>agy</code> is a third mode again — it receives boost's <code>instructions</code> and
|
|
93
|
+
writes them to <code>~/.gemini/antigravity-cli/mcp/boost/instructions.md</code>, pointing the agent
|
|
94
|
+
at the file rather than inlining it. Substituting it would measure a different mechanism than the
|
|
95
|
+
one this card argues about.
|
|
96
|
+
|
|
97
|
+
<b>Cost, now measured.</b> Two trivial runs on a real host reported <code>$0.657</code> and
|
|
98
|
+
<code>$0.682</code> of <code>total_cost_usd</code>, so 16 prompts × 3 runs is roughly
|
|
99
|
+
<b>$30–50 per host per invocation</b> on a machine with a crowded tool surface.
|
|
100
|
+
<code>--strict-mcp-config</code> with a boost-only config cuts that sharply and controls the
|
|
101
|
+
surface confound in the same move.
|
|
80
102
|
|
|
81
103
|
<b>What it unlocks.</b> The first honest answer to "did that description edit help", a baseline the
|
|
82
104
|
next surface change can regress against, and a way to retire claims that survive only because
|
|
@@ -865,22 +865,44 @@ N runs per prompt with an interval rather than a single pass/fail, the way
|
|
|
865
865
|
<code>golden-set-statistical-power</code> established for retrieval — a one-shot replay cannot tell
|
|
866
866
|
a wording regression from a sampling wobble.
|
|
867
867
|
|
|
868
|
-
<b>Where this stands (2026-08-
|
|
868
|
+
<b>Where this stands (2026-08-31), and a correction.</b> The Claude Code arm shipped in #616:
|
|
869
869
|
<code>scripts/eval_tools.py</code>, a 16-prompt set halved into should-call and should-NOT-call,
|
|
870
|
-
Wilson intervals over N runs, and a verdict that floors call rate <em>and</em> ceilings false
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
870
|
+
Wilson intervals over N runs, and a verdict that floors call rate <em>and</em> ceilings false calls.
|
|
871
|
+
|
|
872
|
+
<b>Its probe was broken, and the finding this card recorded was an artifact of it.</b> An earlier
|
|
873
|
+
revision of this card reported “3/3 false calls — boost's tools fired on <em>What is the
|
|
874
|
+
difference between a Python list and a tuple?</em>”. They did not fire. <code>called_boost()</code>
|
|
875
|
+
substring-scanned the raw event stream, and <code>claude -p --output-format stream-json --verbose</code>
|
|
876
|
+
opens with a <code>system</code>/<code>init</code> event enumerating <em>every tool available to the
|
|
877
|
+
session</em> — which on any machine where boost is registered contains
|
|
878
|
+
<code>mcp__boost__boost_search</code> and the other three CONSULT names. So the check returned
|
|
879
|
+
<code>true</code> on every run, including runs with no tool call at all. Measured directly:
|
|
880
|
+
<code>Say OK and nothing else.</code> produced zero <code>tool_use</code> blocks and scored as a
|
|
881
|
+
boost consult.
|
|
882
|
+
|
|
883
|
+
Two consequences shipped with it. <code>make eval-tools</code> could never pass — eight
|
|
884
|
+
no-call rows × three runs is 24 forced trues, so the false-call rate's lower bound sat at
|
|
885
|
+
1.00 against a 0.20 ceiling, red on every machine forever. And the tier built to retire
|
|
886
|
+
unfalsifiable claims had produced one. <b>The lesson is the tier's own:</b> the existing tests
|
|
887
|
+
passed because they fed hand-written one-line fragments with no <code>init</code> event — a
|
|
888
|
+
fixture the author invented could not catch the author's wrong model of the input. The probe now
|
|
889
|
+
parses the NDJSON and counts only <code>tool_use</code> blocks inside <code>assistant</code>
|
|
890
|
+
events, and the regression test drives a <b>captured real stream</b>.
|
|
891
|
+
|
|
892
|
+
<b>The second host arm is still unwritten, and should stay that way until the fixed probe is
|
|
893
|
+
re-run.</b> Building arm two on a probe that cannot tell an offer from a call would produce two
|
|
894
|
+
hosts scoring an identical, meaningless 1.00. When it is built, the candidate is <b>Gemini CLI
|
|
895
|
+
proper</b>, not Antigravity CLI: the delivery claim below is about Gemini's Node bundle, and
|
|
896
|
+
<code>agy</code> is a third mode again — it receives boost's <code>instructions</code> and
|
|
897
|
+
writes them to <code>~/.gemini/antigravity-cli/mcp/boost/instructions.md</code>, pointing the agent
|
|
898
|
+
at the file rather than inlining it. Substituting it would measure a different mechanism than the
|
|
899
|
+
one this card argues about.
|
|
900
|
+
|
|
901
|
+
<b>Cost, now measured.</b> Two trivial runs on a real host reported <code>$0.657</code> and
|
|
902
|
+
<code>$0.682</code> of <code>total_cost_usd</code>, so 16 prompts × 3 runs is roughly
|
|
903
|
+
<b>$30–50 per host per invocation</b> on a machine with a crowded tool surface.
|
|
904
|
+
<code>--strict-mcp-config</code> with a boost-only config cuts that sharply and controls the
|
|
905
|
+
surface confound in the same move.
|
|
884
906
|
|
|
885
907
|
<b>What it unlocks.</b> The first honest answer to "did that description edit help", a baseline the
|
|
886
908
|
next surface change can regress against, and a way to retire claims that survive only because
|
|
@@ -889,7 +911,7 @@ nobody can check them.</p>
|
|
|
889
911
|
<span class="m">Complexity <b>L</b></span>
|
|
890
912
|
<span class="m hi">Impact <b>High</b></span>
|
|
891
913
|
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
892
|
-
<span class="m">Claude Code
|
|
914
|
+
<span class="m">the Claude Code probe was broken and its finding was an artifact; fixed, second host still unwritten</span>
|
|
893
915
|
</div>
|
|
894
916
|
</article>
|
|
895
917
|
|
|
@@ -191,15 +191,76 @@ def verdict(metrics: dict, floor_call: float, ceiling_false: float) -> list[str]
|
|
|
191
191
|
|
|
192
192
|
# ----------------------------------------------------------------- probe
|
|
193
193
|
|
|
194
|
+
def iter_events(events: str):
|
|
195
|
+
"""Yield the parsed NDJSON objects in a host's stream, skipping junk.
|
|
196
|
+
|
|
197
|
+
A stream carries non-JSON lines (warnings, a truncated tail on timeout), and
|
|
198
|
+
a context note must never fail the run it annotates, so bad lines are
|
|
199
|
+
skipped rather than raised.
|
|
200
|
+
"""
|
|
201
|
+
for line in (events or "").splitlines():
|
|
202
|
+
line = line.strip()
|
|
203
|
+
if not line.startswith("{"):
|
|
204
|
+
continue
|
|
205
|
+
try:
|
|
206
|
+
yield json.loads(line)
|
|
207
|
+
except ValueError:
|
|
208
|
+
continue
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def tool_calls(events: str) -> list[str]:
|
|
212
|
+
"""Every tool this run actually invoked, in order.
|
|
213
|
+
|
|
214
|
+
A *call* is a `tool_use` block inside an `assistant` event. Nothing else
|
|
215
|
+
counts, and that distinction is the whole measurement.
|
|
216
|
+
"""
|
|
217
|
+
names = []
|
|
218
|
+
for ev in iter_events(events):
|
|
219
|
+
if ev.get("type") != "assistant":
|
|
220
|
+
continue
|
|
221
|
+
content = (ev.get("message") or {}).get("content") or []
|
|
222
|
+
names.extend(b.get("name") or "" for b in content
|
|
223
|
+
if isinstance(b, dict) and b.get("type") == "tool_use")
|
|
224
|
+
return names
|
|
225
|
+
|
|
226
|
+
|
|
194
227
|
def called_boost(events: str) -> bool:
|
|
195
|
-
"""Did this run
|
|
228
|
+
"""Did this run actually invoke a boost CONSULT tool?
|
|
196
229
|
|
|
197
230
|
Reads the host's own stream rather than the model's prose: an agent that
|
|
198
231
|
says "let me check boost" and does not is a miss, and one that calls
|
|
199
|
-
without narrating is a hit.
|
|
200
|
-
|
|
232
|
+
without narrating is a hit.
|
|
233
|
+
|
|
234
|
+
**It must not substring-match the raw stream, and the first version did.**
|
|
235
|
+
`claude -p --output-format stream-json --verbose` opens with a
|
|
236
|
+
`system`/`init` event enumerating every tool available to the session — on
|
|
237
|
+
a machine where boost is registered that list contains
|
|
238
|
+
`mcp__boost__boost_search` and the other three CONSULT names, in every run,
|
|
239
|
+
including runs with no tool call at all. So the old check returned True
|
|
240
|
+
unconditionally: `Say OK and nothing else.` scored as a boost consult, and
|
|
241
|
+
the no-call ceiling could never be met on any machine boost was installed
|
|
242
|
+
on. `make eval-tools` was guaranteed red, and the one finding this tier had
|
|
243
|
+
produced was an artifact of its own probe.
|
|
244
|
+
|
|
245
|
+
A tool being *offered* is not a tool being *called*, so the parse looks for
|
|
246
|
+
the call. Matching stays on the bare suffix, which covers every host's
|
|
247
|
+
namespacing (`mcp__boost__boost_search`, `mcp_boost_…`, `boost/…`).
|
|
248
|
+
"""
|
|
249
|
+
return any(any(t in name for t in CONSULT_TOOLS)
|
|
250
|
+
for name in tool_calls(events))
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def session_surface(events: str) -> tuple[int, int]:
|
|
254
|
+
"""`(tools, mcp_servers)` the host offered this run, from its init event.
|
|
255
|
+
|
|
256
|
+
The confound the old probe hid rather than reported: call rate depends far
|
|
257
|
+
more on how crowded the tool surface is than on any wording edit, and the
|
|
258
|
+
init event has carried both counts all along.
|
|
201
259
|
"""
|
|
202
|
-
|
|
260
|
+
for ev in iter_events(events):
|
|
261
|
+
if ev.get("type") == "system" and ev.get("subtype") == "init":
|
|
262
|
+
return len(ev.get("tools") or []), len(ev.get("mcp_servers") or [])
|
|
263
|
+
return 0, 0
|
|
203
264
|
|
|
204
265
|
|
|
205
266
|
def claude_available() -> bool:
|
|
@@ -250,6 +311,20 @@ def _print_context() -> None:
|
|
|
250
311
|
"for rule + descriptions, not descriptions alone.")
|
|
251
312
|
|
|
252
313
|
|
|
314
|
+
def _report_surface(tools: int, servers: int) -> None:
|
|
315
|
+
"""How crowded the tool surface was — the other half of the context.
|
|
316
|
+
|
|
317
|
+
A call rate depends far more on how many tools competed for the slot than
|
|
318
|
+
on any wording edit, and the host's init event has carried both counts all
|
|
319
|
+
along. Printed, never subtracted: the honest move is to say what was in
|
|
320
|
+
scope, the same rule `_print_context` follows for rules.
|
|
321
|
+
"""
|
|
322
|
+
if tools:
|
|
323
|
+
print(" host offered %d tool(s) across %d MCP server(s) this "
|
|
324
|
+
"run; a rate is for that surface, not for boost alone."
|
|
325
|
+
% (tools, servers))
|
|
326
|
+
|
|
327
|
+
|
|
253
328
|
def _report(host: str, rows: list[dict], metrics: dict,
|
|
254
329
|
reasons: list[str]) -> None:
|
|
255
330
|
c, f = metrics["call_rate"], metrics["false_call_rate"]
|
|
@@ -318,12 +393,17 @@ def main(argv: list[str] | None = None) -> int:
|
|
|
318
393
|
_print_context()
|
|
319
394
|
|
|
320
395
|
observed: dict[str, list[bool]] = {}
|
|
396
|
+
surface = (0, 0)
|
|
321
397
|
for r in rows:
|
|
322
398
|
for _ in range(max(1, args.runs)):
|
|
323
399
|
events = run_claude(r["prompt"], args.timeout)
|
|
324
400
|
if events is None:
|
|
325
401
|
continue
|
|
402
|
+
if surface == (0, 0):
|
|
403
|
+
surface = session_surface(events)
|
|
326
404
|
observed.setdefault(r["id"], []).append(called_boost(events))
|
|
405
|
+
if args.report_context:
|
|
406
|
+
_report_surface(*surface)
|
|
327
407
|
|
|
328
408
|
metrics = score_host(rows, observed)
|
|
329
409
|
reasons = verdict(metrics, args.floor_call, args.ceiling_false_call)
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"type": "system", "subtype": "init", "tools": ["mcp__boost__boost_discover_github", "mcp__boost__boost_doctor", "mcp__boost__boost_info", "mcp__boost__boost_install", "mcp__boost__boost_list", "mcp__boost__boost_read", "mcp__boost__boost_search", "Read", "Bash", "Edit"], "mcp_servers": [{"name": "plugin:context7:context7", "status": "connected"}, {"name": "plugin:playwright:playwright", "status": "failed"}, {"name": "plugin:exa:exa", "status": "connected"}]}
|
|
2
|
+
{"type": "assistant", "message": {"content": [{"type": "text", "text": "OK"}]}}
|
|
@@ -207,28 +207,54 @@ class TestTheVerdictJudgesTheInterval:
|
|
|
207
207
|
assert MOD.verdict(MOD.score_host(self.ROWS, {}), 0.60, 0.20)
|
|
208
208
|
|
|
209
209
|
|
|
210
|
+
def _assistant_call(name: str) -> str:
|
|
211
|
+
"""One `assistant` event carrying one `tool_use` block — a real call.
|
|
212
|
+
|
|
213
|
+
These fixtures used to be bare fragments like `{"name":"boost_search"}`,
|
|
214
|
+
which no host emits. That shape is why this class passed against a probe
|
|
215
|
+
that substring-scanned the raw stream and therefore answered True on every
|
|
216
|
+
run: the fixtures had no `system`/`init` event, so the tool *list* the real
|
|
217
|
+
host sends was never in the input under test. A fixture the author invented
|
|
218
|
+
cannot catch the author's wrong model of the input, and it did not.
|
|
219
|
+
`tests/unit/test_eval_tools_probe.py` now drives a captured real stream.
|
|
220
|
+
"""
|
|
221
|
+
return json.dumps({"type": "assistant", "message": {"content": [
|
|
222
|
+
{"type": "tool_use", "name": name, "input": {}}]}})
|
|
223
|
+
|
|
224
|
+
|
|
210
225
|
class TestTheProbeReadsTheHostNotTheProse:
|
|
211
226
|
def test_a_tool_call_counts(self):
|
|
212
|
-
assert MOD.called_boost(
|
|
227
|
+
assert MOD.called_boost(_assistant_call("boost_search"))
|
|
213
228
|
|
|
214
229
|
def test_a_host_prefixed_name_counts(self):
|
|
215
230
|
# Hosts namespace MCP tools differently; matching the bare suffix keeps
|
|
216
231
|
# one list correct across all of them.
|
|
217
|
-
for name in ("mcp__boost__boost_search", "mcp_boost_boost_search"
|
|
218
|
-
|
|
232
|
+
for name in ("mcp__boost__boost_search", "mcp_boost_boost_search",
|
|
233
|
+
"boost/boost_search"):
|
|
234
|
+
assert MOD.called_boost(_assistant_call(name)), name
|
|
235
|
+
|
|
236
|
+
def test_being_offered_a_tool_is_not_calling_it(self):
|
|
237
|
+
# The bug this class missed: the host's init event lists every
|
|
238
|
+
# available tool, so a stream with no call at all still names them.
|
|
239
|
+
init = json.dumps({"type": "system", "subtype": "init",
|
|
240
|
+
"tools": ["mcp__boost__boost_search",
|
|
241
|
+
"mcp__boost__boost_list"]})
|
|
242
|
+
assert not MOD.called_boost(init)
|
|
219
243
|
|
|
220
244
|
def test_narrating_a_check_without_making_one_is_a_miss(self):
|
|
221
245
|
# An agent that says it will check and does not is a miss; the event
|
|
222
246
|
# stream is the record, not the model's account of itself.
|
|
223
|
-
assert not MOD.called_boost(
|
|
224
|
-
|
|
247
|
+
assert not MOD.called_boost(json.dumps(
|
|
248
|
+
{"type": "assistant", "message": {"content": [
|
|
249
|
+
{"type": "text",
|
|
250
|
+
"text": "Let me check the skill registry with boost_search."}]}}))
|
|
225
251
|
|
|
226
252
|
def test_installing_is_not_consulting(self):
|
|
227
253
|
# `boost_install` is downstream of a decision already made. Counting it
|
|
228
254
|
# would let a run that installed without looking score as a check.
|
|
229
255
|
assert "boost_install" in MOD.BOOST_TOOLS
|
|
230
256
|
assert "boost_install" not in MOD.CONSULT_TOOLS
|
|
231
|
-
assert not MOD.called_boost(
|
|
257
|
+
assert not MOD.called_boost(_assistant_call("boost_install"))
|
|
232
258
|
|
|
233
259
|
def test_an_empty_stream_is_a_miss(self):
|
|
234
260
|
assert not MOD.called_boost("")
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Copyright the boost contributors.
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""Unit tests: the tool-call probe must tell an offer from a call.
|
|
4
|
+
|
|
5
|
+
`scripts/eval_tools.py` scores whether an agent *called* boost. The first
|
|
6
|
+
version answered that with `any(name in events for name in CONSULT_TOOLS)` — a
|
|
7
|
+
substring scan of the whole stream — and it was wrong in the one direction that
|
|
8
|
+
looks like a result.
|
|
9
|
+
|
|
10
|
+
`claude -p --output-format stream-json --verbose` opens with a `system`/`init`
|
|
11
|
+
event enumerating every tool available to the session. On any machine where
|
|
12
|
+
boost is registered, that list contains `mcp__boost__boost_search` and the
|
|
13
|
+
other three CONSULT names. So the scan matched on every run, including runs
|
|
14
|
+
with no tool call at all, and `called_boost()` returned True unconditionally.
|
|
15
|
+
|
|
16
|
+
Three things followed, and all three shipped:
|
|
17
|
+
|
|
18
|
+
1. `make eval-tools` could never pass. Eight no-call rows x 3 runs = 24 forced
|
|
19
|
+
True, so the false-call rate's lower bound sat at 1.0 against a 0.20
|
|
20
|
+
ceiling — red on every machine, forever.
|
|
21
|
+
2. The tier's one recorded finding — "boost's tools fired on 'What is the
|
|
22
|
+
difference between a Python list and a tuple?'" — was an artifact of its own
|
|
23
|
+
probe. Measured here: that prompt makes zero tool calls.
|
|
24
|
+
3. The existing tests passed, because they fed hand-written one-line fixtures
|
|
25
|
+
that had no init event. They pinned substring behaviour against a stream
|
|
26
|
+
shape the real host does not emit.
|
|
27
|
+
|
|
28
|
+
So the fixture below is **captured from a real `claude -p` run**, not written
|
|
29
|
+
by hand, and its whole job is to assert False. A test whose input the author
|
|
30
|
+
invented cannot catch an author's wrong model of the input.
|
|
31
|
+
"""
|
|
32
|
+
from __future__ import annotations
|
|
33
|
+
|
|
34
|
+
import importlib.util
|
|
35
|
+
import json
|
|
36
|
+
from pathlib import Path
|
|
37
|
+
|
|
38
|
+
import pytest
|
|
39
|
+
|
|
40
|
+
ROOT = Path(__file__).resolve().parents[2]
|
|
41
|
+
SCRIPT = ROOT / "scripts" / "eval_tools.py"
|
|
42
|
+
FIXTURE = ROOT / "tests" / "eval" / "fixtures" / "claude_init_event.jsonl"
|
|
43
|
+
|
|
44
|
+
pytestmark = pytest.mark.skipif(
|
|
45
|
+
not SCRIPT.exists() or not FIXTURE.exists(),
|
|
46
|
+
reason="repo-root scripts/tests not reachable (e.g. mutation sandbox)")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _mod():
|
|
50
|
+
spec = importlib.util.spec_from_file_location("eval_tools_probe", SCRIPT)
|
|
51
|
+
m = importlib.util.module_from_spec(spec)
|
|
52
|
+
assert spec.loader is not None
|
|
53
|
+
spec.loader.exec_module(m)
|
|
54
|
+
return m
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _call(name: str) -> str:
|
|
58
|
+
return json.dumps({"type": "assistant", "message": {"content": [
|
|
59
|
+
{"type": "tool_use", "name": name, "input": {}}]}})
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class TestAnOfferIsNotACall:
|
|
63
|
+
"""The captured stream. Zero tool calls, every boost tool name present."""
|
|
64
|
+
|
|
65
|
+
def test_the_fixture_really_does_advertise_the_boost_tools(self):
|
|
66
|
+
# Without this the next test could pass by the fixture being empty.
|
|
67
|
+
text = FIXTURE.read_text(encoding="utf-8")
|
|
68
|
+
for name in ("boost_search", "boost_list", "boost_info", "boost_read"):
|
|
69
|
+
assert name in text, name
|
|
70
|
+
|
|
71
|
+
def test_a_run_that_called_nothing_scores_false(self):
|
|
72
|
+
m = _mod()
|
|
73
|
+
assert m.called_boost(FIXTURE.read_text(encoding="utf-8")) is False
|
|
74
|
+
|
|
75
|
+
def test_and_reports_no_tool_calls(self):
|
|
76
|
+
m = _mod()
|
|
77
|
+
assert m.tool_calls(FIXTURE.read_text(encoding="utf-8")) == []
|
|
78
|
+
|
|
79
|
+
def test_the_old_substring_check_would_have_said_true(self):
|
|
80
|
+
# Pins the bug itself, so the fix cannot be quietly reverted into a
|
|
81
|
+
# scan that passes these tests by accident.
|
|
82
|
+
text = FIXTURE.read_text(encoding="utf-8")
|
|
83
|
+
m = _mod()
|
|
84
|
+
assert any(n in text for n in m.CONSULT_TOOLS)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class TestARealCallStillCounts:
|
|
88
|
+
def test_a_namespaced_call_is_found(self):
|
|
89
|
+
m = _mod()
|
|
90
|
+
stream = FIXTURE.read_text(encoding="utf-8") + "\n" + \
|
|
91
|
+
_call("mcp__boost__boost_search")
|
|
92
|
+
assert m.called_boost(stream) is True
|
|
93
|
+
assert m.tool_calls(stream) == ["mcp__boost__boost_search"]
|
|
94
|
+
|
|
95
|
+
@pytest.mark.parametrize("name", [
|
|
96
|
+
"boost_search", "mcp__boost__boost_search",
|
|
97
|
+
"mcp_boost_boost_search", "boost/boost_search"])
|
|
98
|
+
def test_every_hosts_namespacing_still_matches(self, name):
|
|
99
|
+
# The suffix match is what keeps one CONSULT list correct across hosts.
|
|
100
|
+
assert _mod().called_boost(_call(name)) is True
|
|
101
|
+
|
|
102
|
+
def test_install_alone_is_not_a_consult(self):
|
|
103
|
+
# Installing is downstream of a decision already made; scoring it would
|
|
104
|
+
# let a run that installed without looking count as a check.
|
|
105
|
+
assert _mod().called_boost(_call("mcp__boost__boost_install")) is False
|
|
106
|
+
|
|
107
|
+
def test_a_non_boost_call_is_not_a_consult(self):
|
|
108
|
+
assert _mod().called_boost(_call("Read")) is False
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class TestTheParseSurvivesRealStreams:
|
|
112
|
+
def test_non_json_lines_are_skipped(self):
|
|
113
|
+
m = _mod()
|
|
114
|
+
assert m.called_boost("warning: something\nnot json\n") is False
|
|
115
|
+
|
|
116
|
+
def test_a_truncated_tail_does_not_raise(self):
|
|
117
|
+
# A timeout kills the host mid-line; the probe must still answer.
|
|
118
|
+
m = _mod()
|
|
119
|
+
assert m.called_boost(_call("boost_search") + '\n{"type": "assis') is True
|
|
120
|
+
|
|
121
|
+
def test_the_surface_is_read_from_the_init_event(self):
|
|
122
|
+
m = _mod()
|
|
123
|
+
tools, servers = m.session_surface(FIXTURE.read_text(encoding="utf-8"))
|
|
124
|
+
assert tools > 0 and servers >= 0
|
|
125
|
+
|
|
126
|
+
def test_a_stream_with_no_init_event_reports_zero(self):
|
|
127
|
+
assert _mod().session_surface(_call("boost_search")) == (0, 0)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.2.63 → boost_skill_cli-1.2.64}/.vale/styles/config/vocabularies/boost/accept.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|