boost-skill-cli 1.0.283__tar.gz → 1.0.284__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.
Files changed (533) hide show
  1. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  4. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
  5. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/one-commit-can-cut-two-releases.md +6 -2
  6. boost_skill_cli-1.0.284/docs/roadmap/items/sbom-declares-the-wrong-version.md +54 -0
  7. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap.html +57 -3
  8. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.gitattributes +0 -0
  9. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.gitignore +0 -0
  10. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.gitleaks.toml +0 -0
  11. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.htmlvalidate.json +0 -0
  12. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.lighthouserc.json +0 -0
  13. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.lycheeignore +0 -0
  14. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.markdownlint-cli2.jsonc +0 -0
  15. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.pre-commit-config.yaml +0 -0
  16. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.stylelintrc.json +0 -0
  17. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.vale/styles/boost/Terminology.yml +0 -0
  18. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  19. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/.vale.ini +0 -0
  20. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/CLAUDE.md +0 -0
  21. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/CODE_OF_CONDUCT.md +0 -0
  22. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/CONTRIBUTING.md +0 -0
  23. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/LICENSE +0 -0
  24. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/MANIFEST.in +0 -0
  25. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/Makefile +0 -0
  26. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/README.md +0 -0
  27. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/SECURITY.md +0 -0
  28. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost +0 -0
  29. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/__init__.py +0 -0
  30. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/__main__.py +0 -0
  31. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/cli.py +0 -0
  32. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/cliparse.py +0 -0
  33. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/__init__.py +0 -0
  34. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/_common.py +0 -0
  35. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/bmad.py +0 -0
  36. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/configuration.py +0 -0
  37. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/discovery.py +0 -0
  38. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/hooks.py +0 -0
  39. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/info.py +0 -0
  40. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/intelligence.py +0 -0
  41. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/pkg.py +0 -0
  42. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/quality.py +0 -0
  43. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/run.py +0 -0
  44. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/safety.py +0 -0
  45. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/taps.py +0 -0
  46. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/commands/team.py +0 -0
  47. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/__init__.py +0 -0
  48. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/adapters.py +0 -0
  49. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/agents.py +0 -0
  50. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/ai.py +0 -0
  51. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/capabilities.py +0 -0
  52. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/catalog.py +0 -0
  53. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/claude_settings.py +0 -0
  54. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/config.py +0 -0
  55. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/dense.py +0 -0
  56. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/ed25519.py +0 -0
  57. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/embed.py +0 -0
  58. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/faithfulness.py +0 -0
  59. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/frontmatter.py +0 -0
  60. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/gitutil.py +0 -0
  61. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/imperative.py +0 -0
  62. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/injectscan.py +0 -0
  63. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/integrity.py +0 -0
  64. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/journal.py +0 -0
  65. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/lockfile.py +0 -0
  66. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/logs.py +0 -0
  67. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/mcp.py +0 -0
  68. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/mcpdecl.py +0 -0
  69. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/minisign.py +0 -0
  70. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/nethttp.py +0 -0
  71. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/output.py +0 -0
  72. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/paths.py +0 -0
  73. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/policy.py +0 -0
  74. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/projectlock.py +0 -0
  75. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/provenance.py +0 -0
  76. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/rag.py +0 -0
  77. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/registry.py +0 -0
  78. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/resolve.py +0 -0
  79. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/rules.py +0 -0
  80. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/scopes.py +0 -0
  81. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/secretscan.py +0 -0
  82. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/selfupdate.py +0 -0
  83. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/serve.py +0 -0
  84. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/stackprobe.py +0 -0
  85. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/staleness.py +0 -0
  86. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/store.py +0 -0
  87. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/trustaudit.py +0 -0
  88. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/typosquat.py +0 -0
  89. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/updatediff.py +0 -0
  90. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/util.py +0 -0
  91. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/core/workflows.py +0 -0
  92. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/data/registries.json +0 -0
  93. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/errors.py +0 -0
  94. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_cli/spin.py +0 -0
  95. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  96. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  97. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/requires.txt +0 -0
  98. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/boost_skill_cli.egg-info/top_level.txt +0 -0
  99. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/codecov.yml +0 -0
  100. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/.claude/settings.local.json +0 -0
  101. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/DEBUGGING.md +0 -0
  102. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/adapters.html +0 -0
  103. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/distill.gif +0 -0
  104. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/doctor.gif +0 -0
  105. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/explain.gif +0 -0
  106. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/hooks.gif +0 -0
  107. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/install.gif +0 -0
  108. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/pulse.gif +0 -0
  109. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/search.gif +0 -0
  110. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/gifs/tap.gif +0 -0
  111. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/distill.tape +0 -0
  112. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/doctor.tape +0 -0
  113. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/explain.tape +0 -0
  114. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/hooks.tape +0 -0
  115. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/install.tape +0 -0
  116. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/pulse.tape +0 -0
  117. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/search.tape +0 -0
  118. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel/tapes/tap.tape +0 -0
  119. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/carousel.html +0 -0
  120. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/commands.html +0 -0
  121. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/demo.gif +0 -0
  122. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/demo.tape +0 -0
  123. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/design-roadmap.html +0 -0
  124. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/eval.html +0 -0
  125. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/index.html +0 -0
  126. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/mcp-hub.html +0 -0
  127. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/rag-architecture.md +0 -0
  128. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D01.md +0 -0
  129. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D02.md +0 -0
  130. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D03.md +0 -0
  131. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D04.md +0 -0
  132. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D05.md +0 -0
  133. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D06.md +0 -0
  134. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D07.md +0 -0
  135. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D08.md +0 -0
  136. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D09.md +0 -0
  137. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D10.md +0 -0
  138. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D11.md +0 -0
  139. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D12.md +0 -0
  140. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D13.md +0 -0
  141. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D14.md +0 -0
  142. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D15.md +0 -0
  143. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D16.md +0 -0
  144. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D17.md +0 -0
  145. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D18.md +0 -0
  146. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D19.md +0 -0
  147. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D20.md +0 -0
  148. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D21.md +0 -0
  149. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D22.md +0 -0
  150. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D23.md +0 -0
  151. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D24.md +0 -0
  152. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D25.md +0 -0
  153. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/BOOST-D26.md +0 -0
  154. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  155. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  156. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  157. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  158. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  159. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  160. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  161. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  162. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  163. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  164. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  165. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  166. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  167. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  168. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  169. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  170. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  171. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  172. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  173. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  174. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/command-carousel-page.md +0 -0
  175. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  176. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  177. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  178. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  179. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  180. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  181. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  182. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  183. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  184. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  185. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  186. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  187. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  188. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  189. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  190. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  191. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  192. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  193. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  194. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  195. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  196. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  197. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  198. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  199. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  200. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  201. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  202. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/github-community-health-files.md +0 -0
  203. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  204. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  205. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  206. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  207. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  208. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  209. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  210. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  211. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  212. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  213. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  214. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  215. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  216. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  217. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  218. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  219. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  220. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  221. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  222. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  223. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  224. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  225. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  226. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  227. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  228. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  229. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  230. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  231. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  232. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  233. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  234. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  235. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  236. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  237. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  238. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  239. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  240. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  241. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  242. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  243. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  244. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  245. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  246. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  247. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  248. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  249. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  250. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  251. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  252. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  253. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  254. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  255. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  256. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  257. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  258. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  259. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  260. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  261. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  262. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  263. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  264. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  265. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  266. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  267. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  268. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  269. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  270. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  271. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  272. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  273. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  274. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  275. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  276. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  277. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  278. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  279. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  280. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  281. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  282. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  283. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  284. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  285. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  286. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  287. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  288. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  289. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  290. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  291. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  292. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  293. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  294. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  295. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  296. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  297. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  298. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  299. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  300. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  301. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  302. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  303. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  304. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  305. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  306. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  307. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  308. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  309. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  310. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  311. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  312. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  313. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  314. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  315. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  316. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  317. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  318. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  319. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  320. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  321. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  322. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  323. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  324. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  325. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/workspace-scope-install.md +0 -0
  326. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  327. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/eslint.config.mjs +0 -0
  328. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/README.md +0 -0
  329. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/__init__.py +0 -0
  330. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/baseline.json +0 -0
  331. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/faithfulness.py +0 -0
  332. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/golden_set.json +0 -0
  333. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/make_corpus.py +0 -0
  334. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/make_golden.py +0 -0
  335. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/metrics.py +0 -0
  336. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/evals/run_evals.py +0 -0
  337. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/examples/README.md +0 -0
  338. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/examples/adapt-demo.sh +0 -0
  339. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/examples/boost-run-prototype.sh +0 -0
  340. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/index.html +0 -0
  341. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/noxfile.py +0 -0
  342. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/pyproject.toml +0 -0
  343. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/coverage-tools.in +0 -0
  344. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/coverage-tools.txt +0 -0
  345. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/lint-tools.in +0 -0
  346. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/lint-tools.txt +0 -0
  347. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/mutation-tools.in +0 -0
  348. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/mutation-tools.txt +0 -0
  349. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/release-tools.in +0 -0
  350. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/release-tools.txt +0 -0
  351. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/test-tools.in +0 -0
  352. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/requirements/test-tools.txt +0 -0
  353. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/a11y_check.py +0 -0
  354. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/bench_cli.sh +0 -0
  355. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/build_command_reference.py +0 -0
  356. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/build_registries.py +0 -0
  357. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/build_roadmap.py +0 -0
  358. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/check_anchors.py +0 -0
  359. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/check_licenses.py +0 -0
  360. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/check_required_checks.py +0 -0
  361. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/ensure_eval_corpus.sh +0 -0
  362. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/eval_explain.py +0 -0
  363. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/eval_gate.py +0 -0
  364. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/eval_recommend.py +0 -0
  365. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/eval_retrieval.py +0 -0
  366. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/eval_stats_summary.py +0 -0
  367. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/import_budget.py +0 -0
  368. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/lock_toolchain.py +0 -0
  369. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/mutation_gate.py +0 -0
  370. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/mutation_shards.py +0 -0
  371. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/mutation_weights.json +0 -0
  372. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/perf_gate.py +0 -0
  373. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/post_deploy_smoke.py +0 -0
  374. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/scripts/release_preflight.py +0 -0
  375. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/setup.cfg +0 -0
  376. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/sonar-project.properties +0 -0
  377. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/style/README.md +0 -0
  378. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/style/boost.css +0 -0
  379. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/style/boost.js +0 -0
  380. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/style/demo.html +0 -0
  381. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/adapt.feature +0 -0
  382. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/browse.feature +0 -0
  383. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/count.feature +0 -0
  384. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/discover.feature +0 -0
  385. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/doctor.feature +0 -0
  386. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/environment.py +0 -0
  387. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/explain.feature +0 -0
  388. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/index.feature +0 -0
  389. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/install.feature +0 -0
  390. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/list.feature +0 -0
  391. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/mcp.feature +0 -0
  392. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/search.feature +0 -0
  393. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/steps/cli_steps.py +0 -0
  394. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/steps/discovery_steps.py +0 -0
  395. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/steps/mcp_steps.py +0 -0
  396. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/bdd/features/steps/quality_steps.py +0 -0
  397. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/conftest.py +0 -0
  398. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/eval/baseline.json +0 -0
  399. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/eval/explain.jsonl +0 -0
  400. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/eval/golden.jsonl +0 -0
  401. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/eval/recommend.jsonl +0 -0
  402. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/eval/taps.txt +0 -0
  403. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_capabilities_policy.py +0 -0
  404. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_adapt.py +0 -0
  405. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_bmad.py +0 -0
  406. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_configuration.py +0 -0
  407. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_discovery.py +0 -0
  408. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_hooks.py +0 -0
  409. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_info.py +0 -0
  410. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_intelligence.py +0 -0
  411. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_pkg.py +0 -0
  412. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_quality.py +0 -0
  413. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_taps.py +0 -0
  414. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_cli_team.py +0 -0
  415. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_everyday_loop.py +0 -0
  416. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_integrity_enforce.py +0 -0
  417. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_property_parsers.py +0 -0
  418. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_run.py +0 -0
  419. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_tap_signing.py +0 -0
  420. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/functional/test_workspace_scope.py +0 -0
  421. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/README.md +0 -0
  422. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  423. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  424. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  425. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  426. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  427. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  428. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  429. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  430. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  431. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  432. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  433. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  434. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  435. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  436. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  437. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  438. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  439. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  440. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  441. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  442. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/fuzz_frontmatter.py +0 -0
  443. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/fuzz/fuzz_registry.py +0 -0
  444. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/make_fixture.py +0 -0
  445. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/perf/test_benchmarks.py +0 -0
  446. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/smoke.sh +0 -0
  447. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_a11y_check.py +0 -0
  448. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_adapters.py +0 -0
  449. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_adapters_multi.py +0 -0
  450. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_adapters_runner.py +0 -0
  451. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_agents.py +0 -0
  452. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_ai.py +0 -0
  453. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_capabilities.py +0 -0
  454. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_catalog.py +0 -0
  455. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_check_anchors.py +0 -0
  456. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_check_licenses.py +0 -0
  457. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_claude_settings.py +0 -0
  458. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_cliparse.py +0 -0
  459. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_codeql_analysis_key.py +0 -0
  460. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_command_reference_fresh.py +0 -0
  461. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_community_health_files.py +0 -0
  462. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_config.py +0 -0
  463. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_dense.py +0 -0
  464. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_dense_fallback.py +0 -0
  465. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_dependabot_config.py +0 -0
  466. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_docs_pages_linked.py +0 -0
  467. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_docsite_chrome.py +0 -0
  468. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_ed25519.py +0 -0
  469. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_embed.py +0 -0
  470. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_errors_and_cli_table.py +0 -0
  471. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_eval_faithfulness.py +0 -0
  472. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_eval_gate.py +0 -0
  473. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_eval_metrics.py +0 -0
  474. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_eval_stats_summary.py +0 -0
  475. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_faithfulness.py +0 -0
  476. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_frontmatter.py +0 -0
  477. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_fuzz_targets.py +0 -0
  478. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_gitleaks_config.py +0 -0
  479. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_gitutil.py +0 -0
  480. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_imperative.py +0 -0
  481. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_import_budget.py +0 -0
  482. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_injectscan.py +0 -0
  483. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_integrity.py +0 -0
  484. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_journal.py +0 -0
  485. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_lockfile.py +0 -0
  486. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_logs.py +0 -0
  487. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_marketing_counts.py +0 -0
  488. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_mcp.py +0 -0
  489. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_mcpdecl.py +0 -0
  490. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_minisign.py +0 -0
  491. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_mutation_hardening.py +0 -0
  492. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_mutation_shards.py +0 -0
  493. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_mutmut_source_paths.py +0 -0
  494. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_nethttp.py +0 -0
  495. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_output.py +0 -0
  496. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_paths.py +0 -0
  497. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_perf_gate.py +0 -0
  498. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_pkg_confusions.py +0 -0
  499. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_pkg_injection.py +0 -0
  500. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_pkg_secrets.py +0 -0
  501. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_policy.py +0 -0
  502. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_post_deploy_smoke.py +0 -0
  503. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_projectlock.py +0 -0
  504. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_provenance.py +0 -0
  505. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_rag.py +0 -0
  506. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_registries_fresh.py +0 -0
  507. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_registry.py +0 -0
  508. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_release_preflight.py +0 -0
  509. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_required_checks.py +0 -0
  510. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_resolve.py +0 -0
  511. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_roadmap_fresh.py +0 -0
  512. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_rules.py +0 -0
  513. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_scopes.py +0 -0
  514. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_secretscan.py +0 -0
  515. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_selfupdate.py +0 -0
  516. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_serve.py +0 -0
  517. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_spin.py +0 -0
  518. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_stackprobe.py +0 -0
  519. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_staleness.py +0 -0
  520. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_store.py +0 -0
  521. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_token_parity.py +0 -0
  522. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_toolchain_lock.py +0 -0
  523. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_trustaudit.py +0 -0
  524. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_typosquat.py +0 -0
  525. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_updatediff.py +0 -0
  526. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_util.py +0 -0
  527. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_version.py +0 -0
  528. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_workflow_timeouts.py +0 -0
  529. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/unit/test_workflows.py +0 -0
  530. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/visual/a11y_check.mjs +0 -0
  531. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/visual/console_check.mjs +0 -0
  532. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/visual/package.json +0 -0
  533. {boost_skill_cli-1.0.283 → boost_skill_cli-1.0.284}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.283
