boost-skill-cli 1.2.26__tar.gz → 1.2.28__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 (759) hide show
  1. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/config/vocabularies/boost/accept.txt +38 -1
  2. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale.ini +7 -0
  3. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CONTRIBUTING.md +30 -0
  4. boost_skill_cli-1.2.28/DCO +34 -0
  5. boost_skill_cli-1.2.28/MAINTAINERS.md +102 -0
  6. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/PKG-INFO +2 -1
  7. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/README.md +1 -0
  8. boost_skill_cli-1.2.28/SECURITY.md +86 -0
  9. boost_skill_cli-1.2.28/SUPPORT.md +78 -0
  10. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/_version.py +2 -2
  11. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/quality.py +12 -1
  12. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/PKG-INFO +2 -1
  13. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/SOURCES.txt +12 -0
  14. boost_skill_cli-1.2.28/docs/commit-audit.md +129 -0
  15. boost_skill_cli-1.2.28/docs/dependencies.md +119 -0
  16. boost_skill_cli-1.2.28/docs/openssf-badge.md +263 -0
  17. boost_skill_cli-1.2.28/docs/roadmap/items/openssf-best-practices-badge.md +42 -0
  18. boost_skill_cli-1.2.28/docs/roadmap/items/osps-baseline-levels.md +53 -0
  19. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scorecard-findings-triage.md +5 -3
  20. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap.html +94 -4
  21. boost_skill_cli-1.2.28/docs/security-design.md +191 -0
  22. boost_skill_cli-1.2.28/docs/verifying-releases.md +101 -0
  23. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/pyproject.toml +3 -1
  24. boost_skill_cli-1.2.28/scripts/check_dco.py +112 -0
  25. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_tap_signing.py +18 -0
  26. boost_skill_cli-1.2.28/tests/unit/test_check_dco.py +179 -0
  27. boost_skill_cli-1.2.26/SECURITY.md +0 -22
  28. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitattributes +0 -0
  29. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitignore +0 -0
  30. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.gitleaks.toml +0 -0
  31. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.htmlvalidate.json +0 -0
  32. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.lighthouserc.json +0 -0
  33. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.lycheeignore +0 -0
  34. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.markdownlint-cli2.jsonc +0 -0
  35. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.pre-commit-config.yaml +0 -0
  36. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.stylelintrc.json +0 -0
  37. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/boost/AIWriting.yml +0 -0
  38. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/.vale/styles/boost/Terminology.yml +0 -0
  39. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CLAUDE.md +0 -0
  40. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/CODE_OF_CONDUCT.md +0 -0
  41. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/LICENSE +0 -0
  42. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/MANIFEST.in +0 -0
  43. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/Makefile +0 -0
  44. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost +0 -0
  45. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/__init__.py +0 -0
  46. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/__main__.py +0 -0
  47. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/cli.py +0 -0
  48. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/cliparse.py +0 -0
  49. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/__init__.py +0 -0
  50. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/_common.py +0 -0
  51. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/bmad.py +0 -0
  52. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/configuration.py +0 -0
  53. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/discovery.py +0 -0
  54. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/hooks.py +0 -0
  55. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/info.py +0 -0
  56. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/intelligence.py +0 -0
  57. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/pkg.py +0 -0
  58. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/run.py +0 -0
  59. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/safety.py +0 -0
  60. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/taps.py +0 -0
  61. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/commands/team.py +0 -0
  62. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/__init__.py +0 -0
  63. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/adapters.py +0 -0
  64. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/agents.py +0 -0
  65. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/ai.py +0 -0
  66. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/bmad.py +0 -0
  67. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/bootstrap.py +0 -0
  68. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/browse.py +0 -0
  69. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/builtin.py +0 -0
  70. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/capabilities.py +0 -0
  71. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/catalog.py +0 -0
  72. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/catalogbundle.py +0 -0
  73. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/chat.py +0 -0
  74. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/claude_settings.py +0 -0
  75. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/complete.py +0 -0
  76. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/config.py +0 -0
  77. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/dense.py +0 -0
  78. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/ed25519.py +0 -0
  79. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/embed.py +0 -0
  80. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/faithfulness.py +0 -0
  81. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/frontmatter.py +0 -0
  82. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/gitutil.py +0 -0
  83. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/imperative.py +0 -0
  84. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/injectscan.py +0 -0
  85. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/installscan.py +0 -0
  86. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/integrity.py +0 -0
  87. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/journal.py +0 -0
  88. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/localembed.py +0 -0
  89. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/lockfile.py +0 -0
  90. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/logs.py +0 -0
  91. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcp.py +0 -0
  92. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcpdecl.py +0 -0
  93. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/mcphost.py +0 -0
  94. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/minisign.py +0 -0
  95. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/nethttp.py +0 -0
  96. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/output.py +0 -0
  97. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/paths.py +0 -0
  98. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/policy.py +0 -0
  99. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/projectlock.py +0 -0
  100. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/provenance.py +0 -0
  101. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/rag.py +0 -0
  102. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/registry.py +0 -0
  103. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/resolve.py +0 -0
  104. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/rules.py +0 -0
  105. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/scopes.py +0 -0
  106. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/secretscan.py +0 -0
  107. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/selfupdate.py +0 -0
  108. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/serve.py +0 -0
  109. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/stackprobe.py +0 -0
  110. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/staleness.py +0 -0
  111. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/store.py +0 -0
  112. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/trustaudit.py +0 -0
  113. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/typosquat.py +0 -0
  114. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/updatediff.py +0 -0
  115. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/util.py +0 -0
  116. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/core/workflows.py +0 -0
  117. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/data/registries.json +0 -0
  118. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/data/rules/boost-first.mdc +0 -0
  119. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/errors.py +0 -0
  120. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_cli/spin.py +0 -0
  121. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/__init__.py +0 -0
  122. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/_compat.py +0 -0
  123. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/graph.py +0 -0
  124. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/loader.py +0 -0
  125. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/py.typed +0 -0
  126. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_langchain/retriever.py +0 -0
  127. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  128. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  129. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/requires.txt +0 -0
  130. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/boost_skill_cli.egg-info/top_level.txt +0 -0
  131. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/codecov.yml +0 -0
  132. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/.claude/settings.local.json +0 -0
  133. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/DEBUGGING.md +0 -0
  134. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/adapters.html +0 -0
  135. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/README.md +0 -0
  136. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-components-core.md +0 -0
  137. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-containers.md +0 -0
  138. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-context.md +0 -0
  139. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/architecture/c4-dynamic-install.md +0 -0
  140. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/distill.gif +0 -0
  141. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/doctor.gif +0 -0
  142. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/explain.gif +0 -0
  143. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/hooks.gif +0 -0
  144. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/install.gif +0 -0
  145. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/pulse.gif +0 -0
  146. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/search.gif +0 -0
  147. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/gifs/tap.gif +0 -0
  148. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/distill.tape +0 -0
  149. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/doctor.tape +0 -0
  150. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/explain.tape +0 -0
  151. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/hooks.tape +0 -0
  152. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/install.tape +0 -0
  153. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/pulse.tape +0 -0
  154. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/search.tape +0 -0
  155. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel/tapes/tap.tape +0 -0
  156. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/carousel.html +0 -0
  157. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/chat.html +0 -0
  158. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/commands.html +0 -0
  159. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo-index.json +0 -0
  160. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.gif +0 -0
  161. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.html +0 -0
  162. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/demo.tape +0 -0
  163. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/design-roadmap.html +0 -0
  164. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/eval-latest.json +0 -0
  165. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/eval.html +0 -0
  166. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/index.html +0 -0
  167. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/langchain.html +0 -0
  168. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/mcp-hub.html +0 -0
  169. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/rag-architecture.md +0 -0
  170. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D01.md +0 -0
  171. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D02.md +0 -0
  172. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D03.md +0 -0
  173. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D04.md +0 -0
  174. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D05.md +0 -0
  175. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D06.md +0 -0
  176. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D07.md +0 -0
  177. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D08.md +0 -0
  178. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D09.md +0 -0
  179. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D10.md +0 -0
  180. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D11.md +0 -0
  181. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D12.md +0 -0
  182. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D13.md +0 -0
  183. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D14.md +0 -0
  184. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D15.md +0 -0
  185. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D16.md +0 -0
  186. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D17.md +0 -0
  187. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D18.md +0 -0
  188. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D19.md +0 -0
  189. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D20.md +0 -0
  190. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D21.md +0 -0
  191. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D22.md +0 -0
  192. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D23.md +0 -0
  193. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D24.md +0 -0
  194. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D25.md +0 -0
  195. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/BOOST-D26.md +0 -0
  196. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  197. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  198. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  199. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  200. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  201. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  202. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  203. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  204. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  205. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  206. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  207. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  208. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  209. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  210. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-first-rule.md +0 -0
  211. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  212. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  213. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  214. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  215. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  216. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  217. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  218. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  219. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  220. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  221. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  222. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  223. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  224. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  225. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  226. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  227. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  228. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  229. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  230. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  231. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/command-carousel-page.md +0 -0
  232. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  233. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  234. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  235. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  236. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  237. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  238. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  239. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  240. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  241. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  242. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  243. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  244. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  245. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  246. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  247. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  248. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  249. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  250. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  251. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  252. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  253. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  254. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  255. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  256. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  257. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  258. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  259. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  260. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  261. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  262. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  263. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  264. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  265. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  266. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  267. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  268. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  269. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  270. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  271. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  272. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  273. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  274. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  275. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  276. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  277. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  278. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  279. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/github-community-health-files.md +0 -0
  280. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  281. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  282. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  283. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  284. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  285. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  286. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  287. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  288. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  289. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  290. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  291. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  292. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  293. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  294. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  295. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  296. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  297. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  298. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  299. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  300. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  301. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  302. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  303. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  304. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  305. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  306. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  307. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  308. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  309. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  310. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  311. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  312. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  313. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  314. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  315. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  316. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  317. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  318. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  319. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  320. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  321. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  322. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  323. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  324. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  325. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  326. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  327. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  328. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  329. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  330. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  331. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  332. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  333. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  334. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  335. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  336. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  337. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  338. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  339. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  340. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  341. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  342. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  343. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  344. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  345. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  346. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  347. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  348. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  349. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  350. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  351. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  352. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  353. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  354. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  355. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  356. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  357. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  358. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  359. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  360. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  361. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  362. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  363. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  364. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  365. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  366. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  367. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  368. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  369. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  370. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  371. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  372. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  373. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  374. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  375. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  376. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  377. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  378. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  379. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  380. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  381. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  382. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  383. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  384. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  385. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  386. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  387. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  388. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  389. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  390. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  391. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  392. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  393. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  394. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  395. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  396. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  397. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  398. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  399. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  400. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  401. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  402. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  403. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  404. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  405. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  406. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  407. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  408. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  409. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  410. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  411. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  412. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  413. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  414. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  415. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  416. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  417. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  418. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  419. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  420. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  421. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  422. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  423. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  424. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  425. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  426. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  427. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  428. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  429. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  430. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  431. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  432. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  433. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  434. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  435. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  436. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  437. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  438. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  439. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  440. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  441. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  442. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  443. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  444. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  445. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  446. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  447. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  448. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  449. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  450. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  451. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  452. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  453. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  454. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  455. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  456. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  457. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  458. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/workspace-scope-install.md +0 -0
  459. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zip-strict-audit.md +0 -0
  460. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  461. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  462. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  463. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/eslint.config.mjs +0 -0
  464. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/README.md +0 -0
  465. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/__init__.py +0 -0
  466. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/baseline.json +0 -0
  467. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/faithfulness.py +0 -0
  468. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/golden_set.json +0 -0
  469. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/make_corpus.py +0 -0
  470. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/make_golden.py +0 -0
  471. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/metrics.py +0 -0
  472. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/publish_golden_dataset.py +0 -0
  473. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/evals/run_evals.py +0 -0
  474. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/README.md +0 -0
  475. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/adapt-demo.sh +0 -0
  476. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/examples/boost-run-prototype.sh +0 -0
  477. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/index.html +0 -0
  478. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/noxfile.py +0 -0
  479. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/coverage-tools.in +0 -0
  480. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/coverage-tools.txt +0 -0
  481. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/lint-tools.in +0 -0
  482. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/lint-tools.txt +0 -0
  483. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/mutation-tools.in +0 -0
  484. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/mutation-tools.txt +0 -0
  485. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/platform-pins.lock +0 -0
  486. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/release-tools.in +0 -0
  487. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/release-tools.txt +0 -0
  488. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/test-tools.in +0 -0
  489. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/requirements/test-tools.txt +0 -0
  490. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/a11y_check.py +0 -0
  491. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/bench_cli.sh +0 -0
  492. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_command_reference.py +0 -0
  493. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_demo_index.py +0 -0
  494. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_registries.py +0 -0
  495. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_roadmap.py +0 -0
  496. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/build_scale_corpus.py +0 -0
  497. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_anchors.py +0 -0
  498. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_licenses.py +0 -0
  499. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/check_required_checks.py +0 -0
  500. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/ensure_eval_corpus.sh +0 -0
  501. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_corpus.py +0 -0
  502. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_explain.py +0 -0
  503. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_gate.py +0 -0
  504. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_recommend.py +0 -0
  505. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_retrieval.py +0 -0
  506. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/eval_stats_summary.py +0 -0
  507. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/import_budget.py +0 -0
  508. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/lock_toolchain.py +0 -0
  509. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/measure_registry.py +0 -0
  510. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_gate.py +0 -0
  511. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_shards.py +0 -0
  512. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/mutation_weights.json +0 -0
  513. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/page_budget.py +0 -0
  514. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/perf_gate.py +0 -0
  515. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/post_deploy_smoke.py +0 -0
  516. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/publish_eval_json.py +0 -0
  517. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/release_guard.py +0 -0
  518. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/release_preflight.py +0 -0
  519. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/scripts/serve_docs.py +0 -0
  520. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/setup.cfg +0 -0
  521. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/sonar-project.properties +0 -0
  522. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/README.md +0 -0
  523. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/boost.css +0 -0
  524. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/boost.js +0 -0
  525. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/style/demo.html +0 -0
  526. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/adapt.feature +0 -0
  527. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/browse.feature +0 -0
  528. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/count.feature +0 -0
  529. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/discover.feature +0 -0
  530. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/doctor.feature +0 -0
  531. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/environment.py +0 -0
  532. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/explain.feature +0 -0
  533. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/index.feature +0 -0
  534. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/install.feature +0 -0
  535. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/list.feature +0 -0
  536. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/mcp.feature +0 -0
  537. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/search.feature +0 -0
  538. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/cli_steps.py +0 -0
  539. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/discovery_steps.py +0 -0
  540. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/mcp_steps.py +0 -0
  541. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/bdd/features/steps/quality_steps.py +0 -0
  542. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/conftest.py +0 -0
  543. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/baseline.json +0 -0
  544. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/explain.jsonl +0 -0
  545. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/golden-natural.jsonl +0 -0
  546. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/golden.jsonl +0 -0
  547. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/recommend.jsonl +0 -0
  548. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/taps-scale.txt +0 -0
  549. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/eval/taps.txt +0 -0
  550. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_capabilities_policy.py +0 -0
  551. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_adapt.py +0 -0
  552. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_bmad.py +0 -0
  553. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_catalog.py +0 -0
  554. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_chat.py +0 -0
  555. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_configuration.py +0 -0
  556. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_discovery.py +0 -0
  557. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_hooks.py +0 -0
  558. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_info.py +0 -0
  559. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_intelligence.py +0 -0
  560. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_pane_width.py +0 -0
  561. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_pkg.py +0 -0
  562. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_quality.py +0 -0
  563. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_taps.py +0 -0
  564. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_cli_team.py +0 -0
  565. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_everyday_loop.py +0 -0
  566. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_integrity_enforce.py +0 -0
  567. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_kind_conformance.py +0 -0
  568. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_property_parsers.py +0 -0
  569. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_run.py +0 -0
  570. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/functional/test_workspace_scope.py +0 -0
  571. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/README.md +0 -0
  572. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  573. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  574. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  575. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  576. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  577. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  578. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  579. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  580. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  581. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  582. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  583. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  584. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  585. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  586. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  587. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  588. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  589. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  590. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  591. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  592. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  593. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  594. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  595. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/fuzz_frontmatter.py +0 -0
  596. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/fuzz/fuzz_registry.py +0 -0
  597. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/conftest.py +0 -0
  598. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_graph.py +0 -0
  599. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_loader.py +0 -0
  600. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/langchain/test_retriever.py +0 -0
  601. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/make_fixture.py +0 -0
  602. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/perf/test_benchmarks.py +0 -0
  603. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/smoke.sh +0 -0
  604. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_a11y_check.py +0 -0
  605. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_action_pin_lockstep.py +0 -0
  606. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters.py +0 -0
  607. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters_multi.py +0 -0
  608. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_adapters_runner.py +0 -0
  609. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_agents.py +0 -0
  610. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_ai.py +0 -0
  611. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_bmad_core.py +0 -0
  612. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_boost_first_offer.py +0 -0
  613. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_bootstrap.py +0 -0
  614. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_browse.py +0 -0
  615. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_builtin.py +0 -0
  616. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_capabilities.py +0 -0
  617. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_catalog.py +0 -0
  618. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_catalogbundle.py +0 -0
  619. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_chat.py +0 -0
  620. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_check_anchors.py +0 -0
  621. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_check_licenses.py +0 -0
  622. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_claude_settings.py +0 -0
  623. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_clean_internal_cache.py +0 -0
  624. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_cliparse.py +0 -0
  625. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_codeql_analysis_key.py +0 -0
  626. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_command_reference_fresh.py +0 -0
  627. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_community_health_files.py +0 -0
  628. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_compact.py +0 -0
  629. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_complete.py +0 -0
  630. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_complete_rc_block.py +0 -0
  631. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_config.py +0 -0
  632. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_content_dedupe.py +0 -0
  633. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_content_identity.py +0 -0
  634. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_crash_redaction.py +0 -0
  635. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dedup_trust.py +0 -0
  636. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_demo_index.py +0 -0
  637. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense.py +0 -0
  638. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_embed_dedupe.py +0 -0
  639. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_fallback.py +0 -0
  640. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_fix_hint.py +0 -0
  641. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_quantized.py +0 -0
  642. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_ready_order.py +0 -0
  643. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shard_real_schema.py +0 -0
  644. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  645. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_shards.py +0 -0
  646. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_status.py +0 -0
  647. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dense_status_cheap.py +0 -0
  648. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_dependabot_config.py +0 -0
  649. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_docs_pages_linked.py +0 -0
  650. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_docsite_chrome.py +0 -0
  651. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_ed25519.py +0 -0
  652. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed.py +0 -0
  653. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed_local.py +0 -0
  654. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_embed_truncated_response.py +0 -0
  655. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_entry_key.py +0 -0
  656. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_errors_and_cli_table.py +0 -0
  657. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_baseline.py +0 -0
  658. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_corpus.py +0 -0
  659. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_faithfulness.py +0 -0
  660. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_gate.py +0 -0
  661. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_grading.py +0 -0
  662. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_metrics.py +0 -0
  663. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_eval_stats_summary.py +0 -0
  664. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  665. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_faithfulness.py +0 -0
  666. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_frontmatter.py +0 -0
  667. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_fuzz_targets.py +0 -0
  668. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  669. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitleaks_config.py +0 -0
  670. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil.py +0 -0
  671. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil_lfs.py +0 -0
  672. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_gitutil_sparse.py +0 -0
  673. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_imperative.py +0 -0
  674. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_import_budget.py +0 -0
  675. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_injectscan.py +0 -0
  676. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_install_permission_error.py +0 -0
  677. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_installscan.py +0 -0
  678. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_integrity.py +0 -0
  679. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_journal.py +0 -0
  680. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_langchain_packaging.py +0 -0
  681. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_link_ownership.py +0 -0
  682. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_localembed.py +0 -0
  683. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_localembed_e2e.py +0 -0
  684. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_lockfile.py +0 -0
  685. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_logs.py +0 -0
  686. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_marketing_counts.py +0 -0
  687. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcp.py +0 -0
  688. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcp_install_scan.py +0 -0
  689. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcpdecl.py +0 -0
  690. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mcphost.py +0 -0
  691. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_measure_registry.py +0 -0
  692. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_minisign.py +0 -0
  693. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_hardening.py +0 -0
  694. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_shards.py +0 -0
  695. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutation_subfile_shards.py +0 -0
  696. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_mutmut_source_paths.py +0 -0
  697. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_nethttp.py +0 -0
  698. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_output.py +0 -0
  699. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_page_budget.py +0 -0
  700. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_paths.py +0 -0
  701. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_perf_gate.py +0 -0
  702. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_confusions.py +0 -0
  703. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_injection.py +0 -0
  704. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_pkg_secrets.py +0 -0
  705. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_platform_pins.py +0 -0
  706. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_policy.py +0 -0
  707. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_post_deploy_smoke.py +0 -0
  708. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_project_mcp_sidecar.py +0 -0
  709. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_projectlock.py +0 -0
  710. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_provenance.py +0 -0
  711. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_publish_golden_dataset.py +0 -0
  712. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag.py +0 -0
  713. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag_fastpath.py +0 -0
  714. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rag_fusion.py +0 -0
  715. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registries_fresh.py +0 -0
  716. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry.py +0 -0
  717. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry_categories.py +0 -0
  718. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_registry_control_chars.py +0 -0
  719. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_release_guard.py +0 -0
  720. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_release_preflight.py +0 -0
  721. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_required_checks.py +0 -0
  722. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rerank_cache.py +0 -0
  723. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_resolve.py +0 -0
  724. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_roadmap_fresh.py +0 -0
  725. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_rules.py +0 -0
  726. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_scale_corpus.py +0 -0
  727. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_scopes.py +0 -0
  728. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_secretscan.py +0 -0
  729. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_selfupdate.py +0 -0
  730. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_serve.py +0 -0
  731. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_serve_docs.py +0 -0
  732. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_shards_matrix.py +0 -0
  733. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_smoke_covers_every_command.py +0 -0
  734. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_spin.py +0 -0
  735. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_stackprobe.py +0 -0
  736. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_staleness.py +0 -0
  737. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_store.py +0 -0
  738. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_store_materialize.py +0 -0
  739. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_sync_blocked_links.py +0 -0
  740. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  741. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_token_parity.py +0 -0
  742. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_toolchain_lock.py +0 -0
  743. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_trustaudit.py +0 -0
  744. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_typosquat.py +0 -0
  745. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_updatediff.py +0 -0
  746. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_util.py +0 -0
  747. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_version.py +0 -0
  748. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_visual_harness_flags.py +0 -0
  749. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_concurrency.py +0 -0
  750. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  751. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  752. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflow_timeouts.py +0 -0
  753. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_workflows.py +0 -0
  754. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  755. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/a11y_check.mjs +0 -0
  756. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/console_check.mjs +0 -0
  757. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/package-lock.json +0 -0
  758. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/package.json +0 -0
  759. {boost_skill_cli-1.2.26 → boost_skill_cli-1.2.28}/tests/visual/visual_check.mjs +0 -0
