boost-skill-cli 1.0.270__tar.gz → 1.0.272__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 (510) hide show
  1. {boost_skill_cli-1.0.270/boost_skill_cli.egg-info → boost_skill_cli-1.0.272}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  4. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_skill_cli.egg-info/SOURCES.txt +4 -0
  5. boost_skill_cli-1.0.272/docs/roadmap/items/ci-time-is-now-runner-queueing.md +40 -0
  6. boost_skill_cli-1.0.272/docs/roadmap/items/code-scanning-rule-can-be-restored.md +47 -0
  7. boost_skill_cli-1.0.272/docs/roadmap/items/mutation-shard-floor-is-one-file.md +43 -0
  8. boost_skill_cli-1.0.272/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +36 -0
  9. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap.html +151 -1
  10. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.gitattributes +0 -0
  11. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.gitignore +0 -0
  12. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.gitleaks.toml +0 -0
  13. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.htmlvalidate.json +0 -0
  14. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.lighthouserc.json +0 -0
  15. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.lycheeignore +0 -0
  16. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.markdownlint-cli2.jsonc +0 -0
  17. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.pre-commit-config.yaml +0 -0
  18. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.stylelintrc.json +0 -0
  19. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.vale/styles/boost/Terminology.yml +0 -0
  20. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  21. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/.vale.ini +0 -0
  22. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/CLAUDE.md +0 -0
  23. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/CODE_OF_CONDUCT.md +0 -0
  24. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/CONTRIBUTING.md +0 -0
  25. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/LICENSE +0 -0
  26. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/MANIFEST.in +0 -0
  27. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/Makefile +0 -0
  28. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/README.md +0 -0
  29. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/SECURITY.md +0 -0
  30. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost +0 -0
  31. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/__init__.py +0 -0
  32. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/__main__.py +0 -0
  33. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/cli.py +0 -0
  34. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/cliparse.py +0 -0
  35. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/__init__.py +0 -0
  36. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/_common.py +0 -0
  37. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/bmad.py +0 -0
  38. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/configuration.py +0 -0
  39. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/discovery.py +0 -0
  40. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/hooks.py +0 -0
  41. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/info.py +0 -0
  42. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/intelligence.py +0 -0
  43. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/pkg.py +0 -0
  44. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/quality.py +0 -0
  45. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/run.py +0 -0
  46. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/safety.py +0 -0
  47. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/taps.py +0 -0
  48. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/commands/team.py +0 -0
  49. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/__init__.py +0 -0
  50. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/adapters.py +0 -0
  51. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/agents.py +0 -0
  52. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/ai.py +0 -0
  53. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/capabilities.py +0 -0
  54. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/catalog.py +0 -0
  55. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/claude_settings.py +0 -0
  56. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/config.py +0 -0
  57. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/dense.py +0 -0
  58. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/ed25519.py +0 -0
  59. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/embed.py +0 -0
  60. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/faithfulness.py +0 -0
  61. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/frontmatter.py +0 -0
  62. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/gitutil.py +0 -0
  63. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/imperative.py +0 -0
  64. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/injectscan.py +0 -0
  65. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/integrity.py +0 -0
  66. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/journal.py +0 -0
  67. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/lockfile.py +0 -0
  68. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/logs.py +0 -0
  69. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/mcp.py +0 -0
  70. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/mcpdecl.py +0 -0
  71. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/minisign.py +0 -0
  72. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/nethttp.py +0 -0
  73. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/output.py +0 -0
  74. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/paths.py +0 -0
  75. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/policy.py +0 -0
  76. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/projectlock.py +0 -0
  77. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/provenance.py +0 -0
  78. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/rag.py +0 -0
  79. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/registry.py +0 -0
  80. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/resolve.py +0 -0
  81. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/rules.py +0 -0
  82. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/scopes.py +0 -0
  83. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/secretscan.py +0 -0
  84. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/selfupdate.py +0 -0
  85. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/serve.py +0 -0
  86. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/stackprobe.py +0 -0
  87. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/staleness.py +0 -0
  88. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/store.py +0 -0
  89. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/trustaudit.py +0 -0
  90. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/typosquat.py +0 -0
  91. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/updatediff.py +0 -0
  92. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/util.py +0 -0
  93. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/core/workflows.py +0 -0
  94. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/data/registries.json +0 -0
  95. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/errors.py +0 -0
  96. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_cli/spin.py +0 -0
  97. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  98. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  99. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_skill_cli.egg-info/requires.txt +0 -0
  100. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/boost_skill_cli.egg-info/top_level.txt +0 -0
  101. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/codecov.yml +0 -0
  102. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/.claude/settings.local.json +0 -0
  103. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/DEBUGGING.md +0 -0
  104. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/adapters.html +0 -0
  105. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/distill.gif +0 -0
  106. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/doctor.gif +0 -0
  107. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/explain.gif +0 -0
  108. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/hooks.gif +0 -0
  109. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/install.gif +0 -0
  110. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/pulse.gif +0 -0
  111. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/search.gif +0 -0
  112. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/gifs/tap.gif +0 -0
  113. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/distill.tape +0 -0
  114. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/doctor.tape +0 -0
  115. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/explain.tape +0 -0
  116. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/hooks.tape +0 -0
  117. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/install.tape +0 -0
  118. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/pulse.tape +0 -0
  119. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/search.tape +0 -0
  120. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel/tapes/tap.tape +0 -0
  121. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/carousel.html +0 -0
  122. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/commands.html +0 -0
  123. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/demo.gif +0 -0
  124. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/demo.tape +0 -0
  125. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/design-roadmap.html +0 -0
  126. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/eval.html +0 -0
  127. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/index.html +0 -0
  128. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/mcp-hub.html +0 -0
  129. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/rag-architecture.md +0 -0
  130. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D01.md +0 -0
  131. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D02.md +0 -0
  132. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D03.md +0 -0
  133. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D04.md +0 -0
  134. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D05.md +0 -0
  135. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D06.md +0 -0
  136. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D07.md +0 -0
  137. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D08.md +0 -0
  138. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D09.md +0 -0
  139. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D10.md +0 -0
  140. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D11.md +0 -0
  141. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D12.md +0 -0
  142. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D13.md +0 -0
  143. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D14.md +0 -0
  144. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D15.md +0 -0
  145. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D16.md +0 -0
  146. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D17.md +0 -0
  147. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D18.md +0 -0
  148. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D19.md +0 -0
  149. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D20.md +0 -0
  150. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D21.md +0 -0
  151. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D22.md +0 -0
  152. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D23.md +0 -0
  153. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D24.md +0 -0
  154. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D25.md +0 -0
  155. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/BOOST-D26.md +0 -0
  156. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  157. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  158. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  159. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  160. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  161. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  162. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  163. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  164. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  165. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  166. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  167. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  168. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  169. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  170. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  171. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  172. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  173. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/command-carousel-page.md +0 -0
  174. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  175. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  176. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  177. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  178. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  179. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  180. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  181. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  182. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  183. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  184. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  185. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  186. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  187. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  188. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  189. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  190. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  191. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  192. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  193. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  194. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  195. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  196. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  197. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  198. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  199. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/github-community-health-files.md +0 -0
  200. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  201. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  202. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  203. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  204. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  205. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  206. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  207. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  208. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  209. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  210. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  211. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  212. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  213. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  214. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  215. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  216. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  217. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  218. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  219. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  220. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  221. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  222. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  223. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  224. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  225. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  226. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  227. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  228. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  229. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  230. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  231. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  232. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  233. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  234. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  235. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  236. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  237. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  238. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  239. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  240. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  241. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  242. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  243. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  244. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  245. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  246. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  247. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  248. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  249. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  250. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  251. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  252. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  253. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  254. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  255. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  256. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  257. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  258. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  259. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  260. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  261. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  262. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  263. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  264. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  265. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  266. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  267. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  268. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  269. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  270. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  271. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  272. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  273. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  274. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  275. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  276. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  277. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  278. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  279. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  280. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  281. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  282. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  283. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  284. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  285. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  286. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  287. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  288. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  289. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  290. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  291. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  292. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  293. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  294. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  295. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  296. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  297. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  298. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  299. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  300. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  301. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  302. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  303. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  304. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  305. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  306. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  307. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  308. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  309. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  310. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  311. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  312. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  313. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  314. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  315. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  316. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  317. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/docs/roadmap/items/workspace-scope-install.md +0 -0
  318. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/eslint.config.mjs +0 -0
  319. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/examples/README.md +0 -0
  320. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/examples/adapt-demo.sh +0 -0
  321. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/examples/boost-run-prototype.sh +0 -0
  322. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/index.html +0 -0
  323. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/noxfile.py +0 -0
  324. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/pyproject.toml +0 -0
  325. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/coverage-tools.in +0 -0
  326. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/coverage-tools.txt +0 -0
  327. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/lint-tools.in +0 -0
  328. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/lint-tools.txt +0 -0
  329. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/mutation-tools.in +0 -0
  330. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/mutation-tools.txt +0 -0
  331. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/release-tools.in +0 -0
  332. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/release-tools.txt +0 -0
  333. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/test-tools.in +0 -0
  334. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/requirements/test-tools.txt +0 -0
  335. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/a11y_check.py +0 -0
  336. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/bench_cli.sh +0 -0
  337. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/build_command_reference.py +0 -0
  338. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/build_registries.py +0 -0
  339. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/build_roadmap.py +0 -0
  340. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/check_anchors.py +0 -0
  341. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/check_licenses.py +0 -0
  342. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/check_required_checks.py +0 -0
  343. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/ensure_eval_corpus.sh +0 -0
  344. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/eval_explain.py +0 -0
  345. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/eval_recommend.py +0 -0
  346. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/eval_retrieval.py +0 -0
  347. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/eval_stats_summary.py +0 -0
  348. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/import_budget.py +0 -0
  349. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/lock_toolchain.py +0 -0
  350. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/mutation_gate.py +0 -0
  351. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/mutation_shards.py +0 -0
  352. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/mutation_weights.json +0 -0
  353. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/perf_gate.py +0 -0
  354. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/post_deploy_smoke.py +0 -0
  355. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/scripts/release_preflight.py +0 -0
  356. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/setup.cfg +0 -0
  357. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/sonar-project.properties +0 -0
  358. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/style/README.md +0 -0
  359. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/style/boost.css +0 -0
  360. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/style/boost.js +0 -0
  361. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/style/demo.html +0 -0
  362. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/adapt.feature +0 -0
  363. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/browse.feature +0 -0
  364. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/count.feature +0 -0
  365. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/discover.feature +0 -0
  366. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/doctor.feature +0 -0
  367. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/environment.py +0 -0
  368. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/explain.feature +0 -0
  369. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/index.feature +0 -0
  370. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/install.feature +0 -0
  371. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/list.feature +0 -0
  372. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/mcp.feature +0 -0
  373. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/search.feature +0 -0
  374. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/steps/cli_steps.py +0 -0
  375. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/steps/discovery_steps.py +0 -0
  376. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/steps/mcp_steps.py +0 -0
  377. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/bdd/features/steps/quality_steps.py +0 -0
  378. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/conftest.py +0 -0
  379. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/eval/baseline.json +0 -0
  380. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/eval/explain.jsonl +0 -0
  381. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/eval/golden.jsonl +0 -0
  382. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/eval/recommend.jsonl +0 -0
  383. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/eval/taps.txt +0 -0
  384. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_capabilities_policy.py +0 -0
  385. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_adapt.py +0 -0
  386. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_bmad.py +0 -0
  387. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_configuration.py +0 -0
  388. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_discovery.py +0 -0
  389. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_hooks.py +0 -0
  390. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_info.py +0 -0
  391. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_intelligence.py +0 -0
  392. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_pkg.py +0 -0
  393. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_quality.py +0 -0
  394. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_taps.py +0 -0
  395. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_cli_team.py +0 -0
  396. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_everyday_loop.py +0 -0
  397. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_integrity_enforce.py +0 -0
  398. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_property_parsers.py +0 -0
  399. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_run.py +0 -0
  400. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_tap_signing.py +0 -0
  401. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/functional/test_workspace_scope.py +0 -0
  402. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/README.md +0 -0
  403. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  404. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  405. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  406. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  407. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  408. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  409. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  410. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  411. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  412. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  413. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  414. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  415. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  416. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  417. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  418. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  419. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  420. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  421. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  422. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  423. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/fuzz_frontmatter.py +0 -0
  424. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/fuzz/fuzz_registry.py +0 -0
  425. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/make_fixture.py +0 -0
  426. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/perf/test_benchmarks.py +0 -0
  427. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/smoke.sh +0 -0
  428. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_a11y_check.py +0 -0
  429. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_adapters.py +0 -0
  430. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_adapters_multi.py +0 -0
  431. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_adapters_runner.py +0 -0
  432. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_agents.py +0 -0
  433. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_ai.py +0 -0
  434. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_capabilities.py +0 -0
  435. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_catalog.py +0 -0
  436. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_check_anchors.py +0 -0
  437. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_check_licenses.py +0 -0
  438. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_claude_settings.py +0 -0
  439. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_cliparse.py +0 -0
  440. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_command_reference_fresh.py +0 -0
  441. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_community_health_files.py +0 -0
  442. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_config.py +0 -0
  443. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_dense.py +0 -0
  444. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_dense_fallback.py +0 -0
  445. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_dependabot_config.py +0 -0
  446. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_docs_pages_linked.py +0 -0
  447. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_docsite_chrome.py +0 -0
  448. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_ed25519.py +0 -0
  449. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_embed.py +0 -0
  450. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_errors_and_cli_table.py +0 -0
  451. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_eval_stats_summary.py +0 -0
  452. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_faithfulness.py +0 -0
  453. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_frontmatter.py +0 -0
  454. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_fuzz_targets.py +0 -0
  455. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_gitleaks_config.py +0 -0
  456. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_gitutil.py +0 -0
  457. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_imperative.py +0 -0
  458. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_import_budget.py +0 -0
  459. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_injectscan.py +0 -0
  460. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_integrity.py +0 -0
  461. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_journal.py +0 -0
  462. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_lockfile.py +0 -0
  463. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_logs.py +0 -0
  464. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_marketing_counts.py +0 -0
  465. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_mcp.py +0 -0
  466. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_mcpdecl.py +0 -0
  467. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_minisign.py +0 -0
  468. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_mutation_hardening.py +0 -0
  469. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_mutation_shards.py +0 -0
  470. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_mutmut_source_paths.py +0 -0
  471. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_nethttp.py +0 -0
  472. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_output.py +0 -0
  473. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_paths.py +0 -0
  474. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_perf_gate.py +0 -0
  475. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_pkg_confusions.py +0 -0
  476. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_pkg_injection.py +0 -0
  477. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_pkg_secrets.py +0 -0
  478. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_policy.py +0 -0
  479. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_post_deploy_smoke.py +0 -0
  480. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_projectlock.py +0 -0
  481. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_provenance.py +0 -0
  482. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_rag.py +0 -0
  483. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_registries_fresh.py +0 -0
  484. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_registry.py +0 -0
  485. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_release_preflight.py +0 -0
  486. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_required_checks.py +0 -0
  487. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_resolve.py +0 -0
  488. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_roadmap_fresh.py +0 -0
  489. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_rules.py +0 -0
  490. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_scopes.py +0 -0
  491. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_secretscan.py +0 -0
  492. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_selfupdate.py +0 -0
  493. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_serve.py +0 -0
  494. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_spin.py +0 -0
  495. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_stackprobe.py +0 -0
  496. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_staleness.py +0 -0
  497. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_store.py +0 -0
  498. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_token_parity.py +0 -0
  499. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_toolchain_lock.py +0 -0
  500. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_trustaudit.py +0 -0
  501. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_typosquat.py +0 -0
  502. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_updatediff.py +0 -0
  503. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_util.py +0 -0
  504. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_version.py +0 -0
  505. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_workflow_timeouts.py +0 -0
  506. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/unit/test_workflows.py +0 -0
  507. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/visual/a11y_check.mjs +0 -0
  508. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/visual/console_check.mjs +0 -0
  509. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/tests/visual/package.json +0 -0
  510. {boost_skill_cli-1.0.270 → boost_skill_cli-1.0.272}/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.270
