boost-skill-cli 1.2.4__tar.gz → 1.2.6__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 (729) hide show
  1. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/registry.py +44 -4
  4. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/data/registries.json +3 -25
  5. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  6. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/SOURCES.txt +5 -0
  7. boost_skill_cli-1.2.6/docs/roadmap/items/pathlib-exists-is-not-total.md +48 -0
  8. boost_skill_cli-1.2.6/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +47 -0
  9. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap.html +90 -1
  10. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/build_registries.py +82 -2
  11. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/taps-scale.txt +44 -42
  12. boost_skill_cli-1.2.6/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  13. boost_skill_cli-1.2.6/tests/fuzz/corpus/registry/10-name-too-long.txt +1 -0
  14. boost_skill_cli-1.2.6/tests/fuzz/corpus/registry/11-long-owner-repo.txt +1 -0
  15. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_registry_categories.py +30 -0
  16. boost_skill_cli-1.2.6/tests/unit/test_registry_control_chars.py +233 -0
  17. boost_skill_cli-1.2.4/tests/unit/test_registry_control_chars.py +0 -113
  18. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.gitattributes +0 -0
  19. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.gitignore +0 -0
  20. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.gitleaks.toml +0 -0
  21. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.htmlvalidate.json +0 -0
  22. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.lighthouserc.json +0 -0
  23. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.lycheeignore +0 -0
  24. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.markdownlint-cli2.jsonc +0 -0
  25. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.pre-commit-config.yaml +0 -0
  26. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.stylelintrc.json +0 -0
  27. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.vale/styles/boost/Terminology.yml +0 -0
  28. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  29. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/.vale.ini +0 -0
  30. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/CLAUDE.md +0 -0
  31. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/CODE_OF_CONDUCT.md +0 -0
  32. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/CONTRIBUTING.md +0 -0
  33. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/LICENSE +0 -0
  34. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/MANIFEST.in +0 -0
  35. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/Makefile +0 -0
  36. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/README.md +0 -0
  37. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/SECURITY.md +0 -0
  38. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost +0 -0
  39. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/__init__.py +0 -0
  40. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/__main__.py +0 -0
  41. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/cli.py +0 -0
  42. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/cliparse.py +0 -0
  43. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/__init__.py +0 -0
  44. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/_common.py +0 -0
  45. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/bmad.py +0 -0
  46. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/configuration.py +0 -0
  47. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/discovery.py +0 -0
  48. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/hooks.py +0 -0
  49. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/info.py +0 -0
  50. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/intelligence.py +0 -0
  51. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/pkg.py +0 -0
  52. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/quality.py +0 -0
  53. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/run.py +0 -0
  54. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/safety.py +0 -0
  55. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/taps.py +0 -0
  56. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/commands/team.py +0 -0
  57. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/__init__.py +0 -0
  58. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/adapters.py +0 -0
  59. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/agents.py +0 -0
  60. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/ai.py +0 -0
  61. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/bmad.py +0 -0
  62. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/bootstrap.py +0 -0
  63. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/browse.py +0 -0
  64. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/builtin.py +0 -0
  65. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/capabilities.py +0 -0
  66. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/catalog.py +0 -0
  67. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/catalogbundle.py +0 -0
  68. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/chat.py +0 -0
  69. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/claude_settings.py +0 -0
  70. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/complete.py +0 -0
  71. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/config.py +0 -0
  72. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/dense.py +0 -0
  73. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/ed25519.py +0 -0
  74. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/embed.py +0 -0
  75. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/faithfulness.py +0 -0
  76. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/frontmatter.py +0 -0
  77. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/gitutil.py +0 -0
  78. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/imperative.py +0 -0
  79. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/injectscan.py +0 -0
  80. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/installscan.py +0 -0
  81. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/integrity.py +0 -0
  82. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/journal.py +0 -0
  83. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/localembed.py +0 -0
  84. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/lockfile.py +0 -0
  85. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/logs.py +0 -0
  86. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/mcp.py +0 -0
  87. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/mcpdecl.py +0 -0
  88. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/mcphost.py +0 -0
  89. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/minisign.py +0 -0
  90. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/nethttp.py +0 -0
  91. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/output.py +0 -0
  92. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/paths.py +0 -0
  93. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/policy.py +0 -0
  94. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/projectlock.py +0 -0
  95. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/provenance.py +0 -0
  96. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/rag.py +0 -0
  97. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/resolve.py +0 -0
  98. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/rules.py +0 -0
  99. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/scopes.py +0 -0
  100. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/secretscan.py +0 -0
  101. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/selfupdate.py +0 -0
  102. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/serve.py +0 -0
  103. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/stackprobe.py +0 -0
  104. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/staleness.py +0 -0
  105. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/store.py +0 -0
  106. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/trustaudit.py +0 -0
  107. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/typosquat.py +0 -0
  108. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/updatediff.py +0 -0
  109. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/util.py +0 -0
  110. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/core/workflows.py +0 -0
  111. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/data/rules/boost-first.mdc +0 -0
  112. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/errors.py +0 -0
  113. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_cli/spin.py +0 -0
  114. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/__init__.py +0 -0
  115. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/_compat.py +0 -0
  116. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/graph.py +0 -0
  117. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/loader.py +0 -0
  118. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/py.typed +0 -0
  119. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_langchain/retriever.py +0 -0
  120. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  121. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  122. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/requires.txt +0 -0
  123. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/boost_skill_cli.egg-info/top_level.txt +0 -0
  124. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/codecov.yml +0 -0
  125. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/.claude/settings.local.json +0 -0
  126. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/DEBUGGING.md +0 -0
  127. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/adapters.html +0 -0
  128. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/architecture/README.md +0 -0
  129. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/architecture/c4-components-core.md +0 -0
  130. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/architecture/c4-containers.md +0 -0
  131. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/architecture/c4-context.md +0 -0
  132. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/architecture/c4-dynamic-install.md +0 -0
  133. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/distill.gif +0 -0
  134. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/doctor.gif +0 -0
  135. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/explain.gif +0 -0
  136. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/hooks.gif +0 -0
  137. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/install.gif +0 -0
  138. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/pulse.gif +0 -0
  139. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/search.gif +0 -0
  140. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/gifs/tap.gif +0 -0
  141. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/distill.tape +0 -0
  142. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/doctor.tape +0 -0
  143. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/explain.tape +0 -0
  144. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/hooks.tape +0 -0
  145. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/install.tape +0 -0
  146. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/pulse.tape +0 -0
  147. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/search.tape +0 -0
  148. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel/tapes/tap.tape +0 -0
  149. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/carousel.html +0 -0
  150. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/chat.html +0 -0
  151. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/commands.html +0 -0
  152. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/demo-index.json +0 -0
  153. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/demo.gif +0 -0
  154. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/demo.html +0 -0
  155. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/demo.tape +0 -0
  156. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/design-roadmap.html +0 -0
  157. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/eval-latest.json +0 -0
  158. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/eval.html +0 -0
  159. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/index.html +0 -0
  160. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/langchain.html +0 -0
  161. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/mcp-hub.html +0 -0
  162. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/rag-architecture.md +0 -0
  163. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D01.md +0 -0
  164. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D02.md +0 -0
  165. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D03.md +0 -0
  166. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D04.md +0 -0
  167. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D05.md +0 -0
  168. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D06.md +0 -0
  169. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D07.md +0 -0
  170. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D08.md +0 -0
  171. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D09.md +0 -0
  172. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D10.md +0 -0
  173. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D11.md +0 -0
  174. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D12.md +0 -0
  175. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D13.md +0 -0
  176. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D14.md +0 -0
  177. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D15.md +0 -0
  178. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D16.md +0 -0
  179. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D17.md +0 -0
  180. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D18.md +0 -0
  181. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D19.md +0 -0
  182. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D20.md +0 -0
  183. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D21.md +0 -0
  184. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D22.md +0 -0
  185. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D23.md +0 -0
  186. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D24.md +0 -0
  187. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D25.md +0 -0
  188. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/BOOST-D26.md +0 -0
  189. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  190. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  191. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  192. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  193. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  194. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  195. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  196. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  197. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  198. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  199. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  200. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  201. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  202. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/boost-first-rule.md +0 -0
  203. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  204. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  205. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  206. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  207. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  208. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  209. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  210. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  211. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  212. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  213. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  214. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  215. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  216. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  217. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  218. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  219. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  220. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  221. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/command-carousel-page.md +0 -0
  222. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  223. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  224. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  225. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  226. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  227. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  228. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  229. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  230. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  231. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  232. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  233. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  234. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  235. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  236. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  237. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  238. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  239. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  240. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  241. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  242. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  243. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  244. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  245. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  246. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  247. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  248. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  249. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  250. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  251. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  252. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  253. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  254. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  255. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  256. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  257. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  258. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  259. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  260. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  261. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  262. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  263. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  264. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  265. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  266. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  267. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  268. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/github-community-health-files.md +0 -0
  269. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  270. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  271. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  272. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  273. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  274. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  275. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  276. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  277. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  278. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  279. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  280. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  281. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  282. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  283. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  284. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  285. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  286. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  287. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  288. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  289. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  290. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  291. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  292. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  293. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  294. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  295. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  296. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  297. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  298. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  299. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  300. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  301. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  302. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  303. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  304. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  305. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  306. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  307. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  308. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  309. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  310. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  311. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  312. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  313. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  314. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  315. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  316. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  317. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  318. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  319. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  320. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  321. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  322. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  323. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  324. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  325. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  326. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  327. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  328. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  329. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  330. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  331. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  332. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  333. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  334. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  335. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  336. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  337. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  338. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  339. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  340. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  341. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  342. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  343. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  344. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  345. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  346. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  347. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  348. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  349. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  350. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  351. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  352. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  353. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  354. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  355. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  356. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  357. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  358. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  359. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  360. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  361. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  362. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  363. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  364. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  365. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  366. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  367. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  368. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  369. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  370. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  371. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  372. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  373. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  374. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  375. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  376. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  377. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  378. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  379. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  380. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  381. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  382. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  383. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  384. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  385. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  386. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  387. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  388. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  389. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  390. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  391. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  392. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  393. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  394. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  395. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  396. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  397. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  398. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  399. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  400. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  401. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  402. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  403. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  404. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  405. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  406. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  407. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  408. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  409. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  410. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  411. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  412. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  413. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  414. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  415. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  416. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  417. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  418. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  419. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  420. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  421. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  422. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  423. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  424. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  425. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  426. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  427. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  428. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  429. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  430. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  431. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  432. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  433. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  434. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  435. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  436. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  437. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  438. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  439. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/workspace-scope-install.md +0 -0
  440. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/zip-strict-audit.md +0 -0
  441. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  442. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  443. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  444. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/eslint.config.mjs +0 -0
  445. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/README.md +0 -0
  446. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/__init__.py +0 -0
  447. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/baseline.json +0 -0
  448. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/faithfulness.py +0 -0
  449. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/golden_set.json +0 -0
  450. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/make_corpus.py +0 -0
  451. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/make_golden.py +0 -0
  452. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/metrics.py +0 -0
  453. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/publish_golden_dataset.py +0 -0
  454. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/evals/run_evals.py +0 -0
  455. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/examples/README.md +0 -0
  456. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/examples/adapt-demo.sh +0 -0
  457. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/examples/boost-run-prototype.sh +0 -0
  458. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/index.html +0 -0
  459. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/noxfile.py +0 -0
  460. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/pyproject.toml +0 -0
  461. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/coverage-tools.in +0 -0
  462. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/coverage-tools.txt +0 -0
  463. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/lint-tools.in +0 -0
  464. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/lint-tools.txt +0 -0
  465. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/mutation-tools.in +0 -0
  466. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/mutation-tools.txt +0 -0
  467. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/platform-pins.lock +0 -0
  468. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/release-tools.in +0 -0
  469. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/release-tools.txt +0 -0
  470. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/test-tools.in +0 -0
  471. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/requirements/test-tools.txt +0 -0
  472. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/a11y_check.py +0 -0
  473. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/bench_cli.sh +0 -0
  474. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/build_command_reference.py +0 -0
  475. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/build_demo_index.py +0 -0
  476. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/build_roadmap.py +0 -0
  477. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/build_scale_corpus.py +0 -0
  478. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/check_anchors.py +0 -0
  479. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/check_licenses.py +0 -0
  480. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/check_required_checks.py +0 -0
  481. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/ensure_eval_corpus.sh +0 -0
  482. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_corpus.py +0 -0
  483. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_explain.py +0 -0
  484. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_gate.py +0 -0
  485. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_recommend.py +0 -0
  486. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_retrieval.py +0 -0
  487. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/eval_stats_summary.py +0 -0
  488. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/import_budget.py +0 -0
  489. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/lock_toolchain.py +0 -0
  490. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/measure_registry.py +0 -0
  491. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/mutation_gate.py +0 -0
  492. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/mutation_shards.py +0 -0
  493. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/mutation_weights.json +0 -0
  494. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/page_budget.py +0 -0
  495. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/perf_gate.py +0 -0
  496. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/post_deploy_smoke.py +0 -0
  497. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/publish_eval_json.py +0 -0
  498. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/release_guard.py +0 -0
  499. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/release_preflight.py +0 -0
  500. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/scripts/serve_docs.py +0 -0
  501. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/setup.cfg +0 -0
  502. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/sonar-project.properties +0 -0
  503. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/style/README.md +0 -0
  504. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/style/boost.css +0 -0
  505. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/style/boost.js +0 -0
  506. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/style/demo.html +0 -0
  507. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/adapt.feature +0 -0
  508. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/browse.feature +0 -0
  509. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/count.feature +0 -0
  510. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/discover.feature +0 -0
  511. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/doctor.feature +0 -0
  512. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/environment.py +0 -0
  513. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/explain.feature +0 -0
  514. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/index.feature +0 -0
  515. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/install.feature +0 -0
  516. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/list.feature +0 -0
  517. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/mcp.feature +0 -0
  518. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/search.feature +0 -0
  519. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/steps/cli_steps.py +0 -0
  520. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/steps/discovery_steps.py +0 -0
  521. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/steps/mcp_steps.py +0 -0
  522. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/bdd/features/steps/quality_steps.py +0 -0
  523. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/conftest.py +0 -0
  524. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/baseline.json +0 -0
  525. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/explain.jsonl +0 -0
  526. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/golden-natural.jsonl +0 -0
  527. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/golden.jsonl +0 -0
  528. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/recommend.jsonl +0 -0
  529. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/eval/taps.txt +0 -0
  530. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_capabilities_policy.py +0 -0
  531. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_adapt.py +0 -0
  532. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_bmad.py +0 -0
  533. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_catalog.py +0 -0
  534. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_chat.py +0 -0
  535. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_configuration.py +0 -0
  536. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_discovery.py +0 -0
  537. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_hooks.py +0 -0
  538. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_info.py +0 -0
  539. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_intelligence.py +0 -0
  540. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_pkg.py +0 -0
  541. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_quality.py +0 -0
  542. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_taps.py +0 -0
  543. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_cli_team.py +0 -0
  544. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_everyday_loop.py +0 -0
  545. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_integrity_enforce.py +0 -0
  546. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_kind_conformance.py +0 -0
  547. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_property_parsers.py +0 -0
  548. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_run.py +0 -0
  549. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_tap_signing.py +0 -0
  550. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/functional/test_workspace_scope.py +0 -0
  551. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/README.md +0 -0
  552. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  553. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  554. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  555. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  556. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  557. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  558. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  559. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  560. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  561. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  562. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  563. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  564. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  565. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  566. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  567. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  568. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  569. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  570. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  571. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  572. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/fuzz_frontmatter.py +0 -0
  573. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/fuzz/fuzz_registry.py +0 -0
  574. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/langchain/conftest.py +0 -0
  575. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/langchain/test_graph.py +0 -0
  576. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/langchain/test_loader.py +0 -0
  577. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/langchain/test_retriever.py +0 -0
  578. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/make_fixture.py +0 -0
  579. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/perf/test_benchmarks.py +0 -0
  580. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/smoke.sh +0 -0
  581. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_a11y_check.py +0 -0
  582. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_action_pin_lockstep.py +0 -0
  583. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_adapters.py +0 -0
  584. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_adapters_multi.py +0 -0
  585. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_adapters_runner.py +0 -0
  586. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_agents.py +0 -0
  587. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_ai.py +0 -0
  588. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_bmad_core.py +0 -0
  589. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_boost_first_offer.py +0 -0
  590. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_bootstrap.py +0 -0
  591. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_browse.py +0 -0
  592. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_builtin.py +0 -0
  593. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_capabilities.py +0 -0
  594. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_catalog.py +0 -0
  595. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_catalogbundle.py +0 -0
  596. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_chat.py +0 -0
  597. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_check_anchors.py +0 -0
  598. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_check_licenses.py +0 -0
  599. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_claude_settings.py +0 -0
  600. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_clean_internal_cache.py +0 -0
  601. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_cliparse.py +0 -0
  602. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_codeql_analysis_key.py +0 -0
  603. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_command_reference_fresh.py +0 -0
  604. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_community_health_files.py +0 -0
  605. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_compact.py +0 -0
  606. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_complete.py +0 -0
  607. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_complete_rc_block.py +0 -0
  608. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_config.py +0 -0
  609. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_content_dedupe.py +0 -0
  610. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_content_identity.py +0 -0
  611. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_crash_redaction.py +0 -0
  612. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dedup_trust.py +0 -0
  613. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_demo_index.py +0 -0
  614. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense.py +0 -0
  615. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_embed_dedupe.py +0 -0
  616. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_fallback.py +0 -0
  617. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_fix_hint.py +0 -0
  618. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_shard_real_schema.py +0 -0
  619. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  620. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_shards.py +0 -0
  621. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dense_status.py +0 -0
  622. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_dependabot_config.py +0 -0
  623. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_docs_pages_linked.py +0 -0
  624. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_docsite_chrome.py +0 -0
  625. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_ed25519.py +0 -0
  626. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_embed.py +0 -0
  627. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_embed_local.py +0 -0
  628. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_embed_truncated_response.py +0 -0
  629. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_entry_key.py +0 -0
  630. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_errors_and_cli_table.py +0 -0
  631. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_baseline.py +0 -0
  632. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_corpus.py +0 -0
  633. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_faithfulness.py +0 -0
  634. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_gate.py +0 -0
  635. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_grading.py +0 -0
  636. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_metrics.py +0 -0
  637. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_eval_stats_summary.py +0 -0
  638. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  639. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_faithfulness.py +0 -0
  640. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_frontmatter.py +0 -0
  641. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_fuzz_targets.py +0 -0
  642. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  643. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_gitleaks_config.py +0 -0
  644. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_gitutil.py +0 -0
  645. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_gitutil_lfs.py +0 -0
  646. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_gitutil_sparse.py +0 -0
  647. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_imperative.py +0 -0
  648. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_import_budget.py +0 -0
  649. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_injectscan.py +0 -0
  650. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_install_permission_error.py +0 -0
  651. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_installscan.py +0 -0
  652. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_integrity.py +0 -0
  653. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_journal.py +0 -0
  654. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_langchain_packaging.py +0 -0
  655. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_link_ownership.py +0 -0
  656. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_localembed.py +0 -0
  657. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_localembed_e2e.py +0 -0
  658. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_lockfile.py +0 -0
  659. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_logs.py +0 -0
  660. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_marketing_counts.py +0 -0
  661. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mcp.py +0 -0
  662. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mcp_install_scan.py +0 -0
  663. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mcpdecl.py +0 -0
  664. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mcphost.py +0 -0
  665. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_measure_registry.py +0 -0
  666. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_minisign.py +0 -0
  667. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mutation_hardening.py +0 -0
  668. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mutation_shards.py +0 -0
  669. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mutation_subfile_shards.py +0 -0
  670. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_mutmut_source_paths.py +0 -0
  671. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_nethttp.py +0 -0
  672. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_output.py +0 -0
  673. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_page_budget.py +0 -0
  674. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_paths.py +0 -0
  675. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_perf_gate.py +0 -0
  676. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_pkg_confusions.py +0 -0
  677. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_pkg_injection.py +0 -0
  678. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_pkg_secrets.py +0 -0
  679. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_platform_pins.py +0 -0
  680. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_policy.py +0 -0
  681. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_post_deploy_smoke.py +0 -0
  682. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_project_mcp_sidecar.py +0 -0
  683. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_projectlock.py +0 -0
  684. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_provenance.py +0 -0
  685. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_publish_golden_dataset.py +0 -0
  686. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_rag.py +0 -0
  687. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_rag_fusion.py +0 -0
  688. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_registries_fresh.py +0 -0
  689. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_registry.py +0 -0
  690. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_release_guard.py +0 -0
  691. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_release_preflight.py +0 -0
  692. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_required_checks.py +0 -0
  693. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_resolve.py +0 -0
  694. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_roadmap_fresh.py +0 -0
  695. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_rules.py +0 -0
  696. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_scale_corpus.py +0 -0
  697. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_scopes.py +0 -0
  698. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_secretscan.py +0 -0
  699. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_selfupdate.py +0 -0
  700. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_serve.py +0 -0
  701. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_serve_docs.py +0 -0
  702. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_shards_matrix.py +0 -0
  703. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_smoke_covers_every_command.py +0 -0
  704. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_spin.py +0 -0
  705. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_stackprobe.py +0 -0
  706. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_staleness.py +0 -0
  707. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_store.py +0 -0
  708. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_store_materialize.py +0 -0
  709. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_sync_blocked_links.py +0 -0
  710. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  711. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_token_parity.py +0 -0
  712. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_toolchain_lock.py +0 -0
  713. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_trustaudit.py +0 -0
  714. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_typosquat.py +0 -0
  715. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_updatediff.py +0 -0
  716. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_util.py +0 -0
  717. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_version.py +0 -0
  718. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_visual_harness_flags.py +0 -0
  719. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_workflow_concurrency.py +0 -0
  720. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  721. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  722. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_workflow_timeouts.py +0 -0
  723. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_workflows.py +0 -0
  724. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  725. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/visual/a11y_check.mjs +0 -0
  726. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/visual/console_check.mjs +0 -0
  727. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/visual/package-lock.json +0 -0
  728. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/visual/package.json +0 -0
  729. {boost_skill_cli-1.2.4 → boost_skill_cli-1.2.6}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.4