@@ -1,13 +1,24 @@
1
1
  ABM
2
2
  agentic
3
3
  Algolia
4
+ allowlist
4
5
  allowlisted
5
6
  argparse
6
7
  Arize
8
+ ASan
7
9
  Attio
10
+ Autofix
11
+ autofix
12
+ Backfilling
13
+ backfilling
14
+ backport
15
+ backported
8
16
  backtick
9
17
  backticks
10
18
  Bagisto
19
+ basename
20
+ basenames
21
+ bestpractices
11
22
  bmad
12
23
  bookended
13
24
  Camunda
@@ -18,10 +29,12 @@ codespell
18
29
  ColdIQ
19
30
  config
20
31
  configs
32
+ CPython
21
33
  CRM
22
34
  cyclomatic
23
35
  Dependabot
24
36
  deps
37
+ deserialization
25
38
  Dev
26
39
  DigitalOcean
27
40
  docsite
@@ -35,6 +48,7 @@ eval
35
48
  evals
36
49
  freemium
37
50
  frontmatter
51
+ fuzzer
38
52
  GEO
39
53
  GIF
40
54
  gitignored
@@ -55,26 +69,37 @@ Kotlin
55
69
  langchain
56
70
  Langfuse
57
71
  LeadMagic
72
+ libFuzzer
73
+ libsodium
58
74
  lookups
