boost-skill-cli 1.2.34__tar.gz → 1.2.35__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.34 → boost_skill_cli-1.2.35}/CONTRIBUTING.md +11 -0
- {boost_skill_cli-1.2.34/boost_skill_cli.egg-info → boost_skill_cli-1.2.35}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/SOURCES.txt +3 -0
- boost_skill_cli-1.2.35/docs/roadmap/items/branch-current-gate.md +39 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap.html +36 -1
- boost_skill_cli-1.2.35/scripts/check_branch_current.py +94 -0
- boost_skill_cli-1.2.35/tests/unit/test_branch_current.py +56 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.gitattributes +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.gitignore +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.vale.ini +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/CLAUDE.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/DCO +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/LICENSE +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/Makefile +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/codecov.yml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/index.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/examples/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/index.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/noxfile.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/setup.cfg +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/style/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/style/boost.css +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/style/boost.js +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/style/demo.html +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/tests/visual/visual_check.mjs +0 -0
|
@@ -257,6 +257,17 @@ branch ruleset (**Settings → Rules → Rulesets**):
|
|
|
257
257
|
gate before it can merge, so an incompatible pair can't both land — the second
|
|
258
258
|
PR must include the first and re-run CI.
|
|
259
259
|
|
|
260
|
+
> **Set it in the ruleset, and verify it from the API.** This repository asks
|
|
261
|
+
> for that rule in two places, and for a while neither one enforced it. Classic
|
|
262
|
+
> branch protection had `strict: true` *and* `enforce_admins: false`, so it
|
|
263
|
+
> skipped the only account that merges; the active ruleset — no bypass actors,
|
|
264
|
+
> so it does apply — had `strict_required_status_checks_policy: false`. Two
|
|
265
|
+
> mechanisms, and the binding one had the safety off. Two PRs then merged into
|
|
266
|
+
> a red `main`, which stopped the release guard arming and left two merged PRs
|
|
267
|
+
> unreleased. Check the real state with
|
|
268
|
+
> `gh api repos/jonnyeclectic/boost/rulesets/<id>`, never the settings page,
|
|
269
|
+
> and note that the `branch-current` required check now backstops it.
|
|
270
|
+
>
|
|
260
271
|
> Check names must be **unique across workflows** — GitHub matches a required
|
|
261
272
|
> check by name alone. Three names collided before this was written (`lint` in
|
|
262
273
|
> ci/markdownlint/theme-lint, `audit` in lighthouse/pip-audit, `analyze` in
|
|
@@ -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.35'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 35)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -213,6 +213,7 @@ docs/roadmap/items/boost-first-carried-the-losing-trigger.md
|
|
|
213
213
|
docs/roadmap/items/boost-first-rule.md
|
|
214
214
|
docs/roadmap/items/boost-langchain-publishing.md
|
|
215
215
|
docs/roadmap/items/boost-run-live-agents.md
|
|
216
|
+
docs/roadmap/items/branch-current-gate.md
|
|
216
217
|
docs/roadmap/items/bring-commands-under-mutation-testing.md
|
|
217
218
|
docs/roadmap/items/broken-link-and-anchor-checking-lychee.md
|
|
218
219
|
docs/roadmap/items/browse-could-not-search-two-words.md
|
|
@@ -508,6 +509,7 @@ scripts/build_registries.py
|
|
|
508
509
|
scripts/build_roadmap.py
|
|
509
510
|
scripts/build_scale_corpus.py
|
|
510
511
|
scripts/check_anchors.py
|
|
512
|
+
scripts/check_branch_current.py
|
|
511
513
|
scripts/check_dco.py
|
|
512
514
|
scripts/check_licenses.py
|
|
513
515
|
scripts/check_reproducible.py
|
|
@@ -627,6 +629,7 @@ tests/unit/test_ai.py
|
|
|
627
629
|
tests/unit/test_bmad_core.py
|
|
628
630
|
tests/unit/test_boost_first_offer.py
|
|
629
631
|
tests/unit/test_bootstrap.py
|
|
632
|
+
tests/unit/test_branch_current.py
|
|
630
633
|
tests/unit/test_browse.py
|
|
631
634
|
tests/unit/test_builtin.py
|
|
632
635
|
tests/unit/test_capabilities.py
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: branch-current-gate
|
|
3
|
+
board: code
|
|
4
|
+
section: health
|
|
5
|
+
status: inflight
|
|
6
|
+
category: CI · Release safety
|
|
7
|
+
complexity: S
|
|
8
|
+
impact: High
|
|
9
|
+
wow: 4
|
|
10
|
+
note: two protection mechanisms disagreed; the binding one had the safety off
|
|
11
|
+
order: 10
|
|
12
|
+
owner: loop/generated-freshness
|
|
13
|
+
pr:
|
|
14
|
+
title: main went red because "require branches up to date" was never actually on
|
|
15
|
+
---
|
|
16
|
+
Two pull requests, each green against the <code>main</code> it was tested on, merged into a
|
|
17
|
+
combination that turned <code>main</code> red. Their source files did not conflict. The
|
|
18
|
+
<b>generated</b> <code>docs/roadmap.html</code> did — and a squash merge takes one side of a
|
|
19
|
+
generated file <b>without ever reporting a conflict</b>. The board's "Loop finds" counter was
|
|
20
|
+
correct on both branches and wrong for their union.
|
|
21
|
+
<b>Seventeen jobs failed on one line.</b> Ten test legs, the lint job and all six mutation
|
|
22
|
+
shards — the shards because the unit suite runs inside <code>mutants/</code>, where
|
|
23
|
+
<code>test_roadmap_fresh</code> fails baseline <i>collection</i>, so a stale generated file
|
|
24
|
+
reads as "the mutation gate could not start". And because <code>ci</code> was red on
|
|
25
|
+
<code>main</code>, the release workflow's guard never armed: two merged pull requests, one of
|
|
26
|
+
them the reproducible-build pipeline, sat on <code>main</code> with no tag.
|
|
27
|
+
<b>The root cause was a setting, and the trap was that it looked set.</b> The repository asks
|
|
28
|
+
GitHub to require branches be up to date <b>twice</b>. Classic branch protection has
|
|
29
|
+
<code>strict: true</code> — and <code>enforce_admins: false</code>, so it does not apply to the
|
|
30
|
+
one account that merges. The active ruleset, which has no bypass actors and therefore does
|
|
31
|
+
apply, had <code>strict_required_status_checks_policy: false</code>. Two mechanisms, and the
|
|
32
|
+
binding one had the safety off. They also disagreed on how many checks are required: 14, 20,
|
|
33
|
+
and 21 in <code>required-checks.txt</code>.
|
|
34
|
+
<b>Fixed both ways.</b> The ruleset now enforces up-to-date merges, verified by reading it back
|
|
35
|
+
from the API rather than trusting the settings page. And <code>branch-current</code> is now a
|
|
36
|
+
required check, because that setting is invisible config that drifted once and can drift again
|
|
37
|
+
— a required check is in the diff, in <code>required-checks.txt</code>, and shows up in review.
|
|
38
|
+
Within minutes of the fix, GitHub moved two open pull requests to <code>behind</code> and
|
|
39
|
+
refused them; an hour earlier both would have merged and broken <code>main</code> a second time.
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
<div class="stat"><b>17</b><span>Shipped</span></div>
|
|
134
134
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
135
135
|
<div class="stat"><b>7</b><span>Planned</span></div>
|
|
136
|
-
<div class="stat"><b>
|
|
136
|
+
<div class="stat"><b>279</b><span>Loop finds</span></div>
|
|
137
137
|
<!-- /ROADMAP:stats -->
|
|
138
138
|
</div>
|
|
139
139
|
</section>
|
|
@@ -5015,6 +5015,41 @@ re-embeds every vector already paid for.</p>
|
|
|
5015
5015
|
</div>
|
|
5016
5016
|
</article>
|
|
5017
5017
|
|
|
5018
|
+
<article class="cap rcard" id="branch-current-gate">
|
|
5019
|
+
<div class="head"><span class="pill inflight">In flight</span><span class="cat">CI · Release safety</span></div>
|
|
5020
|
+
<h3>main went red because "require branches up to date" was never actually on</h3>
|
|
5021
|
+
<p>Two pull requests, each green against the <code>main</code> it was tested on, merged into a
|
|
5022
|
+
combination that turned <code>main</code> red. Their source files did not conflict. The
|
|
5023
|
+
<b>generated</b> <code>docs/roadmap.html</code> did — and a squash merge takes one side of a
|
|
5024
|
+
generated file <b>without ever reporting a conflict</b>. The board's "Loop finds" counter was
|
|
5025
|
+
correct on both branches and wrong for their union.
|
|
5026
|
+
<b>Seventeen jobs failed on one line.</b> Ten test legs, the lint job and all six mutation
|
|
5027
|
+
shards — the shards because the unit suite runs inside <code>mutants/</code>, where
|
|
5028
|
+
<code>test_roadmap_fresh</code> fails baseline <i>collection</i>, so a stale generated file
|
|
5029
|
+
reads as "the mutation gate could not start". And because <code>ci</code> was red on
|
|
5030
|
+
<code>main</code>, the release workflow's guard never armed: two merged pull requests, one of
|
|
5031
|
+
them the reproducible-build pipeline, sat on <code>main</code> with no tag.
|
|
5032
|
+
<b>The root cause was a setting, and the trap was that it looked set.</b> The repository asks
|
|
5033
|
+
GitHub to require branches be up to date <b>twice</b>. Classic branch protection has
|
|
5034
|
+
<code>strict: true</code> — and <code>enforce_admins: false</code>, so it does not apply to the
|
|
5035
|
+
one account that merges. The active ruleset, which has no bypass actors and therefore does
|
|
5036
|
+
apply, had <code>strict_required_status_checks_policy: false</code>. Two mechanisms, and the
|
|
5037
|
+
binding one had the safety off. They also disagreed on how many checks are required: 14, 20,
|
|
5038
|
+
and 21 in <code>required-checks.txt</code>.
|
|
5039
|
+
<b>Fixed both ways.</b> The ruleset now enforces up-to-date merges, verified by reading it back
|
|
5040
|
+
from the API rather than trusting the settings page. And <code>branch-current</code> is now a
|
|
5041
|
+
required check, because that setting is invisible config that drifted once and can drift again
|
|
5042
|
+
— a required check is in the diff, in <code>required-checks.txt</code>, and shows up in review.
|
|
5043
|
+
Within minutes of the fix, GitHub moved two open pull requests to <code>behind</code> and
|
|
5044
|
+
refused them; an hour earlier both would have merged and broken <code>main</code> a second time.</p>
|
|
5045
|
+
<div class="meta">
|
|
5046
|
+
<span class="m">Complexity <b>S</b></span>
|
|
5047
|
+
<span class="m hi">Impact <b>High</b></span>
|
|
5048
|
+
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
5049
|
+
<span class="m">two protection mechanisms disagreed; the binding one had the safety off</span>
|
|
5050
|
+
</div>
|
|
5051
|
+
</article>
|
|
5052
|
+
|
|
5018
5053
|
<article class="cap rcard" id="log-timestamps-mislabeled-utc">
|
|
5019
5054
|
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Observability · Diagnostics</span></div>
|
|
5020
5055
|
<h3>Log timestamps are local time mislabeled <code>Z</code></h3>
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Copyright the boost contributors.
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
4
|
+
"""Fail a pull request that does not contain the base branch's tip.
|
|
5
|
+
|
|
6
|
+
Every merge to `main` cuts a PyPI release, and two pull requests that are each
|
|
7
|
+
green in isolation can still land a broken *combination*. That is not
|
|
8
|
+
hypothetical here: on 2026-08-29 two of them each added a roadmap item and each
|
|
9
|
+
regenerated `docs/roadmap.html`. The item files merged cleanly — that is what
|
|
10
|
+
the file-per-item design is for — but the generated board is one shared file,
|
|
11
|
+
and a squash merge takes one side of it without reporting a conflict. `main`
|
|
12
|
+
went red on a counter that was correct on both branches and wrong for their
|
|
13
|
+
union, and because `ci` was red the release workflow's guard never armed, so
|
|
14
|
+
two merged pull requests sat unreleased.
|
|
15
|
+
|
|
16
|
+
GitHub can enforce this natively and the repository asks it to twice, which is
|
|
17
|
+
the trap. Classic branch protection sets `strict: true` but also
|
|
18
|
+
`enforce_admins: false`, so it does not apply to the account that does the
|
|
19
|
+
merging; the active ruleset, which has no bypass actors and therefore does
|
|
20
|
+
apply, sets `strict_required_status_checks_policy: false`. Two mechanisms, and
|
|
21
|
+
the binding one had the safety off. A required *check* is enforced by the
|
|
22
|
+
ruleset either way, which is why this lives in the repository instead of in a
|
|
23
|
+
settings page nobody can diff.
|
|
24
|
+
|
|
25
|
+
Usage (CI passes the base explicitly; locally it defaults to origin/main)::
|
|
26
|
+
|
|
27
|
+
python3 scripts/check_branch_current.py
|
|
28
|
+
python3 scripts/check_branch_current.py --base origin/main
|
|
29
|
+
"""
|
|
30
|
+
from __future__ import annotations
|
|
31
|
+
|
|
32
|
+
import argparse
|
|
33
|
+
import subprocess
|
|
34
|
+
import sys
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def problem(base_sha: str, *, contains_base: bool) -> str | None:
|
|
38
|
+
"""The message to print, or None when the branch is current.
|
|
39
|
+
|
|
40
|
+
Split from the git plumbing so the verdict is a pure function of the one
|
|
41
|
+
thing that decides it: whether this branch already contains the base tip.
|
|
42
|
+
"""
|
|
43
|
+
if contains_base:
|
|
44
|
+
return None
|
|
45
|
+
return (
|
|
46
|
+
"this branch does not contain %s, the current tip of the base branch.\n"
|
|
47
|
+
" Two branches that are each green can still merge into a broken\n"
|
|
48
|
+
" combination — a generated file is the usual way, since a squash\n"
|
|
49
|
+
" merge takes one side of it without reporting a conflict.\n"
|
|
50
|
+
" Fix: git fetch origin main && git rebase origin/main\n"
|
|
51
|
+
" then re-run `make generate` and commit any drift."
|
|
52
|
+
) % base_sha
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _git(*args: str) -> str:
|
|
56
|
+
return subprocess.run(["git", *args], check=True,
|
|
57
|
+
capture_output=True, text=True).stdout.strip()
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def contains(base: str) -> tuple[str, bool]:
|
|
61
|
+
"""(base sha, whether HEAD already contains it)."""
|
|
62
|
+
base_sha = _git("rev-parse", base)
|
|
63
|
+
result = subprocess.run(["git", "merge-base", "--is-ancestor", base_sha, "HEAD"],
|
|
64
|
+
capture_output=True, text=True)
|
|
65
|
+
return base_sha, result.returncode == 0
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def main(argv: list[str]) -> int:
|
|
69
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
70
|
+
parser.add_argument("--base", default="origin/main",
|
|
71
|
+
help="base ref the branch must contain (default: origin/main)")
|
|
72
|
+
args = parser.parse_args(argv)
|
|
73
|
+
|
|
74
|
+
try:
|
|
75
|
+
base_sha, ok = contains(args.base)
|
|
76
|
+
except subprocess.CalledProcessError:
|
|
77
|
+
# No such ref — a shallow clone or a fork without the base fetched.
|
|
78
|
+
# Report it rather than passing silently: a check that cannot look is
|
|
79
|
+
# not a check that passed.
|
|
80
|
+
print("check-branch-current: cannot resolve %s — fetch it first" % args.base,
|
|
81
|
+
file=sys.stderr)
|
|
82
|
+
return 2
|
|
83
|
+
|
|
84
|
+
found = problem(base_sha, contains_base=ok)
|
|
85
|
+
if found is None:
|
|
86
|
+
print("check-branch-current: OK — branch contains %s (%s)"
|
|
87
|
+
% (args.base, base_sha[:8]))
|
|
88
|
+
return 0
|
|
89
|
+
print("check-branch-current: %s" % found, file=sys.stderr)
|
|
90
|
+
return 1
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
if __name__ == "__main__":
|
|
94
|
+
raise SystemExit(main(sys.argv[1:]))
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Copyright the boost contributors.
|
|
2
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
3
|
+
"""A pull request that does not contain main's tip cannot merge.
|
|
4
|
+
|
|
5
|
+
This is the check that would have stopped the red `main` of 2026-08-29. Two
|
|
6
|
+
pull requests were each green against the `main` they were tested on, and the
|
|
7
|
+
second merged without re-testing against the first. Their source files did not
|
|
8
|
+
conflict; their *generated* roadmap board did, and a squash merge takes one
|
|
9
|
+
side of a generated file without ever reporting a conflict.
|
|
10
|
+
|
|
11
|
+
GitHub can enforce this natively, and the repository asks it to twice — but
|
|
12
|
+
classic branch protection has `enforce_admins: false`, so it does not apply to
|
|
13
|
+
the one account that merges, and the active ruleset has
|
|
14
|
+
`strict_required_status_checks_policy: false`. Between them, nothing was
|
|
15
|
+
enforcing it. A required *check* is enforced by the ruleset regardless, which
|
|
16
|
+
is why this lives in the repository rather than in a settings page.
|
|
17
|
+
"""
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import importlib.util
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
|
|
23
|
+
import pytest
|
|
24
|
+
|
|
25
|
+
ROOT = Path(__file__).resolve().parents[2]
|
|
26
|
+
_SCRIPT = ROOT / "scripts" / "check_branch_current.py"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _mod():
|
|
30
|
+
spec = importlib.util.spec_from_file_location("check_branch_current", _SCRIPT)
|
|
31
|
+
assert spec and spec.loader
|
|
32
|
+
module = importlib.util.module_from_spec(spec)
|
|
33
|
+
spec.loader.exec_module(module)
|
|
34
|
+
return module
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_a_branch_containing_main_is_fine() -> None:
|
|
38
|
+
assert _mod().problem("abc1234", contains_base=True) is None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def test_a_branch_behind_main_is_a_problem() -> None:
|
|
42
|
+
out = _mod().problem("abc1234", contains_base=False)
|
|
43
|
+
assert out is not None
|
|
44
|
+
assert "abc1234" in out, "the message must name the commit to rebase onto"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def test_the_problem_names_the_fix() -> None:
|
|
48
|
+
"""A failing check that does not say what to run costs a support round."""
|
|
49
|
+
out = _mod().problem("abc1234", contains_base=False)
|
|
50
|
+
assert "git rebase origin/main" in out or "rebase" in out
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
@pytest.mark.parametrize("contains", [True, False])
|
|
54
|
+
def test_verdict_depends_only_on_containment(contains: bool) -> None:
|
|
55
|
+
"""The one input that decides it — nothing environmental leaks in."""
|
|
56
|
+
assert (_mod().problem("deadbee", contains_base=contains) is None) is contains
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/.vale/styles/config/vocabularies/boost/accept.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.2.34 → boost_skill_cli-1.2.35}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|