3
+ Version: 1.0.272
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.270'
22
- __version_tuple__ = version_tuple = (1, 0, 270)
21
+ __version__ = version = '1.0.272'
22
+ __version_tuple__ = version_tuple = (1, 0, 272)
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.270
3
+ Version: 1.0.272
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -170,7 +170,9 @@ docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md
170
170
  docs/roadmap/items/capability-manifest-and-least-privilege-policy.md
171
171
  docs/roadmap/items/ci-job-timeout-minutes.md
172
172
  docs/roadmap/items/ci-summary-step-fails-itself.md
173
+ docs/roadmap/items/ci-time-is-now-runner-queueing.md
173
174
  docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md
175
+ docs/roadmap/items/code-scanning-rule-can-be-restored.md
174
176
  docs/roadmap/items/command-carousel-page.md
175
177
  docs/roadmap/items/command-reference-docs-site.md
176
178
  docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md
@@ -238,6 +240,7 @@ docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md
238
240
  docs/roadmap/items/mutation-hardening-core-frontmatter-py.md
239
241
  docs/roadmap/items/mutation-hardening-core-gitutil-py.md
240
242
  docs/roadmap/items/mutation-hardening-core-store-py.md
243
+ docs/roadmap/items/mutation-shard-floor-is-one-file.md
241
244
  docs/roadmap/items/mypy-strict-mode-for-commands.md