3
+ Version: 1.2.6
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.4'
22
- __version_tuple__ = version_tuple = (1, 2, 4)
21
+ __version__ = version = '1.2.6'
22
+ __version_tuple__ = version_tuple = (1, 2, 6)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -37,6 +37,29 @@ class Tap:
37
37
  return self.path.is_dir()
38
38
 
39
39
 
40
+ # One path component, in BYTES. ext4, APFS and NTFS all stop at 255, and
41
+ # `Tap.safe_name` maps "/" to "__" — so the whole tap name becomes exactly one
42
+ # component under `~/.boost/repos` and this is its ceiling. A GitHub owner/repo
43
+ # maxes out at 140 (39 + 1 + 100), so nothing real comes near it.
44
+ MAX_NAME_BYTES = 255
45
+
46
+
47
+ def _looks_like_a_directory(p: Path) -> bool:
48
+ """True if `p` is an existing directory, False if the OS will not say.
49
+
50
+ `Path.exists()` is not total. pathlib swallows ENOENT, ENOTDIR, EBADF and
51
+ ELOOP — ENAMETOOLONG is *not* in that set, so a long enough component makes
52
+ `os.stat` raise straight out of `parse_spec` as a bare OSError, which is not
53
+ a BoostError and so is never framed by the CLI's error handling. A path the
54
+ OS refuses to look at is not a directory we can tap; that is a "no", not a
55
+ crash.
56
+ """
57
+ try:
58
+ return p.is_dir()
59
+ except OSError:
60
+ return False
61
+
62
+
40
63
  def parse_spec(spec: str):
