boost-skill-cli 1.2.67__tar.gz → 1.2.68__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.67/boost_skill_cli.egg-info → boost_skill_cli-1.2.68}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_skill_cli.egg-info/SOURCES.txt +2 -0
- boost_skill_cli-1.2.68/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +52 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +9 -0
- boost_skill_cli-1.2.68/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +69 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap.html +129 -3
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.gitattributes +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.gitignore +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.lycheeignore +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.vale/styles/boost/AIWriting.yml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.vale.ini +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/CLAUDE.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/DCO +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/GOVERNANCE.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/LICENSE +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/MAINTAINERS.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/MANIFEST.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/Makefile +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/SECURITY.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/SUPPORT.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/quickstart.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/aihost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/bmad.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/bootstrap.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/browse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/builtin.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/catalogbundle.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/chat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/complete.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/hookhost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/data/rules/boost-first.mdc +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/__init__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/_compat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/graph.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/loader.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/py.typed +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_langchain/retriever.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/codecov.yml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/adapters.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/bmad.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/carousel.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/chat.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/code-review.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/commands.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/commit-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/demo-index.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/demo.gif +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/demo.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/demo.tape +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/dependencies.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/eval-latest.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/eval.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/index.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/langchain.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/openssf-badge.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/BOOST-D27.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ai-backend-fanout.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/boost-first-rule.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/branch-current-gate.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/cli-command-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/install-path-disambiguation.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/openssf-playbook.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/openssf-silver.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/osps-baseline-levels.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/relicence-apache-2.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/vex-openvex-feed.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/zip-strict-audit.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/security-design.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/semantic-search.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/verifying-releases.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/meta.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/openvex.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/__init__.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/baseline.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/metrics.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/examples/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/index.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/noxfile.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/pyproject.toml +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/add_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_demo_index.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/build_vex.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_branch_current.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_dco.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_reproducible.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_corpus.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/eval_tools.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/measure_registry.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/page_budget.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/publish_eval_json.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/publish_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/serve_docs.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/scripts/shard_plan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/setup.cfg +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/sonar-project.properties +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/style/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/style/boost.css +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/style/boost.js +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/style/demo.html +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/conftest.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/taps-scale.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/eval/tool_calls.jsonl +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_bmad_all_hosts.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_catalog.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_chat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_hooks_gemini.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_pane_width.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_quickstart.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_tap_pins.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_kind_conformance.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/langchain/conftest.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/langchain/test_graph.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/langchain/test_loader.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/langchain/test_retriever.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_action_pin_lockstep.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_aihost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_bmad_core.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_boost_first_offer.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_bootstrap.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_bot_pr_dco.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_branch_current.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_browse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_builtin.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_catalogbundle.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_chat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_check_dco.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_check_reproducible.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_clean_internal_cache.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_cli_update_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_compact.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_complete.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_complete_rc_block.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_content_identity.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_crash_redaction.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_demo_index.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_embed_dedupe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_entry_reuse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_progress.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_quantized.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_ready_order.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_shard_real_schema.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_status_cheap.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dense_vector_dedupe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_embed_truncated_response.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_corpus.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_grading.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_tools.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_eval_tools_probe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gemini_agent_sanitize.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gitutil_lfs.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gitutil_sparse.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_gstack_coexistence.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_hook_settings_hosts.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_hookhost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_install_permission_error.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_langchain_packaging.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_link_ownership.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_localembed_e2e.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mcp_read.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_measure_registry.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_normalize_sdist.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_page_budget.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_publish_golden_dataset.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_rag_fastpath.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_registry_control_chars.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_registry_parallel.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_rerank_cache.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_scale_corpus.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_serve_docs.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_shard_plan.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_shards.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_shards_incremental.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_shards_ingest.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_shards_matrix.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_smoke_covers_every_command.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_spdx_headers.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_store_materialize.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_sync_blocked_links.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_tap_pins.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_version_tags.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_vex.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_visual_harness_flags.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_workflow_concurrency_groups.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_workflow_push_has_credentials.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/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.68'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 68)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -250,6 +250,7 @@ docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md
|
|
|
250
250
|
docs/roadmap/items/crash-listing-branch-untested.md
|
|
251
251
|
docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md
|
|
252
252
|
docs/roadmap/items/crash-reports-leak-api-keys.md
|
|
253
|
+
docs/roadmap/items/delay-true-defeats-the-log-suppress.md
|
|
253
254
|
docs/roadmap/items/demo-cannot-open-its-own-pr.md
|
|
254
255
|
docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md
|
|
255
256
|
docs/roadmap/items/demo-workflow-cancels-other-prs.md
|
|
@@ -363,6 +364,7 @@ docs/roadmap/items/mutation-hardening-core-store-py.md
|
|
|
363
364
|
docs/roadmap/items/mutation-shard-floor-is-one-file.md
|
|
364
365
|
docs/roadmap/items/mypy-strict-mode-for-commands.md
|
|
365
366
|
docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md
|
|
367
|
+
docs/roadmap/items/near-identical-copies-still-eat-the-slots.md
|
|
366
368
|
docs/roadmap/items/negative-limit-inverts-log-pulse-output.md
|
|
367
369
|
docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md
|
|
368
370
|
docs/roadmap/items/one-command-every-env-nox.md
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: delay-true-defeats-the-log-suppress
|
|
3
|
+
board: code
|
|
4
|
+
section: planned
|
|
5
|
+
status: planned
|
|
6
|
+
category: Health · Robustness
|
|
7
|
+
complexity: S
|
|
8
|
+
impact: Medium
|
|
9
|
+
wow: 2
|
|
10
|
+
note: the suppress guards construction; delay=True moves the failure to emit
|
|
11
|
+
order: 130
|
|
12
|
+
title: A best-effort log handler prints a traceback over every command's output
|
|
13
|
+
---
|
|
14
|
+
<code>logs.configure</code> says what it means to do — <em>“File handler — always
|
|
15
|
+
DEBUG, best-effort (never break the CLI over a log)”</em> — and wraps the handler in
|
|
16
|
+
<code>contextlib.suppress(OSError)</code> to guarantee it. The guarantee does not hold, and the
|
|
17
|
+
reason is one keyword inside the block: <code>with contextlib.suppress(OSError):</code> ·
|
|
18
|
+
<code>paths.logs_dir().mkdir(parents=True, exist_ok=True)</code> ·
|
|
19
|
+
<code>fh = logging.handlers.RotatingFileHandler(log_path(), maxBytes=MAX_BYTES,
|
|
20
|
+
backupCount=BACKUP_COUNT, encoding="utf-8", <b>delay=True</b>)</code>.
|
|
21
|
+
|
|
22
|
+
<code>delay=True</code> means the file is <b>not opened during construction</b>. It is opened on the
|
|
23
|
+
first <code>emit()</code>, inside <code>shouldRollover</code> — which happens later, on a
|
|
24
|
+
different stack, outside the <code>suppress</code>. So the <code>OSError</code> the block exists to
|
|
25
|
+
swallow is relocated to exactly where nothing is catching it. <code>logging.raiseExceptions</code>
|
|
26
|
+
is left at its default <code>True</code>, so Python's logging module prints
|
|
27
|
+
<code>--- Logging error ---</code> and a full traceback to stderr instead.
|
|
28
|
+
|
|
29
|
+
<b>Observed on a real machine</b>, with the log at <code>rw-r--r--</code> owned by the invoking user
|
|
30
|
+
and the directory writable, under a harness whose filesystem policy did not include
|
|
31
|
+
<code>~/.boost/logs</code>. Every <code>boost</code> command emitted <b>two</b> tracebacks —
|
|
32
|
+
one from <code>log_invocation</code> at <code>cli.py:311</code> and one from
|
|
33
|
+
<code>log_completion</code> at <code>cli.py:343</code> — roughly thirty lines of Python
|
|
34
|
+
internals wrapped around the fifteen lines of search results the user actually asked for. The
|
|
35
|
+
command itself returned <code>rc=0</code>. Nothing was broken except the output.
|
|
36
|
+
|
|
37
|
+
<b>Two things to get right.</b> First, catching the error is not the same as reporting it: a handler
|
|
38
|
+
that silently swallows every write means a user whose diagnostics have been dead for months learns
|
|
39
|
+
nothing, which is the failure <code>doctor</code>'s log check already exists to prevent. The right
|
|
40
|
+
shape is to fail <em>quietly per emit</em> and let <code>doctor</code> stay the surface that says
|
|
41
|
+
so — it already reports <code>“diagnostic log … is not writable — every
|
|
42
|
+
invocation is failing to record”</code>, which was accurate the whole time this was spewing
|
|
43
|
+
tracebacks. Second, <code>logging.raiseExceptions</code> is a <b>module-global</b>: boost sets it
|
|
44
|
+
for every library in the process, so flipping it wholesale is louder than it looks. Overriding
|
|
45
|
+
<code>handleError</code> on boost's own handler is the scoped version of the same fix.
|
|
46
|
+
|
|
47
|
+
<b>Worth checking while here</b>: whether <code>doctor</code>'s writability check and the handler
|
|
48
|
+
agree about what “writable” means. The check passed (<code>✓ diagnostic log at
|
|
49
|
+
~/.boost/logs/boost.log</code>) in the same session where the handler was failing on every emit,
|
|
50
|
+
because the two ask different questions — one about the path's mode bits, the other about
|
|
51
|
+
what an <code>open()</code> actually returns. A health check that reports green while the thing it
|
|
52
|
+
checks fails on every invocation is the more expensive half of this card.
|
|
@@ -208,3 +208,12 @@ bodies cannot merge two genuinely different skills, which name-clustering would
|
|
|
208
208
|
vendors its own skills produced an unanswerable disambiguation prompt. Tracked separately in
|
|
209
209
|
<code>resolve-vendored-duplicate-copies</code>.
|
|
210
210
|
|
|
211
|
+
<b>The remainder now has its own card, and it is not a rounding error.</b> This card's last open
|
|
212
|
+
item — near-identical rather than byte-identical clustering — was left as a footnote
|
|
213
|
+
under a <code>shipped</code> status, described by the 0.60 residual duplicate slots per query. On a
|
|
214
|
+
real 466-tap install a single query (<code>exa search</code>) puts the same skill in <b>10 of 10
|
|
215
|
+
slots</b>, in Japanese, Chinese and five English phrasings, every copy passing content-hash dedup
|
|
216
|
+
correctly because the bodies genuinely differ. The averaged residual hid a per-query maximum an
|
|
217
|
+
order of magnitude larger. See
|
|
218
|
+
<a href="#near-identical-copies-still-eat-the-slots">near-identical copies still eat the slots</a>.
|
|
219
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: near-identical-copies-still-eat-the-slots
|
|
3
|
+
board: code
|
|
4
|
+
section: planned
|
|
5
|
+
status: planned
|
|
6
|
+
category: Search · Ranking
|
|
7
|
+
complexity: M
|
|
8
|
+
impact: High
|
|
9
|
+
wow: 4
|
|
10
|
+
note: 10 of 10 slots on a real 466-tap install, all past byte-identical dedup
|
|
11
|
+
order: 131
|
|
12
|
+
title: Near-identical copies survive content-hash dedup and take the whole result page
|
|
13
|
+
---
|
|
14
|
+
<a href="#near-duplicate-items-eat-the-result-slots">Content-hash dedup</a> shipped and worked:
|
|
15
|
+
<code>rag.dedupe_by_content</code> took duplicate result slots from <b>4.94 to 0.60 per query</b>
|
|
16
|
+
over a 77-tap corpus. That card closed naming one thing still open — <em>near-identical
|
|
17
|
+
rather than byte-identical clustering, where <code>core/typosquat.py</code>'s confusion machinery
|
|
18
|
+
would apply</em> — and buried it under a <code>shipped</code> status where nobody would claim
|
|
19
|
+
it. This card is that remainder, with a measurement that makes it look considerably worse than
|
|
20
|
+
“refinement”.
|
|
21
|
+
|
|
22
|
+
<b>Observed on a real 466-tap install</b> with hybrid RRF serving (658,131 chunks): for the query
|
|
23
|
+
<code>exa search</code>, every one of the top ten rows is <code>exa-search</code>, and the
|
|
24
|
+
descriptions are what give the
|
|
25
|
+
shape away — one Japanese (<code>Exa MCPによるウェブ、コード、企業調査</code>), two Chinese
|
|
26
|
+
(<code>通过Exa MCP进行神经搜索</code>), five English variants of <code>Neural search via Exa MCP</code>,
|
|
27
|
+
plus <code>Use Exa MCP for current web…</code> and <code>AI-powered web search…</code>.
|
|
28
|
+
All ten are <code>★ curated</code>. The footer reads
|
|
29
|
+
<code>51 matches · ranked by hybrid RRF (BM25 + dense)</code>.
|
|
30
|
+
|
|
31
|
+
<b>Every one of those passed dedup correctly.</b> They are not byte-identical: they are the same
|
|
32
|
+
skill in Japanese, in Chinese, and in five English phrasings across different registries. The body
|
|
33
|
+
digest differs, so <code>dedupe_by_content</code> keeps them all — which is exactly the
|
|
34
|
+
behaviour <code>#366</code> proved must be preserved, since two entries sharing a name can be
|
|
35
|
+
genuinely different rules. The shipped fix is not misbehaving. It simply does not reach this shape.
|
|
36
|
+
|
|
37
|
+
<b>What the 0.60 residual actually was.</b> The prior card described its leftover as “entries
|
|
38
|
+
sharing a <em>name</em> whose bodies genuinely differ, which must stay separate” — true
|
|
39
|
+
as stated, and it reads as a rounding error. At 466 taps the same residual is a full result page.
|
|
40
|
+
The gap between 0.60 and 10.0 is worth understanding before designing anything: the 77-tap
|
|
41
|
+
measurement used 50 natural-language queries averaged, and an <em>average</em> hides the shape here.
|
|
42
|
+
Duplicate pressure was already known to be a step function of <em>which</em> registries are tapped
|
|
43
|
+
rather than how many; near-identical pressure looks like a step function of <b>which query</b> —
|
|
44
|
+
harmless across a query set, total on any query that lands on a widely-mirrored skill. Re-measure
|
|
45
|
+
per-query maxima, not means.
|
|
46
|
+
|
|
47
|
+
<b>The hard part is the safety proof, not the clustering.</b> Content hashing was adoptable because
|
|
48
|
+
one count settled it: of 14,153 distinct bodies, clusters spanning more than one name numbered
|
|
49
|
+
<b>zero</b>, so collapsing could not merge two different skills. Near-identical clustering has no
|
|
50
|
+
such free proof — any similarity threshold loose enough to merge a Japanese translation with
|
|
51
|
+
its English original is loose enough to merge two genuinely different skills that share boilerplate.
|
|
52
|
+
Establish the equivalent bound first (over a real corpus, at the chosen threshold, count clusters
|
|
53
|
+
spanning more than one <em>meaning</em>) or the fix trades a visible problem for a silent one.
|
|
54
|
+
|
|
55
|
+
<b>Three things to get right.</b> <em>Translations are the motivating case and the hardest</em>: they
|
|
56
|
+
share almost no tokens with the original, so token-overlap similarity will not find them while an
|
|
57
|
+
embedding will — and the vectors are already on disk, which makes this cheaper here than it
|
|
58
|
+
would be anywhere else. <em>Collapse before <code>k</code></em>, and at both the
|
|
59
|
+
<code>retrieve</code> and <code>retrieve_any</code> seams, for the reason the shipped dedup already
|
|
60
|
+
documents: fusion reintroduces copies either engine dropped, because the copies are distinct
|
|
61
|
+
<code>(tap, skill_md)</code> keys and RRF has no reason to treat them as one. <em>The existing
|
|
62
|
+
quality prior carries over unchanged</em> — <code>rag.source_rank</code> orders on the user's
|
|
63
|
+
<code>curated</code> flag first and shipped <code>confidence</code> second, and choosing among
|
|
64
|
+
near-identical copies is the same question as choosing among identical ones: where should the user
|
|
65
|
+
install from.
|
|
66
|
+
|
|
67
|
+
<b>Not to be confused with <code>#629</code></b>, which deduplicated vector <em>storage</em> (one
|
|
68
|
+
row per distinct embedding, 39.7% repeats reclaimed). That is a disk-size fix beneath the index and
|
|
69
|
+
changes no ranking; this is about which rows reach the user's screen.
|
|
@@ -132,8 +132,8 @@
|
|
|
132
132
|
<!-- ROADMAP:stats -->
|
|
133
133
|
<div class="stat"><b>20</b><span>Shipped</span></div>
|
|
134
134
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
135
|
-
<div class="stat"><b>
|
|
136
|
-
<div class="stat"><b>
|
|
135
|
+
<div class="stat"><b>9</b><span>Planned</span></div>
|
|
136
|
+
<div class="stat"><b>293</b><span>Loop finds</span></div>
|
|
137
137
|
<!-- /ROADMAP:stats -->
|
|
138
138
|
</div>
|
|
139
139
|
</section>
|
|
@@ -1010,6 +1010,123 @@ published version works against PyPI as it stands today.</p>
|
|
|
1010
1010
|
<span class="m">declined — superseded by shipping the integration inside the boost-skill-cli wheel (see langchain-in-the-wheel)</span>
|
|
1011
1011
|
</div>
|
|
1012
1012
|
</article>
|
|
1013
|
+
|
|
1014
|
+
<article class="cap rcard" id="delay-true-defeats-the-log-suppress">
|
|
1015
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Health · Robustness</span></div>
|
|
1016
|
+
<h3>A best-effort log handler prints a traceback over every command's output</h3>
|
|
1017
|
+
<p><code>logs.configure</code> says what it means to do — <em>“File handler — always
|
|
1018
|
+
DEBUG, best-effort (never break the CLI over a log)”</em> — and wraps the handler in
|
|
1019
|
+
<code>contextlib.suppress(OSError)</code> to guarantee it. The guarantee does not hold, and the
|
|
1020
|
+
reason is one keyword inside the block: <code>with contextlib.suppress(OSError):</code> ·
|
|
1021
|
+
<code>paths.logs_dir().mkdir(parents=True, exist_ok=True)</code> ·
|
|
1022
|
+
<code>fh = logging.handlers.RotatingFileHandler(log_path(), maxBytes=MAX_BYTES,
|
|
1023
|
+
backupCount=BACKUP_COUNT, encoding="utf-8", <b>delay=True</b>)</code>.
|
|
1024
|
+
|
|
1025
|
+
<code>delay=True</code> means the file is <b>not opened during construction</b>. It is opened on the
|
|
1026
|
+
first <code>emit()</code>, inside <code>shouldRollover</code> — which happens later, on a
|
|
1027
|
+
different stack, outside the <code>suppress</code>. So the <code>OSError</code> the block exists to
|
|
1028
|
+
swallow is relocated to exactly where nothing is catching it. <code>logging.raiseExceptions</code>
|
|
1029
|
+
is left at its default <code>True</code>, so Python's logging module prints
|
|
1030
|
+
<code>--- Logging error ---</code> and a full traceback to stderr instead.
|
|
1031
|
+
|
|
1032
|
+
<b>Observed on a real machine</b>, with the log at <code>rw-r--r--</code> owned by the invoking user
|
|
1033
|
+
and the directory writable, under a harness whose filesystem policy did not include
|
|
1034
|
+
<code>~/.boost/logs</code>. Every <code>boost</code> command emitted <b>two</b> tracebacks —
|
|
1035
|
+
one from <code>log_invocation</code> at <code>cli.py:311</code> and one from
|
|
1036
|
+
<code>log_completion</code> at <code>cli.py:343</code> — roughly thirty lines of Python
|
|
1037
|
+
internals wrapped around the fifteen lines of search results the user actually asked for. The
|
|
1038
|
+
command itself returned <code>rc=0</code>. Nothing was broken except the output.
|
|
1039
|
+
|
|
1040
|
+
<b>Two things to get right.</b> First, catching the error is not the same as reporting it: a handler
|
|
1041
|
+
that silently swallows every write means a user whose diagnostics have been dead for months learns
|
|
1042
|
+
nothing, which is the failure <code>doctor</code>'s log check already exists to prevent. The right
|
|
1043
|
+
shape is to fail <em>quietly per emit</em> and let <code>doctor</code> stay the surface that says
|
|
1044
|
+
so — it already reports <code>“diagnostic log … is not writable — every
|
|
1045
|
+
invocation is failing to record”</code>, which was accurate the whole time this was spewing
|
|
1046
|
+
tracebacks. Second, <code>logging.raiseExceptions</code> is a <b>module-global</b>: boost sets it
|
|
1047
|
+
for every library in the process, so flipping it wholesale is louder than it looks. Overriding
|
|
1048
|
+
<code>handleError</code> on boost's own handler is the scoped version of the same fix.
|
|
1049
|
+
|
|
1050
|
+
<b>Worth checking while here</b>: whether <code>doctor</code>'s writability check and the handler
|
|
1051
|
+
agree about what “writable” means. The check passed (<code>✓ diagnostic log at
|
|
1052
|
+
~/.boost/logs/boost.log</code>) in the same session where the handler was failing on every emit,
|
|
1053
|
+
because the two ask different questions — one about the path's mode bits, the other about
|
|
1054
|
+
what an <code>open()</code> actually returns. A health check that reports green while the thing it
|
|
1055
|
+
checks fails on every invocation is the more expensive half of this card.</p>
|
|
1056
|
+
<div class="meta">
|
|
1057
|
+
<span class="m">Complexity <b>S</b></span>
|
|
1058
|
+
<span class="m">Impact <b>Medium</b></span>
|
|
1059
|
+
<span class="m">Wow <b class="wow">★★</b></span>
|
|
1060
|
+
<span class="m">the suppress guards construction; delay=True moves the failure to emit</span>
|
|
1061
|
+
</div>
|
|
1062
|
+
</article>
|
|
1063
|
+
|
|
1064
|
+
<article class="cap rcard" id="near-identical-copies-still-eat-the-slots">
|
|
1065
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Search · Ranking</span></div>
|
|
1066
|
+
<h3>Near-identical copies survive content-hash dedup and take the whole result page</h3>
|
|
1067
|
+
<p><a href="#near-duplicate-items-eat-the-result-slots">Content-hash dedup</a> shipped and worked:
|
|
1068
|
+
<code>rag.dedupe_by_content</code> took duplicate result slots from <b>4.94 to 0.60 per query</b>
|
|
1069
|
+
over a 77-tap corpus. That card closed naming one thing still open — <em>near-identical
|
|
1070
|
+
rather than byte-identical clustering, where <code>core/typosquat.py</code>'s confusion machinery
|
|
1071
|
+
would apply</em> — and buried it under a <code>shipped</code> status where nobody would claim
|
|
1072
|
+
it. This card is that remainder, with a measurement that makes it look considerably worse than
|
|
1073
|
+
“refinement”.
|
|
1074
|
+
|
|
1075
|
+
<b>Observed on a real 466-tap install</b> with hybrid RRF serving (658,131 chunks): for the query
|
|
1076
|
+
<code>exa search</code>, every one of the top ten rows is <code>exa-search</code>, and the
|
|
1077
|
+
descriptions are what give the
|
|
1078
|
+
shape away — one Japanese (<code>Exa MCPによるウェブ、コード、企業調査</code>), two Chinese
|
|
1079
|
+
(<code>通过Exa MCP进行神经搜索</code>), five English variants of <code>Neural search via Exa MCP</code>,
|
|
1080
|
+
plus <code>Use Exa MCP for current web…</code> and <code>AI-powered web search…</code>.
|
|
1081
|
+
All ten are <code>★ curated</code>. The footer reads
|
|
1082
|
+
<code>51 matches · ranked by hybrid RRF (BM25 + dense)</code>.
|
|
1083
|
+
|
|
1084
|
+
<b>Every one of those passed dedup correctly.</b> They are not byte-identical: they are the same
|
|
1085
|
+
skill in Japanese, in Chinese, and in five English phrasings across different registries. The body
|
|
1086
|
+
digest differs, so <code>dedupe_by_content</code> keeps them all — which is exactly the
|
|
1087
|
+
behaviour <code>#366</code> proved must be preserved, since two entries sharing a name can be
|
|
1088
|
+
genuinely different rules. The shipped fix is not misbehaving. It simply does not reach this shape.
|
|
1089
|
+
|
|
1090
|
+
<b>What the 0.60 residual actually was.</b> The prior card described its leftover as “entries
|
|
1091
|
+
sharing a <em>name</em> whose bodies genuinely differ, which must stay separate” — true
|
|
1092
|
+
as stated, and it reads as a rounding error. At 466 taps the same residual is a full result page.
|
|
1093
|
+
The gap between 0.60 and 10.0 is worth understanding before designing anything: the 77-tap
|
|
1094
|
+
measurement used 50 natural-language queries averaged, and an <em>average</em> hides the shape here.
|
|
1095
|
+
Duplicate pressure was already known to be a step function of <em>which</em> registries are tapped
|
|
1096
|
+
rather than how many; near-identical pressure looks like a step function of <b>which query</b> —
|
|
1097
|
+
harmless across a query set, total on any query that lands on a widely-mirrored skill. Re-measure
|
|
1098
|
+
per-query maxima, not means.
|
|
1099
|
+
|
|
1100
|
+
<b>The hard part is the safety proof, not the clustering.</b> Content hashing was adoptable because
|
|
1101
|
+
one count settled it: of 14,153 distinct bodies, clusters spanning more than one name numbered
|
|
1102
|
+
<b>zero</b>, so collapsing could not merge two different skills. Near-identical clustering has no
|
|
1103
|
+
such free proof — any similarity threshold loose enough to merge a Japanese translation with
|
|
1104
|
+
its English original is loose enough to merge two genuinely different skills that share boilerplate.
|
|
1105
|
+
Establish the equivalent bound first (over a real corpus, at the chosen threshold, count clusters
|
|
1106
|
+
spanning more than one <em>meaning</em>) or the fix trades a visible problem for a silent one.
|
|
1107
|
+
|
|
1108
|
+
<b>Three things to get right.</b> <em>Translations are the motivating case and the hardest</em>: they
|
|
1109
|
+
share almost no tokens with the original, so token-overlap similarity will not find them while an
|
|
1110
|
+
embedding will — and the vectors are already on disk, which makes this cheaper here than it
|
|
1111
|
+
would be anywhere else. <em>Collapse before <code>k</code></em>, and at both the
|
|
1112
|
+
<code>retrieve</code> and <code>retrieve_any</code> seams, for the reason the shipped dedup already
|
|
1113
|
+
documents: fusion reintroduces copies either engine dropped, because the copies are distinct
|
|
1114
|
+
<code>(tap, skill_md)</code> keys and RRF has no reason to treat them as one. <em>The existing
|
|
1115
|
+
quality prior carries over unchanged</em> — <code>rag.source_rank</code> orders on the user's
|
|
1116
|
+
<code>curated</code> flag first and shipped <code>confidence</code> second, and choosing among
|
|
1117
|
+
near-identical copies is the same question as choosing among identical ones: where should the user
|
|
1118
|
+
install from.
|
|
1119
|
+
|
|
1120
|
+
<b>Not to be confused with <code>#629</code></b>, which deduplicated vector <em>storage</em> (one
|
|
1121
|
+
row per distinct embedding, 39.7% repeats reclaimed). That is a disk-size fix beneath the index and
|
|
1122
|
+
changes no ranking; this is about which rows reach the user's screen.</p>
|
|
1123
|
+
<div class="meta">
|
|
1124
|
+
<span class="m">Complexity <b>M</b></span>
|
|
1125
|
+
<span class="m hi">Impact <b>High</b></span>
|
|
1126
|
+
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
1127
|
+
<span class="m">10 of 10 slots on a real 466-tap install, all past byte-identical dedup</span>
|
|
1128
|
+
</div>
|
|
1129
|
+
</article>
|
|
1013
1130
|
<!-- /ROADMAP:cards -->
|
|
1014
1131
|
|
|
1015
1132
|
</div>
|
|
@@ -7327,7 +7444,16 @@ bodies cannot merge two genuinely different skills, which name-clustering would
|
|
|
7327
7444
|
|
|
7328
7445
|
<b>Related follow-on:</b> the same duplicate shape reaches <code>resolve_one</code>, where a tap that
|
|
7329
7446
|
vendors its own skills produced an unanswerable disambiguation prompt. Tracked separately in
|
|
7330
|
-
<code>resolve-vendored-duplicate-copies</code
|
|
7447
|
+
<code>resolve-vendored-duplicate-copies</code>.
|
|
7448
|
+
|
|
7449
|
+
<b>The remainder now has its own card, and it is not a rounding error.</b> This card's last open
|
|
7450
|
+
item — near-identical rather than byte-identical clustering — was left as a footnote
|
|
7451
|
+
under a <code>shipped</code> status, described by the 0.60 residual duplicate slots per query. On a
|
|
7452
|
+
real 466-tap install a single query (<code>exa search</code>) puts the same skill in <b>10 of 10
|
|
7453
|
+
slots</b>, in Japanese, Chinese and five English phrasings, every copy passing content-hash dedup
|
|
7454
|
+
correctly because the bodies genuinely differ. The averaged residual hid a per-query maximum an
|
|
7455
|
+
order of magnitude larger. See
|
|
7456
|
+
<a href="#near-identical-copies-still-eat-the-slots">near-identical copies still eat the slots</a>.</p></details>
|
|
7331
7457
|
<div class="meta">
|
|
7332
7458
|
<span class="m">Complexity <b>M</b></span>
|
|
7333
7459
|
<span class="m hi">Impact <b>High</b></span>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.2.67 → boost_skill_cli-1.2.68}/.vale/styles/config/vocabularies/boost/accept.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|