59
75
  lowercasing
60
76
  Magento
61
77
  mcp
62
78
  mergeable
79
+ minisign
80
+ misconfiguration
81
+ mitigations
63
82
  MLflow
64
83
  mutmut
65
84
  mypy
85
+ nonces
66
86
  npm
67
87
  onboards
68
88
  OpenShift
89
+ OpenSSF
69
90
  overclaiming
70
91
  Pinecone
71
92
  pipx
93
+ plaintext
94
+ prehash
72
95
  PrestaShop
73
96
  Pulumi
74
97
  pytest
75
98
  Qdrant
76
99
  Quarkus
77
100
  rebased
101
+ reimplement
102
+ reimplemented
78
103
  reindex
79
104
  repo
80
105
  repo's
@@ -90,11 +115,16 @@ ruleset
90
115
  Rulesets
91
116
  rulesets
92
117
  Salesforce
118
+ Saltzer
93
119
  sandboxed
94
120
  sandboxing
95
121
  scrollbar
122
+ sdist
96
123
  SEO
124
+ setuptools
125
+ SHAs
97
126
  Shopify
127
+ Sigstore
98
128
  SonarCloud
99
129
  stderr
100
130
  Stdlib
@@ -104,25 +134,32 @@ stemmer
104
134
  stemming
