boost-skill-cli 1.2.26__tar.gz → 1.2.28__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.26 → boost_skill_cli-1.2.28}/.vale/styles/config/vocabularies/boost/accept.txt +38 -1
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale.ini +7 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CONTRIBUTING.md +30 -0
- boost_skill_cli-1.2.28/DCO +34 -0
- boost_skill_cli-1.2.28/MAINTAINERS.md +102 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/PKG-INFO +2 -1
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/README.md +1 -0
- boost_skill_cli-1.2.28/SECURITY.md +86 -0
- boost_skill_cli-1.2.28/SUPPORT.md +78 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/quality.py +12 -1
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/PKG-INFO +2 -1
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/SOURCES.txt +12 -0
- boost_skill_cli-1.2.28/docs/commit-audit.md +129 -0
- boost_skill_cli-1.2.28/docs/dependencies.md +119 -0
- boost_skill_cli-1.2.28/docs/openssf-badge.md +263 -0
- boost_skill_cli-1.2.28/docs/roadmap/items/openssf-best-practices-badge.md +42 -0
- boost_skill_cli-1.2.28/docs/roadmap/items/osps-baseline-levels.md +53 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scorecard-findings-triage.md +5 -3
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap.html +94 -4
- boost_skill_cli-1.2.28/docs/security-design.md +191 -0
- boost_skill_cli-1.2.28/docs/verifying-releases.md +101 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/pyproject.toml +3 -1
- boost_skill_cli-1.2.28/scripts/check_dco.py +112 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_tap_signing.py +18 -0
- boost_skill_cli-1.2.28/tests/unit/test_check_dco.py +179 -0
- boost_skill_cli-1.2.26/SECURITY.md +0 -22
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitattributes +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitignore +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CLAUDE.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/LICENSE +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/Makefile +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/codecov.yml +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/index.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/README.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/README.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/index.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/noxfile.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/setup.cfg +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/README.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/boost.css +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/boost.js +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/demo.html +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/visual_check.mjs +0 -0
{boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/config/vocabularies/boost/accept.txt
RENAMED
|
@@ -1,13 +1,24 @@
|
|
|
1
1
|
ABM
|
|
2
2
|
agentic
|
|
3
3
|
Algolia
|
|
4
|
+
allowlist
|
|
4
5
|
allowlisted
|
|
5
6
|
argparse
|
|
6
7
|
Arize
|
|
8
|
+
ASan
|
|
7
9
|
Attio
|
|
10
|
+
Autofix
|
|
11
|
+
autofix
|
|
12
|
+
Backfilling
|
|
13
|
+
backfilling
|
|
14
|
+
backport
|
|
15
|
+
backported
|
|
8
16
|
backtick
|
|
9
17
|
backticks
|
|
10
18
|
Bagisto
|
|
19
|
+
basename
|
|
20
|
+
basenames
|
|
21
|
+
bestpractices
|
|
11
22
|
bmad
|
|
12
23
|
bookended
|
|
13
24
|
Camunda
|
|
@@ -18,10 +29,12 @@ codespell
|
|
|
18
29
|
ColdIQ
|
|
19
30
|
config
|
|
20
31
|
configs
|
|
32
|
+
CPython
|
|
21
33
|
CRM
|
|
22
34
|
cyclomatic
|
|
23
35
|
Dependabot
|
|
24
36
|
deps
|
|
37
|
+
deserialization
|
|
25
38
|
Dev
|
|
26
39
|
DigitalOcean
|
|
27
40
|
docsite
|
|
@@ -35,6 +48,7 @@ eval
|
|
|
35
48
|
evals
|
|
36
49
|
freemium
|
|
37
50
|
frontmatter
|
|
51
|
+
fuzzer
|
|
38
52
|
GEO
|
|
39
53
|
GIF
|
|
40
54
|
gitignored
|
|
@@ -55,26 +69,37 @@ Kotlin
|
|
|
55
69
|
langchain
|
|
56
70
|
Langfuse
|
|
57
71
|
LeadMagic
|
|
72
|
+
libFuzzer
|
|
73
|
+
libsodium
|
|
58
74
|
lookups
|
|
59
75
|
lowercasing
|
|
60
76
|
Magento
|
|
61
77
|
mcp
|
|
62
78
|
mergeable
|
|
79
|
+
minisign
|
|
80
|
+
misconfiguration
|
|
81
|
+
mitigations
|
|
63
82
|
MLflow
|
|
64
83
|
mutmut
|
|
65
84
|
mypy
|
|
85
|
+
nonces
|
|
66
86
|
npm
|
|
67
87
|
onboards
|
|
68
88
|
OpenShift
|
|
89
|
+
OpenSSF
|
|
69
90
|
overclaiming
|
|
70
91
|
Pinecone
|
|
71
92
|
pipx
|
|
93
|
+
plaintext
|
|
94
|
+
prehash
|
|
72
95
|
PrestaShop
|
|
73
96
|
Pulumi
|
|
74
97
|
pytest
|
|
75
98
|
Qdrant
|
|
76
99
|
Quarkus
|
|
77
100
|
rebased
|
|
101
|
+
reimplement
|
|
102
|
+
reimplemented
|
|
78
103
|
reindex
|
|
79
104
|
repo
|
|
80
105
|
repo's
|
|
@@ -90,11 +115,16 @@ ruleset
|
|
|
90
115
|
Rulesets
|
|
91
116
|
rulesets
|
|
92
117
|
Salesforce
|
|
118
|
+
Saltzer
|
|
93
119
|
sandboxed
|
|
94
120
|
sandboxing
|
|
95
121
|
scrollbar
|
|
122
|
+
sdist
|
|
96
123
|
SEO
|
|
124
|
+
setuptools
|
|
125
|
+
SHAs
|
|
97
126
|
Shopify
|
|
127
|
+
Sigstore
|
|
98
128
|
SonarCloud
|
|
99
129
|
stderr
|
|
100
130
|
Stdlib
|
|
@@ -104,25 +134,32 @@ stemmer
|
|
|
104
134
|
stemming
|
|
105
135
|
subagents
|
|
106
136
|
subcommand
|
|
137
|
+
subprocess
|
|
107
138
|
tappable
|
|
108
139
|
teardown
|
|
109
140
|
tempdir
|
|
110
141
|
toggleable
|
|
111
|
-
tokenization
|
|
112
142
|
Tokenization
|
|
143
|
+
tokenization
|
|
113
144
|
toolchain
|
|
114
145
|
toolkits
|
|
115
146
|
traceback
|
|
116
147
|
tracebacks
|
|
148
|
+
triaged
|
|
149
|
+
triages
|
|
117
150
|
typosquat
|
|
118
151
|
typosquatted
|
|
119
152
|
unkilled
|
|
120
153
|
unlinking
|
|
154
|
+
unpatched
|
|
121
155
|
unregister
|
|
156
|
+
unremediated
|
|
122
157
|
unstaged
|
|
123
158
|
untap
|
|
159
|
+
untrusted
|
|
124
160
|
uv
|
|
125
161
|
Vaadin
|
|
162
|
+
Valgrind
|
|
126
163
|
vendored
|
|
127
164
|
vendoring
|
|
128
165
|
venv
|
|
@@ -20,5 +20,12 @@ Vale.Terms = NO
|
|
|
20
20
|
[docs/roadmap/items/*.md]
|
|
21
21
|
BasedOnStyles =
|
|
22
22
|
|
|
23
|
+
; docs/commit-audit.md is a generated record: a table of short SHAs, file paths
|
|
24
|
+
; and tool identifiers produced by an audit pass, not authored prose. Spelling
|
|
25
|
+
; it would mean adding ~27 one-off identifiers to the shared vocabulary, which
|
|
26
|
+
; would weaken the check everywhere else to lint one machine-written file.
|
|
27
|
+
[docs/commit-audit.md]
|
|
28
|
+
BasedOnStyles =
|
|
29
|
+
|
|
23
30
|
[.claude/**/*.md]
|
|
24
31
|
BasedOnStyles =
|
|
@@ -98,6 +98,36 @@ list, and neither should be added to it.
|
|
|
98
98
|
| `refurb boost_cli` | modernization smells the ruff families miss, zero findings |
|
|
99
99
|
| `scripts/lock_toolchain.py --check` | the hash-pinned toolchain matches its `.in` declarations |
|
|
100
100
|
|
|
101
|
+
## Sign your commits (DCO)
|
|
102
|
+
|
|
103
|
+
Every commit needs a `Signed-off-by` trailer naming **you**, the author. It is
|
|
104
|
+
your assertion, under the [Developer Certificate of Origin](DCO), that you have
|
|
105
|
+
the right to submit the work. Git writes it for you:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
git commit -s # sign off as you go
|
|
109
|
+
git commit --amend --signoff --no-edit # fix the last commit
|
|
110
|
+
git rebase --signoff origin/main # fix a whole branch
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`scripts/check_dco.py` enforces it as a required check, and you can run the
|
|
114
|
+
exact same check locally:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
python3 scripts/check_dco.py # HEAD against origin/main
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Two things it deliberately will not accept. The trailer must name the **author** of
|
|
121
|
+
the commit it sits on — a sign-off from anyone else certifies nothing, so it is
|
|
122
|
+
rejected rather than counted. And the check only ever looks at the commits your
|
|
123
|
+
pull request adds: DCO applies from the commit that introduced it, and history
|
|
124
|
+
before that is left alone. Backfilling sign-offs would mean rewriting `main`,
|
|
125
|
+
breaking 478 tags and invalidating the build-provenance attestation on every
|
|
126
|
+
published release, to record an assertion nobody actually made.
|
|
127
|
+
|
|
128
|
+
Bot authors (Dependabot and friends) are exempt — an account cannot agree to a
|
|
129
|
+
certificate.
|
|
130
|
+
|
|
101
131
|
## Code of conduct
|
|
102
132
|
|
|
103
133
|
Participation is governed by the [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
Developer Certificate of Origin
|
|
2
|
+
Version 1.1
|
|
3
|
+
|
|
4
|
+
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
|
|
5
|
+
|
|
6
|
+
Everyone is permitted to copy and distribute verbatim copies of this
|
|
7
|
+
license document, but changing it is not allowed.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
Developer's Certificate of Origin 1.1
|
|
11
|
+
|
|
12
|
+
By making a contribution to this project, I certify that:
|
|
13
|
+
|
|
14
|
+
(a) The contribution was created in whole or in part by me and I
|
|
15
|
+
have the right to submit it under the open source license
|
|
16
|
+
indicated in the file; or
|
|
17
|
+
|
|
18
|
+
(b) The contribution is based upon previous work that, to the best
|
|
19
|
+
of my knowledge, is covered under an appropriate open source
|
|
20
|
+
license and I have the right under that license to submit that
|
|
21
|
+
work with modifications, whether created in whole or in part
|
|
22
|
+
by me, under the same open source license (unless I am
|
|
23
|
+
permitted to submit under a different license), as indicated
|
|
24
|
+
in the file; or
|
|
25
|
+
|
|
26
|
+
(c) The contribution was provided directly to me by some other
|
|
27
|
+
person who certified (a), (b) or (c) and I have not modified
|
|
28
|
+
it.
|
|
29
|
+
|
|
30
|
+
(d) I understand and agree that this project and the contribution
|
|
31
|
+
are public and that a record of the contribution (including all
|
|
32
|
+
personal information I submit with it, including my sign-off) is
|
|
33
|
+
maintained indefinitely and may be redistributed consistent with
|
|
34
|
+
this project or the open source license(s) involved.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Maintainers
|
|
2
|
+
|
|
3
|
+
Who has access to what, what each role is expected to do, and what has to
|
|
4
|
+
happen before anyone is granted more. This file is the authoritative list; if it
|
|
5
|
+
disagrees with someone's memory, this file is right and the memory is stale.
|
|
6
|
+
|
|
7
|
+
## Current maintainers
|
|
8
|
+
|
|
9
|
+
| Name | GitHub | Role | Since |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| Jonathan Reyes | [@jonnyeclectic](https://github.com/jonnyeclectic) | Lead maintainer | 2026-07 |
|
|
12
|
+
|
|
13
|
+
boost is a **single-maintainer project today**. That is stated plainly rather
|
|
14
|
+
than glossed, because it is the single largest risk to the project and it
|
|
15
|
+
changes what you should expect: review latency depends on one person, and the
|
|
16
|
+
bus factor is one. See [Continuity](#continuity) for what happens if that
|
|
17
|
+
person becomes unavailable, and [Becoming a maintainer](#becoming-a-maintainer)
|
|
18
|
+
for how that changes.
|
|
19
|
+
|
|
20
|
+
## Access to sensitive resources
|
|
21
|
+
|
|
22
|
+
Every credential and privileged surface the project depends on, and who holds
|
|
23
|
+
it. Nothing not listed here grants access to anything.
|
|
24
|
+
|
|
25
|
+
| Resource | Who has access | How access works |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| GitHub repository (admin) | Lead maintainer | GitHub account with 2FA |
|
|
28
|
+
| `main` branch | **No one directly.** | A ruleset requires a pull request and the full required-check gate; `non_fast_forward` blocks history rewrites. Admin included. |
|
|
29
|
+
| PyPI project `boost-skill-cli` | **No stored credential exists.** | Publishing is a [PyPI Trusted Publisher](https://docs.pypi.org/trusted-publishers/): GitHub mints a short-lived OIDC token for `publish.yml` on `main` only. There is no API token to leak, share, or rotate. |
|
|
30
|
+
| GitHub Actions secrets | Lead maintainer | Only optional dashboard tokens (`CODECOV_TOKEN`, `SONAR_TOKEN`) and optional evaluation API keys. Every job reading one skips itself when it is absent, so none is required to build, test, or release. |
|
|
31
|
+
| Security advisories / private vulnerability reports | Lead maintainer | GitHub private vulnerability reporting |
|
|
32
|
+
| GitHub Pages docs site | Lead maintainer | Published from `main` by CI; no separate credential |
|
|
33
|
+
|
|
34
|
+
## Roles and responsibilities
|
|
35
|
+
|
|
36
|
+
**Lead maintainer.** Sets direction; reviews and merges pull requests; owns the
|
|
37
|
+
release process; is the recipient of private vulnerability reports and owns the
|
|
38
|
+
response; administers repository settings, branch rulesets and the required-check
|
|
39
|
+
list; maintains this file.
|
|
40
|
+
|
|
41
|
+
**Maintainer** (none appointed yet). Reviews and merges pull requests within an
|
|
42
|
+
agreed area; may not change repository settings, rulesets, or the release path.
|
|
43
|
+
A maintainer is expected to keep the quality gates green rather than route
|
|
44
|
+
around them, and to say so publicly when a gate is wrong instead of disabling it
|
|
45
|
+
quietly.
|
|
46
|
+
|
|
47
|
+
**Contributor.** Anyone who opens a pull request. No standing permissions; a
|
|
48
|
+
contribution is merged by a maintainer after the gates pass. See
|
|
49
|
+
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
50
|
+
|
|
51
|
+
**Security reporter.** Anyone who reports a vulnerability through the process in
|
|
52
|
+
[SECURITY.md](SECURITY.md). Reporters are credited by name in the advisory and
|
|
53
|
+
the release notes unless they ask not to be.
|
|
54
|
+
|
|
55
|
+
## Becoming a maintainer
|
|
56
|
+
|
|
57
|
+
Escalated permission is granted deliberately and never by default. The policy:
|
|
58
|
+
|
|
59
|
+
1. **A track record first.** A sustained series of merged, non-trivial
|
|
60
|
+
contributions — enough that their judgement on this codebase is a known
|
|
61
|
+
quantity, not an assumption.
|
|
62
|
+
2. **Review before the grant.** The lead maintainer reviews that history and
|
|
63
|
+
proposes the change in a public issue, naming the scope of access being
|
|
64
|
+
granted and why. Existing maintainers may object there.
|
|
65
|
+
3. **Least privilege at the grant.** New collaborators receive the lowest
|
|
66
|
+
permission that lets them do the job. Write access is a separate, later
|
|
67
|
+
decision from repository administration, which is a separate decision again
|
|
68
|
+
from anything touching the release path.
|
|
69
|
+
4. **This file is updated in the same change** that grants the permission. An
|
|
70
|
+
access grant that is not recorded here has not happened.
|
|
71
|
+
|
|
72
|
+
The same review applies when an existing maintainer is given more access, not
|
|
73
|
+
only to a first grant.
|
|
74
|
+
|
|
75
|
+
## Removing access
|
|
76
|
+
|
|
77
|
+
Access is removed promptly when a maintainer steps down, becomes unreachable for
|
|
78
|
+
an extended period, or at their own request — and immediately if an account is
|
|
79
|
+
believed compromised. Removal does not require agreement from the person losing
|
|
80
|
+
access. Because publishing uses a short-lived OIDC identity rather than a stored
|
|
81
|
+
token, removing someone's GitHub access removes their ability to release; there
|
|
82
|
+
is no separate credential left behind to revoke.
|
|
83
|
+
|
|
84
|
+
## Continuity
|
|
85
|
+
|
|
86
|
+
If the lead maintainer becomes unavailable:
|
|
87
|
+
|
|
88
|
+
- **The code is safe regardless.** It is GPL-3.0, the full history is public,
|
|
89
|
+
and every release is reproducible from a public tag. Anyone may fork.
|
|
90
|
+
- **The published artifacts stay published.** PyPI releases and GitHub releases
|
|
91
|
+
remain available; nothing expires if no one logs in.
|
|
92
|
+
- **Recovery of the canonical repository** would go through
|
|
93
|
+
[GitHub's account-recovery and inactive-repository processes](https://docs.github.com/en/site-policy).
|
|
94
|
+
Because the release path is a GitHub OIDC identity bound to this repository,
|
|
95
|
+
whoever legitimately controls the repository controls releases — there is no
|
|
96
|
+
personal token that has to be handed over.
|
|
97
|
+
- **The practical answer is to fork.** Until a second maintainer exists, that
|
|
98
|
+
is the honest continuity plan, and the project would rather say so than
|
|
99
|
+
imply a succession process it does not have.
|
|
100
|
+
|
|
101
|
+
Reducing this risk is open work: if you have been contributing and want to help
|
|
102
|
+
carry it, say so in an issue.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boost-skill-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.28
|
|
4
4
|
Summary: boost — Homebrew for AI coding skills
|
|
5
5
|
Author: Jonathan Reyes
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -724,6 +724,7 @@ Dynamic: license-file
|
|
|
724
724
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
725
725
|
[](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
|
|
726
726
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
727
|
+
[](https://www.bestpractices.dev/projects/14275)
|
|
727
728
|
[](LICENSE)
|
|
728
729
|
|
|
729
730
|
**Homebrew for AI coding skills.** boost finds, installs, and version-tracks
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
7
7
|
[](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
|
|
8
8
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
9
|
+
[](https://www.bestpractices.dev/projects/14275)
|
|
9
10
|
[](LICENSE)
|
|
10
11
|
|
|
11
12
|
**Homebrew for AI coding skills.** boost finds, installs, and version-tracks
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Security policy
|
|
2
|
+
|
|
3
|
+
## Supported versions
|
|
4
|
+
|
|
5
|
+
Only the latest release receives security fixes. [SUPPORT.md](SUPPORT.md) sets
|
|
6
|
+
out the scope and duration of support in full, including when a version stops
|
|
7
|
+
receiving security updates.
|
|
8
|
+
|
|
9
|
+
## Reporting a vulnerability
|
|
10
|
+
|
|
11
|
+
Please **do not** open a public issue for security reports. Instead, use
|
|
12
|
+
GitHub's private vulnerability reporting:
|
|
13
|
+
|
|
14
|
+
**[Report a vulnerability](https://github.com/jonnyeclectic/boost/security/advisories/new)**
|
|
15
|
+
|
|
16
|
+
You can expect an acknowledgement within a few days. Please include steps to
|
|
17
|
+
reproduce and the affected command(s).
|
|
18
|
+
|
|
19
|
+
## Vulnerability fixes in release notes
|
|
20
|
+
|
|
21
|
+
Every merge to `main` cuts a release, so a fix reaches users within minutes of
|
|
22
|
+
landing. When a release fixes a publicly known vulnerability in boost itself —
|
|
23
|
+
one that already had a CVE or an equivalent identifier when the release was
|
|
24
|
+
cut — the [release notes](https://github.com/jonnyeclectic/boost/releases) will
|
|
25
|
+
name it and its identifier, so you can tell an upgrade that matters from one
|
|
26
|
+
that does not. No such vulnerability has been reported to date.
|
|
27
|
+
|
|
28
|
+
Vulnerabilities in boost's *dependencies* are handled separately: the runtime
|
|
29
|
+
has none, and the development toolchain is watched by `osv-scanner`, `pip-audit`
|
|
30
|
+
and Dependabot.
|
|
31
|
+
|
|
32
|
+
## Scope notes
|
|
33
|
+
|
|
34
|
+
boost executes `git` against registry URLs you tap and symlinks skills into
|
|
35
|
+
agent directories. Reports about tap-supplied content escaping the store,
|
|
36
|
+
path traversal via `SKILL.md` frontmatter, or command injection through
|
|
37
|
+
skill/tap names are especially valuable.
|
|
38
|
+
|
|
39
|
+
## Secrets and credentials
|
|
40
|
+
|
|
41
|
+
The policy in one line: **boost stores no credential it could leak.**
|
|
42
|
+
|
|
43
|
+
- **Releases use no stored token.** Publishing goes through PyPI Trusted
|
|
44
|
+
Publishing — GitHub mints a short-lived OIDC identity for `publish.yml` at the
|
|
45
|
+
moment of upload. There is no PyPI API token in a secret, on a laptop, or in a
|
|
46
|
+
password manager, so there is nothing to rotate and nothing to steal.
|
|
47
|
+
- **Every secret that does exist is optional.** Only `CODECOV_TOKEN`,
|
|
48
|
+
`SONAR_TOKEN` and the optional evaluation API keys are configured, all as
|
|
49
|
+
GitHub Actions repository secrets. Every job reading one skips itself when it
|
|
50
|
+
is absent, so none is required to build, test or release.
|
|
51
|
+
- **Secrets never reach untrusted code.** No workflow uses
|
|
52
|
+
`pull_request_target`, so a fork's pull request runs with a read-only token
|
|
53
|
+
and no secret access. Secrets are bound at job level, never interpolated into
|
|
54
|
+
a `run:` block, and `zizmor` fails a pull request that breaks either rule.
|
|
55
|
+
- **Access follows the maintainer list.** Who holds what is recorded in
|
|
56
|
+
[MAINTAINERS.md](MAINTAINERS.md), which also states the policy that escalated
|
|
57
|
+
permissions are reviewed before they are granted. Access is removed promptly
|
|
58
|
+
when someone steps down and immediately if an account is believed compromised.
|
|
59
|
+
- **Rotation.** An optional dashboard token is rotated on suspicion of exposure
|
|
60
|
+
or when the holder's access is removed — revoked at the issuing service, then
|
|
61
|
+
replaced or deleted in repository settings. Because none is required, deleting
|
|
62
|
+
one is always a safe first move.
|
|
63
|
+
- **Committed secrets are caught.** `gitleaks` runs in CI on every push and
|
|
64
|
+
fails the build on a hit; the allowlist covers only boost's own synthetic
|
|
65
|
+
scanner test fixtures.
|
|
66
|
+
|
|
67
|
+
If you believe a boost credential has been exposed, report it through the
|
|
68
|
+
private channel above rather than opening an issue.
|
|
69
|
+
|
|
70
|
+
## How boost is designed to resist this
|
|
71
|
+
|
|
72
|
+
[`docs/security-design.md`](docs/security-design.md) is the threat model: what
|
|
73
|
+
boost trusts and what it does not, the design principles the code is held to,
|
|
74
|
+
and the table of error classes — path traversal, command injection, zip-slip,
|
|
75
|
+
untrusted deserialization, supply-chain compromise — each paired with the
|
|
76
|
+
mitigation that counters it. It also states the known limits plainly, including
|
|
77
|
+
the one that matters most: boost gives you a skill's provenance, integrity and
|
|
78
|
+
diff, but judging what the skill *tells your agent to do* is yours.
|
|
79
|
+
|
|
80
|
+
For how boost's badge-level security posture is assessed, see
|
|
81
|
+
[`docs/openssf-badge.md`](docs/openssf-badge.md). Two companion documents cover
|
|
82
|
+
the supply chain either side of a release:
|
|
83
|
+
[`docs/dependencies.md`](docs/dependencies.md) — how dependencies are chosen,
|
|
84
|
+
pinned by hash, tracked, and at what threshold a finding blocks a merge — and
|
|
85
|
+
[`docs/verifying-releases.md`](docs/verifying-releases.md) — how to verify for
|
|
86
|
+
yourself that an artifact you installed was built by this repository.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Support
|
|
2
|
+
|
|
3
|
+
What boost supports, for how long, and where to ask.
|
|
4
|
+
|
|
5
|
+
## Where to ask
|
|
6
|
+
|
|
7
|
+
| You want to | Go here |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Report a bug | [Open an issue](https://github.com/jonnyeclectic/boost/issues/new/choose) |
|
|
10
|
+
| Request a feature | [Open an issue](https://github.com/jonnyeclectic/boost/issues/new/choose) |
|
|
11
|
+
| Report a vulnerability | **Not an issue** — [SECURITY.md](SECURITY.md) |
|
|
12
|
+
| Diagnose a broken install | [`docs/DEBUGGING.md`](docs/DEBUGGING.md), then `boost doctor` |
|
|
13
|
+
| Contribute a change | [CONTRIBUTING.md](CONTRIBUTING.md) |
|
|
14
|
+
|
|
15
|
+
`boost doctor` is the first thing to run for anything that looks like a
|
|
16
|
+
misconfiguration. It names the single next action for each problem it finds
|
|
17
|
+
rather than printing a menu, and its output is the most useful thing to paste
|
|
18
|
+
into an issue.
|
|
19
|
+
|
|
20
|
+
## What is supported
|
|
21
|
+
|
|
22
|
+
**Only the latest release.** boost releases on every merge to `main`, so the
|
|
23
|
+
latest version is usually minutes old and the gap between "what you have" and
|
|
24
|
+
"what is fixed" is small by design. Bug fixes and security fixes go into the
|
|
25
|
+
next release; there are no backport branches and no long-term-support line.
|
|
26
|
+
|
|
27
|
+
If you are on an older version, the supported answer is to upgrade:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pipx upgrade boost-skill-cli # or: pip install -U boost-skill-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Supported environments** — these are what CI runs on every pull request, so a
|
|
34
|
+
regression on any of them fails the build:
|
|
35
|
+
|
|
36
|
+
| | Supported |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Python | 3.12, 3.13, 3.14 (and a non-blocking 3.14 free-threaded canary) |
|
|
39
|
+
| Operating system | Linux, macOS, Windows |
|
|
40
|
+
| Required external tools | `git` |
|
|
41
|
+
|
|
42
|
+
Python 3.11 and earlier are **not** supported: the project's floor is
|
|
43
|
+
`requires-python = ">=3.12"`.
|
|
44
|
+
|
|
45
|
+
## When a version stops receiving security updates
|
|
46
|
+
|
|
47
|
+
**The moment a newer release exists.** A version other than the latest receives
|
|
48
|
+
no security updates, and none will be backported to it.
|
|
49
|
+
|
|
50
|
+
This is stated as a policy rather than left implicit because the alternative
|
|
51
|
+
would be misleading. With a release cut on every merge, maintaining a supported
|
|
52
|
+
older line would mean supporting hundreds of versions; the project does not do
|
|
53
|
+
that and will not pretend to. In exchange, the upgrade path is deliberately
|
|
54
|
+
cheap — a single `pipx upgrade`, a stdlib-only runtime with no dependency
|
|
55
|
+
resolution to go wrong, and no configuration migration between patch releases.
|
|
56
|
+
|
|
57
|
+
If a release fixes a publicly known vulnerability, the release notes name it and
|
|
58
|
+
its identifier — see
|
|
59
|
+
[SECURITY.md](SECURITY.md#vulnerability-fixes-in-release-notes).
|
|
60
|
+
|
|
61
|
+
## What is not supported
|
|
62
|
+
|
|
63
|
+
- **The content of third-party skills, rules and workflows.** boost gives you a
|
|
64
|
+
skill's provenance, its integrity digest and a diff. Judging what a skill
|
|
65
|
+
tells your agent to do is yours; see the limits section of
|
|
66
|
+
[`docs/security-design.md`](docs/security-design.md).
|
|
67
|
+
- **`boost serve`** as a hardened server. It is a local development
|
|
68
|
+
convenience for a trusted network.
|
|
69
|
+
- **Optional extras** (`[rag]`, `[eval]`, `[bdd]`, `[langchain]`) carry
|
|
70
|
+
third-party dependencies and their own compatibility constraints. The default
|
|
71
|
+
install is stdlib-only and is what the support statement above covers.
|
|
72
|
+
|
|
73
|
+
## Response expectations
|
|
74
|
+
|
|
75
|
+
This is a single-maintainer project ([MAINTAINERS.md](MAINTAINERS.md)), so
|
|
76
|
+
response times depend on one person's availability. Vulnerability reports are
|
|
77
|
+
acknowledged within a few days and are the highest priority; ordinary issues are
|
|
78
|
+
triaged as they arrive but carry no service-level guarantee.
|
|
@@ -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.28'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 28)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -1189,7 +1189,18 @@ def cmd_trust(argv) -> int:
|
|
|
1189
1189
|
if key_path.is_file() else args.key)
|
|
1190
1190
|
rec = provenance.add_trusted_key(args.name, key_text)
|
|
1191
1191
|
journal.log("trust", args.name, op="add-key")
|
|
1192
|
-
|
|
1192
|
+
# The fingerprint is the point of this line, not incidental detail: it
|
|
1193
|
+
# is how the user checks by eye that the key they just trusted is the
|
|
1194
|
+
# one the publisher advertises. CodeQL's py/clear-text-logging-sensitive
|
|
1195
|
+
# -data flags it because `name` is user-supplied and `fingerprint` reads
|
|
1196
|
+
# like a credential, but a minisign PUBLIC key fingerprint is meant to
|
|
1197
|
+
# be published — printing it is the verification, and an autofix that
|
|
1198
|
+
# replaced this with a constant string (dc6e827) removed the only check
|
|
1199
|
+
# `trust add` offers. Restored, suppressed with the reason, and pinned
|
|
1200
|
+
# by tests/functional/test_tap_signing.py so it cannot be quietly
|
|
1201
|
+
# dropped a second time.
|
|
1202
|
+
out.ok("trusted key %s (%s)" # codeql[py/clear-text-logging-sensitive-data]
|
|
1203
|
+
% (rec["name"], rec["fingerprint"]))
|
|
1193
1204
|
return 0
|
|
1194
1205
|
|
|
1195
1206
|
if args.action == "remove":
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: boost-skill-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.28
|
|
4
4
|
Summary: boost — Homebrew for AI coding skills
|
|
5
5
|
Author: Jonathan Reyes
|
|
6
6
|
License: GNU GENERAL PUBLIC LICENSE
|
|
@@ -724,6 +724,7 @@ Dynamic: license-file
|
|
|
724
724
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
725
725
|
[](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
|
|
726
726
|
[](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
|
|
727
|
+
[](https://www.bestpractices.dev/projects/14275)
|
|
727
728
|
[](LICENSE)
|
|
728
729
|
|
|
729
730
|
**Homebrew for AI coding skills.** boost finds, installs, and version-tracks
|
|
@@ -11,11 +11,14 @@
|
|
|
11
11
|
CLAUDE.md
|
|
12
12
|
CODE_OF_CONDUCT.md
|
|
13
13
|
CONTRIBUTING.md
|
|
14
|
+
DCO
|
|
14
15
|
LICENSE
|
|
16
|
+
MAINTAINERS.md
|
|
15
17
|
MANIFEST.in
|
|
16
18
|
Makefile
|
|
17
19
|
README.md
|
|
18
20
|
SECURITY.md
|
|
21
|
+
SUPPORT.md
|
|
19
22
|
boost
|
|
20
23
|
codecov.yml
|
|
21
24
|
eslint.config.mjs
|
|
@@ -122,18 +125,23 @@ docs/adapters.html
|
|
|
122
125
|
docs/carousel.html
|
|
123
126
|
docs/chat.html
|
|
124
127
|
docs/commands.html
|
|
128
|
+
docs/commit-audit.md
|
|
125
129
|
docs/demo-index.json
|
|
126
130
|
docs/demo.gif
|
|
127
131
|
docs/demo.html
|
|
128
132
|
docs/demo.tape
|
|
133
|
+
docs/dependencies.md
|
|
129
134
|
docs/design-roadmap.html
|
|
130
135
|
docs/eval-latest.json
|
|
131
136
|
docs/eval.html
|
|
132
137
|
docs/index.html
|
|
133
138
|
docs/langchain.html
|
|
134
139
|
docs/mcp-hub.html
|
|
140
|
+
docs/openssf-badge.md
|
|
135
141
|
docs/rag-architecture.md
|
|
136
142
|
docs/roadmap.html
|
|
143
|
+
docs/security-design.md
|
|
144
|
+
docs/verifying-releases.md
|
|
137
145
|
docs/.claude/settings.local.json
|
|
138
146
|
docs/architecture/README.md
|
|
139
147
|
docs/architecture/c4-components-core.md
|
|
@@ -339,6 +347,8 @@ docs/roadmap/items/one-command-every-env-nox.md
|
|
|
339
347
|
docs/roadmap/items/one-commit-can-cut-two-releases.md
|
|
340
348
|
docs/roadmap/items/one-dead-tap-broke-every-update.md
|
|
341
349
|
docs/roadmap/items/one-shared-atomic-write-helper.md
|
|
350
|
+
docs/roadmap/items/openssf-best-practices-badge.md
|
|
351
|
+
docs/roadmap/items/osps-baseline-levels.md
|
|
342
352
|
docs/roadmap/items/package-metadata-validation-twine-check-friends.md
|
|
343
353
|
docs/roadmap/items/patch-coverage-gate-diff-cover.md
|
|
344
354
|
docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md
|
|
@@ -482,6 +492,7 @@ scripts/build_registries.py
|
|
|
482
492
|
scripts/build_roadmap.py
|
|
483
493
|
scripts/build_scale_corpus.py
|
|
484
494
|
scripts/check_anchors.py
|
|
495
|
+
scripts/check_dco.py
|
|
485
496
|
scripts/check_licenses.py
|
|
486
497
|
scripts/check_required_checks.py
|
|
487
498
|
scripts/ensure_eval_corpus.sh
|
|
@@ -604,6 +615,7 @@ tests/unit/test_catalog.py
|
|
|
604
615
|
tests/unit/test_catalogbundle.py
|
|
605
616
|
tests/unit/test_chat.py
|
|
606
617
|
tests/unit/test_check_anchors.py
|
|
618
|
+
tests/unit/test_check_dco.py
|
|
607
619
|
tests/unit/test_check_licenses.py
|
|
608
620
|
tests/unit/test_claude_settings.py
|
|
609
621
|
tests/unit/test_clean_internal_cache.py
|