boost-skill-cli 1.0.215__tar.gz → 1.0.216__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.215/boost_skill_cli.egg-info → boost_skill_cli-1.0.216}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216/boost_skill_cli.egg-info}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/SOURCES.txt +2 -0
- boost_skill_cli-1.0.216/docs/roadmap/items/main-has-no-branch-protection.md +32 -0
- boost_skill_cli-1.0.216/docs/roadmap/items/scorecard-findings-triage.md +38 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap.html +63 -1
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.gitattributes +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.gitignore +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/.vale.ini +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/LICENSE +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/Makefile +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/README.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/index.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/examples/README.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/index.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/noxfile.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/setup.cfg +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/style/README.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/style/boost.css +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/style/boost.js +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/style/demo.html +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/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.216'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 216)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -210,6 +210,7 @@ docs/roadmap/items/localize-the-stored-bm25-snippet.md
|
|
|
210
210
|
docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md
|
|
211
211
|
docs/roadmap/items/log-timestamps-mislabeled-utc.md
|
|
212
212
|
docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md
|
|
213
|
+
docs/roadmap/items/main-has-no-branch-protection.md
|
|
213
214
|
docs/roadmap/items/make-the-roadmaps-discoverable.md
|
|
214
215
|
docs/roadmap/items/markdown-consistency-markdownlint-cli2.md
|
|
215
216
|
docs/roadmap/items/mcp-aware-skills.md
|
|
@@ -259,6 +260,7 @@ docs/roadmap/items/runtime-explain-faithfulness-guardrail.md
|
|
|
259
260
|
docs/roadmap/items/sbom-aware-scanning-osv-scanner.md
|
|
260
261
|
docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md
|
|
261
262
|
docs/roadmap/items/scan-and-sync-rules-and-workflows.md
|
|
263
|
+
docs/roadmap/items/scorecard-findings-triage.md
|
|
262
264
|
docs/roadmap/items/second-type-checker-pyright.md
|
|
263
265
|
docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md
|
|
264
266
|
docs/roadmap/items/secret-scanning-gitleaks-push-protection.md
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: main-has-no-branch-protection
|
|
3
|
+
board: code
|
|
4
|
+
section: pipeline
|
|
5
|
+
status: planned
|
|
6
|
+
category: Release safety
|
|
7
|
+
complexity: S
|
|
8
|
+
impact: High
|
|
9
|
+
wow: 3
|
|
10
|
+
note: nothing enforces the red-merge rule
|
|
11
|
+
order: 14
|
|
12
|
+
owner:
|
|
13
|
+
pr:
|
|
14
|
+
title: <code>main</code> has no branch protection, so the release rules are honour-system
|
|
15
|
+
---
|
|
16
|
+
<code>GET /branches/main/protection</code> returns <b>"Branch not protected"</b>. Scorecard
|
|
17
|
+
flags it (<code>BranchProtectionID</code>, score 0), but the sharper way to see it is this:
|
|
18
|
+
CLAUDE.md says <i>"never merge onto a red release"</i> and <i>"every merge to main cuts a
|
|
19
|
+
PyPI release"</i> — and <b>nothing enforces either</b>. A merge with a red gate succeeds
|
|
20
|
+
silently, and the release workflow then ships that commit to PyPI. The rule exists only in
|
|
21
|
+
the head of whoever is merging.
|
|
22
|
+
This is a <b>decision, not a bug</b>, which is why it is filed rather than fixed. Requiring
|
|
23
|
+
status checks would have stopped the exact situation that occurred on
|
|
24
|
+
2026-07-25, when three PRs sat red on a <code>lock_toolchain --check</code> failure that
|
|
25
|
+
belonged to none of them. But protection cuts both ways here: the repo's whole working model
|
|
26
|
+
is parallel <code>loop/*</code> branches opening and merging their own PRs, so
|
|
27
|
+
<b>"require pull request reviews"</b> would deadlock every loop (there is no second
|
|
28
|
+
reviewer), and that same absence is what keeps <code>CodeReviewID</code> pinned at 0/30.
|
|
29
|
+
The shape that fits: require <b>status checks</b> to pass (at minimum <code>ci / lint</code>
|
|
30
|
+
and <code>ci / tests</code>) and require branches to be up to date, but do <b>not</b>
|
|
31
|
+
require reviews. That enforces the release rule that actually matters while leaving
|
|
32
|
+
self-merge intact. Decide before adding more concurrent loops, not after.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: scorecard-findings-triage
|
|
3
|
+
board: code
|
|
4
|
+
section: pipeline
|
|
5
|
+
status: planned
|
|
6
|
+
category: Supply chain
|
|
7
|
+
complexity: M
|
|
8
|
+
impact: Med
|
|
9
|
+
wow: 2
|
|
10
|
+
note: 15 open · 3 fixed, 4 intentional, 5 not code-fixable
|
|
11
|
+
order: 13
|
|
12
|
+
owner:
|
|
13
|
+
pr:
|
|
14
|
+
title: OpenSSF Scorecard's 15 findings, triaged into three piles
|
|
15
|
+
---
|
|
16
|
+
Scorecard files into the same code-scanning inbox as CodeQL, so its findings read like
|
|
17
|
+
code defects and get ignored alongside the false positives. They are not defects — they
|
|
18
|
+
are <b>posture metrics</b>, and they must not be dismissed as "false positive" the way the
|
|
19
|
+
<code>serve.py</code> traversal alerts legitimately were, because that misrepresents the
|
|
20
|
+
repo's security posture. Triaged 2026-07-25:
|
|
21
|
+
<b>Fixed</b> — <code>TokenPermissions</code> #26/#27/#28: <code>ci</code>,
|
|
22
|
+
<code>codeql</code> and <code>adapter-conformance</code> had no top-level
|
|
23
|
+
<code>permissions:</code> block at all, scoring 0. Added <code>contents: read</code> as the
|
|
24
|
+
least-privilege default.
|
|
25
|
+
<b>Intentional, leave</b> — <code>TokenPermissions</code> #39/#37/#25/#24:
|
|
26
|
+
<code>publish.yml</code> needs <code>contents: write</code> to create the release and tag,
|
|
27
|
+
<code>osv-scanner</code> needs <code>security-events: write</code> to upload SARIF, and
|
|
28
|
+
<code>ci.yml</code>'s <code>tests</code> job needs <code>contents: write</code> for the
|
|
29
|
+
coverage-badge push. "Fixing" these breaks the release pipeline. They should be
|
|
30
|
+
<b>dismissed as used-in-tests/acceptable-risk with a reason</b>, not left open to rot the list.
|
|
31
|
+
<b>Not code-fixable</b> — <code>MaintainedID</code> is repository age; <code>CodeReviewID</code>
|
|
32
|
+
counts approved changesets and is structurally 0 while loops self-merge;
|
|
33
|
+
<code>CIIBestPracticesID</code> is an opt-in badge programme; the four
|
|
34
|
+
<code>PinnedDependencies</code> hits are <code>npx</code> and <code>pip</code> invocations
|
|
35
|
+
inside steps, not actions, so SHA-pinning does not apply to them as written.
|
|
36
|
+
<code>BranchProtectionID</code> is tracked separately in
|
|
37
|
+
<a href="#main-has-no-branch-protection">its own card</a> — it is a workflow decision, not a
|
|
38
|
+
config oversight.
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<div class="stat"><b>16</b><span>Shipped</span></div>
|
|
110
110
|
<div class="stat"><b>1</b><span>Next up</span></div>
|
|
111
111
|
<div class="stat"><b>4</b><span>Planned</span></div>
|
|
112
|
-
<div class="stat"><b>
|
|
112
|
+
<div class="stat"><b>145</b><span>Loop finds</span></div>
|
|
113
113
|
<!-- /ROADMAP:stats -->
|
|
114
114
|
</div>
|
|
115
115
|
</section>
|
|
@@ -1725,6 +1725,68 @@ path is never used — that fixes the behaviour without satisfying Dependabot's
|
|
|
1725
1725
|
<span class="m">dismissed as tolerable risk, 2026-07-25</span>
|
|
1726
1726
|
</div>
|
|
1727
1727
|
</article>
|
|
1728
|
+
|
|
1729
|
+
<article class="cap rcard" id="scorecard-findings-triage">
|
|
1730
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Supply chain</span></div>
|
|
1731
|
+
<h3>OpenSSF Scorecard's 15 findings, triaged into three piles</h3>
|
|
1732
|
+
<p>Scorecard files into the same code-scanning inbox as CodeQL, so its findings read like
|
|
1733
|
+
code defects and get ignored alongside the false positives. They are not defects — they
|
|
1734
|
+
are <b>posture metrics</b>, and they must not be dismissed as "false positive" the way the
|
|
1735
|
+
<code>serve.py</code> traversal alerts legitimately were, because that misrepresents the
|
|
1736
|
+
repo's security posture. Triaged 2026-07-25:
|
|
1737
|
+
<b>Fixed</b> — <code>TokenPermissions</code> #26/#27/#28: <code>ci</code>,
|
|
1738
|
+
<code>codeql</code> and <code>adapter-conformance</code> had no top-level
|
|
1739
|
+
<code>permissions:</code> block at all, scoring 0. Added <code>contents: read</code> as the
|
|
1740
|
+
least-privilege default.
|
|
1741
|
+
<b>Intentional, leave</b> — <code>TokenPermissions</code> #39/#37/#25/#24:
|
|
1742
|
+
<code>publish.yml</code> needs <code>contents: write</code> to create the release and tag,
|
|
1743
|
+
<code>osv-scanner</code> needs <code>security-events: write</code> to upload SARIF, and
|
|
1744
|
+
<code>ci.yml</code>'s <code>tests</code> job needs <code>contents: write</code> for the
|
|
1745
|
+
coverage-badge push. "Fixing" these breaks the release pipeline. They should be
|
|
1746
|
+
<b>dismissed as used-in-tests/acceptable-risk with a reason</b>, not left open to rot the list.
|
|
1747
|
+
<b>Not code-fixable</b> — <code>MaintainedID</code> is repository age; <code>CodeReviewID</code>
|
|
1748
|
+
counts approved changesets and is structurally 0 while loops self-merge;
|
|
1749
|
+
<code>CIIBestPracticesID</code> is an opt-in badge programme; the four
|
|
1750
|
+
<code>PinnedDependencies</code> hits are <code>npx</code> and <code>pip</code> invocations
|
|
1751
|
+
inside steps, not actions, so SHA-pinning does not apply to them as written.
|
|
1752
|
+
<code>BranchProtectionID</code> is tracked separately in
|
|
1753
|
+
<a href="#main-has-no-branch-protection">its own card</a> — it is a workflow decision, not a
|
|
1754
|
+
config oversight.</p>
|
|
1755
|
+
<div class="meta">
|
|
1756
|
+
<span class="m">Complexity <b>M</b></span>
|
|
1757
|
+
<span class="m">Impact <b>Med</b></span>
|
|
1758
|
+
<span class="m">Wow <b class="wow">★★</b></span>
|
|
1759
|
+
<span class="m">15 open · 3 fixed, 4 intentional, 5 not code-fixable</span>
|
|
1760
|
+
</div>
|
|
1761
|
+
</article>
|
|
1762
|
+
|
|
1763
|
+
<article class="cap rcard" id="main-has-no-branch-protection">
|
|
1764
|
+
<div class="head"><span class="pill planned">Planned</span><span class="cat">Release safety</span></div>
|
|
1765
|
+
<h3><code>main</code> has no branch protection, so the release rules are honour-system</h3>
|
|
1766
|
+
<p><code>GET /branches/main/protection</code> returns <b>"Branch not protected"</b>. Scorecard
|
|
1767
|
+
flags it (<code>BranchProtectionID</code>, score 0), but the sharper way to see it is this:
|
|
1768
|
+
CLAUDE.md says <i>"never merge onto a red release"</i> and <i>"every merge to main cuts a
|
|
1769
|
+
PyPI release"</i> — and <b>nothing enforces either</b>. A merge with a red gate succeeds
|
|
1770
|
+
silently, and the release workflow then ships that commit to PyPI. The rule exists only in
|
|
1771
|
+
the head of whoever is merging.
|
|
1772
|
+
This is a <b>decision, not a bug</b>, which is why it is filed rather than fixed. Requiring
|
|
1773
|
+
status checks would have stopped the exact situation that occurred on
|
|
1774
|
+
2026-07-25, when three PRs sat red on a <code>lock_toolchain --check</code> failure that
|
|
1775
|
+
belonged to none of them. But protection cuts both ways here: the repo's whole working model
|
|
1776
|
+
is parallel <code>loop/*</code> branches opening and merging their own PRs, so
|
|
1777
|
+
<b>"require pull request reviews"</b> would deadlock every loop (there is no second
|
|
1778
|
+
reviewer), and that same absence is what keeps <code>CodeReviewID</code> pinned at 0/30.
|
|
1779
|
+
The shape that fits: require <b>status checks</b> to pass (at minimum <code>ci / lint</code>
|
|
1780
|
+
and <code>ci / tests</code>) and require branches to be up to date, but do <b>not</b>
|
|
1781
|
+
require reviews. That enforces the release rule that actually matters while leaving
|
|
1782
|
+
self-merge intact. Decide before adding more concurrent loops, not after.</p>
|
|
1783
|
+
<div class="meta">
|
|
1784
|
+
<span class="m">Complexity <b>S</b></span>
|
|
1785
|
+
<span class="m hi">Impact <b>High</b></span>
|
|
1786
|
+
<span class="m">Wow <b class="wow">★★★</b></span>
|
|
1787
|
+
<span class="m">nothing enforces the red-merge rule</span>
|
|
1788
|
+
</div>
|
|
1789
|
+
</article>
|
|
1728
1790
|
<!-- /ROADMAP:cards -->
|
|
1729
1791
|
|
|
1730
1792
|
</div>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.215 → boost_skill_cli-1.0.216}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.215 → boost_skill_cli-1.0.216}/docs/roadmap/items/boost-run-live-agents.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|