105
135
  subagents
106
136
  subcommand
137
+ subprocess
107
138
  tappable
108
139
  teardown
109
140
  tempdir
110
141
  toggleable
111
- tokenization
112
142
  Tokenization
143
+ tokenization
113
144
  toolchain
114
145
  toolkits
115
146
  traceback
116
147
  tracebacks
148
+ triaged
149
+ triages
117
150
  typosquat
118
151
  typosquatted
119
152
  unkilled
120
153
  unlinking
154
+ unpatched
121
155
  unregister
156
+ unremediated
122
157
  unstaged
123
158
  untap
159
+ untrusted
124
160
  uv
125
161
  Vaadin
162
+ Valgrind
126
163
  vendored
127
164
  vendoring
128
165
  venv
@@ -20,5 +20,12 @@ Vale.Terms = NO
20
20
  [docs/roadmap/items/*.md]
21
21
  BasedOnStyles =
22
22
 
23
+ ; docs/commit-audit.md is a generated record: a table of short SHAs, file paths
24
+ ; and tool identifiers produced by an audit pass, not authored prose. Spelling
25
+ ; it would mean adding ~27 one-off identifiers to the shared vocabulary, which
26
+ ; would weaken the check everywhere else to lint one machine-written file.
27
+ [docs/commit-audit.md]
28
+ BasedOnStyles =
29
+
23
30
  [.claude/**/*.md]