3
+ Version: 1.0.284
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -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.283'
22
- __version_tuple__ = version_tuple = (1, 0, 283)
21
+ __version__ = version = '1.0.284'
22
+ __version_tuple__ = version_tuple = (1, 0, 284)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.283
3
+ Version: 1.0.284
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -288,6 +288,7 @@ docs/roadmap/items/rule-install-native-materialization.md
288
288
  docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md
289
289
  docs/roadmap/items/runtime-explain-faithfulness-guardrail.md
290
290
  docs/roadmap/items/sbom-aware-scanning-osv-scanner.md
291
+ docs/roadmap/items/sbom-declares-the-wrong-version.md
291
292
  docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md
292
293
  docs/roadmap/items/sbom-release-event-never-fires.md
293
294
  docs/roadmap/items/scan-and-sync-rules-and-workflows.md
@@ -48,5 +48,9 @@ ci will trigger its own release, but it means some merges never get their own ve
48
48
 
49
49
  <b>Already mitigated:</b> <code>sbom.yml</code> now builds and attaches an SBOM for <em>every</em>
50
50
  tag on the commit rather than only the highest, so a duplicate release no longer produces a release
51
- with no SBOM. Each tag is built separately, because setuptools-scm reads the version from the tag
52
- and one SBOM cannot honestly describe two versions.
51
+ with no SBOM. Each tag is built separately so its SBOM carries its own version.
52
+
53
+ <b>Correction:</b> the claim above originally read "because setuptools-scm reads the version from
54
+ the tag", and that is false — it reads the version from the <em>commit</em>, so separate checkouts
55
+ of two tags on one commit produce the same version. That was a second, quieter consequence of the
56
+ duplicate release, fixed separately in <code>sbom-declares-the-wrong-version</code>.
@@ -0,0 +1,54 @@
1
+ ---
2
+ id: sbom-declares-the-wrong-version
3
+ board: code
4
+ section: trust
5
+ status: shipped
6
+ category: Supply chain · Bug
7
+ complexity: S
8
+ impact: High
9
+ wow: 5
10
+ note: fixed — release v1.0.278's SBOM declared 1.0.277; the version is now pinned to the tag
11
+ order: 68
12
+ owner: loop/sbom-tag-version
13
+ pr:
14
+ title: The SBOM can declare a different version than the release it is attached to
15
+ ---
16
+ <code>sbom.yml</code> builds each released tag separately so that every release gets an SBOM
17
+ describing <em>its own</em> version. It does that by checking the tag out:
18
+ <code>git checkout --detach "refs/tags/$TAG"</code>. The premise is wrong.
19
+ <b>setuptools-scm derives the version from the commit, not from the ref used to reach it</b>, so
20
+ when one commit carries two tags every checkout resolves to the same version — whichever one
21
+ <code>git describe</code> picks, which is not the highest.
22
+
23
+ Measured against the real repository, detached at each tag in turn:
24
+
25
+ <code>checked out v1.0.278 -&gt; setuptools-scm says: 1.0.277</code><br>
26
+ <code>checked out v1.0.277 -&gt; setuptools-scm says: 1.0.277</code>
27
+
28
+ And confirmed in production rather than in a fixture — the published asset on
29
+ <code>v1.0.278</code>, downloaded from the release, contains
30
+ <code>{"name": "boost-skill-cli", "version": "1.0.277"}</code>. <b>The SBOM attached to release
31
+ v1.0.278 describes v1.0.277.</b> A consumer resolving that release's bill of materials gets a
32
+ document for a different version, which is precisely the trust property an SBOM exists to provide.
33
+
34
+ The blast radius is bounded by how often one commit cuts two releases, which
35
+ <code>one-commit-can-cut-two-releases</code> documents happening three times so far
36
+ (<code>246</code>/<code>247</code>, <code>248</code>/<code>249</code>, <code>277</code>/<code>278</code>).
37
+ Every duplicate pair mislabels one of its two SBOMs. It is <em>not</em> latent in
38
+ <code>publish.yml</code>, which builds the PyPI dist: that job checks out before the sibling run's
39
+ tag exists, so it happens to resolve correctly — all 281 PyPI versions are present and correctly
40
+ numbered. The defect is specific to the job that runs <em>after</em> both tags are in place.
41
+
42
+ <b>Shipped.</b> The build now pins the version to the tag it is building
43
+ (<code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BOOST_SKILL_CLI="${TAG#v}"</code>) and then asserts the
44
+ wheel it produced carries that version, so a package rename — which would silently unhook the
45
+ scoped variable and restore the bug — fails the job instead of shipping a mislabelled document.
46
+ Verified both ways against the live repository: without the pin, <code>v1.0.278</code> resolves to
47
+ <code>1.0.277</code>; with it, <code>1.0.278</code>.
48
+
49
+ The same exercise settled the other thing this workflow had never proven: the multi-tag loop
50
+ itself. Both <code>run:</code> blocks were extracted verbatim from the YAML and driven against a
51
+ fixture repository with two tags on one commit, with <code>gh</code> and the build toolchain
52
+ stubbed. Resolution returns both tags newest-first, the loop iterates both, and it issues a
53
+ separate <code>upload</code> and a separate post-upload <code>view</code> assertion per tag. That
54
+ path had never executed in production — every commit since it shipped has carried exactly one tag.
@@ -110,7 +110,7 @@
110
110
  <div class="stat"><b>16</b><span>Shipped</span></div>
