boost-skill-cli 1.0.254__tar.gz → 1.0.255__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.254 → boost_skill_cli-1.0.255}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- boost_skill_cli-1.0.255/docs/roadmap/items/sbom-release-event-never-fires.md +54 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap.html +27 -8
- boost_skill_cli-1.0.254/docs/roadmap/items/sbom-release-event-never-fires.md +0 -35
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.gitattributes +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.gitignore +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/.vale.ini +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/LICENSE +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/Makefile +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/README.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/dense.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/rag.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/codecov.yml +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/index.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/examples/README.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/index.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/noxfile.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/setup.cfg +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/sonar-project.properties +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/style/README.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/style/boost.css +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/style/boost.js +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/style/demo.html +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_dense_fallback.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_rag.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/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.255'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 255)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: sbom-release-event-never-fires
|
|
3
|
+
board: code
|
|
4
|
+
section: trust
|
|
5
|
+
status: shipped
|
|
6
|
+
category: Supply chain
|
|
7
|
+
complexity: S
|
|
8
|
+
impact: High
|
|
9
|
+
wow: 4
|
|
10
|
+
note: 253 releases shipped with no SBOM; fixed with workflow_run
|
|
11
|
+
order: 50
|
|
12
|
+
owner:
|
|
13
|
+
pr: 295
|
|
14
|
+
title: <code>sbom.yml</code> has never run — it waits for an event <code>GITHUB_TOKEN</code> cannot emit
|
|
15
|
+
---
|
|
16
|
+
<code>sbom.yml</code> triggers on <code>release: types: [published]</code> and promises
|
|
17
|
+
"a CycloneDX SBOM for every release, attached to the GitHub Release as an asset".
|
|
18
|
+
It has <b>0 runs</b>. Releases here are created by <code>release-drafter</code> inside
|
|
19
|
+
<code>publish.yml</code> authenticated with <code>GITHUB_TOKEN</code>, and <b>events created
|
|
20
|
+
with <code>GITHUB_TOKEN</code> do not trigger workflows</b>. <code>publish.yml</code>'s own
|
|
21
|
+
header states that rule verbatim — "we never rely on the release event to trigger a second
|
|
22
|
+
workflow" — and <code>sbom.yml</code> is exactly that pattern.
|
|
23
|
+
|
|
24
|
+
So the <code>if: github.event_name == 'release'</code> guard on its upload step is dead code,
|
|
25
|
+
<code>workflow_dispatch</code> is the only reachable path and has never been used, and every
|
|
26
|
+
one of the last ten releases carries <code>assets: []</code>. Zero SBOMs have been produced
|
|
27
|
+
since the file landed on 2026-07-22. Same shape as the LangGraph conformance leg: wired up,
|
|
28
|
+
looks covered, never executed once.
|
|
29
|
+
|
|
30
|
+
By the time it was fixed the count was <b>253 releases, 0 runs, 0 SBOM assets</b>.
|
|
31
|
+
|
|
32
|
+
<b>Fixed with a third option neither branch of that decision considered:</b>
|
|
33
|
+
<code>workflow_run</code>. The <code>GITHUB_TOKEN</code> restriction applies to
|
|
34
|
+
<em>events</em> a token creates; <code>workflow_run</code> is documented as exempt and fires
|
|
35
|
+
on the upstream <em>run</em> completing regardless of what triggered it — which is
|
|
36
|
+
already how <code>ci → release</code> works in this repo. Chaining
|
|
37
|
+
<code>release → sbom</code> makes this the third link, inside GitHub's documented
|
|
38
|
+
three-level <code>workflow_run</code> limit. So no PAT is needed, and the SBOM logic stays
|
|
39
|
+
out of <code>publish.yml</code>.
|
|
40
|
+
|
|
41
|
+
That separation turned out to matter more than "keeps the logic in its own file":
|
|
42
|
+
<code>publish.yml</code>'s job holds PyPI Trusted-Publishing OIDC credentials, and generating
|
|
43
|
+
the SBOM means installing a third-party build plugin (<code>cyclonedx-bom</code>). Inlining it
|
|
44
|
+
would have put that plugin inside the one job that can publish to PyPI. Kept separate, it
|
|
45
|
+
holds only <code>contents: write</code>.
|
|
46
|
+
|
|
47
|
+
Two details the trigger change forced. The workflow now resolves its tag from the release
|
|
48
|
+
commit (<code>git tag --points-at</code>) rather than "newest release" — releases here
|
|
49
|
+
land minutes apart, so <code>gh release view</code> would race and SBOM the <em>next</em>
|
|
50
|
+
version; and two tags on one commit is real (<code>v1.0.248</code> and <code>v1.0.249</code>
|
|
51
|
+
both point at <code>c750651</code>), so it takes the highest. And per the original note, a
|
|
52
|
+
final step re-reads the release and fails unless the asset is actually attached — a
|
|
53
|
+
silent upload no-op is indistinguishable from success, which is the same class of quiet
|
|
54
|
+
nothing that produced this bug.
|
|
@@ -3520,7 +3520,7 @@ is built.</p>
|
|
|
3520
3520
|
</article>
|
|
3521
3521
|
|
|
3522
3522
|
<article class="cap rcard" id="sbom-release-event-never-fires">
|
|
3523
|
-
<div class="head"><span class="pill
|
|
3523
|
+
<div class="head"><span class="pill shipped">Shipped</span><span class="cat">Supply chain</span></div>
|
|
3524
3524
|
<h3><code>sbom.yml</code> has never run — it waits for an event <code>GITHUB_TOKEN</code> cannot emit</h3>
|
|
3525
3525
|
<p><code>sbom.yml</code> triggers on <code>release: types: [published]</code> and promises
|
|
3526
3526
|
"a CycloneDX SBOM for every release, attached to the GitHub Release as an asset".
|
|
@@ -3536,17 +3536,36 @@ one of the last ten releases carries <code>assets: []</code>. Zero SBOMs have be
|
|
|
3536
3536
|
since the file landed on 2026-07-22. Same shape as the LangGraph conformance leg: wired up,
|
|
3537
3537
|
looks covered, never executed once.
|
|
3538
3538
|
|
|
3539
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
3543
|
-
|
|
3544
|
-
|
|
3539
|
+
By the time it was fixed the count was <b>253 releases, 0 runs, 0 SBOM assets</b>.
|
|
3540
|
+
|
|
3541
|
+
<b>Fixed with a third option neither branch of that decision considered:</b>
|
|
3542
|
+
<code>workflow_run</code>. The <code>GITHUB_TOKEN</code> restriction applies to
|
|
3543
|
+
<em>events</em> a token creates; <code>workflow_run</code> is documented as exempt and fires
|
|
3544
|
+
on the upstream <em>run</em> completing regardless of what triggered it — which is
|
|
3545
|
+
already how <code>ci → release</code> works in this repo. Chaining
|
|
3546
|
+
<code>release → sbom</code> makes this the third link, inside GitHub's documented
|
|
3547
|
+
three-level <code>workflow_run</code> limit. So no PAT is needed, and the SBOM logic stays
|
|
3548
|
+
out of <code>publish.yml</code>.
|
|
3549
|
+
|
|
3550
|
+
That separation turned out to matter more than "keeps the logic in its own file":
|
|
3551
|
+
<code>publish.yml</code>'s job holds PyPI Trusted-Publishing OIDC credentials, and generating
|
|
3552
|
+
the SBOM means installing a third-party build plugin (<code>cyclonedx-bom</code>). Inlining it
|
|
3553
|
+
would have put that plugin inside the one job that can publish to PyPI. Kept separate, it
|
|
3554
|
+
holds only <code>contents: write</code>.
|
|
3555
|
+
|
|
3556
|
+
Two details the trigger change forced. The workflow now resolves its tag from the release
|
|
3557
|
+
commit (<code>git tag --points-at</code>) rather than "newest release" — releases here
|
|
3558
|
+
land minutes apart, so <code>gh release view</code> would race and SBOM the <em>next</em>
|
|
3559
|
+
version; and two tags on one commit is real (<code>v1.0.248</code> and <code>v1.0.249</code>
|
|
3560
|
+
both point at <code>c750651</code>), so it takes the highest. And per the original note, a
|
|
3561
|
+
final step re-reads the release and fails unless the asset is actually attached — a
|
|
3562
|
+
silent upload no-op is indistinguishable from success, which is the same class of quiet
|
|
3563
|
+
nothing that produced this bug.</p>
|
|
3545
3564
|
<div class="meta">
|
|
3546
3565
|
<span class="m">Complexity <b>S</b></span>
|
|
3547
3566
|
<span class="m hi">Impact <b>High</b></span>
|
|
3548
3567
|
<span class="m">Wow <b class="wow">★★★★</b></span>
|
|
3549
|
-
<span class="m">
|
|
3568
|
+
<span class="m">253 releases shipped with no SBOM; fixed with workflow_run</span>
|
|
3550
3569
|
</div>
|
|
3551
3570
|
</article>
|
|
3552
3571
|
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: sbom-release-event-never-fires
|
|
3
|
-
board: code
|
|
4
|
-
section: trust
|
|
5
|
-
status: planned
|
|
6
|
-
category: Supply chain
|
|
7
|
-
complexity: S
|
|
8
|
-
impact: High
|
|
9
|
-
wow: 4
|
|
10
|
-
note: 0 runs, 0 SBOMs, 227 releases
|
|
11
|
-
order: 50
|
|
12
|
-
owner:
|
|
13
|
-
pr:
|
|
14
|
-
title: <code>sbom.yml</code> has never run — it waits for an event <code>GITHUB_TOKEN</code> cannot emit
|
|
15
|
-
---
|
|
16
|
-
<code>sbom.yml</code> triggers on <code>release: types: [published]</code> and promises
|
|
17
|
-
"a CycloneDX SBOM for every release, attached to the GitHub Release as an asset".
|
|
18
|
-
It has <b>0 runs</b>. Releases here are created by <code>release-drafter</code> inside
|
|
19
|
-
<code>publish.yml</code> authenticated with <code>GITHUB_TOKEN</code>, and <b>events created
|
|
20
|
-
with <code>GITHUB_TOKEN</code> do not trigger workflows</b>. <code>publish.yml</code>'s own
|
|
21
|
-
header states that rule verbatim — "we never rely on the release event to trigger a second
|
|
22
|
-
workflow" — and <code>sbom.yml</code> is exactly that pattern.
|
|
23
|
-
|
|
24
|
-
So the <code>if: github.event_name == 'release'</code> guard on its upload step is dead code,
|
|
25
|
-
<code>workflow_dispatch</code> is the only reachable path and has never been used, and every
|
|
26
|
-
one of the last ten releases carries <code>assets: []</code>. Zero SBOMs have been produced
|
|
27
|
-
since the file landed on 2026-07-22. Same shape as the LangGraph conformance leg: wired up,
|
|
28
|
-
looks covered, never executed once.
|
|
29
|
-
|
|
30
|
-
Fix is a decision, not a patch: either build and attach the SBOM inside
|
|
31
|
-
<code>publish.yml</code>'s release job (it already holds <code>contents: write</code> and is
|
|
32
|
-
where the tag is cut), or have <code>publish.yml</code> dispatch this workflow with a PAT
|
|
33
|
-
rather than <code>GITHUB_TOKEN</code>. The first is simpler and keeps the release atomic;
|
|
34
|
-
the second keeps the SBOM logic in its own file. Worth pairing with a check that fails the
|
|
35
|
-
release when the asset is missing, so "never ran" cannot recur silently.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.254 → boost_skill_cli-1.0.255}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/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
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.254 → boost_skill_cli-1.0.255}/docs/roadmap/items/boost-run-live-agents.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|