41
64
  """Resolve a tap spec -> (name, url).
42
65
 
@@ -61,18 +84,35 @@ def parse_spec(spec: str):
61
84
  # own home-dir lookup (USERPROFILE on Windows), which ignores the $HOME
62
85
  # override the whole test suite (and BOOST_HOME sandboxing) relies on.
63
86
  p = paths.expand(spec)
64
- if p.exists() and p.is_dir():
65
- return (p.resolve().name, str(p.resolve()))
87
+ if _looks_like_a_directory(p):
88
+ return _checked(p.resolve().name, str(p.resolve()), spec)
66
89
  if spec.startswith(("http://", "https://", "git@", "ssh://")):
67
90
  tail = spec.split(":")[-1] if spec.startswith("git@") else spec
68
91
  parts = [x for x in tail.replace(".git", "").split("/") if x][-2:]
69
- return ("/".join(parts), spec)
92
+ return _checked("/".join(parts), spec, spec)
70
93
  if "/" in spec and " " not in spec:
71
- return (spec, "https://github.com/%s" % spec)
94
+ return _checked(spec, "https://github.com/%s" % spec, spec)
72
95
  raise BoostError("cannot parse tap spec %r" % spec,
73
96
  hint="use owner/repo, a git URL, or a local directory")
74
97
 
75
98
 
99
+ def _checked(name: str, url: str, spec: str) -> tuple[str, str]:
100
+ """The derived pair, or a BoostError if the name cannot be a directory.
101
+
102
+ The rule is on the *name*, never on the spec: a deep local path with a short
103
+ basename is a perfectly good tap, and its own length says nothing about the
104
+ component we are about to create. Caught here rather than at clone time,
105
+ where it surfaces as git's own ENAMETOOLONG on a path the user never typed.
106
+ """
107
+ if len(name.encode("utf-8")) > MAX_NAME_BYTES:
108
+ raise BoostError(
109
+ "tap name is too long (%d bytes, limit %d): %r"
110
+ % (len(name.encode("utf-8")), MAX_NAME_BYTES, spec[:80]),
111
+ hint="the name becomes one directory under ~/.boost/repos, and "
112
+ "no filesystem accepts a longer component")
113
+ return (name, url)
114
+
115
+
76
116
  def list_taps() -> list[Tap]:
77
117
  """Configured taps from config.json.
