boost-skill-cli 1.2.152__tar.gz → 1.2.154__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.152 → boost_skill_cli-1.2.154}/CLAUDE.md +64 -17
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/Makefile +16 -6
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/eval.html +9 -5
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +11 -5
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +1 -1
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +17 -7
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +12 -4
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap.html +38 -144
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_corpus.py +8 -3
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_retrieval.py +17 -2
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/baseline.json +18 -18
- boost_skill_cli-1.2.154/tests/eval/golden.jsonl +110 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/taps.txt +29 -14
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_corpus_prose.py +215 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_corpus.py +17 -7
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_grading.py +109 -29
- boost_skill_cli-1.2.152/tests/eval/golden.jsonl +0 -102
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.gitattributes +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.gitignore +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/.vale.ini +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/DCO +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/LICENSE +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/compact.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/jsonstate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/prereq.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/codecov.yml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/index.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/examples/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/index.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/noxfile.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/setup.cfg +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/style/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/style/boost.css +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/style/boost.js +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/style/demo.html +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks_codex.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_identifier_columns.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_keyed_no_store_hint.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_canary_deps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_catalog_distinct.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_claude_settings_codex.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_coverage_gate_prose.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_model_unavailable.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_dry_run_parity.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_embed_outranking.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_corpus_bodies.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_query_sets.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_first_run_pointer.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_help_contracts.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_hookhost_codex.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_jsonstate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_lighthouse_budgets.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_output_table_drop.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_output_table_whole.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_prereq.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_quickstart_readiness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rag_extra_hint.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_read_text_arg.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_repo_root_guard.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_sdist_contents.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shards_carry_forward.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_upstream_path.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.152 → boost_skill_cli-1.2.154}/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,13 +125,34 @@ 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
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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.
|
|
137
|
+
|
|
138
|
+
The floors are fixed absolute values, and the uniform "~10%" margin this file
|
|
139
|
+
claimed from 170d52c0 (2026-07-31) onward was never one of them. They sit under
|
|
140
|
+
their measured values (7.8% / 17.3% / 14.3% / 12.1%), recall@k the tightest —
|
|
141
|
+
loose enough that upstream drift can't flake the build, tight enough to catch a
|
|
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
|
|
144
|
+
monthly refresh re-measures the row and deliberately leaves the floors where
|
|
145
|
+
they are, so every refresh that improves a metric widens that metric's margin.
|
|
146
|
+
Floors are re-stated after a refresh, never re-derived — a floor that follows
|
|
147
|
+
its own measurement ratchets down with the corpus and ends up measuring the
|
|
148
|
+
corpus. `test_corpus_prose.py` holds every margin above to `baseline.json`, to
|
|
149
|
+
`golden.jsonl` and to the argv of the `Makefile`'s own `eval` recipe — read
|
|
150
|
+
through `eval_retrieval.build_parser()` rather than matched, because the
|
|
151
|
+
tightest floor is `--fail-under` and not a `--floor`, and because a tab-indented
|
|
152
|
+
comment is argv to a regex and a no-op to make. So a refresh that moves the row
|
|
153
|
+
fails the build until someone writes the new margin down and looks at it.
|
|
154
|
+
Regression-vs-baseline stays relaxed (`--regression-eps 1`), so the absolute
|
|
155
|
+
floors are the real gate.
|
|
128
156
|
|
|
129
157
|
**Every row of `taps.txt` pins a commit SHA**, and `scripts/eval_corpus.py`
|
|
130
158
|
checks each clone out at it — most of the corpus is one third-party repo, so an
|
|
@@ -141,6 +169,25 @@ floored recall alone at 0.85 against a measured 0.863 — a buffer of 1.15
|
|
|
141
169
|
queries out of 91 — and applied none of the other three). Moving a pin means
|
|
142
170
|
regenerating the baseline; the file says how.
|
|
143
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
|
+
|
|
144
191
|
**Baselines are keyed by query set** (`name@content-digest`), so one file holds
|
|
145
192
|
both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
|
|
146
193
|
other. Before that, running the natural-language set printed eight confident
|
|
@@ -122,14 +122,24 @@ 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
|
-
# fail outright once the corpus is realistic.
|
|
131
|
-
#
|
|
132
|
-
#
|
|
135
|
+
# fail outright once the corpus is realistic. The four floors sit a margin
|
|
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
|
|
138
|
+
# the build, tight enough that a collapse fails it. That margin is not uniform
|
|
139
|
+
# and never was -- it is a 2.21x spread, because the row moves with every
|
|
140
|
+
# monthly refresh and the floors deliberately do not. So it is quoted rather
|
|
141
|
+
# than asserted, and tests/unit/test_corpus_prose.py fails until the new
|
|
142
|
+
# spread is written here. Regression-vs-baseline stays relaxed
|
|
133
143
|
# (--regression-eps 1); the absolute floors are the real gate. (It was relaxed
|
|
134
144
|
# while the corpus tracked upstream HEAD. tests/eval/taps.txt pins a commit per
|
|
135
145
|
# row now, so that is no longer the reason.)
|
|
@@ -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.154'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 154)
|
|
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,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: eval-floor-calibration-stale-after-pin-refresh
|
|
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 states the gate's four floors sit "~10% under" measured values of 0.852 / 0…
|
|
11
11
|
order: 210
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/eval-floor-calibration
|
|
13
|
+
pr: "993"
|
|
14
14
|
title: The 2026-09-01 pin refresh moved the corpus and re-baselined it, but nothing re-derives the floors — CLAUDE.md's "~10% under measured" is now 7.2%–17.3%
|
|
15
15
|
---
|
|
16
16
|
<b>Measured.</b> The required gate's recall floor has 5.52 queries of headroom out of 91 ((0.8407 - 0.78) x 91), against the 6.55 that CLAUDE.md's published 0.852 implies — one golden query of margin the documentation says exists and does not, because commit cbc0a58b re-baselined the corpus to 10,731 entries and left CLAUDE.md, taps.txt and eval_corpus.py all stating 10,152 / 0.852.
|
|
@@ -32,7 +32,7 @@ title: The 2026-09-01 pin refresh moved the corpus and re-baselined it, but noth
|
|
|
32
32
|
|
|
33
33
|
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
34
34
|
|
|
35
|
-
1. CAUSAL FRAMING IS WRONG (the headline correction). The title and claim say the 2026-09-01 pin refresh is what made "~10% under" untrue. It was untrue the day it was written. <code>git log -S'~10% under'</code> traces the sentence to 170d52c0 (2026-07-31), whose own commit message says the floors were "re-derived against the 20-tap numbers at the same ~10% relative headroom" against measured 0.863 / 0.473 / 0.607 / 0.662 — at which point the gaps were 9.6% / 15.
|
|
35
|
+
1. CAUSAL FRAMING IS WRONG (the headline correction). The title and claim say the 2026-09-01 pin refresh is what made "~10% under" untrue. It was untrue the day it was written. <code>git log -S'~10% under'</code> traces the sentence to 170d52c0 (2026-07-31), whose own commit message says the floors were "re-derived against the 20-tap numbers at the same ~10% relative headroom" against measured 0.863 / 0.473 / 0.607 / 0.662 — at which point the gaps were 9.6% / 15.3% / 14.4% / 12.4%, a 1.60x spread. (This line first read 9.6% / 15.4% / 14.3% / 12.4%; recomputing from 170d52c0's own <code>baseline.json</code> and <code>Makefile</code> gives 9.5796 / 15.3488 / 14.3831 / 12.4408, so two digits were transposed.) The spread widened twice and by two different mechanisms, only one of which is a refresh: 1.60x at 170d52c0, 1.82x at d8da2e71 — <em>de-duplicate the ranked list by body, not by name</em>, a ranker correctness fix (#411) — and 2.39x at the 2026-09-01 refresh cbc0a58b. Correct statement: "the floors were never uniformly ~10% under, and nothing since has narrowed the spread."
|
|
36
36
|
|
|
37
37
|
2. "not the 6.60 the documented number implies" — 6.60 matches nothing. CLAUDE.md's published 0.852 gives (0.852-0.78) x 91 = 6.55 queries; the unrounded pre-refresh baseline 0.8406... gives 6.52. Use 6.55. (The optimism is therefore ~1.03 queries, not 1.1.)
|
|
38
38
|
|
|
@@ -53,3 +53,9 @@ SCOPE LIMIT #2: the shared $TMPDIR/eval-home is materialised at the PRE-refresh
|
|
|
53
53
|
<b>Why it is worth doing.</b> The "~10% under" statement is the entire published justification for where the four floors sit — CLAUDE.md calls it "loose enough that upstream drift can't flake the build, tight enough to catch a collapse." That is a claim about a margin, and the margin now differs 2.4x across the four metrics with recall the tightest at 5.52 queries out of 91. Because the monthly refresh re-baselines but never re-derives or re-states the floors, and prompts a human only when the refreshed corpus FAILS, every future passing refresh decays the calibration further with no signal at all.
|
|
54
54
|
|
|
55
55
|
<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>
|
|
56
|
+
|
|
57
|
+
<b>What the fix turned out to be, and what the card got wrong about scope.</b> Half of this card was already fixed when it was picked up. The figure half — "CLAUDE.md, taps.txt and eval_corpus.py all stating 10,152 / 0.852" — is stale: <code>tests/unit/test_corpus_prose.py</code> now holds every one of those figures to <code>taps.txt</code>'s own rows and to <code>baseline.json</code>, so CLAUDE.md reads 10,731 and 0.841 / 0.484 / 0.607 / 0.655 and cannot drift again. The card's line references (CLAUDE.md:67,84) no longer point at anything. What survived is the card's own stated core, and it is the harder half: the <em>characterisation</em> "~10% under" was prose, was false the day it was written, and no mechanism touched it.
|
|
58
|
+
|
|
59
|
+
<b>The remedy is the card's own, not the one the finding's wording invites.</b> No floor moves and no headroom gate is added — a floor that follows its own measurement ends up measuring the corpus, which is exactly what 170d52c0 warned about. Instead the true margin is written down at measured precision (7.2% / 17.3% / 14.3% / 11.5%, a 2.39x spread, recall@k binding at 5.5 queries of 91) and held by the <code>QUOTED</code> mechanism that already holds the figures beside it. A refresh that moves the row now fails the build until a human restates the margin and looks at it — which is the signal the card says is missing, without touching the gate it says not to touch.
|
|
60
|
+
|
|
61
|
+
<b>Why the required set drifted and the advisory set did not.</b> The contrast is the tell. <code>make eval-natural</code>'s floors really are ~10% under (11.1 / 12.5 / 11.4 / 11.2, a 1.12x spread) because <code>tests/unit/test_eval_corpus.py</code> moves them with the row in both directions. The required set, where the claim actually matters, had no such mechanism — so the one place the margin was load-bearing is the one place nothing checked it.
|
|
@@ -52,6 +52,6 @@ WHY Med, NOT High — two facts I verified that cap the blast radius: 1. CI cann
|
|
|
52
52
|
|
|
53
53
|
SCOPE LIMITS OF MY REPRO — a card author must not blur these: - I measured the FULLY-missing case. The "half-materialised tap tree" phrasing in <code>why_it_matters</code> was NOT measured by me; degradation is presumably proportional but is unverified.
|
|
54
54
|
|
|
55
|
-
<b>Why it is worth doing.</b> The gate whose whole job is to say "retrieval still works over a real corpus" returns a confident, better-than-baseline PASS over a corpus that is name+description only — 95% of its text absent. A developer who reclaims the 265 MB <code>repos/</code> tree, or whose tap tree is half-materialised, gets four green floors that attest to nothing, and the greener number makes the loss look like an improvement rather than a defect. Every downstream floor calibration
|
|
55
|
+
<b>Why it is worth doing.</b> The gate whose whole job is to say "retrieval still works over a real corpus" returns a confident, better-than-baseline PASS over a corpus that is name+description only — 95% of its text absent. A developer who reclaims the 265 MB <code>repos/</code> tree, or whose tap tree is half-materialised, gets four green floors that attest to nothing, and the greener number makes the loss look like an improvement rather than a defect. Every downstream floor calibration is stated against 0.473/0.605/0.657, which the body-less run clears by 48%/33%/25% instead. (This line quoted CLAUDE.md's "each floor sits ~10% under its measured value" as the live convention. That sentence was retired in PR #993: the margins were never uniform — 7.2% / 17.3% / 14.3% / 11.5% at the current pins — and CLAUDE.md now quotes all four and holds them.)
|
|
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>
|
|
@@ -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>
|
|
@@ -420,6 +420,42 @@
|
|
|
420
420
|
</div>
|
|
421
421
|
</article>
|
|
422
422
|
|
|
423
|
+
<article class="cap rcard" id="eval-floor-calibration-stale-after-pin-refresh">
|
|
424
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
425
|
+
<h3>The 2026-09-01 pin refresh moved the corpus and re-baselined it, but nothing re-derives the floors — CLAUDE.md's "~10% under measured" is now 7.2%–17.3%</h3>
|
|
426
|
+
<p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md">Write-up · eval-floor-calibration-stale-after-pin-refresh.md</a></p>
|
|
427
|
+
<div class="meta">
|
|
428
|
+
<span class="m">Complexity <b>M</b></span>
|
|
429
|
+
<span class="m">Impact <b>Med</b></span>
|
|
430
|
+
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
431
|
+
<span class="m">CLAUDE.md states the gate's four floors sit "~10% under" measured values of 0.852 / 0…</span>
|
|
432
|
+
</div>
|
|
433
|
+
</article>
|
|
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
|
+
|
|
423
459
|
<article class="cap rcard" id="install-cannot-tell-a-skill-needs-another-one">
|
|
424
460
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Install · Research</span></div>
|
|
425
461
|
<h3>Research: how <code>boost install</code> could tell that a skill needs something else installed first</h3>
|
|
@@ -1208,57 +1244,6 @@ NOT ALREADY CARDED, but read the existing card first.
|
|
|
1208
1244
|
</div>
|
|
1209
1245
|
</article>
|
|
1210
1246
|
|
|
1211
|
-
<article class="cap rcard" id="eval-floor-calibration-stale-after-pin-refresh">
|
|
1212
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1213
|
-
<h3>The 2026-09-01 pin refresh moved the corpus and re-baselined it, but nothing re-derives the floors — CLAUDE.md's "~10% under measured" is now 7.2%–17.3%</h3>
|
|
1214
|
-
<p><b>Measured.</b> The required gate's recall floor has 5.52 queries of headroom out of 91 ((0.8407 - 0.78) x 91), against the 6.55 that CLAUDE.md's published 0.852 implies — one golden query of margin the documentation says exists and does not, because commit cbc0a58b re-baselined the corpus to 10,731 entries and left CLAUDE.md, taps.txt and eval_corpus.py all stating 10,152 / 0.852.
|
|
1215
|
-
|
|
1216
|
-
<b>Reproduce it.</b>
|
|
1217
|
-
|
|
1218
|
-
<code>cd <repo></code><br>
|
|
1219
|
-
<code># 1. the refresh commit moved pins + baseline and nothing else</code><br>
|
|
1220
|
-
<code>git show cbc0a58b --stat --format='%h %ad %s' --date=short</code><br>
|
|
1221
|
-
<code>git show cbc0a58b -- tests/eval/baseline.json | grep -E '^[-+].*(recall|hit@1|MRR|nDCG)'</code><br>
|
|
1222
|
-
<code># 2. what taps.txt records NOW vs what the docs claim</code><br>
|
|
1223
|
-
<code>awk '!/^#/ && NF>=3 {s+=$3; n++} END {print "rows:", n, " recorded total entries:", s}' tests/eval/taps.txt</code><br>
|
|
1224
|
-
<code>grep -n '10,152\|0\.852' CLAUDE.md tests/eval/taps.txt scripts/eval_corpus.py</code><br>
|
|
1225
|
-
<code># 3. recompute the floor gaps against the committed post-refresh baseline</code><br>
|
|
1226
|
-
<code>python3 -c "</code><br>
|
|
1227
|
-
<code>import json</code><br>
|
|
1228
|
-
<code>b=json.load(open('tests/eval/baseline.json'))['sets']['golden.jsonl@a0617183f8c9']['engines']['BM25 full-content']</code><br>
|
|
1229
|
-
…
|
|
1230
|
-
|
|
1231
|
-
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
1232
|
-
|
|
1233
|
-
1. CAUSAL FRAMING IS WRONG (the headline correction). The title and claim say the 2026-09-01 pin refresh is what made "~10% under" untrue. It was untrue the day it was written. <code>git log -S'~10% under'</code> traces the sentence to 170d52c0 (2026-07-31), whose own commit message says the floors were "re-derived against the 20-tap numbers at the same ~10% relative headroom" against measured 0.863 / 0.473 / 0.607 / 0.662 — at which point the gaps were 9.6% / 15.4% / 14.3% / 12.4%, a 1.60x spread. The refresh WIDENED a spread (1.60x -> 1.82x -> 2.39x); it did not create one. Correct statement: "the floors were never uniformly ~10% under, and the refresh widened the spread from 1.82x to 2.39x."
|
|
1234
|
-
|
|
1235
|
-
2. "not the 6.60 the documented number implies" — 6.60 matches nothing. CLAUDE.md's published 0.852 gives (0.852-0.78) x 91 = 6.55 queries; the unrounded pre-refresh baseline 0.8406... gives 6.52. Use 6.55. (The optimism is therefore ~1.03 queries, not 1.1.)
|
|
1236
|
-
|
|
1237
|
-
3. "2.4x spread" -> 2.39x (rounding, harmless, but state it as 2.39x on a card).
|
|
1238
|
-
|
|
1239
|
-
4. DIRECTION OF DRIFT IS NOT UNIFORM. "every future passing refresh decays the calibration further" is true only of the SPREAD. This refresh moved two floors tighter (recall 8.4%->7.2%, nDCG 11.8%->11.5%) and two LOOSER (hit@1 15.3%->17.3%, MRR 14.0%->14.3%). A card must not say "the floors tightened."
|
|
1240
|
-
|
|
1241
|
-
5.
|
|
1242
|
-
|
|
1243
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1244
|
-
|
|
1245
|
-
SCOPE THE REMEDY CAREFULLY — the finding's phrase "nothing re-derives the floors" invites exactly the fix 170d52c0 warns against: auto-moving floors on every refresh ("Lowering a threshold deserves suspicion... a floor calibrated on an unrepresentative corpus measures the corpus"). The repo's design is deliberately fixed absolute floors with a relaxed regression-vs-baseline. The CONFIRMED defect is narrower and should be carded as such: the measured values and the "~10%" characterisation are stated in seven places across four files (CLAUDE.md:67,84; tests/eval/taps.txt:25,43; scripts/eval_corpus.py:30,108 and the runtime-printed operator message at :331-334), nothing re-states or guards them after a PASSING refresh, and no test asserts any of them.
|
|
1246
|
-
|
|
1247
|
-
SCOPE LIMIT OF MY REPRO #1: I did not re-measure 0.8407 / 0.4835 / 0.6065 / 0.6552. Those are the committed baseline written by cbc0a58b — which is also the finder's only source. Verifying them empirically needs a re-tap at the new pins, which is forbidden here (shared read-only corpus) and needs network. Every derived percentage in this verification inherits that.
|
|
1248
|
-
|
|
1249
|
-
SCOPE LIMIT #2: the shared $TMPDIR/eval-home is materialised at the PRE-refresh pins — live total 10,152 vs taps.txt's recorded 10,731, with the same 10 taps PIN-DIFFERS. <code>make eval</code> against it would trip eval_corpus.py's CORPUS DRIFT check, not run the gate.
|
|
1250
|
-
|
|
1251
|
-
<b>Why it is worth doing.</b> The "~10% under" statement is the entire published justification for where the four floors sit — CLAUDE.md calls it "loose enough that upstream drift can't flake the build, tight enough to catch a collapse." That is a claim about a margin, and the margin now differs 2.4x across the four metrics with recall the tightest at 5.52 queries out of 91. Because the monthly refresh re-baselines but never re-derives or re-states the floors, and prompts a human only when the refreshed corpus FAILS, every future passing refresh decays the calibration further with no signal at all.
|
|
1252
|
-
|
|
1253
|
-
<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>
|
|
1254
|
-
<div class="meta">
|
|
1255
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1256
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1257
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1258
|
-
<span class="m">CLAUDE.md states the gate's four floors sit "~10% under" measured values of 0.852 / 0…</span>
|
|
1259
|
-
</div>
|
|
1260
|
-
</article>
|
|
1261
|
-
|
|
1262
1247
|
<article class="cap rcard" id="eval-gate-scores-a-body-less-corpus">
|
|
1263
1248
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1264
1249
|
<h3><code>make eval</code> scores a corpus with every SKILL.md body missing, reports all four floors PASS, and scores HIGHER than the real corpus</h3>
|
|
@@ -1295,59 +1280,6 @@ SCOPE LIMIT #2: the shared $TMPDIR/eval-home is materialised at the PRE-refresh
|
|
|
1295
1280
|
</div>
|
|
1296
1281
|
</article>
|
|
1297
1282
|
|
|
1298
|
-
<article class="cap rcard" id="gated-golden-set-has-zero-exemplars">
|
|
1299
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1300
|
-
<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>
|
|
1301
|
-
<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.
|
|
1302
|
-
|
|
1303
|
-
<b>Reproduce it.</b>
|
|
1304
|
-
|
|
1305
|
-
<code>cd <repo></code><br>
|
|
1306
|
-
<code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
|
|
1307
|
-
<code># 0. confirm which corpus you are on (expect 10152)</code><br>
|
|
1308
|
-
<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>
|
|
1309
|
-
<code># 1. exemplar counts per set</code><br>
|
|
1310
|
-
<code>python3 -c "</code><br>
|
|
1311
|
-
<code>import json</code><br>
|
|
1312
|
-
<code>for f in ['tests/eval/golden.jsonl','tests/eval/golden-natural.jsonl']:</code><br>
|
|
1313
|
-
<code> r=[json.loads(l) for l in open(f) if l.strip() and not l.startswith('#')]</code><br>
|
|
1314
|
-
<code> print(f,'rows:',len(r),'with exemplar:',sum(1 for x in r if x.get('exemplar')))"; echo EXIT=$?</code><br>
|
|
1315
|
-
<code># 2. the harness's own list of undecided gated rows</code><br>
|
|
1316
|
-
…
|
|
1317
|
-
|
|
1318
|
-
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
1319
|
-
|
|
1320
|
-
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:
|
|
1321
|
-
|
|
1322
|
-
- 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>
|
|
1323
|
-
|
|
1324
|
-
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.
|
|
1325
|
-
|
|
1326
|
-
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.
|
|
1327
|
-
|
|
1328
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1329
|
-
|
|
1330
|
-
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.
|
|
1331
|
-
|
|
1332
|
-
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.
|
|
1333
|
-
|
|
1334
|
-
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.
|
|
1335
|
-
|
|
1336
|
-
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.
|
|
1337
|
-
|
|
1338
|
-
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.
|
|
1339
|
-
|
|
1340
|
-
<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.
|
|
1341
|
-
|
|
1342
|
-
<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>
|
|
1343
|
-
<div class="meta">
|
|
1344
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1345
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1346
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1347
|
-
<span class="m">CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…</span>
|
|
1348
|
-
</div>
|
|
1349
|
-
</article>
|
|
1350
|
-
|
|
1351
1283
|
<article class="cap rcard" id="info-deps-materialize-a-dir-they-then-reject">
|
|
1352
1284
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
|
|
1353
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>
|
|
@@ -1672,44 +1604,6 @@ Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62
|
|
|
1672
1604
|
</div>
|
|
1673
1605
|
</article>
|
|
1674
1606
|
|
|
1675
|
-
<article class="cap rcard" id="required-eval-gate-still-grades-by-name">
|
|
1676
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
|
|
1677
|
-
<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>
|
|
1678
|
-
<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).
|
|
1679
|
-
|
|
1680
|
-
<b>Reproduce it.</b>
|
|
1681
|
-
|
|
1682
|
-
<code>cd <repo></code><br>
|
|
1683
|
-
<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>
|
|
1684
|
-
<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>
|
|
1685
|
-
<code>grep -n 'DEFAULT_GOLDEN' scripts/eval_retrieval.py</code><br>
|
|
1686
|
-
<code>sed -n '134,139p' Makefile</code><br>
|
|
1687
|
-
<code>sed -n '269,279p' .github/workflows/ci.yml</code><br>
|
|
1688
|
-
<code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
|
|
1689
|
-
<code>python3 -c "</code><br>
|
|
1690
|
-
<code>import json,glob,collections,os</code><br>
|
|
1691
|
-
<code>n2c=collections.defaultdict(set)</code><br>
|
|
1692
|
-
…
|
|
1693
|
-
|
|
1694
|
-
<b>Verification found nothing to correct.</b> Every number, <code>file:line</code> and command output above was independently re-derived and matched exactly.
|
|
1695
|
-
|
|
1696
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1697
|
-
|
|
1698
|
-
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.
|
|
1699
|
-
|
|
1700
|
-
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.
|
|
1701
|
-
|
|
1702
|
-
<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.
|
|
1703
|
-
|
|
1704
|
-
<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>
|
|
1705
|
-
<div class="meta">
|
|
1706
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1707
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1708
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1709
|
-
<span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
|
|
1710
|
-
</div>
|
|
1711
|
-
</article>
|
|
1712
|
-
|
|
1713
1607
|
<article class="cap rcard" id="stale-tap-hint-dead-for-tap-only-installs">
|
|
1714
1608
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Tech-debt</span></div>
|
|
1715
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>
|