24
31
  BasedOnStyles =
@@ -98,6 +98,36 @@ list, and neither should be added to it.
98
98
  | `refurb boost_cli` | modernization smells the ruff families miss, zero findings |
99
99
  | `scripts/lock_toolchain.py --check` | the hash-pinned toolchain matches its `.in` declarations |
100
100
 
101
+ ## Sign your commits (DCO)
102
+
103
+ Every commit needs a `Signed-off-by` trailer naming **you**, the author. It is
104
+ your assertion, under the [Developer Certificate of Origin](DCO), that you have
105
+ the right to submit the work. Git writes it for you:
106
+
107
+ ```bash
108
+ git commit -s # sign off as you go
109
+ git commit --amend --signoff --no-edit # fix the last commit
110
+ git rebase --signoff origin/main # fix a whole branch
111
+ ```
112
+
113
+ `scripts/check_dco.py` enforces it as a required check, and you can run the
114
+ exact same check locally:
115
+
116
+ ```bash
117
+ python3 scripts/check_dco.py # HEAD against origin/main
118
+ ```
119
+
120
+ Two things it deliberately will not accept. The trailer must name the **author** of
121
+ the commit it sits on — a sign-off from anyone else certifies nothing, so it is
122
+ rejected rather than counted. And the check only ever looks at the commits your
123
+ pull request adds: DCO applies from the commit that introduced it, and history
124
+ before that is left alone. Backfilling sign-offs would mean rewriting `main`,
125
+ breaking 478 tags and invalidating the build-provenance attestation on every
126
+ published release, to record an assertion nobody actually made.
127
+
128
+ Bot authors (Dependabot and friends) are exempt — an account cannot agree to a
129
+ certificate.
130
+
101
131
  ## Code of conduct
102
132
 
103
133
  Participation is governed by the [Code of Conduct](CODE_OF_CONDUCT.md)
