boost-skill-cli 1.2.153__tar.gz → 1.2.155__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.153 → boost_skill_cli-1.2.155}/CLAUDE.md +48 -16
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/Makefile +11 -6
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/eval-latest.json +2 -2
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/eval.html +9 -5
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +17 -7
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +12 -4
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap.html +26 -93
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_corpus.py +8 -3
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_retrieval.py +17 -2
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/baseline.json +18 -18
- boost_skill_cli-1.2.155/tests/eval/golden.jsonl +110 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/taps.txt +29 -14
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_corpus.py +17 -7
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_grading.py +109 -29
- boost_skill_cli-1.2.153/tests/eval/golden.jsonl +0 -102
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.gitattributes +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.gitignore +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/.vale.ini +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/DCO +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/LICENSE +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/compact.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/jsonstate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/prereq.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/codecov.yml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/index.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/examples/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/index.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/noxfile.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/setup.cfg +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/style/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/style/boost.css +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/style/boost.js +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/style/demo.html +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_hooks_codex.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_identifier_columns.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_keyed_no_store_hint.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_canary_deps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_catalog_distinct.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_claude_settings_codex.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_corpus_prose.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_coverage_gate_prose.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_model_unavailable.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_dry_run_parity.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_embed_outranking.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_corpus_bodies.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_query_sets.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_first_run_pointer.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_help_contracts.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_hookhost_codex.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_jsonstate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_lighthouse_budgets.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_output_table_drop.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_output_table_whole.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_prereq.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_quickstart_readiness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rag_extra_hint.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_read_text_arg.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_repo_root_guard.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_sdist_contents.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shards_carry_forward.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_upstream_path.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.155}/tests/visual/visual_check.mjs +0 -0
|
@@ -101,16 +101,23 @@ engines over the golden set (`tests/eval/golden.jsonl`) and floors **four**
|
|
|
101
101
|
metrics on BM25 — recall@k, hit@1, MRR and nDCG@k. Flooring recall alone was a
|
|
102
102
|
hole rather than a simplification: a ranker that finds the right answer every
|
|
103
103
|
time and never ranks it first scores recall@10 1.000 with hit@1 0.000, and
|
|
104
|
-
passed. The golden set grades real catalog items **by name**, so it
|
|
105
|
-
corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
|
|
106
|
-
`tests/eval/taps.txt` (
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
the
|
|
104
|
+
passed. The golden set grades real catalog items **by the body they name**, so it
|
|
105
|
+
needs a corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
|
|
106
|
+
`tests/eval/taps.txt` (`boost tap --defaults` is NOT enough, it omits every
|
|
107
|
+
rule/workflow repo). The list is **twenty** repos and **not one of them
|
|
108
|
+
can be dropped**: the first six are the set the name-graded floors were first
|
|
109
|
+
measured on, and the `# --- scale` divider below them no longer separates
|
|
110
|
+
"targets" from "filler" — `golden.jsonl` pins exemplars into two repos below
|
|
111
|
+
it and `golden-natural.jsonl` into five, so no proper subset of the file can
|
|
112
|
+
score either set. The rest exist so the corpus is a realistic size. That matters more than it sounds — over the six
|
|
113
|
+
alone (921 entries at the current pins) BM25 scored 0.989 / 0.769 / 0.848 /
|
|
114
|
+
0.880, and over the twenty (10,731) it scores **0.846 / 0.484 / 0.607 / 0.659**
|
|
115
|
+
(what `tests/eval/baseline.json` records), so three of the four old floors fail
|
|
116
|
+
once the corpus stops being tiny. The six-repo row is **historical**: it was
|
|
117
|
+
measured name-graded, before the set was pinned, and cannot be re-run against
|
|
118
|
+
today's `golden.jsonl` — see the coupling rule below. It stays re-derivable:
|
|
119
|
+
`git show e11a34f2:tests/eval/golden.jsonl` scored over a six-tap corpus
|
|
120
|
+
reproduces it exactly.
|
|
114
121
|
|
|
115
122
|
**The ranked list de-duplicates on the content hash, not the name.** A grade key
|
|
116
123
|
decides both relevance and identity, and keying identity on the name collapsed
|
|
@@ -118,16 +125,22 @@ decides both relevance and identity, and keying identity on the name collapsed
|
|
|
118
125
|
ranker with a compression that existed only in the scoring code, and worth about
|
|
119
126
|
one query of recall@10. That is where the old "recall is 1.000" folklore came
|
|
120
127
|
from; the six-repo corpus measured 0.978 at the pins of the time once mirrors
|
|
121
|
-
collapse and homonyms do not. Relevance is
|
|
122
|
-
|
|
123
|
-
time
|
|
128
|
+
collapse and homonyms do not. Relevance is decided by the content class of the
|
|
129
|
+
bodies a row pins in its `exemplar`, or by name for a row that pins none. The
|
|
130
|
+
two conventions coexist so a set can migrate a row at a time, and **both
|
|
131
|
+
shipped sets have now finished** — `golden.jsonl` 91/91 here, and
|
|
132
|
+
`golden-natural.jsonl` 50/50 back in #434. So no shipped set exercises the
|
|
133
|
+
name path any more: it is kept for a set added outside this repo, and unit
|
|
134
|
+
tests (`TestNameGradingIsUnchanged`) are the only thing covering it. Don't
|
|
135
|
+
delete it on the strength of the coverage report, and don't claim a shipped
|
|
136
|
+
set still uses it.
|
|
124
137
|
|
|
125
138
|
The floors are fixed absolute values, and the uniform "~10%" margin this file
|
|
126
139
|
claimed from 170d52c0 (2026-07-31) onward was never one of them. They sit under
|
|
127
|
-
their measured values (7.
|
|
140
|
+
their measured values (7.8% / 17.3% / 14.3% / 12.1%), recall@k the tightest —
|
|
128
141
|
loose enough that upstream drift can't flake the build, tight enough to catch a
|
|
129
|
-
collapse, but a 2.
|
|
130
|
-
is worth
|
|
142
|
+
collapse, but a 2.21x spread rather than one number, and the tightest of them
|
|
143
|
+
is worth 6.0 queries of 91. The spread is the design working, not drifting: the
|
|
131
144
|
monthly refresh re-measures the row and deliberately leaves the floors where
|
|
132
145
|
they are, so every refresh that improves a metric widens that metric's margin.
|
|
133
146
|
Floors are re-stated after a refresh, never re-derived — a floor that follows
|
|
@@ -156,6 +169,25 @@ floored recall alone at 0.85 against a measured 0.863 — a buffer of 1.15
|
|
|
156
169
|
queries out of 91 — and applied none of the other three). Moving a pin means
|
|
157
170
|
regenerating the baseline; the file says how.
|
|
158
171
|
|
|
172
|
+
**A pinned golden row couples the set to a corpus, and that is the trade.**
|
|
173
|
+
An `exemplar` is `tap::skill_md`, so a row can only be scored over a corpus
|
|
174
|
+
holding that tap: `prepare_row` raises `SystemExit` on a spec it cannot
|
|
175
|
+
resolve, deliberately, because a silent fall back to name grading turns a typo
|
|
176
|
+
into a quietly weaker gate that still reports a number. Consequences:
|
|
177
|
+
|
|
178
|
+
- **A subset corpus can no longer score `golden.jsonl`.** The six-repo
|
|
179
|
+
comparison figure is historical for this reason, not stale. `taps-scale.txt`
|
|
180
|
+
is fine — it holds every row of `taps.txt` and 129 more, so
|
|
181
|
+
`eval-scale.yml` keeps scoring the same set.
|
|
182
|
+
- **A pin move can invalidate a path.** `eval-corpus-refresh.yml`'s re-baseline
|
|
183
|
+
step is not `continue-on-error`, so a renamed file stops the monthly refresh
|
|
184
|
+
before its pull request opens. That is the intended signal and the fix is to
|
|
185
|
+
re-resolve the path in the new clone — `--worksheet` will not help, because
|
|
186
|
+
it lists rows still graded **by name** and a pinned row is not one.
|
|
187
|
+
- **Do not "fix" it by tolerating an unresolvable spec in a multi-spec list.**
|
|
188
|
+
A refresh that drops a repo would then narrow every such row's class to
|
|
189
|
+
whatever still resolves, which is the same silent weakening one level down.
|
|
190
|
+
|
|
159
191
|
**Baselines are keyed by query set** (`name@content-digest`), so one file holds
|
|
160
192
|
both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
|
|
161
193
|
other. Before that, running the natural-language set printed eight confident
|
|
@@ -122,16 +122,21 @@ dist-check:
|
|
|
122
122
|
# 0.000 passed.
|
|
123
123
|
#
|
|
124
124
|
# The floors are calibrated against a TWENTY-tap corpus, not the six it used to
|
|
125
|
-
# be. Over the six (921 entries) BM25
|
|
126
|
-
# over twenty it scores 0.
|
|
127
|
-
#
|
|
125
|
+
# be. Over the six (921 entries) BM25 scored 0.989 / 0.769 / 0.848 / 0.880;
|
|
126
|
+
# over twenty it scores 0.846 / 0.484 / 0.607 / 0.659, which is what
|
|
127
|
+
# tests/eval/baseline.json records at the current pins. Not the same golden
|
|
128
|
+
# set: the six-repo row is name-graded and HISTORICAL, measured before every
|
|
129
|
+
# row pinned an exemplar, and today's golden.jsonl cannot be scored over six
|
|
130
|
+
# taps at all (a pin naming a tap outside the corpus is a hard error). It is
|
|
131
|
+
# still re-derivable -- `git show e11a34f2:tests/eval/golden.jsonl` over a
|
|
132
|
+
# six-tap corpus reproduces it to three places. The
|
|
128
133
|
# second set is what a real user sees, so flooring against the first was
|
|
129
134
|
# measuring the corpus rather than the retrieval — three of the four old floors
|
|
130
135
|
# fail outright once the corpus is realistic. The four floors sit a margin
|
|
131
|
-
# under their measured values (7.
|
|
132
|
-
# tightest at
|
|
136
|
+
# under their measured values (7.8% / 17.3% / 14.3% / 12.1%), recall@k the
|
|
137
|
+
# tightest at 6.0 queries of 91: loose enough that a query or two cannot flake
|
|
133
138
|
# the build, tight enough that a collapse fails it. That margin is not uniform
|
|
134
|
-
# and never was -- it is a 2.
|
|
139
|
+
# and never was -- it is a 2.21x spread, because the row moves with every
|
|
135
140
|
# monthly refresh and the floors deliberately do not. So it is quoted rather
|
|
136
141
|
# than asserted, and tests/unit/test_corpus_prose.py fails until the new
|
|
137
142
|
# spread is written here. Regression-vs-baseline stays relaxed
|
|
@@ -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.155'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 155)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
|
|
147
147
|
<div class="stats">
|
|
148
148
|
<div class="stat reveal"><b>5</b><span>Evaluation tiers</span></div>
|
|
149
|
-
<div class="stat reveal"><b>0.
|
|
149
|
+
<div class="stat reveal"><b>0.846</b><span>BM25 recall@10 · pinned corpus</span></div>
|
|
150
150
|
<div class="stat reveal"><b>141</b><span>Golden judgments</span></div>
|
|
151
151
|
<div class="stat reveal"><b>0</b><span>Deps in the required gate</span></div>
|
|
152
152
|
</div>
|
|
@@ -326,7 +326,8 @@
|
|
|
326
326
|
regression — it is what users already had, now visible.</p>
|
|
327
327
|
|
|
328
328
|
<h3>2 · The score was also about the shape of the question</h3>
|
|
329
|
-
<p>The keyword golden set
|
|
329
|
+
<p>The keyword golden set was graded <b>by name</b> when these runs were made — both
|
|
330
|
+
shipped sets now pin an exemplar body on every row — and its queries carry the
|
|
330
331
|
vocabulary of the thing they are looking for. That is BM25's home ground. The 50 queries in
|
|
331
332
|
<code>golden-natural.jsonl</code> describe a <em>problem</em> instead — each written
|
|
332
333
|
from its target's own description, with the target's distinctive name tokens deliberately
|
|
@@ -341,7 +342,8 @@
|
|
|
341
342
|
query sets, <code>k=10</code>. <b>Voyage is absent: it needs an API key, and these runs were
|
|
342
343
|
keyless</b>, which is the configuration most users are in.</p>
|
|
343
344
|
|
|
344
|
-
<p><b>Keyword golden set</b> — 91 queries
|
|
345
|
+
<p><b>Keyword golden set</b> — 91 queries, graded by name at the pins these runs
|
|
346
|
+
used; every row pins an exemplar body today:</p>
|
|
345
347
|
<table class="contract">
|
|
346
348
|
<thead><tr><th>engine</th><th>recall@10</th><th>hit@1</th><th>MRR</th><th>nDCG@10</th></tr></thead>
|
|
347
349
|
<tbody>
|
|
@@ -397,8 +399,10 @@
|
|
|
397
399
|
<div class="wrap">
|
|
398
400
|
<span class="eyebrow">Sequence · the required gate</span>
|
|
399
401
|
<h2 class="sec-title">How Tier 1 runs on every PR</h2>
|
|
400
|
-
<p class="lead" style="margin-top:20px">
|
|
401
|
-
repos that hold them must be present
|
|
402
|
+
<p class="lead" style="margin-top:20px">Every golden row pins the <em>body</em> it was
|
|
403
|
+
written about, as <code>tap::skill_md</code>, so the repos that hold them must be present
|
|
404
|
+
— a pin the corpus cannot resolve halts the gate and names the missing spec,
|
|
405
|
+
rather than quietly scoring a smaller set. CI taps a pinned corpus first, builds the BM25 index,
|
|
402
406
|
scores the golden set, and floors recall — all offline after the tap, all deterministic.</p>
|
|
403
407
|
|
|
404
408
|
<div class="diagram">
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: gated-golden-set-has-zero-exemplars
|
|
3
3
|
board: code
|
|
4
|
-
section:
|
|
5
|
-
status:
|
|
4
|
+
section: shipped
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Quality · Retrieval eval
|
|
7
7
|
complexity: M
|
|
8
8
|
impact: Med
|
|
9
9
|
wow: 3
|
|
10
10
|
note: CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…
|
|
11
11
|
order: 214
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
14
|
-
title: The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its
|
|
12
|
+
owner: loop/gated-golden-exemplars
|
|
13
|
+
pr: "994"
|
|
14
|
+
title: The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 44 hit@1 credits are on names the metric cannot adjudicate
|
|
15
15
|
---
|
|
16
16
|
<b>Measured.</b> On the 10,731-entry corpus that committed <code>taps.txt</code> materializes today, <code>tests/eval/golden.jsonl</code> — the only set the required <code>eval</code> gate floors — is 0/91 exemplar-pinned while the ungated <code>golden-natural.jsonl</code> is 50/50; 10 of its 44 hit@1 credits (22.7%) are awarded on a name that resolves to more than one distinct body, and the hit@1 floor's entire headroom is 7.60 queries, smaller than the 10 credits the metric cannot adjudicate.
|
|
17
17
|
|
|
@@ -19,7 +19,7 @@ title: The exemplar mechanism was applied to the ungated set only: golden.jsonl
|
|
|
19
19
|
|
|
20
20
|
<code>cd <repo></code><br>
|
|
21
21
|
<code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
|
|
22
|
-
<code># 0. confirm which corpus you are on (expect
|
|
22
|
+
<code># 0. confirm which corpus you are on (expect 10731)</code><br>
|
|
23
23
|
<code>.venv/bin/python -c "import sys;sys.path.insert(0,'.');from boost_cli.core import catalog;print(len(catalog.all_entries()))"; echo EXIT=$?</code><br>
|
|
24
24
|
<code># 1. exemplar counts per set</code><br>
|
|
25
25
|
<code>python3 -c "</code><br>
|
|
@@ -52,6 +52,16 @@ Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62
|
|
|
52
52
|
|
|
53
53
|
5. NOT A DEFECT IN THE HARNESS: <code>exemplar_worksheet</code> (scripts/eval_retrieval.py:219) and exemplar grading work correctly and fail loudly on a bad pin.
|
|
54
54
|
|
|
55
|
-
<b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge.
|
|
55
|
+
<b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge. 22.7% of its hit@1 credits are awarded on a name that maps to several genuinely different skills, and the floor's whole margin (7.60 queries) is narrower than the un-adjudicated credit count (10). That does not mean retrieval is worse than reported — the realistic shift is 1-2 queries — it means the published margin cannot be read as precision about the intended skill, so anyone tuning blend weights or pool depth against this gate inherits an unquantified slack.
|
|
56
56
|
|
|
57
57
|
<em>Found by an automated audit of retrieval/eval quality, the search & browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
|
|
58
|
+
|
|
59
|
+
<b>Shipped.</b> All 91 rows of <code>tests/eval/golden.jsonl</code> now pin an <code>exemplar</code>, so the required gate grades by content class rather than by name. <code>--worksheet</code> reports 0 rows still name-graded, and <code>prepare_row</code> raises on a spec that resolves to nothing, so a stale pin fails the gate rather than quietly weakening it.
|
|
60
|
+
|
|
61
|
+
<b>The pins are a judgment, so they were made as one.</b> 64 of the 91 rows resolved to a single body and were pinned by lookup. Clustering the remaining 27 rows' candidate bodies mechanically (difflib ratio 0.90) collapsed 7 of them to a single re-publication cluster, pinnable as a list by <code>diff</code> rather than opinion. That left <b>20</b> genuine homonym rows, each judged by an agent under one rule — keep a cluster if a user typing this query would be correctly served by it; two independent implementations of the same job both count; drop only a cluster doing a different job — and each judgment then attacked by two adversarial verifiers, one hunting over-narrow pins and one hunting over-broad. 60 agents, <b>0 of 20 decisions refuted</b>, 19 of 20 at high confidence. Two clusters were dropped: Sentry's <code>brand-guidelines</code> (copy-writing, not a visual brand system) and oh-my-agent's <code>pdf</code> (PDF→Markdown conversion, which cannot fill a form field).
|
|
62
|
+
|
|
63
|
+
<b>What the measurement did, and did not, do.</b> Scored per query against the old set and the new on the same 10,731-entry corpus, <b>exactly 1 of 91 rows changed</b>. The other 90 grade identically under name and content class, which is the honest result: on this corpus the name was already selecting the right body almost everywhere, and the value of pinning is that it can no longer stop doing so silently. The one mover is the set's only two-name row (<code>style an html artifact with a color and font theme</code>, relevant <code>theme-factory</code> + <code>web-artifacts-builder</code>): <code>relevant</code> is documented as names that <em>count as a correct top hit</em> — alternatives — but <code>recall@k</code> over a two-element set scored 0.5 for finding one of them. The four pinned bodies are one class, so it scores 1.0, and the aggregate moved 76.5/91 → 77.0/91. <code>hit@1</code> and <code>MRR</code> are bit-identical.
|
|
64
|
+
|
|
65
|
+
BM25 over the twenty taps: 0.841 / 0.484 / 0.607 / 0.655 → <b>0.846 / 0.484 / 0.607 / 0.659</b>. All four floors still clear, and none was moved — margins are now 7.8% / 17.3% / 14.3% / 12.1%, a 2.21x spread, recall@k binding at 6.0 queries of 91.
|
|
66
|
+
|
|
67
|
+
<b>The cost, recorded rather than discovered later.</b> A pin is <code>tap::skill_md</code>, so the set can only be scored over a corpus holding that tap. The six-repo comparison figure in <code>Makefile</code> is therefore <b>historical</b>, not stale: today's <code>golden.jsonl</code> cannot be scored over six taps at all. It stays re-derivable — <code>git show e11a34f2:tests/eval/golden.jsonl</code> over a six-tap corpus reproduces 0.989 / 0.769 / 0.848 / 0.880 to three places. <code>taps-scale.txt</code> is unaffected: it is a superset of <code>taps.txt</code> (149 rows ⊇ 20), so <code>eval-scale.yml</code> keeps scoring the same set. The real exposure is <code>eval-corpus-refresh.yml</code>, whose re-baseline step is not <code>continue-on-error</code>: a monthly pin move past a renamed file now stops 141 pinned rows instead of 50, and the pull request does not open. That is the intended signal and is written up as a non-obvious rule in <code>CLAUDE.md</code>.
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: required-eval-gate-still-grades-by-name
|
|
3
3
|
board: code
|
|
4
|
-
section:
|
|
5
|
-
status:
|
|
4
|
+
section: shipped
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Tech-debt
|
|
7
7
|
complexity: M
|
|
8
8
|
impact: Med
|
|
9
9
|
wow: 3
|
|
10
10
|
note: CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…
|
|
11
11
|
order: 243
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/gated-golden-exemplars
|
|
13
|
+
pr: "994"
|
|
14
14
|
title: The exemplar migration never reached the query set the required gate runs: 0 of 91 rows, and 27 of them have an ambiguous target on the gate's own corpus
|
|
15
15
|
---
|
|
16
16
|
<b>Measured.</b> Both invocations of the merge-blocking retrieval gate — the Makefile <code>eval</code> target and ci.yml's "retrieval quality gate" step — run <code>scripts/eval_retrieval.py</code> with no <code>--golden</code>, so both take <code>DEFAULT_GOLDEN = tests/eval/golden.jsonl</code>; 0 of that file's 91 rows carry an <code>exemplar</code>, and on the gate's own 20-tap corpus 27 of the 91 rows have at least one target name that resolves to more than one content digest (21 of 77 distinct target names are ambiguous).
|
|
@@ -40,3 +40,11 @@ Floor-margin exposure, with that qualification attached: hit@1 measures 44/91 =
|
|
|
40
40
|
<b>Why it is worth doing.</b> This is the only gate in <code>make check</code> that can fail a merge on retrieval quality, and every retrieval decision validated against it (RRF fusion vs preferring dense, pool depth, whether the LLM rerank earns its keep) inherits the looseness. The project already established the fix and built the harness for it; the required set simply never got migrated, and because the card is closed as shipped nothing tracks the remaining work on the set that matters most.
|
|
41
41
|
|
|
42
42
|
<em>Found by an automated audit of retrieval/eval quality, the search & browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CONFIRMED</b>. No fix is prescribed here — the measurement is the contribution.</em>
|
|
43
|
+
|
|
44
|
+
<b>Shipped, with the card above.</b> This card and <code>gated-golden-set-has-zero-exemplars</code> measured one defect from two angles — 0/91 pinned rows, and 27 of those rows ambiguous on the gate's own corpus — and one change closes both. All 91 rows of <code>tests/eval/golden.jsonl</code> now pin an <code>exemplar</code>; the required gate grades by content class.
|
|
45
|
+
|
|
46
|
+
<b>This card's severity call was right, and the measurement confirms it.</b> The verifier lowered severity from High to Medium on the grounds that most ambiguous names are re-publications of one upstream skill, so a "wrong body" was still a correct answer. That is exactly what the pins found: the 20 judged rows kept 2-4 bodies each and dropped only <b>2</b> clusters in total, and scoring per query showed <b>90 of 91 rows grade identically</b> under name and content class. The looseness was real and worth closing, and it was not inflating the published numbers.
|
|
47
|
+
|
|
48
|
+
The card's own row arithmetic predicted the result before the pins existed: it stated <em>"recall@10 measures 77/91 = 0.846 against a floor needing 71 rows (margin 6 rows)"</em>, counting a row as matched or not. The metric averaged 76.5/91 = 0.841 because the set's one two-name row scored 0.5 for finding one of two documented alternatives. Pinning makes those alternatives one class, so the metric now reads 77/91 = <b>0.846</b> — the card's figure, arrived at independently.
|
|
49
|
+
|
|
50
|
+
<b>What was NOT done, deliberately.</b> No floor was moved. The four floors stay at 0.78 / 0.40 / 0.52 / 0.58 and all four still clear; #993 established in this same file that a floor is restated after a measurement, never re-derived from it. The name-grading path is kept, not deleted — but nothing shipped exercises it any more: <code>golden-natural.jsonl</code> finished migrating in #434 and is 50/50, so with golden.jsonl at 91/91 both shipped sets are fully pinned. It stays for a query set added outside this repo, covered by <code>TestNameGradingIsUnchanged</code> alone.
|
|
@@ -140,9 +140,9 @@
|
|
|
140
140
|
<section class="block reveal">
|
|
141
141
|
<div class="stats">
|
|
142
142
|
<!-- ROADMAP:stats -->
|
|
143
|
-
<div class="stat"><b>
|
|
143
|
+
<div class="stat"><b>27</b><span>Shipped</span></div>
|
|
144
144
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
145
|
-
<div class="stat"><b>
|
|
145
|
+
<div class="stat"><b>74</b><span>Planned</span></div>
|
|
146
146
|
<div class="stat"><b>505</b><span>Loop finds</span></div>
|
|
147
147
|
<!-- /ROADMAP:stats -->
|
|
148
148
|
</div>
|
|
@@ -432,6 +432,30 @@
|
|
|
432
432
|
</div>
|
|
433
433
|
</article>
|
|
434
434
|
|
|
435
|
+
<article class="cap rcard" id="gated-golden-set-has-zero-exemplars">
|
|
436
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
437
|
+
<h3>The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 44 hit@1 credits are on names the metric cannot adjudicate</h3>
|
|
438
|
+
<p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md">Write-up · gated-golden-set-has-zero-exemplars.md</a></p>
|
|
439
|
+
<div class="meta">
|
|
440
|
+
<span class="m">Complexity <b>M</b></span>
|
|
441
|
+
<span class="m">Impact <b>Med</b></span>
|
|
442
|
+
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
443
|
+
<span class="m">CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…</span>
|
|
444
|
+
</div>
|
|
445
|
+
</article>
|
|
446
|
+
|
|
447
|
+
<article class="cap rcard" id="required-eval-gate-still-grades-by-name">
|
|
448
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Tech-debt</span></div>
|
|
449
|
+
<h3>The exemplar migration never reached the query set the required gate runs: 0 of 91 rows, and 27 of them have an ambiguous target on the gate's own corpus</h3>
|
|
450
|
+
<p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/required-eval-gate-still-grades-by-name.md">Write-up · required-eval-gate-still-grades-by-name.md</a></p>
|
|
451
|
+
<div class="meta">
|
|
452
|
+
<span class="m">Complexity <b>M</b></span>
|
|
453
|
+
<span class="m">Impact <b>Med</b></span>
|
|
454
|
+
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
455
|
+
<span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
|
|
456
|
+
</div>
|
|
457
|
+
</article>
|
|
458
|
+
|
|
435
459
|
<article class="cap rcard" id="install-cannot-tell-a-skill-needs-another-one">
|
|
436
460
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Install · Research</span></div>
|
|
437
461
|
<h3>Research: how <code>boost install</code> could tell that a skill needs something else installed first</h3>
|
|
@@ -1256,59 +1280,6 @@ NOT ALREADY CARDED, but read the existing card first.
|
|
|
1256
1280
|
</div>
|
|
1257
1281
|
</article>
|
|
1258
1282
|
|
|
1259
|
-
<article class="cap rcard" id="gated-golden-set-has-zero-exemplars">
|
|
1260
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1261
|
-
<h3>The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 43 hit@1 credits are on names the metric cannot adjudicate</h3>
|
|
1262
|
-
<p><b>Measured.</b> On the 10,731-entry corpus that committed <code>taps.txt</code> materializes today, <code>tests/eval/golden.jsonl</code> — the only set the required <code>eval</code> gate floors — is 0/91 exemplar-pinned while the ungated <code>golden-natural.jsonl</code> is 50/50; 10 of its 44 hit@1 credits (22.7%) are awarded on a name that resolves to more than one distinct body, and the hit@1 floor's entire headroom is 7.60 queries, smaller than the 10 credits the metric cannot adjudicate.
|
|
1263
|
-
|
|
1264
|
-
<b>Reproduce it.</b>
|
|
1265
|
-
|
|
1266
|
-
<code>cd <repo></code><br>
|
|
1267
|
-
<code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
|
|
1268
|
-
<code># 0. confirm which corpus you are on (expect 10152)</code><br>
|
|
1269
|
-
<code>.venv/bin/python -c "import sys;sys.path.insert(0,'.');from boost_cli.core import catalog;print(len(catalog.all_entries()))"; echo EXIT=$?</code><br>
|
|
1270
|
-
<code># 1. exemplar counts per set</code><br>
|
|
1271
|
-
<code>python3 -c "</code><br>
|
|
1272
|
-
<code>import json</code><br>
|
|
1273
|
-
<code>for f in ['tests/eval/golden.jsonl','tests/eval/golden-natural.jsonl']:</code><br>
|
|
1274
|
-
<code> r=[json.loads(l) for l in open(f) if l.strip() and not l.startswith('#')]</code><br>
|
|
1275
|
-
<code> print(f,'rows:',len(r),'with exemplar:',sum(1 for x in r if x.get('exemplar')))"; echo EXIT=$?</code><br>
|
|
1276
|
-
<code># 2. the harness's own list of undecided gated rows</code><br>
|
|
1277
|
-
…
|
|
1278
|
-
|
|
1279
|
-
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
1280
|
-
|
|
1281
|
-
The defect is real and the spine is exact, but five figures are stale by one corpus refresh. The finding measured on the 10,152-entry corpus CLAUDE.md documents; committed <code>tests/eval/taps.txt</code> moved on 2026-09-01 (cbc0a58b) and now materializes 10,731 entries, which is what <code>make eval</code>/CI builds today. Corrected values, all measured by me on that corpus:
|
|
1282
|
-
|
|
1283
|
-
- hit@1 credits: 43/91 = 0.473 -> <b>44/91 = 0.484</b> - un-adjudicated share of credits: 23.3% -> <b>22.7%</b> (the count stays <b>10</b>) - floor headroom: 6.60 queries -> <b>7.60 queries</b> - worst-case bound stripping all 10: 33/91 = 0.363 -> <b>34/91 = 0.374</b> (still below the 0.400 floor) - BM25 four-metric line: 0.852 / 0.473 / 0.605 / 0.657 -> <b>0.841 / 0.484 / 0.607 / 0.655</b>
|
|
1284
|
-
|
|
1285
|
-
The finding's numbers are correct for the corpus it names and it disclosed the provenance honestly; they are nonetheless the wrong numbers to print about "the set the required eval gate floors", because the gate no longer builds that corpus. A card must publish the 10,731 figures and name the corpus.
|
|
1286
|
-
|
|
1287
|
-
Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62 candidate bodies, the same 10 names and 10 queries, the skill-creator worked example, the not-carded check, and the "realistic shift is 1-2 queries, the floor still passes" bound all hold on BOTH corpora.
|
|
1288
|
-
|
|
1289
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1290
|
-
|
|
1291
|
-
1. WHAT IS CORPUS-INDEPENDENT (identical on 10,152 and 10,731): exemplar counts 0/91 and 50/50; 27 undecided worksheet rows over 62 candidate bodies; the same 10 ambiguous-credit names and the same 10 queries; the skill-creator example. Only the credit count and the two ratios moved. Build the card on the invariant half and quote the 10,731 figures for the rest.
|
|
1292
|
-
|
|
1293
|
-
2. TRAP FOR THE NEXT VERIFIER: the shared read-only <code>$TMPDIR/eval-home</code> is a PRE-REFRESH corpus — its <code>.eval-corpus-ready</code> sentinel digest does not match <code>sha256(tests/eval/taps.txt)</code>, and 10 of its 20 clones sit at a different commit. Anyone who measures only there reproduces the finding's old numbers verbatim and marks it CONFIRMED without noticing. Rebuilding at the committed pins in a disposable HOME took ~3 minutes and is what produced the correction.
|
|
1294
|
-
|
|
1295
|
-
3. DO NOT COPY Makefile:126, which still comments "over twenty it scores 0.863 / 0.473 / 0.607 / 0.662". That matches neither corpus (10,152 gives 0.852/0.473/0.605/0.657; 10,731 gives 0.841/0.484/0.607/0.655). CLAUDE.md:67's figures are right for the old corpus and now also stale.
|
|
1296
|
-
|
|
1297
|
-
4. SCOPE OF MY REPRO: I verified the BM25 engine only (<code>--engines bm25</code>), which is what the gate floors; I did not build a dense store (impossible here). I did not run <code>make eval</code> end to end, only its second command against a corpus I materialised with its first.
|
|
1298
|
-
|
|
1299
|
-
5. NOT A DEFECT IN THE HARNESS: <code>exemplar_worksheet</code> (scripts/eval_retrieval.py:219) and exemplar grading work correctly and fail loudly on a bad pin.
|
|
1300
|
-
|
|
1301
|
-
<b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge. 23.3% of its hit@1 credits are awarded on a name that maps to several genuinely different skills, and the floor's whole margin (6.60 queries) is narrower than the un-adjudicated credit count (10). That does not mean retrieval is worse than reported — the realistic shift is 1-2 queries — it means the published margin cannot be read as precision about the intended skill, so anyone tuning blend weights or pool depth against this gate inherits an unquantified slack.
|
|
1302
|
-
|
|
1303
|
-
<em>Found by an automated audit of retrieval/eval quality, the search & browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
|
|
1304
|
-
<div class="meta">
|
|
1305
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1306
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1307
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1308
|
-
<span class="m">CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…</span>
|
|
1309
|
-
</div>
|
|
1310
|
-
</article>
|
|
1311
|
-
|
|
1312
1283
|
<article class="cap rcard" id="info-deps-materialize-a-dir-they-then-reject">
|
|
1313
1284
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
|
|
1314
1285
|
<h3><code>boost info</code>/<code>deps</code> on a not-installed rule or workflow widens the tap's sparse cone for a directory <code>source_dir_for</code> immediately rejects</h3>
|
|
@@ -1633,44 +1604,6 @@ Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62
|
|
|
1633
1604
|
</div>
|
|
1634
1605
|
</article>
|
|
1635
1606
|
|
|
1636
|
-
<article class="cap rcard" id="required-eval-gate-still-grades-by-name">
|
|
1637
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
|
|
1638
|
-
<h3>The exemplar migration never reached the query set the required gate runs: 0 of 91 rows, and 27 of them have an ambiguous target on the gate's own corpus</h3>
|
|
1639
|
-
<p><b>Measured.</b> Both invocations of the merge-blocking retrieval gate — the Makefile <code>eval</code> target and ci.yml's "retrieval quality gate" step — run <code>scripts/eval_retrieval.py</code> with no <code>--golden</code>, so both take <code>DEFAULT_GOLDEN = tests/eval/golden.jsonl</code>; 0 of that file's 91 rows carry an <code>exemplar</code>, and on the gate's own 20-tap corpus 27 of the 91 rows have at least one target name that resolves to more than one content digest (21 of 77 distinct target names are ambiguous).
|
|
1640
|
-
|
|
1641
|
-
<b>Reproduce it.</b>
|
|
1642
|
-
|
|
1643
|
-
<code>cd <repo></code><br>
|
|
1644
|
-
<code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
|
|
1645
|
-
<code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden-natural.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
|
|
1646
|
-
<code>grep -n 'DEFAULT_GOLDEN' scripts/eval_retrieval.py</code><br>
|
|
1647
|
-
<code>sed -n '134,139p' Makefile</code><br>
|
|
1648
|
-
<code>sed -n '269,279p' .github/workflows/ci.yml</code><br>
|
|
1649
|
-
<code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
|
|
1650
|
-
<code>python3 -c "</code><br>
|
|
1651
|
-
<code>import json,glob,collections,os</code><br>
|
|
1652
|
-
<code>n2c=collections.defaultdict(set)</code><br>
|
|
1653
|
-
…
|
|
1654
|
-
|
|
1655
|
-
<b>Verification found nothing to correct.</b> Every number, <code>file:line</code> and command output above was independently re-derived and matched exactly.
|
|
1656
|
-
|
|
1657
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1658
|
-
|
|
1659
|
-
Severity lowered from the claim's High to Medium on a measurement the claim did not make. I inspected the bodies behind the ambiguous names and they are two different things. Genuine homonyms exist — <code>brand-guidelines</code> is Anthropic brand colors vs OpenAI brand colors vs Sentry *copy writing* (three different jobs), and <code>pdf</code> is a general PDF skill vs a workflow that converts PDF to Markdown with one specific tool — but they are a minority, and neither appears among the rank-1 hits. The names that actually score hit@1 through an ambiguous target (skill-creator, slack-gif-creator, theme-factory, prompt-engineering, mcp-builder) are re-publications of one upstream skill across anthropics/skills, composio-community/awesome-codex-skills and sickn33/antigravity-awesome-skills, differing by a few bytes. A "wrong body" there is still a correct answer to the user, so the looseness is much smaller in practice than in principle. I did not adopt the shipped card's "the looseness was latent" finding as a reason: that was measured at hit@1 0.160, where there was nothing for ambiguity to inflate, whereas this set measures 0.484 — a different regime, so it does not transfer.
|
|
1660
|
-
|
|
1661
|
-
Floor-margin exposure, with that qualification attached: hit@1 measures 44/91 = 0.484 against a floor needing 37 rows (margin 7 rows) with 10 rank-1 hits landing on an ambiguous name; recall@10 measures 77/91 = 0.846 against a floor needing 71 rows (margin 6 rows) with 20 rows matched only via ambiguous names.
|
|
1662
|
-
|
|
1663
|
-
<b>Why it is worth doing.</b> This is the only gate in <code>make check</code> that can fail a merge on retrieval quality, and every retrieval decision validated against it (RRF fusion vs preferring dense, pool depth, whether the LLM rerank earns its keep) inherits the looseness. The project already established the fix and built the harness for it; the required set simply never got migrated, and because the card is closed as shipped nothing tracks the remaining work on the set that matters most.
|
|
1664
|
-
|
|
1665
|
-
<em>Found by an automated audit of retrieval/eval quality, the search & browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CONFIRMED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
|
|
1666
|
-
<div class="meta">
|
|
1667
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1668
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1669
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1670
|
-
<span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
|
|
1671
|
-
</div>
|
|
1672
|
-
</article>
|
|
1673
|
-
|
|
1674
1607
|
<article class="cap rcard" id="stale-tap-hint-dead-for-tap-only-installs">
|
|
1675
1608
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Tech-debt</span></div>
|
|
1676
1609
|
<h3>The "taps last refreshed N days ago" hint can never fire on a machine that tapped and never ran <code>boost update</code> — the only writer of the marker is <code>update</code> itself</h3>
|
|
@@ -181,7 +181,10 @@ MAX_CONTENT_SHARE = 0.40
|
|
|
181
181
|
# taps-scale.txt is generated, and its generator owns its header.
|
|
182
182
|
SIZE_START = "# --- corpus size: written from the rows below by eval_corpus.py ---"
|
|
183
183
|
SIZE_END = "# --- end corpus size ---"
|
|
184
|
-
# The rows above this line
|
|
184
|
+
# The rows above this line are the six the name-graded floors were first
|
|
185
|
+
# measured on. They are NOT "every golden target" any more: both shipped
|
|
186
|
+
# query sets pin exemplars below the divider too, so the label written from
|
|
187
|
+
# it says "six-repo set", not "targets". taps.txt says why at length.
|
|
185
188
|
SCALE_DIVIDER = "# --- scale"
|
|
186
189
|
|
|
187
190
|
|
|
@@ -348,8 +351,10 @@ def size_lines(text: str) -> list[str]:
|
|
|
348
351
|
head, divider, _tail = text.partition("\n" + SCALE_DIVIDER)
|
|
349
352
|
if divider:
|
|
350
353
|
targets = [n for _r, _s, n in parse_taps(head) if n is not None]
|
|
351
|
-
lines.append("#
|
|
352
|
-
|
|
354
|
+
lines.append("# sixrepo: %s entries in the %d repos above the scale"
|
|
355
|
+
% (f"{sum(targets):,}", len(targets)))
|
|
356
|
+
lines.append("# divider -- a historical baseline, not a "
|
|
357
|
+
"subset that scores")
|
|
353
358
|
# strict=False: a list of one repo has a largest and no runner-up.
|
|
354
359
|
labels = ("largest:", "next: ")
|
|
355
360
|
for label, (repo, count, share) in zip(labels, ranked, strict=False):
|
|
@@ -140,8 +140,13 @@ METRICS: dict[str, Callable[[Sequence[str], set, int], float]] = {
|
|
|
140
140
|
# punish a correct answer for arriving from a mirror), while a different skill
|
|
141
141
|
# sharing the name does not.
|
|
142
142
|
#
|
|
143
|
-
# Rows without an exemplar still decide RELEVANCE by name,
|
|
144
|
-
# migrate a row at a time.
|
|
143
|
+
# Rows without an exemplar still decide RELEVANCE by name, which is what let
|
|
144
|
+
# the sets migrate a row at a time. Both shipped sets have now finished --
|
|
145
|
+
# `golden.jsonl` 91/91, `golden-natural.jsonl` 50/50 since #434 -- so NO
|
|
146
|
+
# shipped set exercises this path. It is kept for a set added outside this
|
|
147
|
+
# repo and is covered only by unit tests; treat a coverage report that calls
|
|
148
|
+
# it dead as a statement about the shipped sets, not about the contract.
|
|
149
|
+
# What is no longer name-keyed is IDENTITY: the ranked
|
|
145
150
|
# list de-duplicates on the content hash for every row, exemplar or not. Keying
|
|
146
151
|
# both on the name collapsed 13 different `code-reviewer`s into one rank slot
|
|
147
152
|
# and inflated recall@10 by about one query (0.863 -> 0.852 over the pinned
|
|
@@ -366,6 +371,16 @@ def evaluate(rows: list[dict], ranker: Ranker, k: int) -> tuple[list[dict], dict
|
|
|
366
371
|
|
|
367
372
|
|
|
368
373
|
def _aggregate(per_case: list[dict]) -> dict:
|
|
374
|
+
"""Overall metrics, plus an INDICATIVE slice per item kind.
|
|
375
|
+
|
|
376
|
+
A row's `kind` is its PRIMARY target's kind, and an exemplar row's
|
|
377
|
+
relevant set is a content class, which can span kinds: golden.jsonl's
|
|
378
|
+
Docker and Flutter rows each pin an `agents/*.md` workflow together with
|
|
379
|
+
a `SKILL.md` that answers the same question, so the `workflow` slice can
|
|
380
|
+
be credited for retrieving the skill. That is correct grading and a fuzzy
|
|
381
|
+
slice -- read `by_kind` as "how the gate does on questions shaped like
|
|
382
|
+
this", not as a per-kind guarantee. Only `overall` is floored.
|
|
383
|
+
"""
|
|
369
384
|
overall = {m: _mean(c["scores"][m] for c in per_case) for m in METRICS}
|
|
370
385
|
by_kind: dict[str, dict] = {}
|
|
371
386
|
for kind in KINDS:
|
|
@@ -1,23 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sets": {
|
|
3
|
-
"golden.jsonl@a0617183f8c9": {
|
|
4
|
-
"k": 10,
|
|
5
|
-
"golden": "golden.jsonl",
|
|
6
|
-
"engines": {
|
|
7
|
-
"catalog.search": {
|
|
8
|
-
"recall@k": 0.7307692307692307,
|
|
9
|
-
"hit@1": 0.46153846153846156,
|
|
10
|
-
"MRR": 0.561042281984482,
|
|
11
|
-
"nDCG@k": 0.5927377504239227
|
|
12
|
-
},
|
|
13
|
-
"BM25 full-content": {
|
|
14
|
-
"recall@k": 0.8406593406593407,
|
|
15
|
-
"hit@1": 0.4835164835164835,
|
|
16
|
-
"MRR": 0.6065168803770766,
|
|
17
|
-
"nDCG@k": 0.6552333001662786
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
3
|
"golden-natural.jsonl@0d91b0cd8e41": {
|
|
22
4
|
"k": 10,
|
|
23
5
|
"golden": "golden-natural.jsonl",
|
|
@@ -35,6 +17,24 @@
|
|
|
35
17
|
"nDCG@k": 0.2591292012176286
|
|
36
18
|
}
|
|
37
19
|
}
|
|
20
|
+
},
|
|
21
|
+
"golden.jsonl@d49143dc71a0": {
|
|
22
|
+
"k": 10,
|
|
23
|
+
"golden": "golden.jsonl",
|
|
24
|
+
"engines": {
|
|
25
|
+
"catalog.search": {
|
|
26
|
+
"recall@k": 0.7362637362637363,
|
|
27
|
+
"hit@1": 0.46153846153846156,
|
|
28
|
+
"MRR": 0.5608885895230973,
|
|
29
|
+
"nDCG@k": 0.596988880173753
|
|
30
|
+
},
|
|
31
|
+
"BM25 full-content": {
|
|
32
|
+
"recall@k": 0.8461538461538461,
|
|
33
|
+
"hit@1": 0.4835164835164835,
|
|
34
|
+
"MRR": 0.6065168803770766,
|
|
35
|
+
"nDCG@k": 0.6594844299161087
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|