111
111
  <div class="stat"><b>1</b><span>Next up</span></div>
112
112
  <div class="stat"><b>4</b><span>Planned</span></div>
113
- <div class="stat"><b>174</b><span>Loop finds</span></div>
113
+ <div class="stat"><b>175</b><span>Loop finds</span></div>
114
114
  <!-- /ROADMAP:stats -->
115
115
  </div>
116
116
  </section>
@@ -2707,8 +2707,12 @@ ci will trigger its own release, but it means some merges never get their own ve
2707
2707
 
2708
2708
  <b>Already mitigated:</b> <code>sbom.yml</code> now builds and attaches an SBOM for <em>every</em>
2709
2709
  tag on the commit rather than only the highest, so a duplicate release no longer produces a release
2710
- with no SBOM. Each tag is built separately, because setuptools-scm reads the version from the tag
2711
- and one SBOM cannot honestly describe two versions.</p>
2710
+ with no SBOM. Each tag is built separately so its SBOM carries its own version.
2711
+
2712
+ <b>Correction:</b> the claim above originally read "because setuptools-scm reads the version from
2713
+ the tag", and that is false — it reads the version from the <em>commit</em>, so separate checkouts
2714
+ of two tags on one commit produce the same version. That was a second, quieter consequence of the
2715
+ duplicate release, fixed separately in <code>sbom-declares-the-wrong-version</code>.</p>
2712
2716
  <div class="meta">
