boost-skill-cli 1.0.338__tar.gz → 1.0.339__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.0.338/boost_skill_cli.egg-info → boost_skill_cli-1.0.339}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/pyproject.toml +6 -0
- boost_skill_cli-1.0.339/tests/unit/test_localembed_e2e.py +170 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.gitattributes +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.gitignore +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/.vale.ini +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/LICENSE +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/Makefile +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/localembed.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/codecov.yml +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/index.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/docs/roadmap.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/__init__.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/baseline.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/metrics.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/examples/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/index.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/noxfile.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/setup.cfg +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/sonar-project.properties +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/style/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/style/boost.css +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/style/boost.js +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/style/demo.html +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/golden-natural.jsonl +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_content_dedupe.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dedup_trust.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dense_fix_hint.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dense_shards.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dense_status.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_embed_local.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_entry_key.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_eval_baseline.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_localembed.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mutation_subfile_shards.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_project_mcp_sidecar.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_rag_fusion.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_workflow_concurrency.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/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.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.339'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 339)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -517,6 +517,7 @@ tests/unit/test_installscan.py
|
|
|
517
517
|
tests/unit/test_integrity.py
|
|
518
518
|
tests/unit/test_journal.py
|
|
519
519
|
tests/unit/test_localembed.py
|
|
520
|
+
tests/unit/test_localembed_e2e.py
|
|
520
521
|
tests/unit/test_lockfile.py
|
|
521
522
|
tests/unit/test_logs.py
|
|
522
523
|
tests/unit/test_marketing_counts.py
|
|
@@ -212,6 +212,12 @@ check_untyped_defs = true
|
|
|
212
212
|
testpaths = ["tests"]
|
|
213
213
|
addopts = "-q -p no:cacheprovider"
|
|
214
214
|
filterwarnings = ["error::DeprecationWarning:boost_cli.*"]
|
|
215
|
+
# Registered so an unknown-mark warning cannot become an error here. The mark
|
|
216
|
+
# only selects; the actual guard is the BOOST_ONNX_E2E env gate on the module,
|
|
217
|
+
# so a plain `pytest` never downloads 133 MB of weights by surprise.
|
|
218
|
+
markers = [
|
|
219
|
+
"onnx: needs onnxruntime + the real pinned BGE weights (opt-in, see tests/unit/test_localembed_e2e.py)",
|
|
220
|
+
]
|
|
215
221
|
|
|
216
222
|
[tool.coverage.run]
|
|
217
223
|
source = ["boost_cli"]
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"""End-to-end: the real ONNX runtime against the real pinned BGE weights.
|
|
2
|
+
|
|
3
|
+
Scope, stated precisely, because the obvious justification for this file is
|
|
4
|
+
wrong. ``test_localembed.py`` runs against a stub that "mimics onnxruntime", and
|
|
5
|
+
the tempting claim is that a stub cannot catch a pooling mistake. It can:
|
|
6
|
+
``TestClsPooling::test_it_takes_the_first_token_not_the_mean`` feeds
|
|
7
|
+
``cls_pool`` a hand-built tensor and pins CLS against the mean directly, in
|
|
8
|
+
microseconds and with no download. That test is *better* at that job than
|
|
9
|
+
anything here. This was checked rather than assumed — swapping ``cls_pool`` to
|
|
10
|
+
mean pooling reddens the stubbed suite immediately.
|
|
11
|
+
|
|
12
|
+
What no stub can do is run the actual graph. A fake session returns whatever
|
|
13
|
+
shape the test declared, so everything downstream of "does onnxruntime accept
|
|
14
|
+
these 133 MB and give back what we expect" is asserted against our own
|
|
15
|
+
assumptions. Three things only real weights prove:
|
|
16
|
+
|
|
17
|
+
* **Integration.** The pinned export loads under the installed onnxruntime, the
|
|
18
|
+
input names we feed match the ones it declares, and the result is 384 finite
|
|
19
|
+
unit-norm floats. Every ORT upgrade re-tests this for free.
|
|
20
|
+
* **Absolute similarity.** Ordering alone is a weak signal — measured here, mean
|
|
21
|
+
pooling *preserves* the near/far ordering while changing every vector. Pinning
|
|
22
|
+
the values catches a model or revision swap that ordering sails through.
|
|
23
|
+
* **Padding.** Batching a short text beside a long one exercises a real
|
|
24
|
+
attention mask; a fake session has none to get wrong.
|
|
25
|
+
|
|
26
|
+
Reference values come from the measurement published on the roadmap card when
|
|
27
|
+
the ONNX path shipped (#354), against these exact pinned weights.
|
|
28
|
+
|
|
29
|
+
Opt-in by design — ``BOOST_ONNX_E2E=1``. Without it this skips, so neither a
|
|
30
|
+
normal ``make test`` nor the mutation gate's in-``mutants/`` run is charged a
|
|
31
|
+
133 MB download. CI sets it in the one job that caches the weights.
|
|
32
|
+
"""
|
|
33
|
+
from __future__ import annotations
|
|
34
|
+
|
|
35
|
+
import math
|
|
36
|
+
import os
|
|
37
|
+
|
|
38
|
+
import pytest
|
|
39
|
+
|
|
40
|
+
from boost_cli.core import localembed
|
|
41
|
+
|
|
42
|
+
pytestmark = [
|
|
43
|
+
pytest.mark.onnx,
|
|
44
|
+
pytest.mark.skipif(os.environ.get("BOOST_ONNX_E2E") != "1",
|
|
45
|
+
reason="real-weights E2E; set BOOST_ONNX_E2E=1"),
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
# Sentences from the published measurement. The first two are near-paraphrases
|
|
49
|
+
# in different vocabulary — no content word in common — which is the case BM25
|
|
50
|
+
# cannot serve and the dense tier exists for. The third is the distractor that
|
|
51
|
+
# BM25 actually returned for this query before the dense tier existed.
|
|
52
|
+
Q_SLOW = "making my application faster"
|
|
53
|
+
NEAR = "application performance tuning"
|
|
54
|
+
FAR = "quantum computing circuit simulation"
|
|
55
|
+
|
|
56
|
+
# Published against these weights: near 0.7691, far 0.5338. The tolerance is
|
|
57
|
+
# wide enough to absorb onnxruntime/platform float differences and narrow enough
|
|
58
|
+
# that a pooling change cannot hide inside it — CLS and mean pooling separate by
|
|
59
|
+
# far more than this on BGE.
|
|
60
|
+
NEAR_SIM, FAR_SIM, TOL = 0.7691, 0.5338, 0.03
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _dot(a, b):
|
|
64
|
+
return sum(x * y for x, y in zip(a, b))
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@pytest.fixture(scope="module")
|
|
68
|
+
def vectors():
|
|
69
|
+
"""Encode the three probe sentences once, with real weights.
|
|
70
|
+
|
|
71
|
+
``importorskip`` rather than a plain import so a machine that opted in but
|
|
72
|
+
lacks the extra skips cleanly instead of erroring. ``ensure_model`` is what
|
|
73
|
+
downloads and verifies; a None return means the fetch failed, which is a
|
|
74
|
+
skip and not a failure — this test is about the model contract, not about
|
|
75
|
+
HuggingFace's uptime.
|
|
76
|
+
"""
|
|
77
|
+
pytest.importorskip("onnxruntime")
|
|
78
|
+
pytest.importorskip("tokenizers")
|
|
79
|
+
if localembed.ensure_model() is None:
|
|
80
|
+
pytest.skip("pinned weights unavailable (download failed)")
|
|
81
|
+
out = localembed.encode([Q_SLOW, NEAR, FAR])
|
|
82
|
+
assert out is not None, "encode returned None with the backend present"
|
|
83
|
+
return dict(zip((Q_SLOW, NEAR, FAR), out))
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class TestModelContract:
|
|
87
|
+
def test_dimension_matches_what_embed_advertises(self, vectors):
|
|
88
|
+
# Asserted against `embed.LOCAL_DIM` rather than a literal 384: that
|
|
89
|
+
# constant is what dense.py stores and rebuilds on, so the bug worth
|
|
90
|
+
# catching is the two disagreeing, not either one's value.
|
|
91
|
+
from boost_cli.core import embed
|
|
92
|
+
assert embed.LOCAL_DIM == 384 # the pinned export's hidden size
|
|
93
|
+
for text, vec in vectors.items():
|
|
94
|
+
assert len(vec) == embed.LOCAL_DIM, text
|
|
95
|
+
|
|
96
|
+
def test_vectors_are_l2_normalised(self, vectors):
|
|
97
|
+
# Cosine similarity downstream is a plain dot product, which is only
|
|
98
|
+
# correct on unit vectors.
|
|
99
|
+
for text, vec in vectors.items():
|
|
100
|
+
assert math.isclose(math.sqrt(_dot(vec, vec)), 1.0, abs_tol=1e-5), text
|
|
101
|
+
|
|
102
|
+
def test_every_component_is_finite(self, vectors):
|
|
103
|
+
# A NaN would poison the whole index and compare False against
|
|
104
|
+
# everything, so KNN would return an arbitrary neighbour set.
|
|
105
|
+
for text, vec in vectors.items():
|
|
106
|
+
assert all(math.isfinite(x) for x in vec), text
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class TestSemanticContract:
|
|
110
|
+
"""The part a stub cannot fake, and the reason the tier exists."""
|
|
111
|
+
|
|
112
|
+
def test_paraphrase_outranks_the_distractor(self, vectors):
|
|
113
|
+
# A floor, not a precision instrument: measured against a mean-pooled
|
|
114
|
+
# build, this ordering SURVIVES — so it does not catch pooling and is
|
|
115
|
+
# not claimed to. What it does catch is a model that loaded but is not
|
|
116
|
+
# discriminating at all, which is the failure that makes the whole
|
|
117
|
+
# keyless tier pointless while every shape assertion still passes.
|
|
118
|
+
near = _dot(vectors[Q_SLOW], vectors[NEAR])
|
|
119
|
+
far = _dot(vectors[Q_SLOW], vectors[FAR])
|
|
120
|
+
assert near > far, (
|
|
121
|
+
"'%s' must rank nearer to '%s' than to '%s' (got %.4f vs %.4f)"
|
|
122
|
+
% (Q_SLOW, NEAR, FAR, near, far))
|
|
123
|
+
assert near - far > 0.10, (
|
|
124
|
+
"margin collapsed to %.4f — the model is loading but not "
|
|
125
|
+
"discriminating; suspect pooling or a wrong input name"
|
|
126
|
+
% (near - far))
|
|
127
|
+
|
|
128
|
+
def test_similarities_match_the_published_measurement(self, vectors):
|
|
129
|
+
# This is the one that earns the download. Verified against a mean-pooled
|
|
130
|
+
# build: ordering held, these values moved, and this test was what
|
|
131
|
+
# noticed. Same for a deliberate MODEL_REV repin, where sha256 passes by
|
|
132
|
+
# construction and only the numbers reveal that vectors changed.
|
|
133
|
+
near = _dot(vectors[Q_SLOW], vectors[NEAR])
|
|
134
|
+
far = _dot(vectors[Q_SLOW], vectors[FAR])
|
|
135
|
+
assert math.isclose(near, NEAR_SIM, abs_tol=TOL), (
|
|
136
|
+
"near-pair similarity %.4f drifted from the published %.4f"
|
|
137
|
+
% (near, NEAR_SIM))
|
|
138
|
+
assert math.isclose(far, FAR_SIM, abs_tol=TOL), (
|
|
139
|
+
"far-pair similarity %.4f drifted from the published %.4f"
|
|
140
|
+
% (far, FAR_SIM))
|
|
141
|
+
|
|
142
|
+
def test_a_sentence_is_maximally_similar_to_itself(self, vectors):
|
|
143
|
+
# Sanity floor: a degenerate model that maps everything to one point
|
|
144
|
+
# would pass the ordering test by accident but fails here against the
|
|
145
|
+
# off-diagonal.
|
|
146
|
+
self_sim = _dot(vectors[NEAR], vectors[NEAR])
|
|
147
|
+
cross = _dot(vectors[NEAR], vectors[FAR])
|
|
148
|
+
assert math.isclose(self_sim, 1.0, abs_tol=1e-5)
|
|
149
|
+
assert self_sim > cross + 0.10
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class TestDeterminism:
|
|
153
|
+
def test_encoding_twice_gives_identical_vectors(self, vectors):
|
|
154
|
+
# The store is a cache keyed on content, so a non-deterministic encoder
|
|
155
|
+
# would make every reindex produce a different index for the same input.
|
|
156
|
+
again = localembed.encode([NEAR])
|
|
157
|
+
assert again is not None
|
|
158
|
+
for a, b in zip(again[0], vectors[NEAR]):
|
|
159
|
+
assert math.isclose(a, b, abs_tol=1e-6)
|
|
160
|
+
|
|
161
|
+
def test_batching_does_not_change_a_vector(self, vectors):
|
|
162
|
+
# Padding to the longest row in a batch must not leak into the CLS
|
|
163
|
+
# token. Encoding alone vs. alongside a much longer sentence is the
|
|
164
|
+
# cheapest way to catch an attention-mask mistake.
|
|
165
|
+
alone = localembed.encode([NEAR])
|
|
166
|
+
batched = localembed.encode([NEAR, FAR * 20])
|
|
167
|
+
assert alone is not None and batched is not None
|
|
168
|
+
for a, b in zip(alone[0], batched[0]):
|
|
169
|
+
assert math.isclose(a, b, abs_tol=1e-4), (
|
|
170
|
+
"padding changed the vector — suspect the attention mask")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.338 → boost_skill_cli-1.0.339}/boost_skill_cli.egg-info/entry_points.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
|