boost-skill-cli 1.0.298__tar.gz → 1.0.299__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.298 → boost_skill_cli-1.0.299}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
- boost_skill_cli-1.0.299/docs/roadmap/items/mutation-shard-floor-is-one-file.md +101 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap.html +60 -2
- boost_skill_cli-1.0.299/scripts/mutation_shards.py +833 -0
- boost_skill_cli-1.0.299/scripts/mutation_weights.json +1129 -0
- boost_skill_cli-1.0.299/tests/unit/test_mutation_subfile_shards.py +589 -0
- boost_skill_cli-1.0.298/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -43
- boost_skill_cli-1.0.298/scripts/mutation_shards.py +0 -424
- boost_skill_cli-1.0.298/scripts/mutation_weights.json +0 -49
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.gitattributes +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.gitignore +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/.vale.ini +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/LICENSE +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/Makefile +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/installscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/mcphost.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/codecov.yml +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/architecture/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/architecture/c4-components-core.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/architecture/c4-containers.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/architecture/c4-context.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/architecture/c4-dynamic-install.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/index.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/__init__.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/baseline.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/faithfulness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/golden_set.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/make_corpus.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/make_golden.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/metrics.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/evals/run_evals.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/examples/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/index.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/noxfile.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/platform-pins.lock +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/check_licenses.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/eval_gate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/release_guard.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/setup.cfg +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/sonar-project.properties +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/style/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/style/boost.css +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/style/boost.js +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/style/demo.html +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_check_licenses.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_codeql_analysis_key.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_eval_faithfulness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_eval_gate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_eval_metrics.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_installscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mcp_install_scan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mcphost.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_platform_pins.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_registry_categories.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_release_guard.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/visual/package-lock.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.298 → boost_skill_cli-1.0.299}/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.299'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 299)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -506,6 +506,7 @@ tests/unit/test_mcphost.py
|
|
|
506
506
|
tests/unit/test_minisign.py
|
|
507
507
|
tests/unit/test_mutation_hardening.py
|
|
508
508
|
tests/unit/test_mutation_shards.py
|
|
509
|
+
tests/unit/test_mutation_subfile_shards.py
|
|
509
510
|
tests/unit/test_mutmut_source_paths.py
|
|
510
511
|
tests/unit/test_nethttp.py
|
|
511
512
|
tests/unit/test_output.py
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: mutation-shard-floor-is-one-file
|
|
3
|
+
board: code
|
|
4
|
+
section: pipeline
|
|
5
|
+
status: shipped
|
|
6
|
+
category: CI speed
|
|
7
|
+
complexity: M
|
|
8
|
+
impact: Med
|
|
9
|
+
wow: 3
|
|
10
|
+
note: shard 0 is store.py alone — 9.3-11.7 min against a 6.1 even split
|
|
11
|
+
order: 61
|
|
12
|
+
owner: loop/mutation-subfile-shards
|
|
13
|
+
pr: 346
|
|
14
|
+
title: The mutation gate's floor is a single file — shard 0 <em>is</em> <code>store.py</code>
|
|
15
|
+
---
|
|
16
|
+
Sharding took the mutation gate from ~28 minutes to ~12 (see
|
|
17
|
+
<code>mutation-gate-was-the-whole-critical-path</code>), but it cannot go lower without
|
|
18
|
+
splitting one file. Measured across four consecutive six-shard runs:
|
|
19
|
+
|
|
20
|
+
<code>638bffeb</code> ran 1.9, 3.9, 5.7, 6.7, 7.2, <b>11.7</b> minutes;
|
|
21
|
+
<code>02c18bd6</code> ran 2.7, 5.0, 5.2, 5.5, 5.9, <b>11.7</b>; <code>fc427839</code> ran 3.1,
|
|
22
|
+
4.8, 5.3, 6.4, 7.3, <b>9.7</b>; and <code>f42e617b</code> ran 2.9, 4.9, 5.5, 6.6, 7.3,
|
|
23
|
+
<b>9.3</b>.
|
|
24
|
+
<b><code>mutation-shard (0)</code> was the slowest leg in all four.</b> Total work is
|
|
25
|
+
36–37 job-minutes, so a perfectly even split would be <b>6.1</b>; the actual critical
|
|
26
|
+
path is 9.3–11.7, or <b>1.5–1.9×</b> that. The gap is not bad packing —
|
|
27
|
+
the planner balances mutant <em>count</em> to within 1.10× of ideal. It is that count is
|
|
28
|
+
a poor proxy for time: measured throughput spans <b>3.39 to 14.19 mutants/second</b>, because a
|
|
29
|
+
<code>store.py</code> mutant re-runs a far larger covering test set than an
|
|
30
|
+
<code>ed25519.py</code> one, and survivors run their tests to completion where kills exit early.
|
|
31
|
+
|
|
32
|
+
Re-weighting the planner by seconds would even out the <em>billed</em> minutes but not the wall
|
|
33
|
+
clock, because <code>store.py</code> is <b>1931 mutants (18.4% of the repo)</b> in one file and
|
|
34
|
+
longest-processing-time packing cannot place a single file across two bins. The floor is that
|
|
35
|
+
file.
|
|
36
|
+
|
|
37
|
+
The way under it: mutant names are addressable per function, so
|
|
38
|
+
<code>boost_cli.core.store.install_*</code> can be its own shard. That would bring the critical
|
|
39
|
+
path toward the 6.1-minute even split. Two things must survive the change —
|
|
40
|
+
<code>pattern_for()</code> still has to emit patterns that match nothing else, and
|
|
41
|
+
<code>cmd_merge</code>'s completeness assertion has to keep failing closed, since mutmut counts
|
|
42
|
+
an unrun mutant inside <code>total</code> and a partial merge would silently depress the score
|
|
43
|
+
rather than error.
|
|
44
|
+
|
|
45
|
+
<b>Shipped.</b> A file heavier than an even share is now split into one unit per top-level
|
|
46
|
+
function, and those units pack independently. <code>store.py</code>'s 31 functions come out as a
|
|
47
|
+
<b>complete partition</b> — each assigned exactly once, each matched by exactly one pattern
|
|
48
|
+
— and spread across all six shards, so no shard is more than <b>27%</b> store.py where one
|
|
49
|
+
was previously <b>100%</b>. By mutant count the critical path drops from <b>1931 to 1786</b>, i.e.
|
|
50
|
+
from 1.08× of ideal to <b>1.00×</b>, and the packing lands within 0.4% of a perfect
|
|
51
|
+
split (1777–1786 against an ideal 1779).
|
|
52
|
+
|
|
53
|
+
Both invariants are asserted rather than argued. Patterns anchor on the
|
|
54
|
+
<code>__mutmut_</code> suffix, which is what stops <code>install</code> swallowing
|
|
55
|
+
<code>install_from_path</code> — a real pair in this file. And the merge now <b>unions</b>
|
|
56
|
+
each shard's results: every shard writes a <code>.meta</code> listing every key in the file with
|
|
57
|
+
<code>None</code> against what it did not run, so a mutant is only "unrun" when it is
|
|
58
|
+
<code>None</code> everywhere. A function no shard was assigned therefore reddens the gate. That
|
|
59
|
+
was verified adversarially — a synthetic mutant name outside the enumerated partition matches
|
|
60
|
+
no shard's pattern, stays <code>None</code>, and is reported. Any file whose partition cannot be
|
|
61
|
+
enumerated exactly (a class with methods, a duplicate name, a syntax error) is left whole rather
|
|
62
|
+
than guessed at.
|
|
63
|
+
|
|
64
|
+
<b>Splitting alone was not enough, and the first green run proved it.</b> With
|
|
65
|
+
<code>store.py</code> divided, <code>mutation-shard (0)</code> fell from 9.3–11.7 minutes to
|
|
66
|
+
<b>4.7</b> — it is no longer the slowest leg, which is exactly what the card predicted. But
|
|
67
|
+
shard 3 became the new bottleneck at <b>10.3</b> minutes, leaving the run at 1.6× ideal. The
|
|
68
|
+
diagnosis above was right and incomplete: counts were balanced to 0.4%, and the <em>time</em>
|
|
69
|
+
spread across shards was still 2.6×.
|
|
70
|
+
|
|
71
|
+
So the second half is weighting by measured time, which a divisible file finally makes possible.
|
|
72
|
+
<code>weights</code> now records mutmut's per-mutant durations and the planner prefers them. The
|
|
73
|
+
count-based split, balanced to <b>1.08×</b> of ideal <i>by count</i>, was <b>2.24×</b> of
|
|
74
|
+
ideal <i>by time</i> — one shard carrying 39.3 minutes of summed test time against a
|
|
75
|
+
17.5-minute even share.
|
|
76
|
+
|
|
77
|
+
<b>Measured, that bought less than the arithmetic suggested.</b> Time-weighting moved the critical
|
|
78
|
+
path from 10.3 to <b>9.3</b> minutes (shards 5.2, 5.8, 6.3, 6.8, 6.2, 9.3), 1.41× ideal rather
|
|
79
|
+
than the 1.04× the summed-time model predicted. Summed test time is not shard wall clock:
|
|
80
|
+
mutmut runs mutants across parallel workers, so a shard's elapsed time is its summed time divided by
|
|
81
|
+
an effective worker count, and the model ignored that. Per-shard fixed overhead was ruled out by
|
|
82
|
+
measurement rather than assumed — checkout, venv and install together are <b>0.4 minutes</b>,
|
|
83
|
+
against 4.8–8.9 minutes inside <code>mutmut run</code> itself.
|
|
84
|
+
|
|
85
|
+
The residual had a specific cause, and it is the same proxy error one level down: a split file's
|
|
86
|
+
time was apportioned across its functions by <em>mutant count</em>. Across
|
|
87
|
+
<code>store.py</code>'s functions the per-mutant cost spans <b>0.273 s to 3.900 s</b> —
|
|
88
|
+
<b>14.3×</b> — and <code>install</code> alone is <b>36%</b> of the file's time from
|
|
89
|
+
<b>12%</b> of its mutants, so the shard that drew it ran 8.9 minutes against a 4.8-minute sibling.
|
|
90
|
+
<code>weights</code> now records per-<em>function</em> durations too and apportions on those, which
|
|
91
|
+
balances the plan to <b>0.06%</b>. Whether that closes the wall-clock gap is a claim the next run
|
|
92
|
+
gets to settle, not this card.
|
|
93
|
+
|
|
94
|
+
Two bugs found by running it rather than reasoning about it. mutmut records durations in
|
|
95
|
+
<b>seconds</b>, so summing them into a field named <code>millis</code> understated
|
|
96
|
+
<code>store.py</code>'s 2360 seconds of test time as 2.4 — a 1000× mislabel. And
|
|
97
|
+
requiring a duration for <i>every</i> file before trusting the tier was too brittle to fire: one
|
|
98
|
+
file of 46 (<code>util.py</code>) came back short on the first run, which would have silently
|
|
99
|
+
dropped the planner back to counting mutants and looked like the feature simply not working. A
|
|
100
|
+
missing file is now imputed at the measured mean rate, which keeps every weight in one unit
|
|
101
|
+
— the property that actually matters.
|
|
@@ -2495,7 +2495,7 @@ toward the 5.1-minute even split of the 30.8 minutes of total work.</p>
|
|
|
2495
2495
|
</article>
|
|
2496
2496
|
|
|
2497
2497
|
<article class="cap rcard" id="mutation-shard-floor-is-one-file">
|
|
2498
|
-
<div class="head"><span class="pill
|
|
2498
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">CI speed</span></div>
|
|
2499
2499
|
<h3>The mutation gate's floor is a single file — shard 0 <em>is</em> <code>store.py</code></h3>
|
|
2500
2500
|
<p>Sharding took the mutation gate from ~28 minutes to ~12 (see
|
|
2501
2501
|
<code>mutation-gate-was-the-whole-critical-path</code>), but it cannot go lower without
|
|
@@ -2524,7 +2524,65 @@ path toward the 6.1-minute even split. Two things must survive the change &mdash
|
|
|
2524
2524
|
<code>pattern_for()</code> still has to emit patterns that match nothing else, and
|
|
2525
2525
|
<code>cmd_merge</code>'s completeness assertion has to keep failing closed, since mutmut counts
|
|
2526
2526
|
an unrun mutant inside <code>total</code> and a partial merge would silently depress the score
|
|
2527
|
-
rather than error
|
|
2527
|
+
rather than error.
|
|
2528
|
+
|
|
2529
|
+
<b>Shipped.</b> A file heavier than an even share is now split into one unit per top-level
|
|
2530
|
+
function, and those units pack independently. <code>store.py</code>'s 31 functions come out as a
|
|
2531
|
+
<b>complete partition</b> — each assigned exactly once, each matched by exactly one pattern
|
|
2532
|
+
— and spread across all six shards, so no shard is more than <b>27%</b> store.py where one
|
|
2533
|
+
was previously <b>100%</b>. By mutant count the critical path drops from <b>1931 to 1786</b>, i.e.
|
|
2534
|
+
from 1.08× of ideal to <b>1.00×</b>, and the packing lands within 0.4% of a perfect
|
|
2535
|
+
split (1777–1786 against an ideal 1779).
|
|
2536
|
+
|
|
2537
|
+
Both invariants are asserted rather than argued. Patterns anchor on the
|
|
2538
|
+
<code>__mutmut_</code> suffix, which is what stops <code>install</code> swallowing
|
|
2539
|
+
<code>install_from_path</code> — a real pair in this file. And the merge now <b>unions</b>
|
|
2540
|
+
each shard's results: every shard writes a <code>.meta</code> listing every key in the file with
|
|
2541
|
+
<code>None</code> against what it did not run, so a mutant is only "unrun" when it is
|
|
2542
|
+
<code>None</code> everywhere. A function no shard was assigned therefore reddens the gate. That
|
|
2543
|
+
was verified adversarially — a synthetic mutant name outside the enumerated partition matches
|
|
2544
|
+
no shard's pattern, stays <code>None</code>, and is reported. Any file whose partition cannot be
|
|
2545
|
+
enumerated exactly (a class with methods, a duplicate name, a syntax error) is left whole rather
|
|
2546
|
+
than guessed at.
|
|
2547
|
+
|
|
2548
|
+
<b>Splitting alone was not enough, and the first green run proved it.</b> With
|
|
2549
|
+
<code>store.py</code> divided, <code>mutation-shard (0)</code> fell from 9.3–11.7 minutes to
|
|
2550
|
+
<b>4.7</b> — it is no longer the slowest leg, which is exactly what the card predicted. But
|
|
2551
|
+
shard 3 became the new bottleneck at <b>10.3</b> minutes, leaving the run at 1.6× ideal. The
|
|
2552
|
+
diagnosis above was right and incomplete: counts were balanced to 0.4%, and the <em>time</em>
|
|
2553
|
+
spread across shards was still 2.6×.
|
|
2554
|
+
|
|
2555
|
+
So the second half is weighting by measured time, which a divisible file finally makes possible.
|
|
2556
|
+
<code>weights</code> now records mutmut's per-mutant durations and the planner prefers them. The
|
|
2557
|
+
count-based split, balanced to <b>1.08×</b> of ideal <i>by count</i>, was <b>2.24×</b> of
|
|
2558
|
+
ideal <i>by time</i> — one shard carrying 39.3 minutes of summed test time against a
|
|
2559
|
+
17.5-minute even share.
|
|
2560
|
+
|
|
2561
|
+
<b>Measured, that bought less than the arithmetic suggested.</b> Time-weighting moved the critical
|
|
2562
|
+
path from 10.3 to <b>9.3</b> minutes (shards 5.2, 5.8, 6.3, 6.8, 6.2, 9.3), 1.41× ideal rather
|
|
2563
|
+
than the 1.04× the summed-time model predicted. Summed test time is not shard wall clock:
|
|
2564
|
+
mutmut runs mutants across parallel workers, so a shard's elapsed time is its summed time divided by
|
|
2565
|
+
an effective worker count, and the model ignored that. Per-shard fixed overhead was ruled out by
|
|
2566
|
+
measurement rather than assumed — checkout, venv and install together are <b>0.4 minutes</b>,
|
|
2567
|
+
against 4.8–8.9 minutes inside <code>mutmut run</code> itself.
|
|
2568
|
+
|
|
2569
|
+
The residual had a specific cause, and it is the same proxy error one level down: a split file's
|
|
2570
|
+
time was apportioned across its functions by <em>mutant count</em>. Across
|
|
2571
|
+
<code>store.py</code>'s functions the per-mutant cost spans <b>0.273 s to 3.900 s</b> —
|
|
2572
|
+
<b>14.3×</b> — and <code>install</code> alone is <b>36%</b> of the file's time from
|
|
2573
|
+
<b>12%</b> of its mutants, so the shard that drew it ran 8.9 minutes against a 4.8-minute sibling.
|
|
2574
|
+
<code>weights</code> now records per-<em>function</em> durations too and apportions on those, which
|
|
2575
|
+
balances the plan to <b>0.06%</b>. Whether that closes the wall-clock gap is a claim the next run
|
|
2576
|
+
gets to settle, not this card.
|
|
2577
|
+
|
|
2578
|
+
Two bugs found by running it rather than reasoning about it. mutmut records durations in
|
|
2579
|
+
<b>seconds</b>, so summing them into a field named <code>millis</code> understated
|
|
2580
|
+
<code>store.py</code>'s 2360 seconds of test time as 2.4 — a 1000× mislabel. And
|
|
2581
|
+
requiring a duration for <i>every</i> file before trusting the tier was too brittle to fire: one
|
|
2582
|
+
file of 46 (<code>util.py</code>) came back short on the first run, which would have silently
|
|
2583
|
+
dropped the planner back to counting mutants and looked like the feature simply not working. A
|
|
2584
|
+
missing file is now imputed at the measured mean rate, which keeps every weight in one unit
|
|
2585
|
+
— the property that actually matters.</p>
|
|
2528
2586
|
<div class="meta">
|
|
2529
2587
|
<span class="m">Complexity <b>M</b></span>
|
|
2530
2588
|
<span class="m">Impact <b>Med</b></span>
|