2713
2717
  <span class="m">Complexity <b>M</b></span>
2714
2718
  <span class="m">Impact <b>Med</b></span>
@@ -4279,6 +4283,56 @@ having found error-severity alerts.</p>
4279
4283
  <span class="m">safe scoped to CodeQL (0 open) — adding Scorecard deadlocks every merge</span>
4280
4284
  </div>
4281
4285
  </article>
4286
+
4287
+ <article class="cap rcard" id="sbom-declares-the-wrong-version">
4288
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Supply chain · Bug</span></div>
4289
+ <h3>The SBOM can declare a different version than the release it is attached to</h3>
4290
+ <p><code>sbom.yml</code> builds each released tag separately so that every release gets an SBOM
4291
+ describing <em>its own</em> version. It does that by checking the tag out:
4292
+ <code>git checkout --detach "refs/tags/$TAG"</code>. The premise is wrong.
4293
+ <b>setuptools-scm derives the version from the commit, not from the ref used to reach it</b>, so
4294
+ when one commit carries two tags every checkout resolves to the same version — whichever one
4295
+ <code>git describe</code> picks, which is not the highest.
4296
+
4297
+ Measured against the real repository, detached at each tag in turn:
4298
+
4299
+ <code>checked out v1.0.278 -&gt; setuptools-scm says: 1.0.277</code><br>
4300
+ <code>checked out v1.0.277 -&gt; setuptools-scm says: 1.0.277</code>
4301
+
4302
+ And confirmed in production rather than in a fixture — the published asset on
4303
+ <code>v1.0.278</code>, downloaded from the release, contains
4304
+ <code>{"name": "boost-skill-cli", "version": "1.0.277"}</code>. <b>The SBOM attached to release
4305
+ v1.0.278 describes v1.0.277.</b> A consumer resolving that release's bill of materials gets a
4306
+ document for a different version, which is precisely the trust property an SBOM exists to provide.
4307
+
4308
+ The blast radius is bounded by how often one commit cuts two releases, which
4309
+ <code>one-commit-can-cut-two-releases</code> documents happening three times so far
4310
+ (<code>246</code>/<code>247</code>, <code>248</code>/<code>249</code>, <code>277</code>/<code>278</code>).
4311
+ Every duplicate pair mislabels one of its two SBOMs. It is <em>not</em> latent in
4312
+ <code>publish.yml</code>, which builds the PyPI dist: that job checks out before the sibling run's
4313
+ tag exists, so it happens to resolve correctly — all 281 PyPI versions are present and correctly
4314
+ numbered. The defect is specific to the job that runs <em>after</em> both tags are in place.
4315
+
4316
+ <b>Shipped.</b> The build now pins the version to the tag it is building
4317
+ (<code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_BOOST_SKILL_CLI="${TAG#v}"</code>) and then asserts the
4318
+ wheel it produced carries that version, so a package rename — which would silently unhook the
4319
+ scoped variable and restore the bug — fails the job instead of shipping a mislabelled document.
4320
+ Verified both ways against the live repository: without the pin, <code>v1.0.278</code> resolves to
4321
+ <code>1.0.277</code>; with it, <code>1.0.278</code>.
4322
+
4323
+ The same exercise settled the other thing this workflow had never proven: the multi-tag loop
4324
+ itself. Both <code>run:</code> blocks were extracted verbatim from the YAML and driven against a
4325
+ fixture repository with two tags on one commit, with <code>gh</code> and the build toolchain
4326
+ stubbed. Resolution returns both tags newest-first, the loop iterates both, and it issues a
4327
+ separate <code>upload</code> and a separate post-upload <code>view</code> assertion per tag. That
4328
+ path had never executed in production — every commit since it shipped has carried exactly one tag.</p>
4329
+ <div class="meta">
4330
+ <span class="m">Complexity <b>S</b></span>
4331
+ <span class="m hi">Impact <b>High</b></span>
4332
+ <span class="m">Wow <b class="wow">★★★★★</b></span>
4333
+ <span class="m">fixed — release v1.0.278's SBOM declared 1.0.277; the version is now pinned to the tag</span>
4334
+ </div>
4335
+ </article>
4282
4336
  <!-- /ROADMAP:cards -->
4283
4337
 
4284
4338
  </div>