boost-skill-cli 1.2.116__tar.gz → 1.2.117__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.116/boost_skill_cli.egg-info → boost_skill_cli-1.2.117}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/bmad.py +77 -30
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/bmad.md +12 -2
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +3 -3
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap.html +2 -61
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_bmad_core.py +149 -11
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.gitattributes +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.gitignore +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/.vale.ini +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/CLAUDE.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/DCO +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/LICENSE +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/Makefile +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/archive.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/cohort.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/deps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/discovery.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/jsonstate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/report.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/typedvalue.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/codecov.yml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/index.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-absorb-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-adapt-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-attest-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-audit-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-bmad-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-browse-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-bundle-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-catalog-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-changelog-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-chat-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-cohort-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-completions-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-config-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-context-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-create-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-deps-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-discover-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-doctor-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-drift-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-edit-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-evolve-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-explain-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-export-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-health-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-import-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-index-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-install-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-lint-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-log-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-mcp-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-onboard-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-outdated-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-policy-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-preview-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-profile-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-protocol-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-pulse-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-recommend-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-reindex-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-replay-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-root-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-run-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-schedule-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-search-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-simulate-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-sync-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-tag-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-tap-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-taps-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-test-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-trust-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-unpin-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-untap-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-update-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-verify-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/audit-who-findings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/shrink-the-published-index.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/examples/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/index.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/noxfile.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/measure_near_duplicate_bound.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/setup.cfg +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/style/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/style/boost.css +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/style/boost.js +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/style/demo.html +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_bmad_personas_scope.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_json_reports.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_recommend_because_is_true.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_reports_match_reality.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_archive.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_catalog_keyword_words.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_cohort.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_count_flags_use_positive_int.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_entry_vectors.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_deps.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_discovery.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_distill_merge.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_doctor_output_polish.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_drift_hint.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_jsonstate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_launcher_python_floor.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_near_duplicate_collapse.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rag_completeness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_report.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_schedule_plist.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_typedvalue.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_visual_harness_capture.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.116 → boost_skill_cli-1.2.117}/tests/visual/visual_check.mjs +0 -0
|
@@ -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.117'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 117)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -79,6 +79,22 @@ class Track(NamedTuple):
|
|
|
79
79
|
support: tuple[str, ...] # persona slugs to run alongside the lead
|
|
80
80
|
skill: str # canonical BMAD v6 skill for this track
|
|
81
81
|
note: str # how the lead should open
|
|
82
|
+
done: str # what finished looks like: one of DONE_KINDS
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
DONE_KINDS: tuple[str, ...] = ("change", "findings", "artifact")
|
|
86
|
+
"""What a track delivers, which decides what "done" means for it.
|
|
87
|
+
|
|
88
|
+
Every track used to get the build contract — new coverage, updated docs, a
|
|
89
|
+
finished and verified change — so "review the changes on this branch" was told
|
|
90
|
+
to add tests and finish a change, and "compare the two caching options" was
|
|
91
|
+
told to document what changed when nothing had. A *change* ends in edited
|
|
92
|
+
source; *findings* (review, discovery) end in an answer with its evidence; an
|
|
93
|
+
*artifact* (product, planning, architecture) ends in a written document. Neither
|
|
94
|
+
of the last two refuses work the prompt asked for: the tie-break sends
|
|
95
|
+
"implement the spec in specs/retry.md" to *product* on the word "spec", and a
|
|
96
|
+
flat "no code" would tell the model not to do what it was just asked to do.
|
|
97
|
+
"""
|
|
82
98
|
|
|
83
99
|
|
|
84
100
|
# --------------------------------------------------------------------- personas
|
|
@@ -238,33 +254,33 @@ PERSONA_BY_SLUG: dict[str, Persona] = {p.slug: p for p in PERSONAS}
|
|
|
238
254
|
TRACKS: dict[str, Track] = {
|
|
239
255
|
"discovery": Track(
|
|
240
256
|
lead="bmad-analyst", support=("bmad-pm",), skill="bmad-deep-recon",
|
|
241
|
-
note="Ground it in sources before recommending."),
|
|
257
|
+
note="Ground it in sources before recommending.", done="findings"),
|
|
242
258
|
"product": Track(
|
|
243
259
|
lead="bmad-pm", support=("bmad-analyst", "bmad-architect"),
|
|
244
260
|
skill="bmad-prd",
|
|
245
|
-
note="Write criteria a test could assert."),
|
|
261
|
+
note="Write criteria a test could assert.", done="artifact"),
|
|
246
262
|
"planning": Track(
|
|
247
263
|
lead="bmad-pm", support=("bmad-architect",), skill="bmad-sprint-planning",
|
|
248
|
-
note="Keep the tracked items and the work in sync."),
|
|
264
|
+
note="Keep the tracked items and the work in sync.", done="artifact"),
|
|
249
265
|
"architecture": Track(
|
|
250
266
|
lead="bmad-architect", support=("bmad-dev",), skill="bmad-architecture",
|
|
251
|
-
note="One recommendation, with the rejected option named."),
|
|
267
|
+
note="One recommendation, with the rejected option named.", done="artifact"),
|
|
252
268
|
"ux": Track(
|
|
253
269
|
lead="bmad-ux", support=("bmad-dev",), skill="bmad-ux",
|
|
254
|
-
note="Hierarchy and spacing before colour."),
|
|
270
|
+
note="Hierarchy and spacing before colour.", done="change"),
|
|
255
271
|
"build": Track(
|
|
256
272
|
lead="bmad-dev", support=("bmad-tea", "bmad-scribe"), skill="bmad-build",
|
|
257
|
-
note="Ship it complete and verified."),
|
|
273
|
+
note="Ship it complete and verified.", done="change"),
|
|
258
274
|
"quality": Track(
|
|
259
275
|
lead="bmad-tea", support=("bmad-dev",),
|
|
260
276
|
skill="bmad-qa-generate-e2e-tests",
|
|
261
|
-
note="Assertions that a mutation would fail."),
|
|
277
|
+
note="Assertions that a mutation would fail.", done="change"),
|
|
262
278
|
"docs": Track(
|
|
263
279
|
lead="bmad-scribe", support=("bmad-dev",), skill="bmad-document-project",
|
|
264
|
-
note="Verify against the code, regenerate what is generated."),
|
|
280
|
+
note="Verify against the code, regenerate what is generated.", done="change"),
|
|
265
281
|
"review": Track(
|
|
266
282
|
lead="bmad-tea", support=("bmad-architect",), skill="bmad-code-review",
|
|
267
|
-
note="Find the failure, not the style nit."),
|
|
283
|
+
note="Find the failure, not the style nit.", done="findings"),
|
|
268
284
|
}
|
|
269
285
|
|
|
270
286
|
TRACK_ORDER: tuple[str, ...] = (
|
|
@@ -680,14 +696,33 @@ def project_signals(root: Path) -> dict:
|
|
|
680
696
|
}
|
|
681
697
|
|
|
682
698
|
|
|
683
|
-
def done_checklist(signals: dict) -> list[str]:
|
|
684
|
-
"""The definition of done, in the repo's own vocabulary.
|
|
699
|
+
def done_checklist(signals: dict, done: str = "change") -> list[str]:
|
|
700
|
+
"""The definition of done for one kind of work, in the repo's own vocabulary.
|
|
685
701
|
|
|
686
|
-
|
|
687
|
-
reach, not a step to skip. Roadmap and gate clauses
|
|
688
|
-
repo actually has one, because an instruction to
|
|
689
|
-
not exist teaches the agent to ignore the whole
|
|
702
|
+
For a *change*, tests and docs are unconditional — "no doc change needed"
|
|
703
|
+
is a conclusion to reach, not a step to skip. Roadmap and gate clauses
|
|
704
|
+
appear only when the repo actually has one, because an instruction to
|
|
705
|
+
update a file that does not exist teaches the agent to ignore the whole
|
|
706
|
+
banner. *Findings* and *artifacts* are not changes, so they get no tests or
|
|
707
|
+
docs clause: they are done when the answer or the document is. Both carry
|
|
708
|
+
an "unless asked" escape, because the tie-break routes real change requests
|
|
709
|
+
onto them — "fix the lint errors in the scanner" goes to review, and
|
|
710
|
+
"implement the spec in specs/retry.md" to product.
|
|
690
711
|
"""
|
|
712
|
+
guide = signals.get("guide")
|
|
713
|
+
binding = ["`%s` is binding" % guide] if guide else []
|
|
714
|
+
if done == "findings":
|
|
715
|
+
gate = signals.get("gate")
|
|
716
|
+
return ["findings: each with its evidence (file:line, output or source)",
|
|
717
|
+
"no edits unless asked; an edit gets tests%s like any change"
|
|
718
|
+
% (" and `%s`" % gate if gate else ""), *binding]
|
|
719
|
+
if done == "artifact":
|
|
720
|
+
roadmap = signals.get("roadmap")
|
|
721
|
+
tracked = (["roadmap: create or claim the item under `%s`" % roadmap]
|
|
722
|
+
if roadmap else [])
|
|
723
|
+
return ["a written artifact; no code unless the prompt asks for a "
|
|
724
|
+
"change, which then gets the change contract", *tracked, *binding]
|
|
725
|
+
|
|
691
726
|
items: list[str] = []
|
|
692
727
|
|
|
693
728
|
tests = signals.get("tests")
|
|
@@ -711,11 +746,7 @@ def done_checklist(signals: dict) -> list[str]:
|
|
|
711
746
|
if gate:
|
|
712
747
|
items.append("gate: `%s` green, with real output" % gate)
|
|
713
748
|
|
|
714
|
-
|
|
715
|
-
if guide:
|
|
716
|
-
items.append("`%s` is binding" % guide)
|
|
717
|
-
|
|
718
|
-
return items
|
|
749
|
+
return items + binding
|
|
719
750
|
|
|
720
751
|
|
|
721
752
|
# --------------------------------------------------------------------- routing
|
|
@@ -756,13 +787,21 @@ def route_lines(prompt: str, root: Path | None = None,
|
|
|
756
787
|
lines.extend((
|
|
757
788
|
"BMAD skill: `%s` — invoke it if it is installed; otherwise the "
|
|
758
789
|
"persona's own playbook stands." % track.skill,
|
|
759
|
-
"Done means: " + " · ".join(done_checklist(signals)),
|
|
760
|
-
"Work autonomously through to a finished, verified change; stop to ask "
|
|
761
|
-
"only when a choice would change what gets delivered.",
|
|
790
|
+
"Done means: " + " · ".join(done_checklist(signals, track.done)),
|
|
762
791
|
))
|
|
792
|
+
if track.done == "change":
|
|
793
|
+
# Not "work autonomously": that competed with approval gates people add
|
|
794
|
+
# on purpose, and the guide clause above only exists when a guide does.
|
|
795
|
+
lines.append(CHANGE_CLOSE)
|
|
763
796
|
return lines
|
|
764
797
|
|
|
765
798
|
|
|
799
|
+
CHANGE_CLOSE = ("Finish the change and verify it; stop only for a choice that "
|
|
800
|
+
"changes what gets delivered, or an approval step a repo guide "
|
|
801
|
+
"or a loaded skill requires.")
|
|
802
|
+
"""The closing banner line for a change, and only a change."""
|
|
803
|
+
|
|
804
|
+
|
|
766
805
|
def route_context(prompt: str, root: Path | None = None,
|
|
767
806
|
agents_dirs: tuple[Path, ...] | None = None) -> str:
|
|
768
807
|
""":func:`route_lines` as one string (``""`` when there is nothing to say)."""
|
|
@@ -793,8 +832,9 @@ bmad-create-epics-and-stories / bmad-sprint-planning; ship with bmad-build
|
|
|
793
832
|
bmad-qa-generate-e2e-tests / bmad-retrospective; bmad-help lists the rest.
|
|
794
833
|
Full workflow skills need a per-project `_bmad/` runtime — `boost bmad init`.
|
|
795
834
|
|
|
796
|
-
House rule:
|
|
797
|
-
are done
|
|
835
|
+
House rule: a change is done when its tests, its docs and its tracked item are;
|
|
836
|
+
findings are done when each carries its evidence; an artifact is done when it is
|
|
837
|
+
written down and tracked. Turn this off with `boost bmad off`.""" % roster
|
|
798
838
|
|
|
799
839
|
|
|
800
840
|
# ------------------------------------------------------------ persona files
|
|
@@ -870,11 +910,18 @@ How you work:
|
|
|
870
910
|
BMAD skills to prefer when they are installed: %s.
|
|
871
911
|
They are not required — when they are absent, the playbook above is the method.
|
|
872
912
|
|
|
873
|
-
Before you report back, the
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
913
|
+
Before you report back, meet the contract for the kind of work you were given,
|
|
914
|
+
the same one the session that spawned you works to.
|
|
915
|
+
|
|
916
|
+
A change: tests updated and actually run, documentation left true, any tracked
|
|
917
|
+
roadmap or backlog item moved to match, and the repo's own gate green with
|
|
918
|
+
output you have seen.
|
|
919
|
+
Findings: each one with its evidence, and no edits unless you were asked.
|
|
920
|
+
An artifact: the written document itself, with any tracked item moved to match —
|
|
921
|
+
no code unless you were asked for a change, which then gets the contract above.
|
|
922
|
+
|
|
923
|
+
If you could not finish a part of it, say which part and why — do not narrow
|
|
924
|
+
the task silently.
|
|
878
925
|
""" % (persona.slug, json.dumps(persona_description(persona)), persona.color,
|
|
879
926
|
persona.character, persona.title, persona.mission, playbook, skills)
|
|
880
927
|
|
|
@@ -60,8 +60,8 @@ BMAD skill: `bmad-build` — invoke it if it is installed; otherwise the persona
|
|
|
60
60
|
Done means: tests: add or update coverage under `tests/`, and run them · docs: update
|
|
61
61
|
`README.md` / `docs/` wherever the change shows · roadmap: create or claim the item under
|
|
62
62
|
`docs/roadmap/items/` · gate: `make check` green, with real output · `CLAUDE.md` is binding
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
Finish the change and verify it; stop only for a choice that changes what gets delivered,
|
|
64
|
+
or an approval step a repo guide or a loaded skill requires.
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
Nine tracks (`build`, `quality`, `docs`, `planning`, `product`, `architecture`,
|
|
@@ -73,6 +73,16 @@ in front of you: your test directory, your docs, your roadmap items, your gate
|
|
|
73
73
|
command. Documentation, testing and roadmap bookkeeping travel with the task
|
|
74
74
|
instead of being remembered afterwards.
|
|
75
75
|
|
|
76
|
+
What "done" means depends on what the track delivers. `build`, `quality`,
|
|
77
|
+
`docs` and `ux` deliver a **change**, and get the contract above. `review` and
|
|
78
|
+
`discovery` deliver **findings**: each with its evidence, and no edits unless
|
|
79
|
+
the prompt asks for them. `product`, `planning` and `architecture` deliver an
|
|
80
|
+
**artifact**: a written document with the roadmap item kept in step, and no
|
|
81
|
+
code unless the prompt asked for a change. Both escapes matter: the tie-break
|
|
82
|
+
puts real change requests on both kinds.
|
|
83
|
+
Only a change gets the closing "finish and verify" line, and that line defers
|
|
84
|
+
to any approval step your repo guide or a loaded skill requires.
|
|
85
|
+
|
|
76
86
|
The router costs a question nothing. Acknowledgements, slash commands, short
|
|
77
87
|
questions ("what does `scan_dir` do?", "are there tests for the parser?"),
|
|
78
88
|
"read X and tell me Y" asks and anything containing `no bmad` produce no banner
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
id: bmad-done-contract-ignores-the-track
|
|
3
3
|
board: code
|
|
4
4
|
section: dx
|
|
5
|
-
status:
|
|
5
|
+
status: shipped
|
|
6
6
|
category: "Agents · BMAD"
|
|
7
7
|
complexity: M
|
|
8
8
|
impact: High
|
|
9
9
|
wow: 2
|
|
10
10
|
note: a review or research ask is told to add tests and finish a change
|
|
11
11
|
order: 321
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
12
|
+
owner: loop/bmad-done-contract
|
|
13
|
+
pr: 864
|
|
14
14
|
title: "<code>boost bmad</code> gives every track the build contract, so a review is told to finish a change"
|
|
15
15
|
---
|
|
16
16
|
<code>route_lines</code> (<code>core/bmad.py:523</code>) takes the first four banner lines from the track
|
|
@@ -7588,68 +7588,9 @@ its own pass rather than a bolt-on inside this PR. Left <code>inflight</code> ra
|
|
|
7588
7588
|
</article>
|
|
7589
7589
|
|
|
7590
7590
|
<article class="cap rcard" id="bmad-done-contract-ignores-the-track">
|
|
7591
|
-
<div class="head"><span class="pill
|
|
7591
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Agents · BMAD</span></div>
|
|
7592
7592
|
<h3><code>boost bmad</code> gives every track the build contract, so a review is told to finish a change</h3>
|
|
7593
|
-
<p><
|
|
7594
|
-
and the last two ignore it: <code>done_checklist(signals)</code> (<code>:483</code>) has no
|
|
7595
|
-
track parameter, and the autonomy sentence (<code>:551</code>) is a literal. One prompt per track against
|
|
7596
|
-
one fixture repo gave <b>one distinct pair of closing lines across all 9 tracks</b>:<br>
|
|
7597
|
-
<code>Done means: tests: add or update coverage under `tests/`, and run them · docs: update `README.md` / `docs/` wherever the change shows · gate: `make check` green, with real output · `CLAUDE.md` is binding</code><br>
|
|
7598
|
-
<code>Work autonomously through to a finished, verified change; stop to ask only when a choice would change what gets delivered.</code>
|
|
7599
|
-
|
|
7600
|
-
<b>Repro</b> (throwaway repo with <code>tests/</code>, <code>docs/</code>, <code>README.md</code>,
|
|
7601
|
-
<code>CLAUDE.md</code>, and a <code>Makefile</code> with <code>check:</code>).
|
|
7602
|
-
<code>boost bmad route "review the changes on this branch and tell me what could break" --plain</code>
|
|
7603
|
-
names Murat (<code>bmad-tea</code>) as lead with <code>bmad-code-review</code>, then defines done as new
|
|
7604
|
-
coverage, updated docs and a finished, verified change. <code>"compare the two caching options and recommend one"</code>,
|
|
7605
|
-
<code>"write the PRD for the policy engine"</code> and <code>"prioritize the backlog for next sprint"</code>
|
|
7606
|
-
get the same two lines. In an empty repo the comparison is told <code>tests: cover the change … docs: write down what changed</code>, but nothing changed.
|
|
7607
|
-
The shared lines are 48% of the fixture's review banner (326 of 673 chars) and 41% in the empty repo.
|
|
7608
|
-
|
|
7609
|
-
<b>Against real prompts the clause seldom fits.</b> Replaying the origin/main classifier over one
|
|
7610
|
-
profile's history (417 ordinary prompts over 6 active days, roughly half from tooling repos): 147 (35%)
|
|
7611
|
-
would get a banner, or 109 if pasted text is not in the hook's <code>prompt</code> field (not yet
|
|
7612
|
-
checked). A <em>single judge</em> (an agent) labelled 41 routed banners, sampled by track: <code>Done means</code>
|
|
7613
|
-
fit <b>5 of 41</b> (11 counting partial fits).
|
|
7614
|
-
|
|
7615
|
-
<b>The same contract appears in three places, and one was a deliberate choice.</b> The autopilot item
|
|
7616
|
-
made tests and docs unconditional (“no doc change needed” is a conclusion to reach), and
|
|
7617
|
-
<code>tests/unit/test_bmad_core.py:331</code> enforces that. It is right for a change and wrong for an
|
|
7618
|
-
answer. Every persona file repeats the contract (<code>_persona_text</code>,
|
|
7619
|
-
<code>core/bmad.py:663–667</code>: “tests updated and actually run, documentation left true …”),
|
|
7620
|
-
so the <code>bmad-analyst</code> a discovery banner hands off to brings it back. The SessionStart
|
|
7621
|
-
briefing says to follow the banner (<code>:576</code>) and ends on a tests-docs-item house rule
|
|
7622
|
-
(<code>:586</code>).
|
|
7623
|
-
|
|
7624
|
-
<b>The autonomy line competes with approval gates users add on purpose</b>, such as the
|
|
7625
|
-
<code>HARD-GATE</code> in superpowers' <code>brainstorming</code> skill (no implementation until the user
|
|
7626
|
-
approves) or a team rule requiring confirmation before a change that affects production. The banner is
|
|
7627
|
-
<code>UserPromptSubmit</code> <code>additionalContext</code> (<code>commands/bmad.py:354</code>), added
|
|
7628
|
-
again on every routed prompt. <b>Untested:</b> which instruction a model follows when they
|
|
7629
|
-
conflict. Softening the line to defer to the repo guide would not cover this: the <code>is binding</code>
|
|
7630
|
-
clause only appears when a guide file exists (<code>core/bmad.py:514–516</code>), and a plugin skill is not a guide file.
|
|
7631
|
-
|
|
7632
|
-
<b>Fix: store the kind of done on <code>Track</code></b> (<code>core/bmad.py:75</code>) and pass it to
|
|
7633
|
-
<code>done_checklist(signals, done)</code>. <i>change</i> (build, quality, docs, ux): today's clauses,
|
|
7634
|
-
unchanged. <i>findings</i> (review, discovery): “findings with evidence, no edits unless
|
|
7635
|
-
asked”. The “unless asked” matters because the tie-break sends <code>"fix the lint
|
|
7636
|
-
errors in the scanner"</code> to review and <code>"investigate why the export crashes and fix it"</code>
|
|
7637
|
-
to discovery. <i>artifact</i> (product, planning, architecture): “a written artifact, no
|
|
7638
|
-
code”, keeping the roadmap and guide clauses. Drop the autonomy line from
|
|
7639
|
-
findings and artifact tracks. On change tracks, replace it with wording that does not depend on a
|
|
7640
|
-
guide file: finish and verify, and still honour any approval step that the guide or a loaded skill
|
|
7641
|
-
requires. <code>_persona_text</code> should state the contract for each kind, since
|
|
7642
|
-
<code>bmad-tea</code> leads both quality and review. The house rule should name all three kinds.
|
|
7643
|
-
|
|
7644
|
-
<b>Tests go in <code>tests/unit/test_bmad_core.py</code>.</b> Assert every <code>TRACKS</code> entry
|
|
7645
|
-
declares a kind, and that no findings or artifact banner has a <code>tests:</code> clause.
|
|
7646
|
-
Add verbatim review and discovery banners next to <code>test_the_whole_banner_is_exactly_this</code>
|
|
7647
|
-
(<code>:396</code>), whose build pin keeps its <code>Done means</code> line and takes the new closing line.
|
|
7648
|
-
Limit <code>:331</code> to change tracks. <code>:376</code> pins <code>autonom</code> on one build banner:
|
|
7649
|
-
move it to the new wording and assert the line is absent from findings and artifact banners.
|
|
7650
|
-
<code>:688</code> only checks that each persona file mentions tests and docs, so pin the per-kind persona
|
|
7651
|
-
contract directly. Out of scope: router accuracy (same single judge: track or lead clearly wrong on
|
|
7652
|
-
21 of 41) is a separate defect.</p>
|
|
7593
|
+
<p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/bmad-done-contract-ignores-the-track.md">Write-up · bmad-done-contract-ignores-the-track.md</a></p>
|
|
7653
7594
|
<div class="meta">
|
|
7654
7595
|
<span class="m">Complexity <b>M</b></span>
|
|
7655
7596
|
<span class="m hi">Impact <b>High</b></span>
|
|
@@ -654,11 +654,70 @@ class TestDoneChecklist:
|
|
|
654
654
|
"docs: write down what changed for the next reader",
|
|
655
655
|
]
|
|
656
656
|
|
|
657
|
-
def
|
|
658
|
-
|
|
657
|
+
def test_a_change_always_demands_tests_and_docs_even_in_a_bare_repo(
|
|
658
|
+
self, tmp_path):
|
|
659
|
+
line = " ".join(bmad.done_checklist(bmad.project_signals(tmp_path),
|
|
660
|
+
"change"))
|
|
659
661
|
assert "test" in line.lower()
|
|
660
662
|
assert "doc" in line.lower()
|
|
661
663
|
|
|
664
|
+
def _full_repo(self, root):
|
|
665
|
+
(root / "tests").mkdir()
|
|
666
|
+
(root / "docs" / "roadmap" / "items").mkdir(parents=True)
|
|
667
|
+
(root / "CLAUDE.md").write_text("rules", encoding="utf-8")
|
|
668
|
+
(root / "Makefile").write_text("check:\n\ttrue\n", encoding="utf-8")
|
|
669
|
+
return bmad.project_signals(root)
|
|
670
|
+
|
|
671
|
+
def test_findings_are_evidence_and_no_edits_unless_asked(self, tmp_path):
|
|
672
|
+
""""fix the lint errors in the scanner" routes to review, hence "unless"."""
|
|
673
|
+
assert bmad.done_checklist(self._full_repo(tmp_path), "findings") == [
|
|
674
|
+
"findings: each with its evidence (file:line, output or source)",
|
|
675
|
+
"no edits unless asked; an edit gets tests and `make check` like "
|
|
676
|
+
"any change",
|
|
677
|
+
"`CLAUDE.md` is binding",
|
|
678
|
+
]
|
|
679
|
+
|
|
680
|
+
def test_findings_in_a_bare_repo_name_no_gate(self, tmp_path):
|
|
681
|
+
assert bmad.done_checklist(bmad.project_signals(tmp_path), "findings") == [
|
|
682
|
+
"findings: each with its evidence (file:line, output or source)",
|
|
683
|
+
"no edits unless asked; an edit gets tests like any change",
|
|
684
|
+
]
|
|
685
|
+
|
|
686
|
+
def test_an_artifact_is_written_not_coded_and_keeps_the_roadmap(self, tmp_path):
|
|
687
|
+
assert bmad.done_checklist(self._full_repo(tmp_path), "artifact") == [
|
|
688
|
+
"a written artifact; no code unless the prompt asks for a change, "
|
|
689
|
+
"which then gets the change contract",
|
|
690
|
+
"roadmap: create or claim the item under `docs/roadmap/items/`",
|
|
691
|
+
"`CLAUDE.md` is binding",
|
|
692
|
+
]
|
|
693
|
+
|
|
694
|
+
def test_an_artifact_in_a_bare_repo_is_just_the_artifact(self, tmp_path):
|
|
695
|
+
assert bmad.done_checklist(bmad.project_signals(tmp_path), "artifact") == [
|
|
696
|
+
"a written artifact; no code unless the prompt asks for a change, "
|
|
697
|
+
"which then gets the change contract"]
|
|
698
|
+
|
|
699
|
+
@pytest.mark.parametrize("kind", ["findings", "artifact"])
|
|
700
|
+
def test_neither_kind_refuses_work_that_was_asked_for(self, tmp_path, kind):
|
|
701
|
+
"""The tie-break sends real change requests onto both kinds: "fix the
|
|
702
|
+
lint errors in the scanner" is review, "implement the spec in
|
|
703
|
+
specs/retry.md" is product. A flat "no code" contradicts the prompt."""
|
|
704
|
+
line = " ".join(bmad.done_checklist(bmad.project_signals(tmp_path), kind))
|
|
705
|
+
assert "unless" in line and ("asked" in line or "asks" in line)
|
|
706
|
+
|
|
707
|
+
def test_an_edit_request_that_tie_breaks_onto_product_is_not_told_no_code(
|
|
708
|
+
self, tmp_path):
|
|
709
|
+
assert bmad.classify("implement the spec in specs/retry.md",
|
|
710
|
+
tmp_path) == "product"
|
|
711
|
+
done = next(ln for ln in
|
|
712
|
+
bmad.route_lines("implement the spec in specs/retry.md", tmp_path)
|
|
713
|
+
if ln.startswith("Done means:"))
|
|
714
|
+
assert "no code unless the prompt asks for a change" in done
|
|
715
|
+
|
|
716
|
+
def test_the_default_kind_is_a_change(self, tmp_path):
|
|
717
|
+
signals = self._full_repo(tmp_path)
|
|
718
|
+
assert bmad.done_checklist(signals) == bmad.done_checklist(signals,
|
|
719
|
+
"change")
|
|
720
|
+
|
|
662
721
|
def test_no_roadmap_means_no_roadmap_clause(self, tmp_path):
|
|
663
722
|
line = " ".join(bmad.done_checklist(bmad.project_signals(tmp_path)))
|
|
664
723
|
assert "roadmap" not in line.lower()
|
|
@@ -699,9 +758,44 @@ class TestRouteContext:
|
|
|
699
758
|
assert len(bmad.route_lines("implement the new export command", tmp_path)) <= 8
|
|
700
759
|
assert len(text) < 1200
|
|
701
760
|
|
|
702
|
-
def
|
|
703
|
-
|
|
704
|
-
|
|
761
|
+
def test_a_change_is_finished_but_approval_steps_still_hold(self, tmp_path):
|
|
762
|
+
"""Not "work autonomously": that line competed with approval gates a
|
|
763
|
+
user adds on purpose, such as a brainstorming skill's HARD-GATE."""
|
|
764
|
+
lines = bmad.route_lines("fix the crash in store.install", tmp_path)
|
|
765
|
+
assert lines[-1] == bmad.CHANGE_CLOSE
|
|
766
|
+
assert "approval step" in bmad.CHANGE_CLOSE
|
|
767
|
+
assert "autonom" not in bmad.route_context(
|
|
768
|
+
"fix the crash in store.install", tmp_path).lower()
|
|
769
|
+
|
|
770
|
+
@pytest.mark.parametrize("prompt,kind", [
|
|
771
|
+
("review the changes on this branch and tell me what could break",
|
|
772
|
+
"findings"),
|
|
773
|
+
("compare the two caching options and recommend one", "findings"),
|
|
774
|
+
("write the PRD for the policy engine", "artifact"),
|
|
775
|
+
("prioritize the backlog for next sprint", "artifact"),
|
|
776
|
+
("design the schema for the pulse feed", "artifact"),
|
|
777
|
+
])
|
|
778
|
+
def test_findings_and_artifacts_get_no_build_contract(
|
|
779
|
+
self, tmp_path, prompt, kind):
|
|
780
|
+
(tmp_path / "tests").mkdir()
|
|
781
|
+
(tmp_path / "README.md").write_text("x", encoding="utf-8")
|
|
782
|
+
(tmp_path / "Makefile").write_text("check:\n\ttrue\n", encoding="utf-8")
|
|
783
|
+
track = bmad.classify(prompt, tmp_path)
|
|
784
|
+
assert bmad.TRACKS[track].done == kind
|
|
785
|
+
lines = bmad.route_lines(prompt, tmp_path)
|
|
786
|
+
done = next(line for line in lines if line.startswith("Done means:"))
|
|
787
|
+
assert "tests:" not in done and "docs:" not in done
|
|
788
|
+
assert bmad.CHANGE_CLOSE not in lines
|
|
789
|
+
assert lines[-1] == done
|
|
790
|
+
|
|
791
|
+
def test_every_track_declares_what_it_delivers(self):
|
|
792
|
+
assert {name: t.done for name, t in bmad.TRACKS.items()} == {
|
|
793
|
+
"build": "change", "quality": "change", "docs": "change",
|
|
794
|
+
"ux": "change", "review": "findings", "discovery": "findings",
|
|
795
|
+
"product": "artifact", "planning": "artifact",
|
|
796
|
+
"architecture": "artifact",
|
|
797
|
+
}
|
|
798
|
+
assert set(bmad.DONE_KINDS) == {t.done for t in bmad.TRACKS.values()}
|
|
705
799
|
|
|
706
800
|
def test_quality_prompts_lead_with_the_test_architect(self, tmp_path):
|
|
707
801
|
text = bmad.route_context("add tests for catalog.scan_dir", tmp_path)
|
|
@@ -742,8 +836,39 @@ class TestRouteContext:
|
|
|
742
836
|
"Done means: tests: add or update coverage under `tests/`, and run "
|
|
743
837
|
"them · docs: update `README.md` wherever the change shows · "
|
|
744
838
|
"gate: `make check` green, with real output",
|
|
745
|
-
"
|
|
746
|
-
"
|
|
839
|
+
"Finish the change and verify it; stop only for a choice that "
|
|
840
|
+
"changes what gets delivered, or an approval step a repo guide or "
|
|
841
|
+
"a loaded skill requires.",
|
|
842
|
+
]
|
|
843
|
+
|
|
844
|
+
def test_the_whole_review_banner_is_exactly_this(self, tmp_path):
|
|
845
|
+
(tmp_path / "tests").mkdir()
|
|
846
|
+
(tmp_path / "Makefile").write_text("check:\n\ttrue\n", encoding="utf-8")
|
|
847
|
+
assert bmad.route_lines("review the changes on this branch", tmp_path) == [
|
|
848
|
+
"[BMAD autopilot] track: review",
|
|
849
|
+
"Lead: `bmad-tea` subagent — Murat, Master Test Architect. "
|
|
850
|
+
"Find the failure, not the style nit.",
|
|
851
|
+
"Support: `bmad-architect` (Winston) — spawn them with the Agent "
|
|
852
|
+
"tool, in parallel where the work is independent.",
|
|
853
|
+
"BMAD skill: `bmad-code-review` — invoke it if it is installed; "
|
|
854
|
+
"otherwise the persona's own playbook stands.",
|
|
855
|
+
"Done means: findings: each with its evidence (file:line, output or "
|
|
856
|
+
"source) · no edits unless asked; an edit gets tests and "
|
|
857
|
+
"`make check` like any change",
|
|
858
|
+
]
|
|
859
|
+
|
|
860
|
+
def test_the_whole_discovery_banner_is_exactly_this(self, tmp_path):
|
|
861
|
+
assert bmad.route_lines("research how other CLIs pin their toolchains",
|
|
862
|
+
tmp_path) == [
|
|
863
|
+
"[BMAD autopilot] track: discovery",
|
|
864
|
+
"Lead: `bmad-analyst` subagent — Mary, Business Analyst. "
|
|
865
|
+
"Ground it in sources before recommending.",
|
|
866
|
+
"Support: `bmad-pm` (John) — spawn them with the Agent tool, in "
|
|
867
|
+
"parallel where the work is independent.",
|
|
868
|
+
"BMAD skill: `bmad-deep-recon` — invoke it if it is installed; "
|
|
869
|
+
"otherwise the persona's own playbook stands.",
|
|
870
|
+
"Done means: findings: each with its evidence (file:line, output or "
|
|
871
|
+
"source) · no edits unless asked; an edit gets tests like any change",
|
|
747
872
|
]
|
|
748
873
|
|
|
749
874
|
def test_no_persona_file_anywhere_means_no_subagent_is_named(self, tmp_path):
|
|
@@ -816,6 +941,12 @@ class TestOrientation:
|
|
|
816
941
|
def test_it_names_the_command_that_turns_it_off(self):
|
|
817
942
|
assert "boost bmad off" in bmad.orientation()
|
|
818
943
|
|
|
944
|
+
def test_the_house_rule_names_all_three_kinds_of_done(self):
|
|
945
|
+
rule = bmad.orientation().split("House rule:")[1]
|
|
946
|
+
assert "a change is done when its tests, its docs and its tracked item" in rule
|
|
947
|
+
assert "findings are done when each carries its evidence" in rule
|
|
948
|
+
assert "an artifact is done when it is\nwritten down and tracked" in rule
|
|
949
|
+
|
|
819
950
|
|
|
820
951
|
# -------------------------------------------------------------------- personas
|
|
821
952
|
|
|
@@ -1042,11 +1173,18 @@ class TestOwnershipStamp:
|
|
|
1042
1173
|
p.slug for p in bmad.PERSONAS if p.slug != "bmad-dev")
|
|
1043
1174
|
assert (tmp_path / "bmad-dev.md").exists()
|
|
1044
1175
|
|
|
1045
|
-
|
|
1176
|
+
CONTRACT = """A change: tests updated and actually run, documentation left true, any tracked
|
|
1177
|
+
roadmap or backlog item moved to match, and the repo's own gate green with
|
|
1178
|
+
output you have seen.
|
|
1179
|
+
Findings: each one with its evidence, and no edits unless you were asked.
|
|
1180
|
+
An artifact: the written document itself, with any tracked item moved to match —
|
|
1181
|
+
no code unless you were asked for a change, which then gets the contract above."""
|
|
1182
|
+
|
|
1183
|
+
def test_every_persona_body_states_the_contract_for_each_kind(self):
|
|
1184
|
+
"""`bmad-tea` leads quality (a change) and review (findings), so a
|
|
1185
|
+
persona cannot carry one kind's contract."""
|
|
1046
1186
|
for p in bmad.PERSONAS:
|
|
1047
|
-
|
|
1048
|
-
low = md.lower()
|
|
1049
|
-
assert "test" in low and "doc" in low
|
|
1187
|
+
assert self.CONTRACT in bmad.persona_markdown(p), p.slug
|
|
1050
1188
|
|
|
1051
1189
|
def test_persona_descriptions_are_delegation_triggers(self):
|
|
1052
1190
|
"""Claude picks a subagent off `description`; it must say when to use it."""
|
|
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
|