242
245
  docs/roadmap/items/negative-limit-inverts-log-pulse-output.md
243
246
  docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md
@@ -316,6 +319,7 @@ docs/roadmap/items/workflow-install-native-materialization.md
316
319
  docs/roadmap/items/workflow-linting-actionlint.md
317
320
  docs/roadmap/items/workflow-sast-zizmor.md
318
321
  docs/roadmap/items/workspace-scope-install.md
322
+ docs/roadmap/items/zizmor-pin-is-a-yanked-release.md
319
323
  examples/README.md
320
324
  examples/adapt-demo.sh
321
325
  examples/boost-run-prototype.sh
@@ -0,0 +1,40 @@
1
+ ---
2
+ id: ci-time-is-now-runner-queueing
3
+ board: code
4
+ section: pipeline
5
+ status: planned
6
+ category: CI speed
7
+ complexity: M
8
+ impact: High
9
+ wow: 4
10
+ note: 104 job-min queued vs 236 executing — 31% of CI is waiting for a runner
11
+ order: 62
12
+ owner:
13
+ pr:
14
+ title: A third of CI job time is spent waiting for a runner, not running
15
+ ---
16
+ With the mutation gate no longer dominating, the largest remaining term in CI wall clock is
17
+ <b>queueing</b>. Measured over six consecutive successful <code>ci</code> runs: <b>104
18
+ job-minutes queued</b> against <b>236 job-minutes executing</b> &mdash; <b>31%</b> of all job
19
+ time spent waiting for a runner.
20
+
21
+ <b>The obvious metric lies.</b> A run's <code>run_started_at</code> minus
22
+ <code>created_at</code> is <b>0.0 for every run</b>, which reads as "no queueing anywhere".
23
+ Queueing happens per <em>job</em>, not per run, so it is only visible as
24
+ <code>job.started_at - job.created_at</code>. Anything measuring this at run level will
25
+ conclude, wrongly, that there is nothing to fix.
26
+
27
+ The per-run spread shows what drives it &mdash; median job queue by run:
28
+ <code>c36c53a7</code> 0.1&nbsp;min, <code>c15ed9da</code> 0.1, <code>903b704f</code> 0.2,
29
+ <code>638bffeb</code> 0.7, <code>ad71ba99</code> <b>2.5</b>, <code>9e190537</code> <b>2.9</b>.
30
+ That is a 29&times; swing driven not by the change under test but by how many sibling
31
+ <code>loop/*</code> branches and Dependabot PRs happen to be live at the same moment. It is why
32
+ one merge took <b>41 minutes</b> wall clock with a max shard of only 11.4.
33
+
34
+ Sharding the mutation gate made this worse on purpose: it traded one runner slot for six. That
35
+ is the right trade for latency in isolation, and the wrong one to keep making blindly while a
36
+ dozen branches are in flight, because every concurrent PR now multiplies its footprint. Options,
37
+ roughly in increasing order of intrusiveness: a <code>concurrency</code> group that cancels
38
+ superseded PR runs; capping the shard matrix with <code>max-parallel</code>; or making the shard
39
+ count adaptive. Worth measuring before choosing &mdash; this item is the measurement, not the
40
+ fix.
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: code-scanning-rule-can-be-restored
3
+ board: code
4
+ section: trust
5
+ status: planned
6
+ category: Release safety
7
+ complexity: S
8
+ impact: Med
9
+ wow: 4
10
+ note: safe scoped to CodeQL (0 open) — adding Scorecard deadlocks every merge
11
+ order: 54
12
+ owner:
13
+ pr:
14
+ title: The <code>code_scanning</code> ruleset rule can go back on &mdash; but only scoped to CodeQL
15
+ ---
16
+ Repairing the <code>main</code> ruleset dropped its <code>code_scanning</code> rule in favour of
17
+ <code>codeql-analyze</code> as a required status check (see
18
+ <code>main-ruleset-ref-pattern-has-literal-quotes</code>). That was the safe call at the time, and
19
+ it left an open question: can the rule come back? <b>Yes &mdash; and the thing that would break it
20
+ is not what it looks like.</b>
21
+
22
+ <b>Nothing is blocking it.</b> Verified without touching the live ruleset: POST a throwaway
23
+ ruleset with <code>enforcement: disabled</code> and a ref pattern matching no branch, carrying
24
+ <code>code_scanning</code> for tool <code>CodeQL</code> &rarr; <b>HTTP 201</b>, rule stored intact.
25
+ Delete it, then diff the live ruleset against a backup taken beforehand &rarr; no drift. That
26
+ disabled-and-non-matching probe is the general way to test a ruleset change without risking
27
+ anyone's in-flight pull request.
28
+
29
+ <b>The stale analyses are a red herring.</b> 693 analyses still carry the old
30
+ <code>codeql.yml:analyze</code> category against 122 on the current <code>codeql-analyze</code>,
31
+ which looks like it should matter and does not: the rule keys on <b>tool name</b>, not category.
32
+ Deleting them is irreversible, destroys alert history, and fixes nothing. Don't.
33
+
34
+ <b>The actual hazard is the tool list.</b> Three tools file into the same code-scanning inbox.
35
+ CodeQL has <b>0 open</b> alerts (9 dismissed, 17 fixed). Scorecard has <b>7 open, every one
36
+ <code>severity=error</code></b> &mdash; and they are posture metrics that must not be dismissed,
37
+ so they will stay open. Enabling the rule with Scorecard in its tool list therefore blocks
38
+ <em>every merge in the repository, immediately</em>. The GitHub UI offers every tool that has
39
+ reported analyses, so Scorecard sits right next to CodeQL in the picker. That is almost certainly
40
+ why this has been assumed to be blocked.
41
+
42
+ Scoped to CodeQL alone it is safe and adds real protection: <code>codeql.yml</code> carries no
43
+ path filters and runs on <code>push</code>, <code>pull_request</code> and
44
+ <code>merge_group</code>, so it always reports and cannot produce the never-reports deadlock this
45
+ repo has hit twice. And it catches something the status check does not &mdash;
46
+ <code>codeql-analyze</code> passes when the <em>job</em> succeeds, including when it succeeds
47
+ having found error-severity alerts.
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: mutation-shard-floor-is-one-file
3
+ board: code
4
+ section: pipeline
5
+ status: planned
6
+ category: CI speed
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: shard 0 is store.py alone — 9.3-11.7 min against a 6.1 even split
11
+ order: 61
12
+ owner:
13
+ pr:
14
+ title: The mutation gate's floor is a single file &mdash; shard 0 <em>is</em> <code>store.py</code>
15
+ ---
16
+ Sharding took the mutation gate from ~28 minutes to ~12 (see
17
+ <code>mutation-gate-was-the-whole-critical-path</code>), but it cannot go lower without
18
+ splitting one file. Measured across four consecutive six-shard runs:
19
+
20
+ <code>638bffeb</code> ran 1.9, 3.9, 5.7, 6.7, 7.2, <b>11.7</b>&nbsp;minutes;
21
+ <code>02c18bd6</code> ran 2.7, 5.0, 5.2, 5.5, 5.9, <b>11.7</b>; <code>fc427839</code> ran 3.1,
22
+ 4.8, 5.3, 6.4, 7.3, <b>9.7</b>; and <code>f42e617b</code> ran 2.9, 4.9, 5.5, 6.6, 7.3,
23
+ <b>9.3</b>.
24
+ <b><code>mutation-shard (0)</code> was the slowest leg in all four.</b> Total work is
25
+ 36&ndash;37 job-minutes, so a perfectly even split would be <b>6.1</b>; the actual critical
26
+ path is 9.3&ndash;11.7, or <b>1.5&ndash;1.9&times;</b> that. The gap is not bad packing &mdash;
27
+ the planner balances mutant <em>count</em> to within 1.10&times; of ideal. It is that count is
28
+ a poor proxy for time: measured throughput spans <b>3.39 to 14.19 mutants/second</b>, because a
29
+ <code>store.py</code> mutant re-runs a far larger covering test set than an
30
+ <code>ed25519.py</code> one, and survivors run their tests to completion where kills exit early.
31
+
32
+ Re-weighting the planner by seconds would even out the <em>billed</em> minutes but not the wall
33
+ clock, because <code>store.py</code> is <b>1931 mutants (18.4% of the repo)</b> in one file and
34
+ longest-processing-time packing cannot place a single file across two bins. The floor is that
35
+ file.
36
+
37
+ The way under it: mutant names are addressable per function, so
38
+ <code>boost_cli.core.store.install_*</code> can be its own shard. That would bring the critical
39
+ path toward the 6.1-minute even split. Two things must survive the change &mdash;
40
+ <code>pattern_for()</code> still has to emit patterns that match nothing else, and
41
+ <code>cmd_merge</code>'s completeness assertion has to keep failing closed, since mutmut counts
42
+ an unrun mutant inside <code>total</code> and a partial merge would silently depress the score
43
+ rather than error.
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: zizmor-pin-is-a-yanked-release
3
+ board: code
4
+ section: pipeline
5
+ status: planned
6
+ category: Security · CI/CD
7
+ complexity: S
8
+ impact: Med
9
+ wow: 4
10
+ note: the only yanked release of 66 — and the required lint job pins exactly it
11
+ order: 63
12
+ owner:
13
+ pr:
14
+ title: The required <code>lint</code> job pins <code>zizmor==1.27.0</code> &mdash; a yanked release
15
+ ---
16
+ <code>ci.yml</code> runs the workflow SAST step as
17
+ <code>pipx run zizmor==1.27.0 .github/workflows</code>. PyPI marks <b>1.27.0 as yanked</b>, with
18
+ <code>yanked_reason: GHSA-f42p-wjw5-97qh</code>. It is the <b>only yanked release out of 66</b>,
19
+ and <b>1.28.0</b> is the successor.
20
+
21
+ Exact-pinning the security scanner is correct &mdash; an unpinned linter is how
22
+ <code>ruff-defaults-broke-boost-lint</code> happened. Pinning to a version its maintainer has
23
+ <em>withdrawn for a security advisory</em> is the failure mode on the other side, and it is
24
+ quieter: a yank does not stop an exact pin from resolving. <code>pip</code> installs
25
+ <code>1.27.0</code> and emits a warning nobody reads in CI logs, so the required <code>lint</code>
26
+ gate goes on passing while running a withdrawn build of the tool that audits the workflows
27
+ driving a Trusted-Publisher release.
28
+
29
+ Two things worth doing together. Bump to <code>1.28.0</code> and confirm the four documented
30
+ <code>dangerous-triggers</code> exemptions in <code>.github/zizmor.yml</code> still suppress
31
+ cleanly &mdash; the line-anchored ignore entries (<code>publish.yml:19</code>,
32
+ <code>sbom.yml:29</code>, &hellip;) are exactly the kind of thing a version bump can invalidate.
33
+ And sweep the other exact pins for yanks: nothing currently checks for this. <code>pip-audit</code>
34
+ catches CVEs in the resolved dependency closure, but a yanked <em>pinned tool</em> is neither a
35
+ CVE in the closure nor a manifest diff, so <code>osv-scanner</code> does not see it either. This
36
+ was found by accident, while installing zizmor locally to verify an unrelated change.
@@ -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>162</b><span>Loop finds</span></div>
113
+ <div class="stat"><b>166</b><span>Loop finds</span></div>
114
114
  <!-- /ROADMAP:stats -->
115
115
  </div>
116
116
  </section>
@@ -2326,6 +2326,113 @@ toward the 5.1-minute even split of the 30.8 minutes of total work.</p>
2326
2326
  <span class="m">28 min of CI became 12; the new floor is one file, store.py</span>
2327
2327
  </div>
2328
2328
  </article>
2329
+
2330
+ <article class="cap rcard" id="mutation-shard-floor-is-one-file">
2331
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">CI speed</span></div>
2332
+ <h3>The mutation gate's floor is a single file &mdash; shard 0 <em>is</em> <code>store.py</code></h3>
2333
+ <p>Sharding took the mutation gate from ~28 minutes to ~12 (see
2334
+ <code>mutation-gate-was-the-whole-critical-path</code>), but it cannot go lower without
2335
+ splitting one file. Measured across four consecutive six-shard runs:
2336
+
2337
+ <code>638bffeb</code> ran 1.9, 3.9, 5.7, 6.7, 7.2, <b>11.7</b>&nbsp;minutes;
2338
+ <code>02c18bd6</code> ran 2.7, 5.0, 5.2, 5.5, 5.9, <b>11.7</b>; <code>fc427839</code> ran 3.1,
2339
+ 4.8, 5.3, 6.4, 7.3, <b>9.7</b>; and <code>f42e617b</code> ran 2.9, 4.9, 5.5, 6.6, 7.3,
2340
+ <b>9.3</b>.
2341
+ <b><code>mutation-shard (0)</code> was the slowest leg in all four.</b> Total work is
2342
+ 36&ndash;37 job-minutes, so a perfectly even split would be <b>6.1</b>; the actual critical
2343
+ path is 9.3&ndash;11.7, or <b>1.5&ndash;1.9&times;</b> that. The gap is not bad packing &mdash;
2344
+ the planner balances mutant <em>count</em> to within 1.10&times; of ideal. It is that count is
2345
+ a poor proxy for time: measured throughput spans <b>3.39 to 14.19 mutants/second</b>, because a
2346
+ <code>store.py</code> mutant re-runs a far larger covering test set than an
2347
+ <code>ed25519.py</code> one, and survivors run their tests to completion where kills exit early.
2348
+
2349
+ Re-weighting the planner by seconds would even out the <em>billed</em> minutes but not the wall
2350
+ clock, because <code>store.py</code> is <b>1931 mutants (18.4% of the repo)</b> in one file and
2351
+ longest-processing-time packing cannot place a single file across two bins. The floor is that
2352
+ file.
2353
+
2354
+ The way under it: mutant names are addressable per function, so
2355
+ <code>boost_cli.core.store.install_*</code> can be its own shard. That would bring the critical
2356
+ path toward the 6.1-minute even split. Two things must survive the change &mdash;
2357
+ <code>pattern_for()</code> still has to emit patterns that match nothing else, and
2358
+ <code>cmd_merge</code>'s completeness assertion has to keep failing closed, since mutmut counts
2359
+ an unrun mutant inside <code>total</code> and a partial merge would silently depress the score
2360
+ rather than error.</p>
2361
+ <div class="meta">
2362
+ <span class="m">Complexity <b>M</b></span>
2363
+ <span class="m">Impact <b>Med</b></span>
2364
+ <span class="m">Wow <b class="wow">★★★</b></span>
2365
+ <span class="m">shard 0 is store.py alone — 9.3-11.7 min against a 6.1 even split</span>
2366
+ </div>
2367
+ </article>
2368
+
2369
+ <article class="cap rcard" id="ci-time-is-now-runner-queueing">
2370
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">CI speed</span></div>
2371
+ <h3>A third of CI job time is spent waiting for a runner, not running</h3>
2372
+ <p>With the mutation gate no longer dominating, the largest remaining term in CI wall clock is
2373
+ <b>queueing</b>. Measured over six consecutive successful <code>ci</code> runs: <b>104
2374
+ job-minutes queued</b> against <b>236 job-minutes executing</b> &mdash; <b>31%</b> of all job
2375
+ time spent waiting for a runner.
2376
+
2377
+ <b>The obvious metric lies.</b> A run's <code>run_started_at</code> minus
2378
+ <code>created_at</code> is <b>0.0 for every run</b>, which reads as "no queueing anywhere".
2379
+ Queueing happens per <em>job</em>, not per run, so it is only visible as
2380
+ <code>job.started_at - job.created_at</code>. Anything measuring this at run level will
2381
+ conclude, wrongly, that there is nothing to fix.
2382
+
2383
+ The per-run spread shows what drives it &mdash; median job queue by run:
2384
+ <code>c36c53a7</code> 0.1&nbsp;min, <code>c15ed9da</code> 0.1, <code>903b704f</code> 0.2,
2385
+ <code>638bffeb</code> 0.7, <code>ad71ba99</code> <b>2.5</b>, <code>9e190537</code> <b>2.9</b>.
2386
+ That is a 29&times; swing driven not by the change under test but by how many sibling
2387
+ <code>loop/*</code> branches and Dependabot PRs happen to be live at the same moment. It is why
2388
+ one merge took <b>41 minutes</b> wall clock with a max shard of only 11.4.
2389
+
2390
+ Sharding the mutation gate made this worse on purpose: it traded one runner slot for six. That
2391
+ is the right trade for latency in isolation, and the wrong one to keep making blindly while a
2392
+ dozen branches are in flight, because every concurrent PR now multiplies its footprint. Options,
2393
+ roughly in increasing order of intrusiveness: a <code>concurrency</code> group that cancels
2394
+ superseded PR runs; capping the shard matrix with <code>max-parallel</code>; or making the shard
2395
+ count adaptive. Worth measuring before choosing &mdash; this item is the measurement, not the
2396
+ fix.</p>
2397
+ <div class="meta">
2398
+ <span class="m">Complexity <b>M</b></span>
2399
+ <span class="m hi">Impact <b>High</b></span>
2400
+ <span class="m">Wow <b class="wow">★★★★</b></span>
2401
+ <span class="m">104 job-min queued vs 236 executing — 31% of CI is waiting for a runner</span>
2402
+ </div>
2403
+ </article>
2404
+
2405
+ <article class="cap rcard" id="zizmor-pin-is-a-yanked-release">
2406
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Security · CI/CD</span></div>
2407
+ <h3>The required <code>lint</code> job pins <code>zizmor==1.27.0</code> &mdash; a yanked release</h3>
2408
+ <p><code>ci.yml</code> runs the workflow SAST step as
2409
+ <code>pipx run zizmor==1.27.0 .github/workflows</code>. PyPI marks <b>1.27.0 as yanked</b>, with
2410
+ <code>yanked_reason: GHSA-f42p-wjw5-97qh</code>. It is the <b>only yanked release out of 66</b>,
2411
+ and <b>1.28.0</b> is the successor.
2412
+
2413
+ Exact-pinning the security scanner is correct &mdash; an unpinned linter is how
2414
+ <code>ruff-defaults-broke-boost-lint</code> happened. Pinning to a version its maintainer has
2415
+ <em>withdrawn for a security advisory</em> is the failure mode on the other side, and it is
2416
+ quieter: a yank does not stop an exact pin from resolving. <code>pip</code> installs
2417
+ <code>1.27.0</code> and emits a warning nobody reads in CI logs, so the required <code>lint</code>
2418
+ gate goes on passing while running a withdrawn build of the tool that audits the workflows
2419
+ driving a Trusted-Publisher release.
2420
+
2421
+ Two things worth doing together. Bump to <code>1.28.0</code> and confirm the four documented
2422
+ <code>dangerous-triggers</code> exemptions in <code>.github/zizmor.yml</code> still suppress
2423
+ cleanly &mdash; the line-anchored ignore entries (<code>publish.yml:19</code>,
2424
+ <code>sbom.yml:29</code>, &hellip;) are exactly the kind of thing a version bump can invalidate.
2425
+ And sweep the other exact pins for yanks: nothing currently checks for this. <code>pip-audit</code>
2426
+ catches CVEs in the resolved dependency closure, but a yanked <em>pinned tool</em> is neither a
2427
+ CVE in the closure nor a manifest diff, so <code>osv-scanner</code> does not see it either. This
2428
+ was found by accident, while installing zizmor locally to verify an unrelated change.</p>
2429
+ <div class="meta">
2430
+ <span class="m">Complexity <b>S</b></span>
2431
+ <span class="m">Impact <b>Med</b></span>
2432
+ <span class="m">Wow <b class="wow">★★★★</b></span>
2433
+ <span class="m">the only yanked release of 66 — and the required lint job pins exactly it</span>
2434
+ </div>
2435
+ </article>
2329
2436
  <!-- /ROADMAP:cards -->
2330
2437
 
2331
2438
  </div>
@@ -3726,6 +3833,49 @@ same-repo PRs and red CI.</p>
3726
3833
  <span class="m">a PR branch named main could cut a PyPI release</span>
3727
3834
  </div>
3728
3835
  </article>
3836
+
3837
+ <article class="cap rcard" id="code-scanning-rule-can-be-restored">
3838
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Release safety</span></div>
3839
+ <h3>The <code>code_scanning</code> ruleset rule can go back on &mdash; but only scoped to CodeQL</h3>
3840
+ <p>Repairing the <code>main</code> ruleset dropped its <code>code_scanning</code> rule in favour of
3841
+ <code>codeql-analyze</code> as a required status check (see
3842
+ <code>main-ruleset-ref-pattern-has-literal-quotes</code>). That was the safe call at the time, and
3843
+ it left an open question: can the rule come back? <b>Yes &mdash; and the thing that would break it
3844
+ is not what it looks like.</b>
3845
+
3846
+ <b>Nothing is blocking it.</b> Verified without touching the live ruleset: POST a throwaway
3847
+ ruleset with <code>enforcement: disabled</code> and a ref pattern matching no branch, carrying
3848
+ <code>code_scanning</code> for tool <code>CodeQL</code> &rarr; <b>HTTP 201</b>, rule stored intact.
3849
+ Delete it, then diff the live ruleset against a backup taken beforehand &rarr; no drift. That
3850
+ disabled-and-non-matching probe is the general way to test a ruleset change without risking
3851
+ anyone's in-flight pull request.
3852
+
3853
+ <b>The stale analyses are a red herring.</b> 693 analyses still carry the old
3854
+ <code>codeql.yml:analyze</code> category against 122 on the current <code>codeql-analyze</code>,
3855
+ which looks like it should matter and does not: the rule keys on <b>tool name</b>, not category.
3856
+ Deleting them is irreversible, destroys alert history, and fixes nothing. Don't.
3857
+
3858
+ <b>The actual hazard is the tool list.</b> Three tools file into the same code-scanning inbox.
3859
+ CodeQL has <b>0 open</b> alerts (9 dismissed, 17 fixed). Scorecard has <b>7 open, every one
3860
+ <code>severity=error</code></b> &mdash; and they are posture metrics that must not be dismissed,
3861
+ so they will stay open. Enabling the rule with Scorecard in its tool list therefore blocks
3862
+ <em>every merge in the repository, immediately</em>. The GitHub UI offers every tool that has
3863
+ reported analyses, so Scorecard sits right next to CodeQL in the picker. That is almost certainly
3864
+ why this has been assumed to be blocked.
3865
+
3866
+ Scoped to CodeQL alone it is safe and adds real protection: <code>codeql.yml</code> carries no
3867
+ path filters and runs on <code>push</code>, <code>pull_request</code> and
3868
+ <code>merge_group</code>, so it always reports and cannot produce the never-reports deadlock this
3869
+ repo has hit twice. And it catches something the status check does not &mdash;
3870
+ <code>codeql-analyze</code> passes when the <em>job</em> succeeds, including when it succeeds
3871
+ having found error-severity alerts.</p>
3872
+ <div class="meta">
3873
+ <span class="m">Complexity <b>S</b></span>
3874
+ <span class="m">Impact <b>Med</b></span>
3875
+ <span class="m">Wow <b class="wow">★★★★</b></span>
3876
+ <span class="m">safe scoped to CodeQL (0 open) — adding Scorecard deadlocks every merge</span>
3877
+ </div>
3878
+ </article>
3729
3879
  <!-- /ROADMAP:cards -->
3730
3880
 
3731
3881
  </div>