@@ -0,0 +1,34 @@
1
+ Developer Certificate of Origin
2
+ Version 1.1
3
+
4
+ Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
5
+
6
+ Everyone is permitted to copy and distribute verbatim copies of this
7
+ license document, but changing it is not allowed.
8
+
9
+
10
+ Developer's Certificate of Origin 1.1
11
+
12
+ By making a contribution to this project, I certify that:
13
+
14
+ (a) The contribution was created in whole or in part by me and I
15
+ have the right to submit it under the open source license
16
+ indicated in the file; or
17
+
18
+ (b) The contribution is based upon previous work that, to the best
19
+ of my knowledge, is covered under an appropriate open source
20
+ license and I have the right under that license to submit that
21
+ work with modifications, whether created in whole or in part
22
+ by me, under the same open source license (unless I am
23
+ permitted to submit under a different license), as indicated
24
+ in the file; or
25
+
26
+ (c) The contribution was provided directly to me by some other
27
+ person who certified (a), (b) or (c) and I have not modified
28
+ it.
29
+
30
+ (d) I understand and agree that this project and the contribution
31
+ are public and that a record of the contribution (including all
32
+ personal information I submit with it, including my sign-off) is
33
+ maintained indefinitely and may be redistributed consistent with
34
+ this project or the open source license(s) involved.
@@ -0,0 +1,102 @@
1
+ # Maintainers
2
+
3
+ Who has access to what, what each role is expected to do, and what has to
4
+ happen before anyone is granted more. This file is the authoritative list; if it
5
+ disagrees with someone's memory, this file is right and the memory is stale.
6
+
7
+ ## Current maintainers
8
+
9
+ | Name | GitHub | Role | Since |
10
+ |---|---|---|---|
11
+ | Jonathan Reyes | [@jonnyeclectic](https://github.com/jonnyeclectic) | Lead maintainer | 2026-07 |
12
+
13
+ boost is a **single-maintainer project today**. That is stated plainly rather
14
+ than glossed, because it is the single largest risk to the project and it
15
+ changes what you should expect: review latency depends on one person, and the
16
+ bus factor is one. See [Continuity](#continuity) for what happens if that
17
+ person becomes unavailable, and [Becoming a maintainer](#becoming-a-maintainer)
18
+ for how that changes.
19
+
20
+ ## Access to sensitive resources
21
+
22
+ Every credential and privileged surface the project depends on, and who holds
23
+ it. Nothing not listed here grants access to anything.
24
+
25
+ | Resource | Who has access | How access works |
26
+ |---|---|---|
27
+ | GitHub repository (admin) | Lead maintainer | GitHub account with 2FA |
28
+ | `main` branch | **No one directly.** | A ruleset requires a pull request and the full required-check gate; `non_fast_forward` blocks history rewrites. Admin included. |
29
+ | PyPI project `boost-skill-cli` | **No stored credential exists.** | Publishing is a [PyPI Trusted Publisher](https://docs.pypi.org/trusted-publishers/): GitHub mints a short-lived OIDC token for `publish.yml` on `main` only. There is no API token to leak, share, or rotate. |
30
+ | GitHub Actions secrets | Lead maintainer | Only optional dashboard tokens (`CODECOV_TOKEN`, `SONAR_TOKEN`) and optional evaluation API keys. Every job reading one skips itself when it is absent, so none is required to build, test, or release. |
31
+ | Security advisories / private vulnerability reports | Lead maintainer | GitHub private vulnerability reporting |
32
+ | GitHub Pages docs site | Lead maintainer | Published from `main` by CI; no separate credential |
33
+
34
+ ## Roles and responsibilities
35
+
36
+ **Lead maintainer.** Sets direction; reviews and merges pull requests; owns the
37
+ release process; is the recipient of private vulnerability reports and owns the
38
+ response; administers repository settings, branch rulesets and the required-check
39
+ list; maintains this file.
40
+
41
+ **Maintainer** (none appointed yet). Reviews and merges pull requests within an
42
+ agreed area; may not change repository settings, rulesets, or the release path.
43
+ A maintainer is expected to keep the quality gates green rather than route
44
+ around them, and to say so publicly when a gate is wrong instead of disabling it
45
+ quietly.
46
+
47
+ **Contributor.** Anyone who opens a pull request. No standing permissions; a
48
+ contribution is merged by a maintainer after the gates pass. See
49
+ [CONTRIBUTING.md](CONTRIBUTING.md).
50
+
51
+ **Security reporter.** Anyone who reports a vulnerability through the process in
52
+ [SECURITY.md](SECURITY.md). Reporters are credited by name in the advisory and
53
+ the release notes unless they ask not to be.
54
+
55
+ ## Becoming a maintainer
56
+
57
+ Escalated permission is granted deliberately and never by default. The policy:
58
+
59
+ 1. **A track record first.** A sustained series of merged, non-trivial
60
+ contributions — enough that their judgement on this codebase is a known
61
+ quantity, not an assumption.
62
+ 2. **Review before the grant.** The lead maintainer reviews that history and
63
+ proposes the change in a public issue, naming the scope of access being
64
+ granted and why. Existing maintainers may object there.
65
+ 3. **Least privilege at the grant.** New collaborators receive the lowest
66
+ permission that lets them do the job. Write access is a separate, later
67
+ decision from repository administration, which is a separate decision again
68
+ from anything touching the release path.
69
+ 4. **This file is updated in the same change** that grants the permission. An
70
+ access grant that is not recorded here has not happened.
71
+
72
+ The same review applies when an existing maintainer is given more access, not
73
+ only to a first grant.
74
+
75
+ ## Removing access
76
+
77
+ Access is removed promptly when a maintainer steps down, becomes unreachable for
78
+ an extended period, or at their own request — and immediately if an account is
79
+ believed compromised. Removal does not require agreement from the person losing
80
+ access. Because publishing uses a short-lived OIDC identity rather than a stored
81
+ token, removing someone's GitHub access removes their ability to release; there
82
+ is no separate credential left behind to revoke.
83
+
84
+ ## Continuity
85
+
86
+ If the lead maintainer becomes unavailable:
87
+
88
+ - **The code is safe regardless.** It is GPL-3.0, the full history is public,
89
+ and every release is reproducible from a public tag. Anyone may fork.
90
+ - **The published artifacts stay published.** PyPI releases and GitHub releases
91
+ remain available; nothing expires if no one logs in.
92
+ - **Recovery of the canonical repository** would go through
93
+ [GitHub's account-recovery and inactive-repository processes](https://docs.github.com/en/site-policy).
94
+ Because the release path is a GitHub OIDC identity bound to this repository,
95
+ whoever legitimately controls the repository controls releases — there is no
96
+ personal token that has to be handed over.
97
+ - **The practical answer is to fork.** Until a second maintainer exists, that
98
+ is the honest continuity plan, and the project would rather say so than
99
+ imply a succession process it does not have.
100
+
101
+ Reducing this risk is open work: if you have been contributing and want to help
102
+ carry it, say so in an issue.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.26
3
+ Version: 1.2.28
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -724,6 +724,7 @@ Dynamic: license-file
724
724
  [![Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjonnyeclectic%2Fboost%2Fbadges%2Fcoverage.json)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
725
725
  [![Mutation score](https://img.shields.io/badge/mutation_score-%E2%89%A580%25_killed-blueviolet)](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
726
726
  [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
727
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/14275/badge)](https://www.bestpractices.dev/projects/14275)
727
728
  [![License](https://img.shields.io/github/license/jonnyeclectic/boost)](LICENSE)
728
729
 
729
730
  **Homebrew for AI coding skills.** boost finds, installs, and version-tracks
@@ -6,6 +6,7 @@
6
6
  [![Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjonnyeclectic%2Fboost%2Fbadges%2Fcoverage.json)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
7
7
  [![Mutation score](https://img.shields.io/badge/mutation_score-%E2%89%A580%25_killed-blueviolet)](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
8
8
  [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
9
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/14275/badge)](https://www.bestpractices.dev/projects/14275)
9
10
  [![License](https://img.shields.io/github/license/jonnyeclectic/boost)](LICENSE)
10
11
 
11
12
  **Homebrew for AI coding skills.** boost finds, installs, and version-tracks
@@ -0,0 +1,86 @@
1
+ # Security policy
2
+
3
+ ## Supported versions
4
+
5
+ Only the latest release receives security fixes. [SUPPORT.md](SUPPORT.md) sets
6
+ out the scope and duration of support in full, including when a version stops
7
+ receiving security updates.
8
+
9
+ ## Reporting a vulnerability
10
+
11
+ Please **do not** open a public issue for security reports. Instead, use
12
+ GitHub's private vulnerability reporting:
13
+
14
+ **[Report a vulnerability](https://github.com/jonnyeclectic/boost/security/advisories/new)**
15
+
16
+ You can expect an acknowledgement within a few days. Please include steps to
17
+ reproduce and the affected command(s).
18
+
19
+ ## Vulnerability fixes in release notes
20
+
21
+ Every merge to `main` cuts a release, so a fix reaches users within minutes of
22
+ landing. When a release fixes a publicly known vulnerability in boost itself —
23
+ one that already had a CVE or an equivalent identifier when the release was
24
+ cut — the [release notes](https://github.com/jonnyeclectic/boost/releases) will
25
+ name it and its identifier, so you can tell an upgrade that matters from one
26
+ that does not. No such vulnerability has been reported to date.
27
+
28
+ Vulnerabilities in boost's *dependencies* are handled separately: the runtime
29
+ has none, and the development toolchain is watched by `osv-scanner`, `pip-audit`
30
+ and Dependabot.
31
+
32
+ ## Scope notes
33
+
34
+ boost executes `git` against registry URLs you tap and symlinks skills into
35
+ agent directories. Reports about tap-supplied content escaping the store,
36
+ path traversal via `SKILL.md` frontmatter, or command injection through
37
+ skill/tap names are especially valuable.
38
+
39
+ ## Secrets and credentials
40
+
41
+ The policy in one line: **boost stores no credential it could leak.**
42
+
43
+ - **Releases use no stored token.** Publishing goes through PyPI Trusted
44
+ Publishing — GitHub mints a short-lived OIDC identity for `publish.yml` at the
45
+ moment of upload. There is no PyPI API token in a secret, on a laptop, or in a
46
+ password manager, so there is nothing to rotate and nothing to steal.
47
+ - **Every secret that does exist is optional.** Only `CODECOV_TOKEN`,
48
+ `SONAR_TOKEN` and the optional evaluation API keys are configured, all as
49
+ GitHub Actions repository secrets. Every job reading one skips itself when it
50
+ is absent, so none is required to build, test or release.
51
+ - **Secrets never reach untrusted code.** No workflow uses
52
+ `pull_request_target`, so a fork's pull request runs with a read-only token
53
+ and no secret access. Secrets are bound at job level, never interpolated into
54
+ a `run:` block, and `zizmor` fails a pull request that breaks either rule.
55
+ - **Access follows the maintainer list.** Who holds what is recorded in
56
+ [MAINTAINERS.md](MAINTAINERS.md), which also states the policy that escalated
57
+ permissions are reviewed before they are granted. Access is removed promptly
58
+ when someone steps down and immediately if an account is believed compromised.
59
+ - **Rotation.** An optional dashboard token is rotated on suspicion of exposure
60
+ or when the holder's access is removed — revoked at the issuing service, then
61
+ replaced or deleted in repository settings. Because none is required, deleting
62
+ one is always a safe first move.
63
+ - **Committed secrets are caught.** `gitleaks` runs in CI on every push and
64
+ fails the build on a hit; the allowlist covers only boost's own synthetic
65
+ scanner test fixtures.
66
+
67
+ If you believe a boost credential has been exposed, report it through the
68
+ private channel above rather than opening an issue.
69
+
70
+ ## How boost is designed to resist this
71
+
72
+ [`docs/security-design.md`](docs/security-design.md) is the threat model: what
73
+ boost trusts and what it does not, the design principles the code is held to,
74
+ and the table of error classes — path traversal, command injection, zip-slip,
75
+ untrusted deserialization, supply-chain compromise — each paired with the
76
+ mitigation that counters it. It also states the known limits plainly, including
77
+ the one that matters most: boost gives you a skill's provenance, integrity and
78
+ diff, but judging what the skill *tells your agent to do* is yours.
79
+
80
+ For how boost's badge-level security posture is assessed, see
81
+ [`docs/openssf-badge.md`](docs/openssf-badge.md). Two companion documents cover
82
+ the supply chain either side of a release:
83
+ [`docs/dependencies.md`](docs/dependencies.md) — how dependencies are chosen,
84
+ pinned by hash, tracked, and at what threshold a finding blocks a merge — and
85
+ [`docs/verifying-releases.md`](docs/verifying-releases.md) — how to verify for
86
+ yourself that an artifact you installed was built by this repository.
@@ -0,0 +1,78 @@
1
+ # Support
2
+
3
+ What boost supports, for how long, and where to ask.
4
+
5
+ ## Where to ask
6
+
7
+ | You want to | Go here |
8
+ |---|---|
9
+ | Report a bug | [Open an issue](https://github.com/jonnyeclectic/boost/issues/new/choose) |
10
+ | Request a feature | [Open an issue](https://github.com/jonnyeclectic/boost/issues/new/choose) |
11
+ | Report a vulnerability | **Not an issue** — [SECURITY.md](SECURITY.md) |
12
+ | Diagnose a broken install | [`docs/DEBUGGING.md`](docs/DEBUGGING.md), then `boost doctor` |
13
+ | Contribute a change | [CONTRIBUTING.md](CONTRIBUTING.md) |
14
+
15
+ `boost doctor` is the first thing to run for anything that looks like a
16
+ misconfiguration. It names the single next action for each problem it finds
17
+ rather than printing a menu, and its output is the most useful thing to paste
18
+ into an issue.
19
+
20
+ ## What is supported
21
+
22
+ **Only the latest release.** boost releases on every merge to `main`, so the
23
+ latest version is usually minutes old and the gap between "what you have" and
24
+ "what is fixed" is small by design. Bug fixes and security fixes go into the
25
+ next release; there are no backport branches and no long-term-support line.
26
+
27
+ If you are on an older version, the supported answer is to upgrade:
28
+
29
+ ```bash
30
+ pipx upgrade boost-skill-cli # or: pip install -U boost-skill-cli
31
+ ```
32
+
33
+ **Supported environments** — these are what CI runs on every pull request, so a
34
+ regression on any of them fails the build:
35
+
36
+ | | Supported |
37
+ |---|---|
38
+ | Python | 3.12, 3.13, 3.14 (and a non-blocking 3.14 free-threaded canary) |
39
+ | Operating system | Linux, macOS, Windows |
40
+ | Required external tools | `git` |
41
+
42
+ Python 3.11 and earlier are **not** supported: the project's floor is
43
+ `requires-python = ">=3.12"`.
44
+
45
+ ## When a version stops receiving security updates
46
+
47
+ **The moment a newer release exists.** A version other than the latest receives
48
+ no security updates, and none will be backported to it.
49
+
50
+ This is stated as a policy rather than left implicit because the alternative
51
+ would be misleading. With a release cut on every merge, maintaining a supported
52
+ older line would mean supporting hundreds of versions; the project does not do
53
+ that and will not pretend to. In exchange, the upgrade path is deliberately
54
+ cheap — a single `pipx upgrade`, a stdlib-only runtime with no dependency
55
+ resolution to go wrong, and no configuration migration between patch releases.
56
+
57
+ If a release fixes a publicly known vulnerability, the release notes name it and
58
+ its identifier — see
59
+ [SECURITY.md](SECURITY.md#vulnerability-fixes-in-release-notes).
60
+
61
+ ## What is not supported
62
+
63
+ - **The content of third-party skills, rules and workflows.** boost gives you a
64
+ skill's provenance, its integrity digest and a diff. Judging what a skill
65
+ tells your agent to do is yours; see the limits section of
66
+ [`docs/security-design.md`](docs/security-design.md).
67
+ - **`boost serve`** as a hardened server. It is a local development
68
+ convenience for a trusted network.
69
+ - **Optional extras** (`[rag]`, `[eval]`, `[bdd]`, `[langchain]`) carry
70
+ third-party dependencies and their own compatibility constraints. The default
71
+ install is stdlib-only and is what the support statement above covers.
72
+
73
+ ## Response expectations
74
+
75
+ This is a single-maintainer project ([MAINTAINERS.md](MAINTAINERS.md)), so
76
+ response times depend on one person's availability. Vulnerability reports are
77
+ acknowledged within a few days and are the highest priority; ordinary issues are
78
+ triaged as they arrive but carry no service-level guarantee.
@@ -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.2.26'
22
- __version_tuple__ = version_tuple = (1, 2, 26)
21
+ __version__ = version = '1.2.28'
22
+ __version_tuple__ = version_tuple = (1, 2, 28)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1189,7 +1189,18 @@ def cmd_trust(argv) -> int:
1189
1189
  if key_path.is_file() else args.key)
1190
1190
  rec = provenance.add_trusted_key(args.name, key_text)
1191
1191
  journal.log("trust", args.name, op="add-key")
1192
- out.ok("trusted key %s (%s)" % (rec["name"], rec["fingerprint"]))
1192
+ # The fingerprint is the point of this line, not incidental detail: it
1193
+ # is how the user checks by eye that the key they just trusted is the
1194
+ # one the publisher advertises. CodeQL's py/clear-text-logging-sensitive
1195
+ # -data flags it because `name` is user-supplied and `fingerprint` reads
1196
+ # like a credential, but a minisign PUBLIC key fingerprint is meant to
1197
+ # be published — printing it is the verification, and an autofix that
1198
+ # replaced this with a constant string (dc6e827) removed the only check
1199
+ # `trust add` offers. Restored, suppressed with the reason, and pinned
1200
+ # by tests/functional/test_tap_signing.py so it cannot be quietly
1201
+ # dropped a second time.
1202
+ out.ok("trusted key %s (%s)" # codeql[py/clear-text-logging-sensitive-data]
1203
+ % (rec["name"], rec["fingerprint"]))
1193
1204
  return 0
1194
1205
 
1195
1206
  if args.action == "remove":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.26
3
+ Version: 1.2.28
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -724,6 +724,7 @@ Dynamic: license-file
724
724
  [![Coverage](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fjonnyeclectic%2Fboost%2Fbadges%2Fcoverage.json)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
725
725
  [![Mutation score](https://img.shields.io/badge/mutation_score-%E2%89%A580%25_killed-blueviolet)](https://github.com/jonnyeclectic/boost/blob/main/scripts/mutation_gate.py)
726
726
  [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey)](https://github.com/jonnyeclectic/boost/actions/workflows/ci.yml)
727
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/14275/badge)](https://www.bestpractices.dev/projects/14275)
727
728
  [![License](https://img.shields.io/github/license/jonnyeclectic/boost)](LICENSE)
728
729
 
729
730
  **Homebrew for AI coding skills.** boost finds, installs, and version-tracks
@@ -11,11 +11,14 @@
11
11
  CLAUDE.md
12
12
  CODE_OF_CONDUCT.md
13
13
  CONTRIBUTING.md
14
+ DCO
14
15
  LICENSE
16
+ MAINTAINERS.md
15
17
  MANIFEST.in
16
18
  Makefile
17
19
  README.md
18
20
  SECURITY.md
21
+ SUPPORT.md
19
22
  boost
20
23
  codecov.yml
21
24
  eslint.config.mjs
@@ -122,18 +125,23 @@ docs/adapters.html
122
125
  docs/carousel.html
123
126
  docs/chat.html
124
127
  docs/commands.html
128
+ docs/commit-audit.md
125
129
  docs/demo-index.json
126
130
  docs/demo.gif
127
131
  docs/demo.html
128
132
  docs/demo.tape
133
+ docs/dependencies.md
129
134
  docs/design-roadmap.html
130
135
  docs/eval-latest.json
131
136
  docs/eval.html
132
137
  docs/index.html
133
138
  docs/langchain.html
134
139
  docs/mcp-hub.html
140
+ docs/openssf-badge.md
135
141
  docs/rag-architecture.md
136
142
  docs/roadmap.html
143
+ docs/security-design.md
144
+ docs/verifying-releases.md
137
145
  docs/.claude/settings.local.json
138
146
  docs/architecture/README.md
139
147
  docs/architecture/c4-components-core.md
@@ -339,6 +347,8 @@ docs/roadmap/items/one-command-every-env-nox.md
339
347
  docs/roadmap/items/one-commit-can-cut-two-releases.md
340
348
  docs/roadmap/items/one-dead-tap-broke-every-update.md
341
349
  docs/roadmap/items/one-shared-atomic-write-helper.md
350
+ docs/roadmap/items/openssf-best-practices-badge.md
351
+ docs/roadmap/items/osps-baseline-levels.md
342
352
  docs/roadmap/items/package-metadata-validation-twine-check-friends.md
343
353
  docs/roadmap/items/patch-coverage-gate-diff-cover.md
344
354
  docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md
@@ -482,6 +492,7 @@ scripts/build_registries.py
482
492
  scripts/build_roadmap.py
483
493
  scripts/build_scale_corpus.py
484
494
  scripts/check_anchors.py
495
+ scripts/check_dco.py
485
496
  scripts/check_licenses.py
486
497
  scripts/check_required_checks.py
487
498
  scripts/ensure_eval_corpus.sh
@@ -604,6 +615,7 @@ tests/unit/test_catalog.py
604
615
  tests/unit/test_catalogbundle.py
605
616
  tests/unit/test_chat.py
606
617
  tests/unit/test_check_anchors.py
618
+ tests/unit/test_check_dco.py
607
619
  tests/unit/test_check_licenses.py
608
620
  tests/unit/test_claude_settings.py
609
621
  tests/unit/test_clean_internal_cache.py