boost-skill-cli 1.2.151__tar.gz → 1.2.153__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.151 → boost_skill_cli-1.2.153}/CLAUDE.md +18 -3
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/Makefile +8 -3
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/catalog.py +49 -8
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +22 -7
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +11 -5
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +1 -1
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap.html +26 -99
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_corpus.py +400 -103
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/taps-scale.txt +20 -20
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/taps.txt +42 -22
- boost_skill_cli-1.2.153/tests/unit/test_catalog_distinct.py +117 -0
- boost_skill_cli-1.2.153/tests/unit/test_corpus_prose.py +504 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_corpus.py +422 -8
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_scale_corpus.py +10 -3
- boost_skill_cli-1.2.151/tests/unit/test_corpus_prose.py +0 -268
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.gitattributes +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.gitignore +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/.vale.ini +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/DCO +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/LICENSE +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/compact.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/jsonstate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/prereq.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/codecov.yml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/index.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/examples/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/index.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/noxfile.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/setup.cfg +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/style/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/style/boost.css +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/style/boost.js +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/style/demo.html +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_hooks_codex.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_identifier_columns.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_keyed_no_store_hint.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_canary_deps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_claude_settings_codex.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_coverage_gate_prose.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_model_unavailable.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_dry_run_parity.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_embed_outranking.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_corpus_bodies.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_query_sets.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_first_run_pointer.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_help_contracts.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_hookhost_codex.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_jsonstate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_lighthouse_budgets.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_output_table_drop.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_output_table_whole.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_prereq.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_quickstart_readiness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rag_extra_hint.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_read_text_arg.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_repo_root_guard.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_sdist_contents.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shards_carry_forward.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_sync_lost_lock.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_upstream_path.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.151 → boost_skill_cli-1.2.153}/tests/visual/visual_check.mjs +0 -0
|
@@ -122,9 +122,24 @@ collapse and homonyms do not. Relevance is still decided by name (or by content
|
|
|
122
122
|
class when a golden row pins an `exemplar`), so the sets can migrate a row at a
|
|
123
123
|
time.
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
The floors are fixed absolute values, and the uniform "~10%" margin this file
|
|
126
|
+
claimed from 170d52c0 (2026-07-31) onward was never one of them. They sit under
|
|
127
|
+
their measured values (7.2% / 17.3% / 14.3% / 11.5%), recall@k the tightest —
|
|
128
|
+
loose enough that upstream drift can't flake the build, tight enough to catch a
|
|
129
|
+
collapse, but a 2.39x spread rather than one number, and the tightest of them
|
|
130
|
+
is worth 5.5 queries of 91. The spread is the design working, not drifting: the
|
|
131
|
+
monthly refresh re-measures the row and deliberately leaves the floors where
|
|
132
|
+
they are, so every refresh that improves a metric widens that metric's margin.
|
|
133
|
+
Floors are re-stated after a refresh, never re-derived — a floor that follows
|
|
134
|
+
its own measurement ratchets down with the corpus and ends up measuring the
|
|
135
|
+
corpus. `test_corpus_prose.py` holds every margin above to `baseline.json`, to
|
|
136
|
+
`golden.jsonl` and to the argv of the `Makefile`'s own `eval` recipe — read
|
|
137
|
+
through `eval_retrieval.build_parser()` rather than matched, because the
|
|
138
|
+
tightest floor is `--fail-under` and not a `--floor`, and because a tab-indented
|
|
139
|
+
comment is argv to a regex and a no-op to make. So a refresh that moves the row
|
|
140
|
+
fails the build until someone writes the new margin down and looks at it.
|
|
141
|
+
Regression-vs-baseline stays relaxed (`--regression-eps 1`), so the absolute
|
|
142
|
+
floors are the real gate.
|
|
128
143
|
|
|
129
144
|
**Every row of `taps.txt` pins a commit SHA**, and `scripts/eval_corpus.py`
|
|
130
145
|
checks each clone out at it — most of the corpus is one third-party repo, so an
|
|
@@ -127,9 +127,14 @@ dist-check:
|
|
|
127
127
|
# which is what tests/eval/baseline.json records at the current pins. The
|
|
128
128
|
# second set is what a real user sees, so flooring against the first was
|
|
129
129
|
# measuring the corpus rather than the retrieval — three of the four old floors
|
|
130
|
-
# fail outright once the corpus is realistic.
|
|
131
|
-
#
|
|
132
|
-
#
|
|
130
|
+
# fail outright once the corpus is realistic. The four floors sit a margin
|
|
131
|
+
# under their measured values (7.2% / 17.3% / 14.3% / 11.5%), recall@k the
|
|
132
|
+
# tightest at 5.5 queries of 91: loose enough that a query or two cannot flake
|
|
133
|
+
# the build, tight enough that a collapse fails it. That margin is not uniform
|
|
134
|
+
# and never was -- it is a 2.39x spread, because the row moves with every
|
|
135
|
+
# monthly refresh and the floors deliberately do not. So it is quoted rather
|
|
136
|
+
# than asserted, and tests/unit/test_corpus_prose.py fails until the new
|
|
137
|
+
# spread is written here. Regression-vs-baseline stays relaxed
|
|
133
138
|
# (--regression-eps 1); the absolute floors are the real gate. (It was relaxed
|
|
134
139
|
# while the corpus tracked upstream HEAD. tests/eval/taps.txt pins a commit per
|
|
135
140
|
# 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.153'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 153)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -26,6 +26,7 @@ import operator
|
|
|
26
26
|
import os
|
|
27
27
|
import re
|
|
28
28
|
import sys
|
|
29
|
+
from collections.abc import Iterable
|
|
29
30
|
from pathlib import Path
|
|
30
31
|
|
|
31
32
|
from ..errors import BoostError
|
|
@@ -115,6 +116,49 @@ def _content_digest(name: str, description: str, body: str) -> str:
|
|
|
115
116
|
return hashlib.sha256(text.strip().encode("utf-8", "replace")).hexdigest()[:16]
|
|
116
117
|
|
|
117
118
|
|
|
119
|
+
def content_unique(entries: Iterable[dict]) -> list[dict]:
|
|
120
|
+
"""The first entry of each distinct ``content`` digest, in scan order.
|
|
121
|
+
|
|
122
|
+
An entry carrying no digest is always kept. Two absences are not a match:
|
|
123
|
+
a cache written before ``CACHE_FORMAT`` stamped the field, or an entry
|
|
124
|
+
synthesised without one, says nothing about what that item *is*, and
|
|
125
|
+
collapsing unknowns into each other silently deletes real items.
|
|
126
|
+
|
|
127
|
+
The digest is :func:`_content_digest` — ``name``, ``description`` and the
|
|
128
|
+
frontmatter-stripped body — which is the identity
|
|
129
|
+
:func:`rag.dedupe_by_content` collapses a ranked list on. It is not
|
|
130
|
+
``scripts/measure_registry.py``'s digest, which hashes the body alone with
|
|
131
|
+
agent dotdir tokens normalised so one skill rendered into ``.claude/``,
|
|
132
|
+
``.cursor/`` and ``.gemini/`` counts once. That is the right question for
|
|
133
|
+
``est_items`` and the wrong one here: the gate scores those renders as
|
|
134
|
+
separate competing rows, so a measure that merges them cannot describe the
|
|
135
|
+
corpus it ranks.
|
|
136
|
+
"""
|
|
137
|
+
seen: set[str] = set()
|
|
138
|
+
out: list[dict] = []
|
|
139
|
+
for entry in entries:
|
|
140
|
+
digest = entry.get("content")
|
|
141
|
+
if not digest:
|
|
142
|
+
out.append(entry)
|
|
143
|
+
continue
|
|
144
|
+
if digest in seen:
|
|
145
|
+
continue
|
|
146
|
+
seen.add(digest)
|
|
147
|
+
out.append(entry)
|
|
148
|
+
return out
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
def distinct_content(entries: Iterable[dict]) -> int:
|
|
152
|
+
"""How many distinct content identities ``entries`` holds.
|
|
153
|
+
|
|
154
|
+
``len(content_unique(entries))``, and deliberately not
|
|
155
|
+
``len({e["content"] for e in entries})``: the set comprehension collapses
|
|
156
|
+
every entry with no recorded digest into one ``None``, which is the one
|
|
157
|
+
answer :func:`content_unique` exists to refuse.
|
|
158
|
+
"""
|
|
159
|
+
return len(content_unique(entries))
|
|
160
|
+
|
|
161
|
+
|
|
118
162
|
def _entry_category(meta: dict, tap_category: str) -> str:
|
|
119
163
|
"""An item's own category, falling back to its tap's curated category.
|
|
120
164
|
|
|
@@ -406,9 +450,8 @@ def lint_targets(entries: list[dict], tap_root: Path,
|
|
|
406
450
|
"no such name%s in this tap: %s"
|
|
407
451
|
% ("" if len(unknown) == 1 else "s", ", ".join(unknown)),
|
|
408
452
|
hint="run without NAMEs to lint everything in the tap")
|
|
409
|
-
|
|
453
|
+
kept: list[dict] = []
|
|
410
454
|
skipped: list[dict] = []
|
|
411
|
-
seen_content: set = set()
|
|
412
455
|
for entry in entries:
|
|
413
456
|
if wanted and entry["name"] not in wanted:
|
|
414
457
|
continue
|
|
@@ -416,12 +459,10 @@ def lint_targets(entries: list[dict], tap_root: Path,
|
|
|
416
459
|
if kind != KIND_SKILL:
|
|
417
460
|
skipped.append({"name": entry["name"], "kind": kind})
|
|
418
461
|
continue
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
seen_content.add(digest)
|
|
424
|
-
skills.append(entry)
|
|
462
|
+
kept.append(entry)
|
|
463
|
+
# One rule, one implementation: mirrors of one skill lint once, and an
|
|
464
|
+
# entry with no digest is never absorbed into another.
|
|
465
|
+
skills = content_unique(kept)
|
|
425
466
|
|
|
426
467
|
name_counts: dict[str, int] = {}
|
|
427
468
|
for entry in skills:
|
|
@@ -903,6 +903,7 @@ tests/unit/test_builtin.py
|
|
|
903
903
|
tests/unit/test_canary_deps.py
|
|
904
904
|
tests/unit/test_capabilities.py
|
|
905
905
|
tests/unit/test_catalog.py
|
|
906
|
+
tests/unit/test_catalog_distinct.py
|
|
906
907
|
tests/unit/test_catalog_keyword_words.py
|
|
907
908
|
tests/unit/test_catalogbundle.py
|
|
908
909
|
tests/unit/test_chat.py
|
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
id: eval-corpus-counted-by-the-method-the-repo-disavows
|
|
3
3
|
board: code
|
|
4
|
-
section:
|
|
5
|
-
status:
|
|
4
|
+
section: shipped
|
|
5
|
+
status: shipped
|
|
6
6
|
category: Quality · Retrieval eval
|
|
7
7
|
complexity: L
|
|
8
8
|
impact: High
|
|
9
9
|
wow: 4
|
|
10
|
-
note:
|
|
10
|
+
note: taps.txt rows gained a distinct-content count and the gate gained a second ceiling. The raw count stays — BM25 indexes without de-duplicating, so the copies really are documents — but sickn33 is 61.8% of the rows and 35.7% of the content, and only one number was being floored.
|
|
11
11
|
order: 208
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/eval-corpus-distinct-count
|
|
13
|
+
pr: 992
|
|
14
14
|
title: The eval corpus's size and its concentration ceiling are counted with <code>len(scan_dir)</code> — the measure <code>measure_registry.py</code> exists to say is wrong — so 44.7% of the gate's corpus is vendored …
|
|
15
15
|
---
|
|
16
|
-
<b>
|
|
16
|
+
<b>SHIPPED.</b> taps.txt rows gained a fourth field — the distinct-content count — and the concentration gate became two ceilings instead of one.
|
|
17
|
+
|
|
18
|
+
<code>anthropics/skills 3b3fad9… 20 20</code><br>
|
|
19
|
+
<code>sickn33/antigravity-awesome-skills 782f684… 6634 2117</code>
|
|
20
|
+
|
|
21
|
+
<code>MAX_SHARE</code> is now <code>MAX_ROW_SHARE</code> (0.65) and is joined by <code>MAX_CONTENT_SHARE</code> (0.40), and both are checked on every <code>--ensure</code>, <code>--relock</code>, <code>--refresh</code> and <code>--audit</code>. At the current pins: sickn33 is <b>61.8% of the rows and 35.7% of the content</b>, and affaan-m/ECC is <b>15.1% of rows and 26.7% of content</b> — the two orderings differ, which is the whole reason there are two numbers. The corpus is 10,731 rows over 5,938 distinct items, so the rows overstate it <b>1.81x</b>, and taps.txt now says so in its own generated size block.
|
|
22
|
+
|
|
23
|
+
<b>The raw count was kept, deliberately.</b> This card's title reads as "the raw count is wrong", and the fix is not to replace it. <code>rag.build</code> indexes <code>catalog.all_entries()</code> with <b>no</b> de-duplication, so a registry vendoring the same skill sixty-eight times really does occupy sixty-eight of the documents BM25 ranks a query against: the raw count is the honest number for the DRIFT check and for "BM25 scored N documents". What was missing was the second number, not a correction to the first. Hence two fields and two ceilings rather than one replaced.
|
|
24
|
+
|
|
25
|
+
<b>The identity is <code>catalog._content_digest</code>, not <code>measure_registry.py</code>'s.</b> Two new helpers in <code>boost_cli/core/catalog.py</code> — <code>content_unique()</code> and <code>distinct_content()</code> — collapse on <code>entry["content"]</code>, the digest over name + description + body already stamped at scan time and already what <code>rag.dedupe_by_content</code> uses. <code>measure_registry.py</code>'s digest hashes the body <em>alone</em> with agent-dotdir tokens normalised, which is right for <code>est_items</code> (one skill rendered into five agents' directories is one item) and wrong here (two different skills with the same body are two documents in the index). The card's premise that these are the same rule is what <code>measure_registry.py</code>'s docstring claims and is not true; the gate now uses the one that matches what it scores.
|
|
26
|
+
|
|
27
|
+
<b>An unsatisfiable ceiling is not a strict one.</b> A ceiling of <em>c</em> cannot be met by fewer than <code>1/c</code> repositories, because the smallest possible top share is <code>1/N</code> — two repos cannot get below 50%, so a 40% content ceiling would refuse every two-repo corpus however it was balanced, and the only remedy it could print ("add breadth") is the only thing that could ever clear it. <code>check_concentration</code> therefore does not judge a corpus below that floor. The shipped list has twenty repos against a floor of three, so the real gate is untouched; what it buys is that a fixture corpus can exercise the same code path.
|
|
28
|
+
|
|
29
|
+
<b>Not regenerated: <code>tests/eval/baseline.json</code>.</b> No pin moved and the indexed corpus is byte-identical, so the scores are unchanged — regenerating it would have been noise in the diff and a claim that something had been re-measured.
|
|
30
|
+
|
|
31
|
+
<b>Measured.</b> Two tools in this repo, run on the same clone at the same pinned SHA, give item counts 3.16x apart — <code>scripts/measure_registry.py</code> says <code>est_items=2100</code> while <code>scripts/eval_corpus.py --ensure</code> records <code>6634 entries</code> — and the tool that is right is the one the eval gate does not use: measure_registry.py's own docstring (lines 6-11) states that <code>len(catalog.scan_dir(repo))</code> is not the measurement, "the same rule the eval gate's ranked list uses". <code>eval_corpus.py</code> was still <code>counts[repo] = len(entries)</code>, and <code>MAX_SHARE = 0.65</code> ratcheted on that number inside CI's required <code>lint</code> job — so 975 extra vendored copies from one stranger's repository, containing zero new content, turn every open pull request red.
|
|
17
32
|
|
|
18
33
|
<b>Reproduce it.</b>
|
|
19
34
|
|
|
@@ -33,7 +48,7 @@ title: The eval corpus's size and its concentration ceiling are counted with <co
|
|
|
33
48
|
|
|
34
49
|
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
35
50
|
|
|
36
|
-
1. MATERIALLY WRONG — "The vendoring is 60 <code>plugins/agentic-bundle-*/</code> directories". There are 58 <code>agentic-bundle-*</code> dirs (60 <code>plugins/*</code> dirs total), and they hold only 449 of the 6,634 entries (6.8%; median 8 entries each). The 3.13x inflation is two FULL CATALOG MIRRORS: <code>plugins/agentic-awesome-skills-claude</code> (2,049 entries) and <code>plugins/agentic-awesome-skills</code> (2,027) = 4,076 entries, digest-identical to <code>skills/</code> (2,107 entries, all distinct). This reframes the ceiling scenario: "one more bundle render... adds ~2,117 entries" is impossible — a bundle is ~8-10 entries. The correct unit is "one more per-agent mirror", ~2,049 entries -> 67.9%, still over 65%. Sharper still: only
|
|
51
|
+
1. MATERIALLY WRONG — "The vendoring is 60 <code>plugins/agentic-bundle-*/</code> directories". There are 58 <code>agentic-bundle-*</code> dirs (60 <code>plugins/*</code> dirs total), and they hold only 449 of the 6,634 entries (6.8%; median 8 entries each). The 3.13x inflation is two FULL CATALOG MIRRORS: <code>plugins/agentic-awesome-skills-claude</code> (2,049 entries) and <code>plugins/agentic-awesome-skills</code> (2,027) = 4,076 entries, digest-identical to <code>skills/</code> (2,107 entries, all distinct). This reframes the ceiling scenario: "one more bundle render... adds ~2,117 entries" is impossible — a bundle is ~8-10 entries. The correct unit is "one more per-agent mirror", ~2,049 entries -> 67.9%, still over 65%. Sharper still: only 975 extra vendored sickn33 entries are needed to cross the ceiling (< half a mirror) — 6634+975 of 10731+975 is 65.001%, and 974 is 64.998%. The conclusion survives; the unit does not — and the correct unit is exactly the pattern the <code>est-items</code> card already documents.
|
|
37
52
|
|
|
38
53
|
2. "Read all 318 titles from <code>grep -h '^title:' docs/roadmap/items/*.md</code>" — there are 432 items / 432 title lines today (verified identical to origin/main except one unrelated file). The not-carded sweep was run over a smaller set than exists.
|
|
39
54
|
|
|
@@ -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>
|
|
@@ -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>25</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>76</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>
|
|
@@ -408,6 +408,30 @@
|
|
|
408
408
|
</div>
|
|
409
409
|
</article>
|
|
410
410
|
|
|
411
|
+
<article class="cap rcard" id="eval-corpus-counted-by-the-method-the-repo-disavows">
|
|
412
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
413
|
+
<h3>The eval corpus's size and its concentration ceiling are counted with <code>len(scan_dir)</code> — the measure <code>measure_registry.py</code> exists to say is wrong — so 44.7% of the gate's corpus is vendored …</h3>
|
|
414
|
+
<p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md">Write-up · eval-corpus-counted-by-the-method-the-repo-disavows.md</a></p>
|
|
415
|
+
<div class="meta">
|
|
416
|
+
<span class="m">Complexity <b>L</b></span>
|
|
417
|
+
<span class="m hi">Impact <b>High</b></span>
|
|
418
|
+
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
419
|
+
<span class="m">taps.txt rows gained a distinct-content count and the gate gained a second ceiling. The raw count stays — BM25 indexes without de-duplicating, so the copies really are documents — but sickn33 is 61.8% of the rows and 35.7% of the content, and only one number was being floored.</span>
|
|
420
|
+
</div>
|
|
421
|
+
</article>
|
|
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
|
+
|
|
411
435
|
<article class="cap rcard" id="install-cannot-tell-a-skill-needs-another-one">
|
|
412
436
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Install · Research</span></div>
|
|
413
437
|
<h3>Research: how <code>boost install</code> could tell that a skill needs something else installed first</h3>
|
|
@@ -1148,52 +1172,6 @@ space before trusting a number in it.</p>
|
|
|
1148
1172
|
</div>
|
|
1149
1173
|
</article>
|
|
1150
1174
|
|
|
1151
|
-
<article class="cap rcard" id="eval-corpus-counted-by-the-method-the-repo-disavows">
|
|
1152
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1153
|
-
<h3>The eval corpus's size and its concentration ceiling are counted with <code>len(scan_dir)</code> — the measure <code>measure_registry.py</code> exists to say is wrong — so 44.7% of the gate's corpus is vendored …</h3>
|
|
1154
|
-
<p><b>Measured.</b> Two tools in this repo, run on the same clone at the same pinned SHA, give item counts 3.16x apart — <code>scripts/measure_registry.py</code> says <code>est_items=2100</code> while <code>scripts/eval_corpus.py --ensure</code> records <code>6634 entries</code> — and the tool that is right is the one the eval gate does not use: measure_registry.py's own docstring (lines 6-11) states that <code>len(catalog.scan_dir(repo))</code> is not the measurement, "the same rule the eval gate's ranked list uses". <code>eval_corpus.py:299</code> is still <code>counts[repo] = len(entries)</code>, and <code>MAX_SHARE = 0.65</code> (line 113) ratchets on that number inside CI's required <code>lint</code> job — so 976 extra vendored copies from one stranger's repository, containing zero new content, turn every open pull request red.
|
|
1155
|
-
|
|
1156
|
-
<b>Reproduce it.</b>
|
|
1157
|
-
|
|
1158
|
-
<code>cd <repo></code><br>
|
|
1159
|
-
<code>export HOME=$TMPDIR/audit-corpus-verify && mkdir -p "$HOME" && export BOOST_HOME=$HOME/.boost</code><br>
|
|
1160
|
-
<code>.venv/bin/python scripts/eval_corpus.py --ensure # -> "corpus: 10731 entries"; "concentration: ... 61.8%"</code><br>
|
|
1161
|
-
<code>.venv/bin/python scripts/measure_registry.py "$BOOST_HOME/repos/sickn33__antigravity-awesome-skills" # -> est_items=2100</code><br>
|
|
1162
|
-
<code>.venv/bin/python - <<'PY'</code><br>
|
|
1163
|
-
<code>import json, pathlib, collections, os</code><br>
|
|
1164
|
-
<code>home=pathlib.Path(os.environ["BOOST_HOME"]); ents=[]</code><br>
|
|
1165
|
-
<code>for f in sorted((home/"cache").glob("*.json")):</code><br>
|
|
1166
|
-
<code> if f.stem.startswith("rag_"): continue</code><br>
|
|
1167
|
-
<code> d=json.loads(f.read_text())</code><br>
|
|
1168
|
-
<code> for e in d["skills"]: e["_tap"]=d["tap"]; ents.append(e)</code><br>
|
|
1169
|
-
<code>alld={e["content"] for e in ents}</code><br>
|
|
1170
|
-
…
|
|
1171
|
-
|
|
1172
|
-
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
1173
|
-
|
|
1174
|
-
1. MATERIALLY WRONG — "The vendoring is 60 <code>plugins/agentic-bundle-*/</code> directories". There are 58 <code>agentic-bundle-*</code> dirs (60 <code>plugins/*</code> dirs total), and they hold only 449 of the 6,634 entries (6.8%; median 8 entries each). The 3.13x inflation is two FULL CATALOG MIRRORS: <code>plugins/agentic-awesome-skills-claude</code> (2,049 entries) and <code>plugins/agentic-awesome-skills</code> (2,027) = 4,076 entries, digest-identical to <code>skills/</code> (2,107 entries, all distinct). This reframes the ceiling scenario: "one more bundle render... adds ~2,117 entries" is impossible — a bundle is ~8-10 entries. The correct unit is "one more per-agent mirror", ~2,049 entries -> 67.9%, still over 65%. Sharper still: only 976 extra vendored sickn33 entries are needed to cross the ceiling (< half a mirror). The conclusion survives; the unit does not — and the correct unit is exactly the pattern the <code>est-items</code> card already documents.
|
|
1175
|
-
|
|
1176
|
-
2. "Read all 318 titles from <code>grep -h '^title:' docs/roadmap/items/*.md</code>" — there are 432 items / 432 title lines today (verified identical to origin/main except one unrelated file). The not-carded sweep was run over a smaller set than exists.
|
|
1177
|
-
|
|
1178
|
-
3. "Every one of them... none measures distinct content" is wrong.
|
|
1179
|
-
|
|
1180
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1181
|
-
|
|
1182
|
-
SCOPE OF MY REPRO — what I actually settled, and what I did not. - I materialised the corpus at the CURRENT taps.txt pins in my own disposable HOME and reproduced every headline number independently. The pre-refresh figures (10,152 / 5,790 / 62.1% / 34.5% / 3.16x) I took from the SHARED read-only eval-home at $TMPDIR/eval-home, which is still at the older pins — a read-only census, no writes. - The repo checkout was on a peer session's branch <code>loop/missing-json</code>, not <code>main</code>. I diffed every file this finding touches (scripts/eval_corpus.py, tests/eval/taps.txt, boost_cli/core/rag.py, .github/workflows/eval-corpus-refresh.yml, all of docs/roadmap/items/) against origin/main: identical except one unrelated roadmap item. The verification holds against main (origin/main af4bdbfd). - I could NOT isolate the causal mechanism of the 22 rank changes. The finding asserts "BM25 statistics (N and document frequency), not slot consumption". My data is CONSISTENT with that — <code>dedupe_by_content</code> does run over the full pool before k (rag.py:1053, confirmed), and recall@k is bit-identical while the rank-sensitive metrics move — but I did not separate idf from avgdl, nor rule out that a different byte-identical copy survives dedupe and carries a different <code>grade_key</code>. Write it as "consistent with", not "confirmed".
|
|
1183
|
-
|
|
1184
|
-
WHY HIGH RATHER THAN MEDIUM. The metric movement alone cannot fail anything: hit@1 +0.011, MRR +0.010, nDCG +0.008 against 0.06-0.10 of headroom over the floors. The severity is the ratchet's teeth, which the finder never traced.
|
|
1185
|
-
|
|
1186
|
-
<b>Why it is worth doing.</b> <code>MAX_SHARE</code> is the only shipped guard against the gate's corpus becoming one publisher's house style, and it is measured on a quantity a third party can inflate by ~3x without publishing a single new skill — so it can fire on a repo contributing a third of the content, and cannot fire on a repo that dominates the content without vendoring. The same raw count is the headline everywhere (<code>10,152 entries</code> / <code>62%</code>) and is what the monthly refresh PR reports as growth, overstating real content growth 4x.
|
|
1187
|
-
|
|
1188
|
-
<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>
|
|
1189
|
-
<div class="meta">
|
|
1190
|
-
<span class="m">Complexity <b>L</b></span>
|
|
1191
|
-
<span class="m hi">Impact <b>High</b></span>
|
|
1192
|
-
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
1193
|
-
<span class="m">scripts/eval_corpus.py counts a repo's contribution as len(entries) from a raw scan (…</span>
|
|
1194
|
-
</div>
|
|
1195
|
-
</article>
|
|
1196
|
-
|
|
1197
1175
|
<article class="cap rcard" id="eval-corpus-duplication-is-intra-tap-not-mirrors">
|
|
1198
1176
|
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1199
1177
|
<h3>The corpus's 65.6% duplication is 99.93% inside a single tap, so the required gate never once exercises the cross-tap trust ordering dedup exists for — 0 swaps in 264,735 comparisons</h3>
|
|
@@ -1242,57 +1220,6 @@ NOT ALREADY CARDED, but read the existing card first.
|
|
|
1242
1220
|
</div>
|
|
1243
1221
|
</article>
|
|
1244
1222
|
|
|
1245
|
-
<article class="cap rcard" id="eval-floor-calibration-stale-after-pin-refresh">
|
|
1246
|
-
<div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1247
|
-
<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>
|
|
1248
|
-
<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.
|
|
1249
|
-
|
|
1250
|
-
<b>Reproduce it.</b>
|
|
1251
|
-
|
|
1252
|
-
<code>cd <repo></code><br>
|
|
1253
|
-
<code># 1. the refresh commit moved pins + baseline and nothing else</code><br>
|
|
1254
|
-
<code>git show cbc0a58b --stat --format='%h %ad %s' --date=short</code><br>
|
|
1255
|
-
<code>git show cbc0a58b -- tests/eval/baseline.json | grep -E '^[-+].*(recall|hit@1|MRR|nDCG)'</code><br>
|
|
1256
|
-
<code># 2. what taps.txt records NOW vs what the docs claim</code><br>
|
|
1257
|
-
<code>awk '!/^#/ && NF>=3 {s+=$3; n++} END {print "rows:", n, " recorded total entries:", s}' tests/eval/taps.txt</code><br>
|
|
1258
|
-
<code>grep -n '10,152\|0\.852' CLAUDE.md tests/eval/taps.txt scripts/eval_corpus.py</code><br>
|
|
1259
|
-
<code># 3. recompute the floor gaps against the committed post-refresh baseline</code><br>
|
|
1260
|
-
<code>python3 -c "</code><br>
|
|
1261
|
-
<code>import json</code><br>
|
|
1262
|
-
<code>b=json.load(open('tests/eval/baseline.json'))['sets']['golden.jsonl@a0617183f8c9']['engines']['BM25 full-content']</code><br>
|
|
1263
|
-
…
|
|
1264
|
-
|
|
1265
|
-
<b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
|
|
1266
|
-
|
|
1267
|
-
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."
|
|
1268
|
-
|
|
1269
|
-
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.)
|
|
1270
|
-
|
|
1271
|
-
3. "2.4x spread" -> 2.39x (rounding, harmless, but state it as 2.39x on a card).
|
|
1272
|
-
|
|
1273
|
-
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."
|
|
1274
|
-
|
|
1275
|
-
5.
|
|
1276
|
-
|
|
1277
|
-
<b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
|
|
1278
|
-
|
|
1279
|
-
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.
|
|
1280
|
-
|
|
1281
|
-
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.
|
|
1282
|
-
|
|
1283
|
-
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.
|
|
1284
|
-
|
|
1285
|
-
<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.
|
|
1286
|
-
|
|
1287
|
-
<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>
|
|
1288
|
-
<div class="meta">
|
|
1289
|
-
<span class="m">Complexity <b>M</b></span>
|
|
1290
|
-
<span class="m">Impact <b>Med</b></span>
|
|
1291
|
-
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1292
|
-
<span class="m">CLAUDE.md states the gate's four floors sit "~10% under" measured values of 0.852 / 0…</span>
|
|
1293
|
-
</div>
|
|
1294
|
-
</article>
|
|
1295
|
-
|
|
1296
1223
|
<article class="cap rcard" id="eval-gate-scores-a-body-less-corpus">
|
|
1297
1224
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
|
|
1298
1225
|
<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>
|