78
118
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "generated_note": "Curated skill/rule/workflow registries for boost. est_items are research estimates; verify by tapping. list_only repos are index/awesome lists that link out.",
3
- "count": 472,
4
- "est_items_total": 32697,
5
- "est_items_scannable": 28276,
3
+ "count": 470,
4
+ "est_items_total": 32628,
5
+ "est_items_scannable": 28207,
6
6
  "registries": [
7
7
  {
8
8
  "name": "Aaronontheweb/dotnet-cursor-rules",
@@ -2534,17 +2534,6 @@
2534
2534
  "list_only": false,
2535
2535
  "curated": true
2536
2536
  },
2537
- {
2538
- "name": "MikroJit-Technologies/claude-skills",
2539
- "url": "https://github.com/MikroJit-Technologies/claude-skills",
2540
- "type": "skill",
2541
- "category": "infra",
2542
- "focus": "13 skills for infra engineers - MikroTik RouterOS Proxmox K3s... (21 skills)",
2543
- "est_items": 21,
2544
- "confidence": "med",
2545
- "list_only": false,
2546
- "curated": true
2547
- },
2548
2537
  {
2549
2538
  "name": "minhnv0807/ai-business-skills",
2550
2539
  "url": "https://github.com/minhnv0807/ai-business-skills",
@@ -4954,17 +4943,6 @@
4954
4943
  "list_only": false,
4955
4944
  "curated": true
4956
4945
  },
4957
- {
4958
- "name": "pcliangx/AppGenesisForge",
4959
- "url": "https://github.com/pcliangx/AppGenesisForge",
4960
- "type": "workflow",
4961
- "category": "meta",
4962
- "focus": "AI Agent Team scaffold for Claude Code - 19 roles collaborate through... (19 skills, 29 workflows)",
4963
- "est_items": 48,
4964
- "confidence": "high",
4965
- "list_only": false,
4966
- "curated": true
4967
- },
4968
4946
  {
4969
4947
  "name": "piomin/claude-ai-spring-boot",
4970
4948
  "url": "https://github.com/piomin/claude-ai-spring-boot",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.4
3
+ Version: 1.2.6
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -335,6 +335,7 @@ docs/roadmap/items/one-shared-atomic-write-helper.md
335
335
  docs/roadmap/items/package-metadata-validation-twine-check-friends.md
336
336
  docs/roadmap/items/patch-coverage-gate-diff-cover.md
337
337
  docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md
338
+ docs/roadmap/items/pathlib-exists-is-not-total.md
338
339
  docs/roadmap/items/pep585-604-modernization-sweep.md
339
340
  docs/roadmap/items/performance-regression-gate-pytest-benchmark.md
340
341
  docs/roadmap/items/pin-the-lint-toolchain.md
@@ -410,6 +411,7 @@ docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md
410
411
  docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md
411
412
  docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md
412
413
  docs/roadmap/items/taps-check-out-freight-they-never-index.md
414
+ docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md
413
415
  docs/roadmap/items/theme-asset-linting-stylelint-eslint.md
414
416
  docs/roadmap/items/tool-call-eval-tier.md
415
417
  docs/roadmap/items/two-crashes-that-should-have-been-messages.md
@@ -564,6 +566,9 @@ tests/fuzz/corpus/registry/05-empty.txt
564
566
  tests/fuzz/corpus/registry/06-space.txt
565
567
  tests/fuzz/corpus/registry/07-slash.txt
566
568
  tests/fuzz/corpus/registry/08-bare-host.txt
569
+ tests/fuzz/corpus/registry/09-nul.txt
570
+ tests/fuzz/corpus/registry/10-name-too-long.txt
571
+ tests/fuzz/corpus/registry/11-long-owner-repo.txt
567
572
  tests/langchain/conftest.py
568
573
  tests/langchain/test_graph.py
569
574
  tests/langchain/test_loader.py
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: pathlib-exists-is-not-total
3
+ board: code
4
+ section: internals
5
+ status: shipped
6
+ category: Bug
7
+ complexity: S
8
+ impact: Medium
9
+ wow: 4
10
+ note: the weekly fuzzer has now found two crashes in one function, three weeks apart, and been ignored both times
11
+ order: 118
12
+ owner: fix/tap-spec-name-too-long
13
+ pr: 528
14
+ title: <code>Path.exists()</code> looks total, and is not
15
+ ---
16
+ <b><code>boost tap &lt;anything long enough&gt;</code> died with a raw traceback on Linux.</b>
17
+ <code>parse_spec</code> probes whether the spec names an existing directory, and
18
+ <code>pathlib</code> swallows only <b>ENOENT, ENOTDIR, EBADF and ELOOP</b> &mdash;
19
+ <b>ENAMETOOLONG is not in that set</b>. So on any filesystem with a 255-byte component limit, which
20
+ is to say ext4 and therefore every Linux runner and most users, <code>os.stat</code> raises straight
21
+ out through <code>parse_spec</code> as a bare <code>OSError</code>. Not a <code>BoostError</code>,
22
+ so the CLI's error handling never got to frame it.
23
+
24
+ <b>macOS does not reproduce it.</b> That is the whole reason it shipped: the only thing that ever saw
25
+ it was the scheduled Linux fuzz job.
26
+
27
+ <b>Which had been reporting it for three weeks.</b> <code>fuzz.yml</code> runs libFuzzer over
28
+ <code>parse_spec</code> weekly and has now failed <b>four scheduled runs out of four</b>. The first
29
+ three were one bug &mdash; an embedded NUL &mdash; found on 2026-07-25, 08-01 and 08-08 and fixed
30
+ after the third. The fourth, on 08-15, is this one, minimised to 91 bytes: <code>0x38</code>
31
+ followed by ninety <code>0xff</code>, each un-decodable and so each becoming U+FFFD, which is
32
+ <b>three</b> UTF-8 bytes apiece &mdash; <b>271 bytes</b> from an input only 91 characters long.
33
+
34
+ <b>The limit is on bytes, and on the derived name.</b> Measuring characters would have let exactly
35
+ this input through. Measuring the <em>spec</em> would have turned away a legitimate deep local path
36
+ whose basename is short, so the rule applies to the name that is about to become one directory under
37
+ <code>~/.boost/repos</code>, caught at the parse boundary rather than at clone time where it
38
+ resurfaces as git's own ENAMETOOLONG on a path the user never typed.
39
+
40
+ <b>Rejecting is only half of it.</b> A path the OS refuses to <em>look at</em> is a &ldquo;no&rdquo;,
41
+ not a crash, so the probe is now total by construction &mdash; and pinned by a test on every
42
+ platform, not only the one where it fails, because a test that needs a real over-long path proves
43
+ nothing on the machine most of this is written on.
44
+
45
+ <b>Both reproducers are now seeds.</b> The NUL one was fixed and never added to the corpus, so
46
+ the fuzzer was free to spend runs rediscovering it. <code>tests/fuzz/corpus/registry/</code> carries
47
+ both, which means the no-atheris seed smoke &mdash; the path that runs without the fuzzer installed
48
+ &mdash; is now a regression test for both.
@@ -0,0 +1,47 @@
1
+ ---
2
+ id: the-catalogue-advertised-repos-that-no-longer-exist
3
+ board: code
4
+ section: internals
5
+ status: shipped
6
+ category: Bug
7
+ complexity: S
8
+ impact: Medium
9
+ wow: 3
10
+ note: a scheduled gate had never once passed, and the reason was one deleted upstream in its pinned corpus
11
+ order: 117
12
+ owner: fix/retire-dead-registries
13
+ pr: 527
14
+ title: a convention that said "verify the repo is real" verified nothing
15
+ ---
16
+ <b>The <code>eval-scale</code> workflow has run once and failed once.</b> Not a retrieval
17
+ regression &mdash; the gate refused to score, correctly, because it could not materialise its
18
+ corpus: <code>pcliangx/AppGenesisForge</code> returns 404, so the clone falls through to
19
+ <code>could not read Username for 'https://github.com'</code> and the whole 183-repo corpus is
20
+ unavailable. The gate exits 75 rather than scoring the 182 that <em>are</em> reachable, and it is
21
+ right to: measured, dropping the largest repo alone moves recall@10 from 0.852 to 0.885 and hit@1
22
+ from 0.473 to 0.593, so a partial corpus clears the floors <em>more</em> easily than the real one.
23
+
24
+ <b>The dead repo was not only in the corpus &mdash; it was in the shipped catalogue.</b> Auditing all
25
+ <b>470</b> registries in <code>registries.json</code> against GitHub found <b>two</b> that no longer
26
+ exist. The other one, <code>MikroJit-Technologies/claude-skills</code>, is already famous here: it is
27
+ the tap that broke <code>boost update</code> for every other tap on the maintainer's machine. That
28
+ bug was fixed by making the update loop survive a dead tap &mdash; and the catalogue went on
29
+ recommending the repo to everyone else.
30
+
31
+ <b>Deleting the rows is not the fix.</b> The catalogue is assembled from research batches, and a
32
+ batch written before a repo vanished still names it, so the next sweep re-adds it from the same
33
+ stale source. <code>RETIRED</code> is the record that survives the sweep: name plus the reason, with
34
+ a test that fails if any of them reappears in a source tuple, in <code>LIST_ONLY</code>, or in the
35
+ generated payload.
36
+
37
+ <b>And the convention that should have caught this is now runnable.</b> CLAUDE.md has said
38
+ &ldquo;verify a repo is real before adding it&rdquo; for a long time; six stale rows are what a
39
+ convention with no command behind it is worth. <code>build_registries.py --verify-live</code> asks
40
+ GitHub about every shipped registry and prints what it finds. It is deliberately <em>not</em> a gate:
41
+ a required check over 470 third-party repos goes red the day any one of them is deleted, which is a
42
+ fact about GitHub and not about the commit under test &mdash; the same reasoning that pins every row
43
+ of <code>taps.txt</code> to a SHA.
44
+
45
+ <b>Archived is not gone.</b> Four registries are archived upstream and stay: they still clone and
46
+ still ship their items, and frozen is a different thing from deleted. The audit reports them
47
+ separately for the same reason.
@@ -133,7 +133,7 @@
133
133
  <div class="stat"><b>16</b><span>Shipped</span></div>
134
134
  <div class="stat"><b>1</b><span>Next up</span></div>
135
135
  <div class="stat"><b>7</b><span>Planned</span></div>
136
- <div class="stat"><b>254</b><span>Loop finds</span></div>
136
+ <div class="stat"><b>256</b><span>Loop finds</span></div>
137
137
  <!-- /ROADMAP:stats -->
138
138
  </div>
139
139
  </section>
@@ -4076,6 +4076,95 @@ a hash.</p></details>
4076
4076
  <span class="m">42.9% of 750,416 embedded chunks are duplicates — one was embedded 1,464 times</span>
4077
4077
  </div>
4078
4078
  </article>
4079
+
4080
+ <article class="cap rcard" id="the-catalogue-advertised-repos-that-no-longer-exist">
4081
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Bug</span></div>
4082
+ <h3>a convention that said "verify the repo is real" verified nothing</h3>
4083
+ <details class="cardbody"><summary>Write-up</summary>
4084
+ <p><b>The <code>eval-scale</code> workflow has run once and failed once.</b> Not a retrieval
4085
+ regression &mdash; the gate refused to score, correctly, because it could not materialise its
4086
+ corpus: <code>pcliangx/AppGenesisForge</code> returns 404, so the clone falls through to
4087
+ <code>could not read Username for 'https://github.com'</code> and the whole 183-repo corpus is
4088
+ unavailable. The gate exits 75 rather than scoring the 182 that <em>are</em> reachable, and it is
4089
+ right to: measured, dropping the largest repo alone moves recall@10 from 0.852 to 0.885 and hit@1
4090
+ from 0.473 to 0.593, so a partial corpus clears the floors <em>more</em> easily than the real one.
4091
+
4092
+ <b>The dead repo was not only in the corpus &mdash; it was in the shipped catalogue.</b> Auditing all
4093
+ <b>470</b> registries in <code>registries.json</code> against GitHub found <b>two</b> that no longer
4094
+ exist. The other one, <code>MikroJit-Technologies/claude-skills</code>, is already famous here: it is
4095
+ the tap that broke <code>boost update</code> for every other tap on the maintainer's machine. That
4096
+ bug was fixed by making the update loop survive a dead tap &mdash; and the catalogue went on
4097
+ recommending the repo to everyone else.
4098
+
4099
+ <b>Deleting the rows is not the fix.</b> The catalogue is assembled from research batches, and a
4100
+ batch written before a repo vanished still names it, so the next sweep re-adds it from the same
4101
+ stale source. <code>RETIRED</code> is the record that survives the sweep: name plus the reason, with
4102
+ a test that fails if any of them reappears in a source tuple, in <code>LIST_ONLY</code>, or in the
4103
+ generated payload.
4104
+
4105
+ <b>And the convention that should have caught this is now runnable.</b> CLAUDE.md has said
4106
+ &ldquo;verify a repo is real before adding it&rdquo; for a long time; six stale rows are what a
4107
+ convention with no command behind it is worth. <code>build_registries.py --verify-live</code> asks
4108
+ GitHub about every shipped registry and prints what it finds. It is deliberately <em>not</em> a gate:
4109
+ a required check over 470 third-party repos goes red the day any one of them is deleted, which is a
4110
+ fact about GitHub and not about the commit under test &mdash; the same reasoning that pins every row
4111
+ of <code>taps.txt</code> to a SHA.
4112
+
4113
+ <b>Archived is not gone.</b> Four registries are archived upstream and stay: they still clone and
4114
+ still ship their items, and frozen is a different thing from deleted. The audit reports them
4115
+ separately for the same reason.</p></details>
4116
+ <div class="meta">
4117
+ <span class="m">Complexity <b>S</b></span>
4118
+ <span class="m">Impact <b>Medium</b></span>
4119
+ <span class="m">Wow <b class="wow">★★★</b></span>
4120
+ <span class="m">a scheduled gate had never once passed, and the reason was one deleted upstream in its pinned corpus</span>
4121
+ </div>
4122
+ </article>
4123
+
4124
+ <article class="cap rcard" id="pathlib-exists-is-not-total">
4125
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Bug</span></div>
4126
+ <h3><code>Path.exists()</code> looks total, and is not</h3>
4127
+ <details class="cardbody"><summary>Write-up</summary>
4128
+ <p><b><code>boost tap &lt;anything long enough&gt;</code> died with a raw traceback on Linux.</b>
4129
+ <code>parse_spec</code> probes whether the spec names an existing directory, and
4130
+ <code>pathlib</code> swallows only <b>ENOENT, ENOTDIR, EBADF and ELOOP</b> &mdash;
4131
+ <b>ENAMETOOLONG is not in that set</b>. So on any filesystem with a 255-byte component limit, which
4132
+ is to say ext4 and therefore every Linux runner and most users, <code>os.stat</code> raises straight
4133
+ out through <code>parse_spec</code> as a bare <code>OSError</code>. Not a <code>BoostError</code>,
4134
+ so the CLI's error handling never got to frame it.
4135
+
4136
+ <b>macOS does not reproduce it.</b> That is the whole reason it shipped: the only thing that ever saw
4137
+ it was the scheduled Linux fuzz job.
4138
+
4139
+ <b>Which had been reporting it for three weeks.</b> <code>fuzz.yml</code> runs libFuzzer over
4140
+ <code>parse_spec</code> weekly and has now failed <b>four scheduled runs out of four</b>. The first
4141
+ three were one bug &mdash; an embedded NUL &mdash; found on 2026-07-25, 08-01 and 08-08 and fixed
4142
+ after the third. The fourth, on 08-15, is this one, minimised to 91 bytes: <code>0x38</code>
4143
+ followed by ninety <code>0xff</code>, each un-decodable and so each becoming U+FFFD, which is
4144
+ <b>three</b> UTF-8 bytes apiece &mdash; <b>271 bytes</b> from an input only 91 characters long.
4145
+
4146
+ <b>The limit is on bytes, and on the derived name.</b> Measuring characters would have let exactly
4147
+ this input through. Measuring the <em>spec</em> would have turned away a legitimate deep local path
4148
+ whose basename is short, so the rule applies to the name that is about to become one directory under
4149
+ <code>~/.boost/repos</code>, caught at the parse boundary rather than at clone time where it
4150
+ resurfaces as git's own ENAMETOOLONG on a path the user never typed.
4151
+
4152
+ <b>Rejecting is only half of it.</b> A path the OS refuses to <em>look at</em> is a &ldquo;no&rdquo;,
4153
+ not a crash, so the probe is now total by construction &mdash; and pinned by a test on every
4154
+ platform, not only the one where it fails, because a test that needs a real over-long path proves
4155
+ nothing on the machine most of this is written on.
4156
+
4157
+ <b>Both reproducers are now seeds.</b> The NUL one was fixed and never added to the corpus, so
4158
+ the fuzzer was free to spend runs rediscovering it. <code>tests/fuzz/corpus/registry/</code> carries
4159
+ both, which means the no-atheris seed smoke &mdash; the path that runs without the fuzzer installed
4160
+ &mdash; is now a regression test for both.</p></details>
4161
+ <div class="meta">
4162
+ <span class="m">Complexity <b>S</b></span>
4163
+ <span class="m">Impact <b>Medium</b></span>
4164
+ <span class="m">Wow <b class="wow">★★★★</b></span>
4165
+ <span class="m">the weekly fuzzer has now found two crashes in one function, three weeks apart, and been ignored both times</span>
4166
+ </div>
4167
+ </article>
4079
4168
  <!-- /ROADMAP:cards -->
4080
4169
 
4081
4170
  </div>
@@ -46,6 +46,26 @@ LIST_ONLY = {
46
46
  "langgptai/awesome-claude-prompts",
47
47
  }
48
48
 
49
+ # Repos that were curated here and have since been deleted or made private.
50
+ # They are recorded rather than merely deleted because the catalogue is
51
+ # assembled from research batches: a batch written before the repo vanished
52
+ # still names it, so dropping the row alone lets the next sweep re-add it from
53
+ # the same stale source. Verified with `--verify-live`, which is the runnable
54
+ # form of CLAUDE.md's "verify a repo is real before adding it" — a convention
55
+ # that six dead rows proved does not enforce itself.
56
+ #
57
+ # Archived-but-reachable repos are deliberately NOT here. They still clone and
58
+ # still ship their items; frozen is not gone.
59
+ RETIRED = {
60
+ "MikroJit-Technologies/claude-skills":
61
+ "404 since 2026-08 — the tap that broke `boost update` for every "
62
+ "other tap on the maintainer's machine (see roadmap "
63
+ "one-dead-tap-broke-every-update)",
64
+ "pcliangx/AppGenesisForge":
65
+ "404 since 2026-08 — clone prompts for credentials, which is what "
66
+ "fails the scheduled eval-scale gate on its pinned corpus",
67
+ }
68
+
49
69
  # --- skills (SKILL.md registries) -------------------------------------------
50
70
  SKILLS = [
51
71
  ("travisvn/awesome-claude-skills", "meta", "Curated awesome-list of Claude Skills, tools, and resources", 60, "high"),
@@ -291,7 +311,6 @@ SKILLS = [
291
311
  ("anmolnagpal/devops-skills", "infra", "Multi-tool DevOps skills for Claude Code, Cursor, and Codex... (18 skills, 17 rules)", 35, "med"),
292
312
  ("kcns008/cluster-skills", "infra", "A collection of skills for AI coding agents working with Kubernetes... (19 skills, 13 workflows)", 32, "med"),
293
313
  ("oci-ai-architects/cline-oci-ai-architect-skills", "infra", "Cline skills, rules, and workflows for AI Architects. Cross-platform... (14 skills, 2 rules, 11 workflows)", 27, "med"),
294
- ("MikroJit-Technologies/claude-skills", "infra", "13 skills for infra engineers - MikroTik RouterOS Proxmox K3s... (21 skills)", 21, "med"),
295
314
  ("qwedsazxc78/devops-ai-skill", "infra", "Cross-platform DevOps AI Skill Pack - Horus (IaC) + Zeus (GitOps)... (14 skills, 7 workflows)", 21, "med"),
296
315
  ("foxj77/claude-code-skills", "infra", "Claude Code skills for Kubernetes platform engineering, GitOps, and... (19 skills)", 19, "med"),
297
316
  ("pulumi/agent-skills", "infra", "15 skills", 15, "high"),
@@ -581,7 +600,6 @@ WORKFLOWS = [
581
600
  ("composio-community/awesome-claude-plugins", "meta", "A curated list of Plugins that let you extend Claude Code with custom... (23 skills, 38 workflows)", 61, "high"),
582
601
  ("anthropics/claude-plugins-official", "meta", "Official, Anthropic-managed directory of high quality Claude Code Plugins (60 workflows)", 60, "high"),
583
602
  ("glittercowboy/taches-cc-resources", "meta", "A collection of my favorite custom Claude Code resources to make life... (12 skills, 42 workflows)", 54, "high"),
584
- ("pcliangx/AppGenesisForge", "meta", "AI Agent Team scaffold for Claude Code - 19 roles collaborate through... (19 skills, 29 workflows)", 48, "high"),
585
603
  ("anthropics/claude-cookbooks", "meta", "A collection of notebooks/recipes showcasing some fun and effective... (4 skills, 11 workflows)", 15, "high"),
586
604
  # --- end 2026-07 batch ---
587
605
  ]
@@ -659,6 +677,57 @@ def _summary(payload: dict) -> None:
659
677
  print(" %-9s %3d repos ~%d items" % (typ, n, est))
660
678
 
661
679
 
680
+ def verify_live(names: list[str], token: str | None = None) -> int:
681
+ """Report which of ``names`` no longer resolve on GitHub.
682
+
683
+ Deliberately NOT part of `--check` or any required gate. The lesson
684
+ `tests/eval/taps.txt` already records — pin third-party repos, never let
685
+ someone else's push decide whether our build is green — applies here twice
686
+ over: a required check that queries 470 repos would go red the day any one
687
+ of them is deleted, which is a fact about GitHub rather than about this
688
+ commit. Run it when curating, and record what it finds in RETIRED.
689
+
690
+ Returns the number of repos that could not be resolved.
691
+ """
692
+ import http.client
693
+ import urllib.error
694
+ import urllib.request
695
+
696
+ missing, archived = [], []
697
+ for i, name in enumerate(names, 1):
698
+ req = urllib.request.Request( # noqa: S310 the https prefix is a literal
699
+ "https://api.github.com/repos/%s" % name,
700
+ headers={"Accept": "application/vnd.github+json",
701
+ "User-Agent": "boost-registry-audit"})
702
+ if token:
703
+ req.add_header("Authorization", "token %s" % token)
704
+ try:
705
+ with urllib.request.urlopen(req, timeout=30) as fh: # noqa: S310 same
706
+ if json.loads(fh.read().decode("utf-8")).get("archived"):
707
+ archived.append(name)
708
+ except urllib.error.HTTPError as exc:
709
+ if exc.code in (404, 451):
710
+ missing.append(name)
711
+ else: # rate limit, transient 5xx — not a verdict
712
+ print(" ? %-50s HTTP %s" % (name, exc.code), file=sys.stderr)
713
+ except (OSError, http.client.HTTPException,
714
+ json.JSONDecodeError) as exc:
715
+ # A truncated response is a fact about the network, not about the
716
+ # repo — 470 sequential requests will hit one, and a sweep that
717
+ # aborts on it reports "clean" for everything it never reached.
718
+ print(" ? %-50s %s" % (name, exc), file=sys.stderr)
719
+ if i % 50 == 0:
720
+ print(" ...%d/%d" % (i, len(names)), file=sys.stderr)
721
+
722
+ for name in archived:
723
+ print("archived %s" % name)
724
+ for name in missing:
725
+ print("MISSING %s" % name)
726
+ print("%d checked: %d missing, %d archived"
727
+ % (len(names), len(missing), len(archived)), file=sys.stderr)
728
+ return len(missing)
729
+
730
+
662
731
  def main(argv: list[str] | None = None) -> int:
663
732
  parser = argparse.ArgumentParser(description=__doc__)
664
733
  parser.add_argument(
@@ -666,11 +735,22 @@ def main(argv: list[str] | None = None) -> int:
666
735
  help="verify the committed JSON matches a fresh build; exit 1 on drift "
667
736
  "(does not write). Used in CI to catch un-regenerated edits.",
668
737
  )
738
+ parser.add_argument(
739
+ "--verify-live", action="store_true",
740
+ help="ask GitHub whether every shipped registry still exists and print "
741
+ "the ones that do not. Needs network; never part of a gate. Set "
742
+ "GITHUB_TOKEN to lift the 60/hour anonymous rate limit.",
743
+ )
669
744
  args = parser.parse_args(argv)
670
745
 
671
746
  payload = build_payload()
672
747
  fresh = render(payload)
673
748
 
749
+ if args.verify_live:
750
+ import os
751
+ names = [e["name"] for e in payload["registries"]]
752
+ return 1 if verify_live(names, os.environ.get("GITHUB_TOKEN")) else 0
753
+
674
754
  if args.check:
675
755
  current = DEST.read_text(encoding="utf-8") if DEST.exists() else ""
676
756
  if current != fresh:
@@ -12,9 +12,9 @@
12
12
  # fail. It is A scale, not THE scale: hit@1 decays continuously with corpus
13
13
  # size and never plateaus, so no size here can be canonical.
14
14
  #
15
- # 163 distractor registries, 20,017 est items (the curated list's own estimate).
15
+ # 165 distractor registries, 20,034 est items (the curated list's own estimate).
16
16
  # est_items under-reports by about 2.5x against a real install, so that
17
- # projects to roughly 50,817 actual entries — a projection, not a measurement.
17
+ # projects to roughly 50,860 actual entries — a projection, not a measurement.
18
18
  # The real counts are written in by `eval_corpus.py --refresh`, which is
19
19
  # also what pins these rows. Regenerating KEEPS any pin already here, so
20
20
  # --check verifies the selection, not the pins.
@@ -130,83 +130,85 @@ glittercowboy/taches-cc-resources
130
130
  40RTY-ai/shopify-admin-skills
131
131
  aiwonglab/claude_code_agents
132
132
  guanyang/open-agent-hub
133
- pcliangx/AppGenesisForge
134
- phuryn/pm-skills
135
133
  trailofbits/skills
136
- glebis/claude-skills
134
+ phuryn/pm-skills
137
135
  cloudflare/agents
138
- browser-act/skills
136
+ glebis/claude-skills
139
137
  pluginagentmarketplace/custom-plugin-nextjs
140
- forcedotcom/sf-skills
138
+ browser-act/skills
141
139
  syahiidkamil/Software-Engineer-AI-Agent-Atlas
142
- Orchestra-Research/AI-Research-SKILLs
140
+ forcedotcom/sf-skills
143
141
  alirezarezvani/claude-code-skill-factory
144
- majiayu000/spellbook
142
+ Orchestra-Research/AI-Research-SKILLs
145
143
  datopian/portaljs
146
- openakita/openakita
144
+ majiayu000/spellbook
147
145
  dl-ezo/claude-code-sub-agents
148
- Leooooooow/Awesome-eCommerce-Skills
146
+ openakita/openakita
149
147
  humanlayer/humanlayer
150
- elementalsouls/Claude-BugHunter
148
+ Leooooooow/Awesome-eCommerce-Skills
151
149
  anthropics/claude-code
152
- full-stack-skills/t2ui-skills
150
+ elementalsouls/Claude-BugHunter
153
151
  lst97/claude-code-sub-agents
154
- google/skills
152
+ full-stack-skills/t2ui-skills
155
153
  darrenhinde/OpenAgentsControl
156
- lebsral/DSPy-Programming-not-prompting-LMs-skills
154
+ google/skills
157
155
  dotnet/skills
158
- SpaceZephyr/myskill
156
+ lebsral/DSPy-Programming-not-prompting-LMs-skills
159
157
  danielrosehill/Claude-Slash-Commands
160
- ihlamury/design-skills
158
+ SpaceZephyr/myskill
161
159
  kasperjunge/agent-resources-legacy
162
- dpearson2699/swift-ios-skills
160
+ ihlamury/design-skills
163
161
  centminmod/my-claude-code-setup
164
- inference-sh/skills
162
+ dpearson2699/swift-ios-skills
165
163
  pluginagentmarketplace/custom-plugin-kotlin
166
- product-on-purpose/pm-skills
164
+ inference-sh/skills
167
165
  hnaymyh123-henry/claude-dev-skill
168
- tech-leads-club/agent-skills
166
+ product-on-purpose/pm-skills
169
167
  klovaaxel/web-a11y-agent-skills
170
- zhaoxuya520/reverse-skill
168
+ tech-leads-club/agent-skills
171
169
  brennercruvinel/CCPlugins
172
- ninehills/skills
170
+ zhaoxuya520/reverse-skill
173
171
  vijaythecoder/awesome-claude-agents
174
- syncfusion/maui-ui-components-skills
172
+ ninehills/skills
175
173
  codenamev/ai-software-architect
176
- ancoleman/ai-design-components
174
+ syncfusion/maui-ui-components-skills
177
175
  steipete/agent-rules
178
- deanpeters/Product-Manager-Skills
176
+ ancoleman/ai-design-components
179
177
  talknerdytome-labs/claude-agents
180
- jamditis/claude-skills-journalism
178
+ deanpeters/Product-Manager-Skills
181
179
  anthropics/claude-cookbooks
182
- Houseofmvps/ultraship
180
+ jamditis/claude-skills-journalism
183
181
  glapsfun/cnative-skills
184
- jame581/GodotPrompter
182
+ Houseofmvps/ultraship
185
183
  iannuttall/claude-agents
186
- BuilderIO/agent-native
184
+ jame581/GodotPrompter
187
185
  ducpm2303/claude-java-plugins
188
- SamurAIGPT/Generative-Media-Skills
186
+ BuilderIO/agent-native
189
187
  piomin/claude-ai-spring-boot
190
- tradermonty/claude-trading-skills
188
+ SamurAIGPT/Generative-Media-Skills
191
189
  anthropics/claude-code-action
192
- LambdaTest/agent-skills
190
+ tradermonty/claude-trading-skills
193
191
  anthropics/financial-services
194
- anbeime/skill
192
+ LambdaTest/agent-skills
195
193
  hikarubw/claude-commands
196
- internet-court/internet-court-skill
194
+ anbeime/skill
197
195
  anthropics/claude-agent-sdk-demos
198
- TheGoat395/Codex-Skills
196
+ internet-court/internet-court-skill
199
197
  comet-ml/opik-claude-code-plugin
200
- daymade/claude-code-skills
198
+ TheGoat395/Codex-Skills
201
199
  docker/claude-plugins
202
- JasonColapietro/suede-creator-skills
200
+ daymade/claude-code-skills
203
201
  langchain-ai/deepagents
204
- bergside/awesome-design-skills
202
+ JasonColapietro/suede-creator-skills
205
203
  zenml-io/skills
206
- air-gapped/skills
204
+ bergside/awesome-design-skills
207
205
  DavidROliverBA/Daves-Claude-Code-Skills
208
- jeffallan/claude-skills
206
+ air-gapped/skills
209
207
  anthropics/claude-agent-sdk-typescript
210
- spencerpauly/awesome-cursor-skills
208
+ jeffallan/claude-skills
211
209
  anthropics/claude-code-security-review
210
+ spencerpauly/awesome-cursor-skills
211
+ anthropics/cwc-long-running-agents
212
212
  chaterm/terminal-skills
213
+ jeremylongshore/claude-code-plugins-plus-skills
214
+ wondelai/skills
@@ -0,0 +1 @@
1
+ 8������������������������������������������������������������������������������������������