boost-skill-cli 1.2.104__tar.gz → 1.2.105__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 (1015) hide show
  1. {boost_skill_cli-1.2.104/boost_skill_cli.egg-info → boost_skill_cli-1.2.105}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  4. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/SOURCES.txt +4 -0
  5. boost_skill_cli-1.2.105/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +49 -0
  6. boost_skill_cli-1.2.105/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +41 -0
  7. boost_skill_cli-1.2.105/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +42 -0
  8. boost_skill_cli-1.2.105/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +50 -0
  9. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap.html +168 -2
  10. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.gitattributes +0 -0
  11. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.gitignore +0 -0
  12. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.gitleaks.toml +0 -0
  13. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.htmlvalidate.json +0 -0
  14. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.lighthouserc.json +0 -0
  15. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.lycheeignore +0 -0
  16. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.markdownlint-cli2.jsonc +0 -0
  17. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.pre-commit-config.yaml +0 -0
  18. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.stylelintrc.json +0 -0
  19. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.vale/styles/boost/AIWriting.yml +0 -0
  20. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.vale/styles/boost/Terminology.yml +0 -0
  21. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  22. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/.vale.ini +0 -0
  23. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/CLAUDE.md +0 -0
  24. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/CODE_OF_CONDUCT.md +0 -0
  25. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/CONTRIBUTING.md +0 -0
  26. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/DCO +0 -0
  27. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/GOVERNANCE.md +0 -0
  28. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/LICENSE +0 -0
  29. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/MAINTAINERS.md +0 -0
  30. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/MANIFEST.in +0 -0
  31. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/Makefile +0 -0
  32. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/README.md +0 -0
  33. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/SECURITY.md +0 -0
  34. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/SUPPORT.md +0 -0
  35. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost +0 -0
  36. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/__init__.py +0 -0
  37. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/__main__.py +0 -0
  38. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/cli.py +0 -0
  39. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/cliparse.py +0 -0
  40. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/__init__.py +0 -0
  41. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/_common.py +0 -0
  42. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/bmad.py +0 -0
  43. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/configuration.py +0 -0
  44. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/discovery.py +0 -0
  45. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/hooks.py +0 -0
  46. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/info.py +0 -0
  47. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/intelligence.py +0 -0
  48. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/pkg.py +0 -0
  49. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/quality.py +0 -0
  50. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/quickstart.py +0 -0
  51. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/run.py +0 -0
  52. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/safety.py +0 -0
  53. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/taps.py +0 -0
  54. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/commands/team.py +0 -0
  55. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/__init__.py +0 -0
  56. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/adapters.py +0 -0
  57. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/agents.py +0 -0
  58. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/ai.py +0 -0
  59. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/aihost.py +0 -0
  60. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/archive.py +0 -0
  61. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/bmad.py +0 -0
  62. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/bootstrap.py +0 -0
  63. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/browse.py +0 -0
  64. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/builtin.py +0 -0
  65. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/capabilities.py +0 -0
  66. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/catalog.py +0 -0
  67. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/catalogbundle.py +0 -0
  68. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/chat.py +0 -0
  69. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/claude_settings.py +0 -0
  70. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/cohort.py +0 -0
  71. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/complete.py +0 -0
  72. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/config.py +0 -0
  73. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/dense.py +0 -0
  74. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/deps.py +0 -0
  75. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/discovery.py +0 -0
  76. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/ed25519.py +0 -0
  77. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/embed.py +0 -0
  78. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/faithfulness.py +0 -0
  79. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/frontmatter.py +0 -0
  80. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/gitutil.py +0 -0
  81. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/hookhost.py +0 -0
  82. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/imperative.py +0 -0
  83. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/injectscan.py +0 -0
  84. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/installscan.py +0 -0
  85. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/integrity.py +0 -0
  86. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/journal.py +0 -0
  87. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/jsonstate.py +0 -0
  88. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/localembed.py +0 -0
  89. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/lockfile.py +0 -0
  90. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/logs.py +0 -0
  91. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/mcp.py +0 -0
  92. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/mcpdecl.py +0 -0
  93. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/mcphost.py +0 -0
  94. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/minisign.py +0 -0
  95. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/nethttp.py +0 -0
  96. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/output.py +0 -0
  97. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/paths.py +0 -0
  98. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/policy.py +0 -0
  99. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/projectlock.py +0 -0
  100. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/provenance.py +0 -0
  101. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/rag.py +0 -0
  102. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/registry.py +0 -0
  103. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/resolve.py +0 -0
  104. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/rules.py +0 -0
  105. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/scopes.py +0 -0
  106. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/secretscan.py +0 -0
  107. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/selfupdate.py +0 -0
  108. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/serve.py +0 -0
  109. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/shards.py +0 -0
  110. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/stackprobe.py +0 -0
  111. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/staleness.py +0 -0
  112. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/store.py +0 -0
  113. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/trustaudit.py +0 -0
  114. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/typedvalue.py +0 -0
  115. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/typosquat.py +0 -0
  116. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/updatediff.py +0 -0
  117. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/util.py +0 -0
  118. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/core/workflows.py +0 -0
  119. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/data/registries.json +0 -0
  120. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/data/rules/boost-first.mdc +0 -0
  121. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/errors.py +0 -0
  122. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_cli/spin.py +0 -0
  123. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/__init__.py +0 -0
  124. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/_compat.py +0 -0
  125. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/graph.py +0 -0
  126. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/loader.py +0 -0
  127. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/py.typed +0 -0
  128. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_langchain/retriever.py +0 -0
  129. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  130. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  131. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/requires.txt +0 -0
  132. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/boost_skill_cli.egg-info/top_level.txt +0 -0
  133. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/codecov.yml +0 -0
  134. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/.claude/settings.local.json +0 -0
  135. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/DEBUGGING.md +0 -0
  136. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/adapters.html +0 -0
  137. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/architecture/README.md +0 -0
  138. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/architecture/c4-components-core.md +0 -0
  139. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/architecture/c4-containers.md +0 -0
  140. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/architecture/c4-context.md +0 -0
  141. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/architecture/c4-dynamic-install.md +0 -0
  142. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/bmad.md +0 -0
  143. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/distill.gif +0 -0
  144. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/doctor.gif +0 -0
  145. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/explain.gif +0 -0
  146. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/hooks.gif +0 -0
  147. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/install.gif +0 -0
  148. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/pulse.gif +0 -0
  149. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/search.gif +0 -0
  150. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/gifs/tap.gif +0 -0
  151. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/distill.tape +0 -0
  152. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/doctor.tape +0 -0
  153. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/explain.tape +0 -0
  154. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/hooks.tape +0 -0
  155. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/install.tape +0 -0
  156. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/pulse.tape +0 -0
  157. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/search.tape +0 -0
  158. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel/tapes/tap.tape +0 -0
  159. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/carousel.html +0 -0
  160. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/chat.html +0 -0
  161. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/code-review.md +0 -0
  162. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/commands.html +0 -0
  163. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/commit-audit.md +0 -0
  164. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/demo-index.json +0 -0
  165. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/demo.gif +0 -0
  166. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/demo.html +0 -0
  167. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/demo.tape +0 -0
  168. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/dependencies.md +0 -0
  169. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/design-roadmap.html +0 -0
  170. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/eval-latest.json +0 -0
  171. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/eval.html +0 -0
  172. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/index.html +0 -0
  173. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/langchain.html +0 -0
  174. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/mcp-hub.html +0 -0
  175. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/openssf-badge.md +0 -0
  176. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/openssf-playbook.md +0 -0
  177. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/rag-architecture.md +0 -0
  178. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D01.md +0 -0
  179. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D02.md +0 -0
  180. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D03.md +0 -0
  181. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D04.md +0 -0
  182. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D05.md +0 -0
  183. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D06.md +0 -0
  184. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D07.md +0 -0
  185. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D08.md +0 -0
  186. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D09.md +0 -0
  187. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D10.md +0 -0
  188. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D11.md +0 -0
  189. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D12.md +0 -0
  190. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D13.md +0 -0
  191. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D14.md +0 -0
  192. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D15.md +0 -0
  193. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D16.md +0 -0
  194. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D17.md +0 -0
  195. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D18.md +0 -0
  196. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D19.md +0 -0
  197. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D20.md +0 -0
  198. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D21.md +0 -0
  199. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D22.md +0 -0
  200. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D23.md +0 -0
  201. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D24.md +0 -0
  202. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D25.md +0 -0
  203. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D26.md +0 -0
  204. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/BOOST-D27.md +0 -0
  205. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  206. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  207. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  208. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  209. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  210. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  211. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  212. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  213. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  214. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  215. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  216. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  217. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  218. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  219. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  220. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-attest-findings.md +0 -0
  221. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-audit-findings.md +0 -0
  222. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  223. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-browse-findings.md +0 -0
  224. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  225. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  226. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  227. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  228. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-chat-findings.md +0 -0
  229. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  230. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  231. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  232. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-completions-findings.md +0 -0
  233. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-config-findings.md +0 -0
  234. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  235. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-context-findings.md +0 -0
  236. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  237. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  238. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-create-findings.md +0 -0
  239. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  240. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-deps-findings.md +0 -0
  241. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-discover-findings.md +0 -0
  242. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  243. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  244. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-drift-findings.md +0 -0
  245. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  246. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-edit-findings.md +0 -0
  247. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  248. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-explain-findings.md +0 -0
  249. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-export-findings.md +0 -0
  250. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  251. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  252. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  253. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  254. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  255. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-health-findings.md +0 -0
  256. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  257. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  258. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-import-findings.md +0 -0
  259. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-index-findings.md +0 -0
  260. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  261. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  262. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-findings.md +0 -0
  263. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  264. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  265. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-lint-findings.md +0 -0
  266. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-log-findings.md +0 -0
  267. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  268. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  269. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  270. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  271. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  272. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  273. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  274. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  275. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  276. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  277. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  278. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-policy-findings.md +0 -0
  279. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-preview-findings.md +0 -0
  280. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-profile-findings.md +0 -0
  281. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  282. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  283. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  284. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  285. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  286. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  287. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  288. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  289. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  290. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-replay-findings.md +0 -0
  291. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-root-findings.md +0 -0
  292. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  293. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-run-findings.md +0 -0
  294. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  295. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-search-findings.md +0 -0
  296. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  297. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  298. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  299. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  300. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  301. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  302. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  303. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  304. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-sync-findings.md +0 -0
  305. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tag-findings.md +0 -0
  306. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  307. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-tap-findings.md +0 -0
  308. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-taps-findings.md +0 -0
  309. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  310. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-test-findings.md +0 -0
  311. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-trust-findings.md +0 -0
  312. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  313. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  314. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-untap-findings.md +0 -0
  315. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-update-findings.md +0 -0
  316. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  317. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-verify-findings.md +0 -0
  318. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/audit-who-findings.md +0 -0
  319. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  320. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  321. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  322. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  323. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  324. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  325. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  326. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-first-rule.md +0 -0
  327. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  328. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  329. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/branch-current-gate.md +0 -0
  330. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  331. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  332. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  333. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  334. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  335. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  336. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  337. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  338. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  339. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  340. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  341. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  342. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  343. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  344. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  345. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  346. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  347. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-command-audit.md +0 -0
  348. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  349. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  350. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  351. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  352. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/command-carousel-page.md +0 -0
  353. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  354. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  355. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  356. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  357. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  358. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  359. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  360. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  361. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  362. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  363. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  364. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  365. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  366. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  367. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  368. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  369. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  370. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  371. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  372. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  373. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  374. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  375. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  376. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  377. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  378. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  379. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  380. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  381. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  382. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  383. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  384. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  385. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  386. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  387. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  388. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  389. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  390. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  391. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  392. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  393. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  394. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  395. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  396. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  397. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  398. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  399. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  400. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  401. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  402. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  403. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  404. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  405. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  406. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  407. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  408. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  409. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  410. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  411. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  412. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  413. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  414. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  415. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  416. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  417. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  418. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  419. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  420. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  421. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  422. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/github-community-health-files.md +0 -0
  423. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  424. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  425. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  426. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  427. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  428. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  429. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  430. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  431. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  432. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  433. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  434. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  435. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  436. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  437. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  438. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  439. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  440. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  441. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  442. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  443. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  444. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  445. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  446. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  447. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  448. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  449. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  450. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  451. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  452. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  453. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  454. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  455. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  456. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  457. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  458. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  459. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  460. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  461. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  462. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  463. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  464. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  465. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  466. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  467. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  468. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  469. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  470. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  471. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  472. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  473. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  474. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  475. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  476. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  477. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  478. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  479. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  480. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  481. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  482. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  483. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  484. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  485. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  486. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  487. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  488. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  489. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  490. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  491. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  492. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  493. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  494. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  495. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  496. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  497. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  498. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  499. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  500. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  501. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  502. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  503. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  504. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  505. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  506. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-playbook.md +0 -0
  507. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/openssf-silver.md +0 -0
  508. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  509. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  510. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  511. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  512. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  513. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  514. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  515. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  516. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  517. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  518. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  519. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  520. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  521. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  522. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  523. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  524. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  525. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  526. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  527. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  528. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  529. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  530. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  531. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  532. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  533. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  534. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  535. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  536. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  537. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  538. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  539. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  540. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  541. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  542. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  543. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  544. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  545. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  546. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  547. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  548. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  549. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  550. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/relicence-apache-2.md +0 -0
  551. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  552. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  553. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  554. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  555. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  556. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  557. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  558. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  559. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  560. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  561. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  562. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  563. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  564. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  565. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  566. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  567. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  568. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  569. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  570. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  571. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  572. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  573. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  574. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  575. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  576. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  577. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  578. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  579. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  580. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  581. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  582. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  583. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  584. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  585. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  586. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  587. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  588. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  589. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  590. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  591. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  592. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  593. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  594. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  595. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  596. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  597. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  598. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  599. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  600. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  601. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  602. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  603. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  604. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  605. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  606. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  607. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  608. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  609. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  610. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  611. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  612. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  613. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  614. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  615. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  616. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  617. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  618. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  619. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  620. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  621. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  622. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  623. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  624. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  625. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  626. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  627. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  628. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  629. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  630. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  631. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  632. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  633. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  634. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  635. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  636. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  637. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  638. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  639. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  640. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  641. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  642. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  643. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  644. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  645. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  646. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  647. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/workspace-scope-install.md +0 -0
  648. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/zip-strict-audit.md +0 -0
  649. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  650. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  651. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/security-design.md +0 -0
  652. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/semantic-search.md +0 -0
  653. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  654. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/verifying-releases.md +0 -0
  655. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/meta.md +0 -0
  656. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/openvex.json +0 -0
  657. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  658. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  659. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  660. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  661. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/eslint.config.mjs +0 -0
  662. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/README.md +0 -0
  663. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/__init__.py +0 -0
  664. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/baseline.json +0 -0
  665. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/faithfulness.py +0 -0
  666. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/golden_set.json +0 -0
  667. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/make_corpus.py +0 -0
  668. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/make_golden.py +0 -0
  669. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/metrics.py +0 -0
  670. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/publish_golden_dataset.py +0 -0
  671. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/evals/run_evals.py +0 -0
  672. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/examples/README.md +0 -0
  673. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/examples/adapt-demo.sh +0 -0
  674. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/examples/boost-run-prototype.sh +0 -0
  675. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/index.html +0 -0
  676. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/noxfile.py +0 -0
  677. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/pyproject.toml +0 -0
  678. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/coverage-tools.in +0 -0
  679. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/coverage-tools.txt +0 -0
  680. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/lint-tools.in +0 -0
  681. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/lint-tools.txt +0 -0
  682. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/mutation-tools.in +0 -0
  683. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/mutation-tools.txt +0 -0
  684. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/platform-pins.lock +0 -0
  685. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/release-tools.in +0 -0
  686. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/release-tools.txt +0 -0
  687. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/test-tools.in +0 -0
  688. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/requirements/test-tools.txt +0 -0
  689. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/a11y_check.py +0 -0
  690. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/add_spdx_headers.py +0 -0
  691. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/bench_cli.sh +0 -0
  692. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_command_reference.py +0 -0
  693. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_demo_index.py +0 -0
  694. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_registries.py +0 -0
  695. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_roadmap.py +0 -0
  696. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_scale_corpus.py +0 -0
  697. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/build_vex.py +0 -0
  698. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_anchors.py +0 -0
  699. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_branch_current.py +0 -0
  700. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_dco.py +0 -0
  701. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_licenses.py +0 -0
  702. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_reproducible.py +0 -0
  703. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/check_required_checks.py +0 -0
  704. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/ensure_eval_corpus.sh +0 -0
  705. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_corpus.py +0 -0
  706. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_explain.py +0 -0
  707. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_gate.py +0 -0
  708. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_recommend.py +0 -0
  709. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_retrieval.py +0 -0
  710. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_stats_summary.py +0 -0
  711. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/eval_tools.py +0 -0
  712. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/import_budget.py +0 -0
  713. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/lock_toolchain.py +0 -0
  714. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/measure_near_duplicate_bound.py +0 -0
  715. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/measure_registry.py +0 -0
  716. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/mutation_gate.py +0 -0
  717. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/mutation_shards.py +0 -0
  718. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/mutation_weights.json +0 -0
  719. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/normalize_sdist.py +0 -0
  720. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/page_budget.py +0 -0
  721. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/perf_gate.py +0 -0
  722. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/post_deploy_smoke.py +0 -0
  723. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/publish_eval_json.py +0 -0
  724. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/publish_shards.py +0 -0
  725. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/release_guard.py +0 -0
  726. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/release_preflight.py +0 -0
  727. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/serve_docs.py +0 -0
  728. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/scripts/shard_plan.py +0 -0
  729. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/setup.cfg +0 -0
  730. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/sonar-project.properties +0 -0
  731. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/style/README.md +0 -0
  732. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/style/boost.css +0 -0
  733. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/style/boost.js +0 -0
  734. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/style/demo.html +0 -0
  735. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/adapt.feature +0 -0
  736. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/browse.feature +0 -0
  737. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/count.feature +0 -0
  738. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/discover.feature +0 -0
  739. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/doctor.feature +0 -0
  740. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/environment.py +0 -0
  741. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/explain.feature +0 -0
  742. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/index.feature +0 -0
  743. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/install.feature +0 -0
  744. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/list.feature +0 -0
  745. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/mcp.feature +0 -0
  746. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/search.feature +0 -0
  747. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/cli_steps.py +0 -0
  748. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/discovery_steps.py +0 -0
  749. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/mcp_steps.py +0 -0
  750. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/bdd/features/steps/quality_steps.py +0 -0
  751. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/conftest.py +0 -0
  752. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/baseline.json +0 -0
  753. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/explain.jsonl +0 -0
  754. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  755. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/golden-natural.jsonl +0 -0
  756. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/golden.jsonl +0 -0
  757. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/recommend.jsonl +0 -0
  758. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/taps-scale.txt +0 -0
  759. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/taps.txt +0 -0
  760. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/eval/tool_calls.jsonl +0 -0
  761. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_bmad_all_hosts.py +0 -0
  762. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_capabilities_policy.py +0 -0
  763. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_adapt.py +0 -0
  764. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_bmad.py +0 -0
  765. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_catalog.py +0 -0
  766. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_chat.py +0 -0
  767. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_configuration.py +0 -0
  768. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_discovery.py +0 -0
  769. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_hooks.py +0 -0
  770. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_hooks_gemini.py +0 -0
  771. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_info.py +0 -0
  772. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_intelligence.py +0 -0
  773. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_pane_width.py +0 -0
  774. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_pkg.py +0 -0
  775. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_quality.py +0 -0
  776. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_quickstart.py +0 -0
  777. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_tap_pins.py +0 -0
  778. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_taps.py +0 -0
  779. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_cli_team.py +0 -0
  780. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_everyday_loop.py +0 -0
  781. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_integrity_enforce.py +0 -0
  782. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_kind_conformance.py +0 -0
  783. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_property_parsers.py +0 -0
  784. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_run.py +0 -0
  785. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_tap_signing.py +0 -0
  786. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/functional/test_workspace_scope.py +0 -0
  787. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/README.md +0 -0
  788. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  789. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  790. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  791. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  792. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  793. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  794. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  795. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  796. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  797. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  798. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  799. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  800. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  801. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  802. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  803. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  804. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  805. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  806. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  807. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  808. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  809. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  810. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  811. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/fuzz_frontmatter.py +0 -0
  812. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/fuzz/fuzz_registry.py +0 -0
  813. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/langchain/conftest.py +0 -0
  814. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/langchain/test_graph.py +0 -0
  815. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/langchain/test_loader.py +0 -0
  816. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/langchain/test_retriever.py +0 -0
  817. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/make_fixture.py +0 -0
  818. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/perf/test_benchmarks.py +0 -0
  819. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/smoke.sh +0 -0
  820. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_a11y_check.py +0 -0
  821. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_action_pin_lockstep.py +0 -0
  822. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_adapters.py +0 -0
  823. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_adapters_multi.py +0 -0
  824. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_adapters_runner.py +0 -0
  825. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_agents.py +0 -0
  826. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_ai.py +0 -0
  827. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_aihost.py +0 -0
  828. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_archive.py +0 -0
  829. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_bmad_core.py +0 -0
  830. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_boost_first_offer.py +0 -0
  831. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_bootstrap.py +0 -0
  832. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_bot_pr_dco.py +0 -0
  833. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_branch_current.py +0 -0
  834. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_browse.py +0 -0
  835. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_builtin.py +0 -0
  836. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_capabilities.py +0 -0
  837. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_catalog.py +0 -0
  838. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_catalogbundle.py +0 -0
  839. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_chat.py +0 -0
  840. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_check_anchors.py +0 -0
  841. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_check_dco.py +0 -0
  842. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_check_licenses.py +0 -0
  843. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_check_reproducible.py +0 -0
  844. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_claude_settings.py +0 -0
  845. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_clean_internal_cache.py +0 -0
  846. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_cli_update_shards.py +0 -0
  847. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_cliparse.py +0 -0
  848. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_codeql_analysis_key.py +0 -0
  849. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_cohort.py +0 -0
  850. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_command_reference_fresh.py +0 -0
  851. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_community_health_files.py +0 -0
  852. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_compact.py +0 -0
  853. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_complete.py +0 -0
  854. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_complete_rc_block.py +0 -0
  855. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_config.py +0 -0
  856. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_content_dedupe.py +0 -0
  857. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_content_identity.py +0 -0
  858. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_crash_redaction.py +0 -0
  859. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dedup_trust.py +0 -0
  860. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_demo_index.py +0 -0
  861. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense.py +0 -0
  862. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  863. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_embed_dedupe.py +0 -0
  864. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_entry_reuse.py +0 -0
  865. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_entry_vectors.py +0 -0
  866. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_fallback.py +0 -0
  867. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_fix_hint.py +0 -0
  868. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_progress.py +0 -0
  869. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_quantized.py +0 -0
  870. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_ready_order.py +0 -0
  871. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shard_real_schema.py +0 -0
  872. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  873. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_shards.py +0 -0
  874. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_status.py +0 -0
  875. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_status_cheap.py +0 -0
  876. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dense_vector_dedupe.py +0 -0
  877. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_dependabot_config.py +0 -0
  878. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_deps.py +0 -0
  879. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_discovery.py +0 -0
  880. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_distill_merge.py +0 -0
  881. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_docs_pages_linked.py +0 -0
  882. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_docsite_chrome.py +0 -0
  883. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_doctor_output_polish.py +0 -0
  884. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_drift_hint.py +0 -0
  885. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_ed25519.py +0 -0
  886. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_embed.py +0 -0
  887. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_embed_local.py +0 -0
  888. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_embed_truncated_response.py +0 -0
  889. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_entry_key.py +0 -0
  890. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_errors_and_cli_table.py +0 -0
  891. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_baseline.py +0 -0
  892. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_corpus.py +0 -0
  893. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_faithfulness.py +0 -0
  894. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_gate.py +0 -0
  895. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_grading.py +0 -0
  896. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_metrics.py +0 -0
  897. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_stats_summary.py +0 -0
  898. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_tools.py +0 -0
  899. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_eval_tools_probe.py +0 -0
  900. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  901. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_faithfulness.py +0 -0
  902. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_frontmatter.py +0 -0
  903. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_fuzz_targets.py +0 -0
  904. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  905. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gitleaks_config.py +0 -0
  906. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil.py +0 -0
  907. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil_lfs.py +0 -0
  908. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gitutil_sparse.py +0 -0
  909. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_gstack_coexistence.py +0 -0
  910. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_hook_settings_hosts.py +0 -0
  911. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_hookhost.py +0 -0
  912. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_imperative.py +0 -0
  913. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_import_budget.py +0 -0
  914. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_injectscan.py +0 -0
  915. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_install_permission_error.py +0 -0
  916. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_installscan.py +0 -0
  917. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_integrity.py +0 -0
  918. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_journal.py +0 -0
  919. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_jsonstate.py +0 -0
  920. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_langchain_packaging.py +0 -0
  921. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_launcher_python_floor.py +0 -0
  922. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_link_ownership.py +0 -0
  923. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_localembed.py +0 -0
  924. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_localembed_e2e.py +0 -0
  925. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_lockfile.py +0 -0
  926. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_logs.py +0 -0
  927. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_marketing_counts.py +0 -0
  928. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mcp.py +0 -0
  929. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mcp_install_scan.py +0 -0
  930. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mcp_read.py +0 -0
  931. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mcpdecl.py +0 -0
  932. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mcphost.py +0 -0
  933. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_measure_registry.py +0 -0
  934. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_minisign.py +0 -0
  935. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_hardening.py +0 -0
  936. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_shards.py +0 -0
  937. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mutation_subfile_shards.py +0 -0
  938. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_mutmut_source_paths.py +0 -0
  939. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_near_duplicate_collapse.py +0 -0
  940. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_nethttp.py +0 -0
  941. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_normalize_sdist.py +0 -0
  942. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_output.py +0 -0
  943. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_page_budget.py +0 -0
  944. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_paths.py +0 -0
  945. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_perf_gate.py +0 -0
  946. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_confusions.py +0 -0
  947. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_injection.py +0 -0
  948. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_pkg_secrets.py +0 -0
  949. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_platform_pins.py +0 -0
  950. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_policy.py +0 -0
  951. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_post_deploy_smoke.py +0 -0
  952. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_project_mcp_sidecar.py +0 -0
  953. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_projectlock.py +0 -0
  954. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_provenance.py +0 -0
  955. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_publish_golden_dataset.py +0 -0
  956. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_rag.py +0 -0
  957. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_rag_fastpath.py +0 -0
  958. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_rag_fusion.py +0 -0
  959. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_registries_fresh.py +0 -0
  960. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_registry.py +0 -0
  961. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_registry_categories.py +0 -0
  962. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_registry_control_chars.py +0 -0
  963. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_registry_parallel.py +0 -0
  964. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_release_guard.py +0 -0
  965. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_release_preflight.py +0 -0
  966. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_required_checks.py +0 -0
  967. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_rerank_cache.py +0 -0
  968. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_resolve.py +0 -0
  969. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  970. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_roadmap_fresh.py +0 -0
  971. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_rules.py +0 -0
  972. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_scale_corpus.py +0 -0
  973. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_schedule_plist.py +0 -0
  974. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_scopes.py +0 -0
  975. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_secretscan.py +0 -0
  976. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_selfupdate.py +0 -0
  977. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_serve.py +0 -0
  978. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_serve_docs.py +0 -0
  979. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_shard_plan.py +0 -0
  980. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_shards.py +0 -0
  981. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_shards_incremental.py +0 -0
  982. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_shards_ingest.py +0 -0
  983. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_shards_matrix.py +0 -0
  984. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_smoke_covers_every_command.py +0 -0
  985. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_spdx_headers.py +0 -0
  986. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_spin.py +0 -0
  987. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_stackprobe.py +0 -0
  988. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_staleness.py +0 -0
  989. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_store.py +0 -0
  990. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_store_materialize.py +0 -0
  991. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_sync_blocked_links.py +0 -0
  992. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  993. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_tap_pins.py +0 -0
  994. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_token_parity.py +0 -0
  995. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_toolchain_lock.py +0 -0
  996. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_trustaudit.py +0 -0
  997. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_typedvalue.py +0 -0
  998. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_typosquat.py +0 -0
  999. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_updatediff.py +0 -0
  1000. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_util.py +0 -0
  1001. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_version.py +0 -0
  1002. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_version_tags.py +0 -0
  1003. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_vex.py +0 -0
  1004. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_visual_harness_flags.py +0 -0
  1005. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_concurrency.py +0 -0
  1006. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1007. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1008. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_workflow_timeouts.py +0 -0
  1009. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_workflows.py +0 -0
  1010. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1011. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/visual/a11y_check.mjs +0 -0
  1012. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/visual/console_check.mjs +0 -0
  1013. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/visual/package-lock.json +0 -0
  1014. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/tests/visual/package.json +0 -0
  1015. {boost_skill_cli-1.2.104 → boost_skill_cli-1.2.105}/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.104
3
+ Version: 1.2.105
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.104'
22
- __version_tuple__ = version_tuple = (1, 2, 104)
21
+ __version__ = version = '1.2.105'
22
+ __version_tuple__ = version_tuple = (1, 2, 105)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.104
3
+ Version: 1.2.105
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -321,6 +321,7 @@ docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-sa
321
321
  docs/roadmap/items/audit-verify-findings.md
322
322
  docs/roadmap/items/audit-who-findings.md
323
323
  docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md
324
+ docs/roadmap/items/bare-boost-never-names-an-entry-point.md
324
325
  docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md
325
326
  docs/roadmap/items/bm25-has-no-stemming.md
326
327
  docs/roadmap/items/bm25-index-is-one-json-blob.md
@@ -405,6 +406,7 @@ docs/roadmap/items/eval-deduped-ranked-lists-by-name.md
405
406
  docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md
406
407
  docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md
407
408
  docs/roadmap/items/eval-stats-could-never-publish.md
409
+ docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md
408
410
  docs/roadmap/items/expanded-card-bodies-overflow.md
409
411
  docs/roadmap/items/explain-outline-has-no-cap.md
410
412
  docs/roadmap/items/extension-free-tests-core-dense-py.md
@@ -555,6 +557,7 @@ docs/roadmap/items/relicence-apache-2.md
555
557
  docs/roadmap/items/reproducible-release-artifacts.md
556
558
  docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md
557
559
  docs/roadmap/items/required-checks-config-drift.md
560
+ docs/roadmap/items/required-eval-gate-still-grades-by-name.md
558
561
  docs/roadmap/items/resolve-vendored-duplicate-copies.md
559
562
  docs/roadmap/items/retrieval-quality-eval-harness.md
560
563
  docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md
@@ -604,6 +607,7 @@ docs/roadmap/items/single-tech-stack-prober.md
604
607
  docs/roadmap/items/smart-rerank-pays-per-novel-query.md
605
608
  docs/roadmap/items/split-oversized-command-modules.md
606
609
  docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md
610
+ docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md
607
611
  docs/roadmap/items/startup-and-import-time-budget-x-importtime.md
608
612
  docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md
609
613
  docs/roadmap/items/structured-json-log-output-mode.md
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: bare-boost-never-names-an-entry-point
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Onboarding · Bug
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: A newcomer's first screen is 103 lines of 81 commands that is byte-for-byte the same …
11
+ order: 241
12
+ owner:
13
+ pr:
14
+ title: Nothing boost prints ever names an entry point: bare <code>./boost</code> is byte-identical on a virgin machine and a working one, and the one command its failure-hints route you to is the only setup …
15
+ ---
16
+ <b>Measured.</b> Bare <code>./boost</code> is md5-identical (dd3c84b8d6510df1871bea5f1518fff4) on a machine with 0 taps and on the same machine with 7 taps and 1 installed skill, because <code>print_help</code> (cli.py:165-223) reads no state at all — and the command every newcomer-facing hint routes to, <code>boost tap --defaults</code>, produces exactly 7 lines whose last is a <code>✓ tapped …</code> row with no summary, while <code>boost install</code> through the same pipe closes with a framed "next: boost info brainstorming" box.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>export HOME=$TMPDIR/lens2-ep ; export BOOST_HOME=$HOME/.boost ; rm -rf "$HOME" ; mkdir -p "$HOME"</code><br>
22
+ <code># 1. the first screen: 103 lines, 81 commands, quickstart at line 80, no "start here"</code><br>
23
+ <code>./boost &gt; "$TMPDIR/h0.txt" 2&gt;&amp;1</code><br>
24
+ <code>wc -l &lt; "$TMPDIR/h0.txt" # 103</code><br>
25
+ <code>grep -n quickstart "$TMPDIR/h0.txt" # 80: quickstart Tap the starter registries...</code><br>
26
+ <code>grep -ci 'start here\|new to boost\|first, run\|get started' "$TMPDIR/h0.txt" # 0</code><br>
27
+ <code>head -4 "$TMPDIR/h0.txt"</code><br>
28
+ <code># 2. the only entry-point pointers are failure hints, and they name tap --defaults, never quickstart</code><br>
29
+ …
30
+
31
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
32
+
33
+ Three sentences in the claim are false as written; the underlying defect survives all three.
34
+
35
+ 1. "you must run a command that exits 1 to learn where setup lives" — WRONG. <code>boost doctor</code> exits <b>0</b> and carries the identical <code>boost tap --defaults</code> hint plus the verdict line "● ready to set up — tap a registry to make boost searchable". I measured DOCTOR_EXIT=0 (the claim's own evidence block also shows EXIT=0, contradicting its prose). The pointer is not gated behind a non-zero exit; it is gated behind running a diagnostic command, which is a weaker statement.
36
+
37
+ 2. "every CLI hint routes to <code>tap --defaults</code> … never mentions that quickstart exists" — OVERBROAD. Two user-facing hints do name <code>boost quickstart</code>: <code>boost_cli/commands/discovery.py:398</code> ("<code>boost quickstart</code> taps the defaults and fetches their vectors in one pass", raised by <code>reindex --fetch-shards</code>) and <code>boost_cli/commands/pkg.py:981</code> ("<code>boost quickstart</code> taps the starters and loads their vectors in one pass", raised by <code>update --shards</code>). Correct figures: ~15 source sites name <code>boost tap --defaults</code> vs 2 that name <code>boost quickstart</code>, and <b>0 of the newcomer-plausible surfaces</b> (search, doctor, taps, browse, list, catalogbundle, mcp, serve) name quickstart. The substantive routing gap is real; the words "every" and "never" are not.
38
+
39
+ 3.
40
+
41
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
42
+
43
+ Not carded — I re-checked independently over all 473 items. <code>audit-root-findings.md</code> (the bare-<code>boost</code> card) covers EPIPE exit 120, <code>help --help</code>/<code>help version</code> alias routing, and the launcher's 3.9 Python floor; its one <code>print_help</code> ask ("add one dim Options line under Usage") has shipped — I see the Options line. Nothing about state-awareness or a first-run pointer. <code>BOOST-D13</code> "Framed success summary with next step" is status:done, <code>ref: core/output.py:41 · commands/pkg.py</code>, and its body scopes itself to install/uninstall. <code>audit-tap-findings.md</code> (inflight, PR 772) is about path-shaped SPECs going to the network — zero hits for next/defaults/quickstart/summary. <code>audit-taps-findings.md</code> — zero hits for the same terms. <code>audit-quickstart-findings.md</code> covers unpinned-at-HEAD taps without <code>[rag]</code> and three divergent <code>[rag]</code> hint wordings, not routing.
44
+
45
+ Scope limits of my repro: - <code>boost quickstart</code>'s final line was verified by <b>source read</b> (<code>quickstart.py:220</code>, unconditional, immediately before <code>return 0</code>), not by running it — a live run fetches the shard manifest and would download vectors. I did not re-run the claim's <code>quickstart | tail -1</code> control. - <code>core/bootstrap.py</code> shows <code>boost mcp register</code> <b>auto-seeds</b> the catalog (taps the defaults unless <code>BOOST_NO_SEED</code>/<code>--no-seed</code>), and its docstring states "<code>boost mcp</code> is the only command a new user is told to run after installing". So an MCP-first newcomer is not stranded; this finding is specifically the <b>CLI-first</b> path.
46
+
47
+ <b>Why it is worth doing.</b> This is the whole first-value path and it costs a newcomer their first two commands. The productive path is 3 commands / 10.6s once you know it; the tool makes you discover it by failing. Worse, the two setup paths are not equivalent — README leads with <code>quickstart</code>, which pins taps to shard commits and can import prebuilt vectors, while every CLI hint routes to <code>tap --defaults</code>, which does neither and never mentions that quickstart exists. Both fixes are one line each: make <code>print_help</code> add a first-run line when <code>registry.list_taps()</code> is empty (it already resolves config at startup), and give the tap/registry success path the same next-step emitter <code>pkg.py</code> and <code>quickstart.py</code> already use.
48
+
49
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: exemplar-graded-golden-set-runs-in-no-gate
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Tech-debt
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: The 50-row natural-language golden set is the one place where the project's content-c…
11
+ order: 242
12
+ owner:
13
+ pr:
14
+ title: golden-natural.jsonl — the only fully exemplar-graded query set — is invoked by no make target and no workflow, so its numbers can only be produced by a human typing the command
15
+ ---
16
+ <b>Measured.</b> Running the natural set today against the same 20-tap eval corpus prints "REGRESSION vs baseline: catalog.search recall@k: 0.080 -&gt; 0.060 (-0.020)" (BM25 MRR 0.2447 -&gt; 0.237, nDCG 0.2640 -&gt; 0.259) — the snapshot has already drifted, and no Makefile target or workflow passes <code>--golden</code>, so nothing in the repo can ever emit that line.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>grep -n natural Makefile ; echo "makefile grep exit $?"</code><br>
22
+ <code>grep -rn natural .github/workflows/ ; echo "workflow grep exit $?"</code><br>
23
+ <code>grep -rn 'golden-natural' Makefile .github/workflows/ scripts/ tests/ | sed -n '1,20p'</code><br>
24
+ <code>sed -n '1,23p' tests/unit/test_eval_baseline.py</code><br>
25
+ <code>python3 -c "import json,hashlib,pathlib; b=json.load(open('tests/eval/baseline.json')); print('baseline keys:',list(b['sets'])); print('current digests:',[p+'@'+hashlib.sha256(pathlib.Path('tests/eval/'+p).read_bytes()).hexdigest()[:12] for p in ('golden.jsonl','golden-natural.jsonl')])"</code>
26
+
27
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
28
+
29
+ 1. BASELINE NUMBERS ARE WRONG. The claim says the golden-natural row carries "0.350 / 0.160 / 0.245 / 0.259". It does not. tests/eval/baseline.json's <code>golden-natural.jsonl@0d91b0cd8e41</code> BM25 row is <b>0.360 / 0.160 / 0.2447 / 0.2640</b>. The quoted 0.350/0.160/0.245/0.259 are the *pre-migration* ("name-graded (before)") figures at docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md:125; the baseline holds the *post*-migration row from line 126-127 (0.360 / 0.160 / 0.245 / 0.264). The claim read the wrong line of the card.
30
+
31
+ 2. "the only tests that touch it are explicitly synthetic" IS WRONG. tests/unit/test_eval_grading.py reads the REAL shipped file in three live assertions: <code>test_the_shipped_set_has_nothing_left_to_decide</code> (line 217-228, asserts len(rows) == 50 and no unpinned row) and class <code>TestTheMigrationIsFinished</code> (line 247+): <code>test_every_row_pins_an_exemplar</code>, <code>test_every_exemplar_is_well_formed</code>, <code>test_no_exemplar_is_a_localised_copy</code>. Only tests/unit/test_eval_baseline.py is synthetic. The defect survives the correction, because those tests grade the file's SHAPE (row count, exemplar presence and syntax) and never run retrieval — so they cannot move or invalidate a single number in the baseline row. The accurate statement is: automation pins the query set's shape, nothing re-measures its scores.
32
+
33
+ 3.
34
+
35
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
36
+
37
+ Scope and limits of my repro: - The structural half (no <code>--golden</code> in any Makefile target or workflow; <code>--golden</code> defaults to golden.jsonl at scripts/eval_retrieval.py:66/:656) is exhaustive over Makefile, .github/workflows/ and scripts/ — read, not inferred. - The drift measurement was run against a PRIVATE COPY of the shared 20-tap eval corpus (I copied cache/ + config.json into $TMPDIR/lens2-exemplar and never wrote to the shared home). I did not verify that this corpus is byte-identical to the one that produced the committed baseline row: Makefile:130-133 says the corpus "tracks upstream HEAD rather than pinned commits", while CLAUDE.md says every taps.txt row pins a SHA — the repo disagrees with itself there and I did not resolve it. So the -0.020 delta could be corpus movement rather than ranker movement. That distinction does not affect the finding: corpus movement is exactly the thing a re-run is supposed to report, and no re-run happens. - I did not run <code>make eval</code>, <code>make check</code>, or any workflow; I read their recipes. - I did not measure how long a <code>make eval-natural</code> would add (the eval corpus was already materialised for me, so I never paid the tap cost). - <code>catalog.search</code>'s numbers here are near the floor of resolution (3 of 50 queries vs 4 of 50), so its -0.020 is one query; the BM25 MRR/nDCG drift is below the default 0.02 eps and would not have been flagged even if someone ran it.
38
+
39
+ <b>Why it is worth doing.</b> CLAUDE.md documents the two-set design ("Baselines are keyed by query set (name@content-digest), so one file holds both golden.jsonl and golden-natural.jsonl without either overwriting the other") as if both sets are exercised. Only one is. The set that received 50 hand-made relevance judgments — the project's best available measurement of retrieval quality, and the one whose grading key actually identifies a skill — contributes to no gate and no scheduled monitor, so the investment decays silently. Adding a <code>make eval-natural</code> target (or a non-blocking scheduled run alongside eval-stats.yml) would cost one recipe and turn a frozen snapshot back into a signal.
40
+
41
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,42 @@
1
+ ---
2
+ id: required-eval-gate-still-grades-by-name
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Tech-debt
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…
11
+ order: 243
12
+ owner:
13
+ pr:
14
+ title: The exemplar migration never reached the query set the required gate runs: 0 of 91 rows, and 27 of them have an ambiguous target on the gate's own corpus
15
+ ---
16
+ <b>Measured.</b> Both invocations of the merge-blocking retrieval gate — the Makefile <code>eval</code> target and ci.yml's "retrieval quality gate" step — run <code>scripts/eval_retrieval.py</code> with no <code>--golden</code>, so both take <code>DEFAULT_GOLDEN = tests/eval/golden.jsonl</code>; 0 of that file's 91 rows carry an <code>exemplar</code>, and on the gate's own 20-tap corpus 27 of the 91 rows have at least one target name that resolves to more than one content digest (21 of 77 distinct target names are ambiguous).
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>cd &lt;repo&gt;</code><br>
21
+ <code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
22
+ <code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden-natural.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
23
+ <code>grep -n 'DEFAULT_GOLDEN' scripts/eval_retrieval.py</code><br>
24
+ <code>sed -n '134,139p' Makefile</code><br>
25
+ <code>sed -n '269,279p' .github/workflows/ci.yml</code><br>
26
+ <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
27
+ <code>python3 -c "</code><br>
28
+ <code>import json,glob,collections,os</code><br>
29
+ <code>n2c=collections.defaultdict(set)</code><br>
30
+ …
31
+
32
+ <b>Verification found nothing to correct.</b> Every number, <code>file:line</code> and command output above was independently re-derived and matched exactly.
33
+
34
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
35
+
36
+ Severity lowered from the claim's High to Medium on a measurement the claim did not make. I inspected the bodies behind the ambiguous names and they are two different things. Genuine homonyms exist — <code>brand-guidelines</code> is Anthropic brand colors vs OpenAI brand colors vs Sentry *copy writing* (three different jobs), and <code>pdf</code> is a general PDF skill vs a workflow that converts PDF to Markdown with one specific tool — but they are a minority, and neither appears among the rank-1 hits. The names that actually score hit@1 through an ambiguous target (skill-creator, slack-gif-creator, theme-factory, prompt-engineering, mcp-builder) are re-publications of one upstream skill across anthropics/skills, composio-community/awesome-codex-skills and sickn33/antigravity-awesome-skills, differing by a few bytes. A "wrong body" there is still a correct answer to the user, so the looseness is much smaller in practice than in principle. I did not adopt the shipped card's "the looseness was latent" finding as a reason: that was measured at hit@1 0.160, where there was nothing for ambiguity to inflate, whereas this set measures 0.484 — a different regime, so it does not transfer.
37
+
38
+ Floor-margin exposure, with that qualification attached: hit@1 measures 44/91 = 0.484 against a floor needing 37 rows (margin 7 rows) with 10 rank-1 hits landing on an ambiguous name; recall@10 measures 77/91 = 0.846 against a floor needing 71 rows (margin 6 rows) with 20 rows matched only via ambiguous names.
39
+
40
+ <b>Why it is worth doing.</b> This is the only gate in <code>make check</code> that can fail a merge on retrieval quality, and every retrieval decision validated against it (RRF fusion vs preferring dense, pool depth, whether the LLM rerank earns its keep) inherits the looseness. The project already established the fix and built the harness for it; the required set simply never got migrated, and because the card is closed as shipped nothing tracks the remaining work on the set that matters most.
41
+
42
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CONFIRMED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: stale-tap-hint-dead-for-tap-only-installs
3
+ board: code
4
+ section: planned
5
+ status: planned
6
+ category: Tech-debt
7
+ complexity: M
8
+ impact: Med
9
+ wow: 3
10
+ note: CLAUDE.md's rule is that "search must never refresh taps in the background: _hint_sta…
11
+ order: 244
12
+ owner:
13
+ pr:
14
+ title: The "taps last refreshed N days ago" hint can never fire on a machine that tapped and never ran <code>boost update</code> — the only writer of the marker is <code>update</code> itself
15
+ ---
16
+ <b>Measured.</b> The maintainer's own production install has 458 taps configured and no marker: <code>~/.boost/state/</code> is fully populated (pulse.jsonl 95k, lock-history/, snapshots/, and <code>last-shard-sync</code> stamped 8 Sep) while <code>last-tap-refresh</code> is absent — so the directory was not wiped, the file was simply never written across 458 taps, and the stale-tap hint CLAUDE.md describes as search's drift-reporting mechanism has never been able to fire there. The 20-tap eval corpus is the same: no marker. Two real installs, zero markers.
17
+
18
+ <b>Reproduce it.</b>
19
+
20
+ <code>export HOME=$TMPDIR/lens2-du2 ; export BOOST_HOME=$HOME/.boost ; mkdir -p "$HOME"</code><br>
21
+ <code>cd &lt;repo&gt;</code><br>
22
+ <code>python3 tests/make_fixture.py $TMPDIR/lens2-fix2</code><br>
23
+ <code>./boost tap $TMPDIR/lens2-fix2</code><br>
24
+ <code>python3 -c "from boost_cli.core import paths, registry; m=paths.tap_refresh_marker(); print('marker:',m); print('exists:',m.exists()); print('refresh_age_days():',registry.refresh_age_days()); print('STALE_TAPS_DAYS:',registry.STALE_TAPS_DAYS)"</code><br>
25
+ <code># now prove update is the only writer:</code><br>
26
+ <code>grep -rn 'mark_refreshed()' boost_cli | grep -v 'def mark_refreshed'</code><br>
27
+ <code>./boost update</code><br>
28
+ <code>ls -la $BOOST_HOME/state/last-tap-refresh</code>
29
+
30
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
31
+
32
+ The mechanism reproduces exactly, but three of the claim's supporting statements are wrong:
33
+
34
+ 1. "the open card audit-audit-findings.md:36" — that card is <code>status: shipped</code> (docs/roadmap/items/audit-audit-findings.md, frontmatter line 5), not open. Its proposal is not pending; it landed.
35
+
36
+ 2. "would make two more surfaces silent for the same population" — false for <code>boost health</code>, which has ALREADY moved onto this marker and does NOT go silent. boost_cli/commands/quality.py:1417-1425 reads <code>registry.last_refresh_at()</code> and I measured the tap-only install printing <code>last tap sync never</code>. That is an honest degradation, visible to the user — the opposite of the silent failure the claim predicts.
37
+
38
+ 3. "would make two more surfaces silent" — also false for <code>boost audit --skills</code>, which never moved onto the marker. boost_cli/commands/safety.py:233 <code>_tap_age_days</code> still shells out to <code>git log -1 --format=%ct</code> on the clone, so it is unaffected by the marker either way. Zero additional surfaces are made silent, not two.
39
+
40
+ 4. "unreachable for the entire population it is aimed at" — over-broad. The hint is aimed at users whose taps are stale, and the long-ago-updated half of that population IS served correctly (my control run B proves it fires at 200 days).
41
+
42
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
43
+
44
+ Scope limits of my repro:
45
+
46
+ - My A/B used a 5-item <code>tests/make_fixture.py</code> tap, not the real default set. The population claim about <code>boost tap --defaults</code> and <code>boost quickstart</code> is settled by code inspection, not by running them: quickstart.py touches only <code>registry.list_taps</code> and <code>registry.add_many</code>, and <code>pkg.py:1077</code> is the sole <code>registry.update</code> call in all of boost_cli/commands/. No command other than <code>update</code> can reach <code>mark_refreshed</code>. - I aged install A by backdating every file under BOOST_HOME and install B by backdating the marker; neither is a genuinely 200-day-old machine, but the marker's mtime is the only input <code>refresh_age_days</code> reads (registry.py:435-440), so the emulation is exact. - The real install was inspected read-only with <code>ls</code> and a <code>json.load</code> of config.json. I did NOT run <code>boost health</code> there — it writes caches — so the "last tap sync never" line is measured on my disposable HOME, and the real machine's marker absence is measured directly. - I did not weigh the mitigation heavily: <code>boost health</code> does report "never", but it reaches the wrong population — the hint lives in <code>search</code> precisely because that is the command a never-update user runs, and nothing routes them to <code>health</code>. - Noticed but out of scope, not chased: the <code>if results:</code> guard at registry.py:680 means an <code>update</code> sweep where every tap FAILED also skips the stamp, and <code>test_a_sweep_with_no_taps_stamps_nothing</code> pins the no-taps case deliberately. - Not carded: <code>grep -h '^title:' docs/roadmap/items/*.md</code> plus body greps for mark_refreshed / tap_refresh_marker / refresh_age_days / "never …
47
+
48
+ <b>Why it is worth doing.</b> Tap clones are load-bearing for both BM25 freshness and dense vector validity, and boost deliberately refuses to refresh them in the background — which makes this one muted line the entire mechanism by which a user learns their catalogue has drifted. It is switched off for precisely the users who need it (onboard via quickstart or <code>tap --defaults</code>, search for months, never update), and switched on only for users who already demonstrated they run <code>boost update</code>. Stamping the marker on a successful tap would cost one <code>write_text</code> and make the hint reachable.
49
+
50
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
@@ -132,8 +132,8 @@
132
132
  <!-- ROADMAP:stats -->
133
133
  <div class="stat"><b>20</b><span>Shipped</span></div>
134
134
  <div class="stat"><b>1</b><span>Next up</span></div>
135
- <div class="stat"><b>52</b><span>Planned</span></div>
136
- <div class="stat"><b>446</b><span>Loop finds</span></div>
135
+ <div class="stat"><b>56</b><span>Planned</span></div>
136
+ <div class="stat"><b>450</b><span>Loop finds</span></div>
137
137
  <!-- /ROADMAP:stats -->
138
138
  </div>
139
139
  </section>
@@ -3001,6 +3001,172 @@ SCOPE LIMITS OF MY REPRO — things a card author must not get wrong:
3001
3001
  <span class="m">Every other issue doctor raises names a command (boost heal, boost sync, boost update…</span>
3002
3002
  </div>
3003
3003
  </article>
3004
+
3005
+ <article class="cap rcard" id="bare-boost-never-names-an-entry-point">
3006
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Onboarding · Bug</span></div>
3007
+ <h3>Nothing boost prints ever names an entry point: bare <code>./boost</code> is byte-identical on a virgin machine and a working one, and the one command its failure-hints route you to is the only setup …</h3>
3008
+ <p><b>Measured.</b> Bare <code>./boost</code> is md5-identical (dd3c84b8d6510df1871bea5f1518fff4) on a machine with 0 taps and on the same machine with 7 taps and 1 installed skill, because <code>print_help</code> (cli.py:165-223) reads no state at all — and the command every newcomer-facing hint routes to, <code>boost tap --defaults</code>, produces exactly 7 lines whose last is a <code>✓ tapped …</code> row with no summary, while <code>boost install</code> through the same pipe closes with a framed "next: boost info brainstorming" box.
3009
+
3010
+ <b>Reproduce it.</b>
3011
+
3012
+ <code>cd &lt;repo&gt;</code><br>
3013
+ <code>export HOME=$TMPDIR/lens2-ep ; export BOOST_HOME=$HOME/.boost ; rm -rf "$HOME" ; mkdir -p "$HOME"</code><br>
3014
+ <code># 1. the first screen: 103 lines, 81 commands, quickstart at line 80, no "start here"</code><br>
3015
+ <code>./boost &gt; "$TMPDIR/h0.txt" 2&gt;&amp;1</code><br>
3016
+ <code>wc -l &lt; "$TMPDIR/h0.txt" # 103</code><br>
3017
+ <code>grep -n quickstart "$TMPDIR/h0.txt" # 80: quickstart Tap the starter registries...</code><br>
3018
+ <code>grep -ci 'start here\|new to boost\|first, run\|get started' "$TMPDIR/h0.txt" # 0</code><br>
3019
+ <code>head -4 "$TMPDIR/h0.txt"</code><br>
3020
+ <code># 2. the only entry-point pointers are failure hints, and they name tap --defaults, never quickstart</code><br>
3021
+ …
3022
+
3023
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
3024
+
3025
+ Three sentences in the claim are false as written; the underlying defect survives all three.
3026
+
3027
+ 1. "you must run a command that exits 1 to learn where setup lives" — WRONG. <code>boost doctor</code> exits <b>0</b> and carries the identical <code>boost tap --defaults</code> hint plus the verdict line "● ready to set up — tap a registry to make boost searchable". I measured DOCTOR_EXIT=0 (the claim's own evidence block also shows EXIT=0, contradicting its prose). The pointer is not gated behind a non-zero exit; it is gated behind running a diagnostic command, which is a weaker statement.
3028
+
3029
+ 2. "every CLI hint routes to <code>tap --defaults</code> … never mentions that quickstart exists" — OVERBROAD. Two user-facing hints do name <code>boost quickstart</code>: <code>boost_cli/commands/discovery.py:398</code> ("<code>boost quickstart</code> taps the defaults and fetches their vectors in one pass", raised by <code>reindex --fetch-shards</code>) and <code>boost_cli/commands/pkg.py:981</code> ("<code>boost quickstart</code> taps the starters and loads their vectors in one pass", raised by <code>update --shards</code>). Correct figures: ~15 source sites name <code>boost tap --defaults</code> vs 2 that name <code>boost quickstart</code>, and <b>0 of the newcomer-plausible surfaces</b> (search, doctor, taps, browse, list, catalogbundle, mcp, serve) name quickstart. The substantive routing gap is real; the words "every" and "never" are not.
3030
+
3031
+ 3.
3032
+
3033
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
3034
+
3035
+ Not carded — I re-checked independently over all 473 items. <code>audit-root-findings.md</code> (the bare-<code>boost</code> card) covers EPIPE exit 120, <code>help --help</code>/<code>help version</code> alias routing, and the launcher's 3.9 Python floor; its one <code>print_help</code> ask ("add one dim Options line under Usage") has shipped — I see the Options line. Nothing about state-awareness or a first-run pointer. <code>BOOST-D13</code> "Framed success summary with next step" is status:done, <code>ref: core/output.py:41 · commands/pkg.py</code>, and its body scopes itself to install/uninstall. <code>audit-tap-findings.md</code> (inflight, PR 772) is about path-shaped SPECs going to the network — zero hits for next/defaults/quickstart/summary. <code>audit-taps-findings.md</code> — zero hits for the same terms. <code>audit-quickstart-findings.md</code> covers unpinned-at-HEAD taps without <code>[rag]</code> and three divergent <code>[rag]</code> hint wordings, not routing.
3036
+
3037
+ Scope limits of my repro: - <code>boost quickstart</code>'s final line was verified by <b>source read</b> (<code>quickstart.py:220</code>, unconditional, immediately before <code>return 0</code>), not by running it — a live run fetches the shard manifest and would download vectors. I did not re-run the claim's <code>quickstart | tail -1</code> control. - <code>core/bootstrap.py</code> shows <code>boost mcp register</code> <b>auto-seeds</b> the catalog (taps the defaults unless <code>BOOST_NO_SEED</code>/<code>--no-seed</code>), and its docstring states "<code>boost mcp</code> is the only command a new user is told to run after installing". So an MCP-first newcomer is not stranded; this finding is specifically the <b>CLI-first</b> path.
3038
+
3039
+ <b>Why it is worth doing.</b> This is the whole first-value path and it costs a newcomer their first two commands. The productive path is 3 commands / 10.6s once you know it; the tool makes you discover it by failing. Worse, the two setup paths are not equivalent — README leads with <code>quickstart</code>, which pins taps to shard commits and can import prebuilt vectors, while every CLI hint routes to <code>tap --defaults</code>, which does neither and never mentions that quickstart exists. Both fixes are one line each: make <code>print_help</code> add a first-run line when <code>registry.list_taps()</code> is empty (it already resolves config at startup), and give the tap/registry success path the same next-step emitter <code>pkg.py</code> and <code>quickstart.py</code> already use.
3040
+
3041
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
3042
+ <div class="meta">
3043
+ <span class="m">Complexity <b>M</b></span>
3044
+ <span class="m">Impact <b>Med</b></span>
3045
+ <span class="m">Wow <b class="wow">★★★</b></span>
3046
+ <span class="m">A newcomer's first screen is 103 lines of 81 commands that is byte-for-byte the same …</span>
3047
+ </div>
3048
+ </article>
3049
+
3050
+ <article class="cap rcard" id="exemplar-graded-golden-set-runs-in-no-gate">
3051
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
3052
+ <h3>golden-natural.jsonl — the only fully exemplar-graded query set — is invoked by no make target and no workflow, so its numbers can only be produced by a human typing the command</h3>
3053
+ <p><b>Measured.</b> Running the natural set today against the same 20-tap eval corpus prints "REGRESSION vs baseline: catalog.search recall@k: 0.080 -&gt; 0.060 (-0.020)" (BM25 MRR 0.2447 -&gt; 0.237, nDCG 0.2640 -&gt; 0.259) — the snapshot has already drifted, and no Makefile target or workflow passes <code>--golden</code>, so nothing in the repo can ever emit that line.
3054
+
3055
+ <b>Reproduce it.</b>
3056
+
3057
+ <code>cd &lt;repo&gt;</code><br>
3058
+ <code>grep -n natural Makefile ; echo "makefile grep exit $?"</code><br>
3059
+ <code>grep -rn natural .github/workflows/ ; echo "workflow grep exit $?"</code><br>
3060
+ <code>grep -rn 'golden-natural' Makefile .github/workflows/ scripts/ tests/ | sed -n '1,20p'</code><br>
3061
+ <code>sed -n '1,23p' tests/unit/test_eval_baseline.py</code><br>
3062
+ <code>python3 -c "import json,hashlib,pathlib; b=json.load(open('tests/eval/baseline.json')); print('baseline keys:',list(b['sets'])); print('current digests:',[p+'@'+hashlib.sha256(pathlib.Path('tests/eval/'+p).read_bytes()).hexdigest()[:12] for p in ('golden.jsonl','golden-natural.jsonl')])"</code>
3063
+
3064
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
3065
+
3066
+ 1. BASELINE NUMBERS ARE WRONG. The claim says the golden-natural row carries "0.350 / 0.160 / 0.245 / 0.259". It does not. tests/eval/baseline.json's <code>golden-natural.jsonl@0d91b0cd8e41</code> BM25 row is <b>0.360 / 0.160 / 0.2447 / 0.2640</b>. The quoted 0.350/0.160/0.245/0.259 are the *pre-migration* ("name-graded (before)") figures at docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md:125; the baseline holds the *post*-migration row from line 126-127 (0.360 / 0.160 / 0.245 / 0.264). The claim read the wrong line of the card.
3067
+
3068
+ 2. "the only tests that touch it are explicitly synthetic" IS WRONG. tests/unit/test_eval_grading.py reads the REAL shipped file in three live assertions: <code>test_the_shipped_set_has_nothing_left_to_decide</code> (line 217-228, asserts len(rows) == 50 and no unpinned row) and class <code>TestTheMigrationIsFinished</code> (line 247+): <code>test_every_row_pins_an_exemplar</code>, <code>test_every_exemplar_is_well_formed</code>, <code>test_no_exemplar_is_a_localised_copy</code>. Only tests/unit/test_eval_baseline.py is synthetic. The defect survives the correction, because those tests grade the file's SHAPE (row count, exemplar presence and syntax) and never run retrieval — so they cannot move or invalidate a single number in the baseline row. The accurate statement is: automation pins the query set's shape, nothing re-measures its scores.
3069
+
3070
+ 3.
3071
+
3072
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
3073
+
3074
+ Scope and limits of my repro: - The structural half (no <code>--golden</code> in any Makefile target or workflow; <code>--golden</code> defaults to golden.jsonl at scripts/eval_retrieval.py:66/:656) is exhaustive over Makefile, .github/workflows/ and scripts/ — read, not inferred. - The drift measurement was run against a PRIVATE COPY of the shared 20-tap eval corpus (I copied cache/ + config.json into $TMPDIR/lens2-exemplar and never wrote to the shared home). I did not verify that this corpus is byte-identical to the one that produced the committed baseline row: Makefile:130-133 says the corpus "tracks upstream HEAD rather than pinned commits", while CLAUDE.md says every taps.txt row pins a SHA — the repo disagrees with itself there and I did not resolve it. So the -0.020 delta could be corpus movement rather than ranker movement. That distinction does not affect the finding: corpus movement is exactly the thing a re-run is supposed to report, and no re-run happens. - I did not run <code>make eval</code>, <code>make check</code>, or any workflow; I read their recipes. - I did not measure how long a <code>make eval-natural</code> would add (the eval corpus was already materialised for me, so I never paid the tap cost). - <code>catalog.search</code>'s numbers here are near the floor of resolution (3 of 50 queries vs 4 of 50), so its -0.020 is one query; the BM25 MRR/nDCG drift is below the default 0.02 eps and would not have been flagged even if someone ran it.
3075
+
3076
+ <b>Why it is worth doing.</b> CLAUDE.md documents the two-set design ("Baselines are keyed by query set (name@content-digest), so one file holds both golden.jsonl and golden-natural.jsonl without either overwriting the other") as if both sets are exercised. Only one is. The set that received 50 hand-made relevance judgments — the project's best available measurement of retrieval quality, and the one whose grading key actually identifies a skill — contributes to no gate and no scheduled monitor, so the investment decays silently. Adding a <code>make eval-natural</code> target (or a non-blocking scheduled run alongside eval-stats.yml) would cost one recipe and turn a frozen snapshot back into a signal.
3077
+
3078
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
3079
+ <div class="meta">
3080
+ <span class="m">Complexity <b>M</b></span>
3081
+ <span class="m">Impact <b>Med</b></span>
3082
+ <span class="m">Wow <b class="wow">★★★</b></span>
3083
+ <span class="m">The 50-row natural-language golden set is the one place where the project's content-c…</span>
3084
+ </div>
3085
+ </article>
3086
+
3087
+ <article class="cap rcard" id="required-eval-gate-still-grades-by-name">
3088
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
3089
+ <h3>The exemplar migration never reached the query set the required gate runs: 0 of 91 rows, and 27 of them have an ambiguous target on the gate's own corpus</h3>
3090
+ <p><b>Measured.</b> Both invocations of the merge-blocking retrieval gate — the Makefile <code>eval</code> target and ci.yml's "retrieval quality gate" step — run <code>scripts/eval_retrieval.py</code> with no <code>--golden</code>, so both take <code>DEFAULT_GOLDEN = tests/eval/golden.jsonl</code>; 0 of that file's 91 rows carry an <code>exemplar</code>, and on the gate's own 20-tap corpus 27 of the 91 rows have at least one target name that resolves to more than one content digest (21 of 77 distinct target names are ambiguous).
3091
+
3092
+ <b>Reproduce it.</b>
3093
+
3094
+ <code>cd &lt;repo&gt;</code><br>
3095
+ <code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
3096
+ <code>python3 -c "import json; rows=[json.loads(l) for l in open('tests/eval/golden-natural.jsonl') if l.strip() and not l.startswith('#')]; print(len(rows),'rows;',sum(1 for r in rows if r.get('exemplar')),'with exemplar')"</code><br>
3097
+ <code>grep -n 'DEFAULT_GOLDEN' scripts/eval_retrieval.py</code><br>
3098
+ <code>sed -n '134,139p' Makefile</code><br>
3099
+ <code>sed -n '269,279p' .github/workflows/ci.yml</code><br>
3100
+ <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
3101
+ <code>python3 -c "</code><br>
3102
+ <code>import json,glob,collections,os</code><br>
3103
+ <code>n2c=collections.defaultdict(set)</code><br>
3104
+ …
3105
+
3106
+ <b>Verification found nothing to correct.</b> Every number, <code>file:line</code> and command output above was independently re-derived and matched exactly.
3107
+
3108
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
3109
+
3110
+ Severity lowered from the claim's High to Medium on a measurement the claim did not make. I inspected the bodies behind the ambiguous names and they are two different things. Genuine homonyms exist — <code>brand-guidelines</code> is Anthropic brand colors vs OpenAI brand colors vs Sentry *copy writing* (three different jobs), and <code>pdf</code> is a general PDF skill vs a workflow that converts PDF to Markdown with one specific tool — but they are a minority, and neither appears among the rank-1 hits. The names that actually score hit@1 through an ambiguous target (skill-creator, slack-gif-creator, theme-factory, prompt-engineering, mcp-builder) are re-publications of one upstream skill across anthropics/skills, composio-community/awesome-codex-skills and sickn33/antigravity-awesome-skills, differing by a few bytes. A "wrong body" there is still a correct answer to the user, so the looseness is much smaller in practice than in principle. I did not adopt the shipped card's "the looseness was latent" finding as a reason: that was measured at hit@1 0.160, where there was nothing for ambiguity to inflate, whereas this set measures 0.484 — a different regime, so it does not transfer.
3111
+
3112
+ Floor-margin exposure, with that qualification attached: hit@1 measures 44/91 = 0.484 against a floor needing 37 rows (margin 7 rows) with 10 rank-1 hits landing on an ambiguous name; recall@10 measures 77/91 = 0.846 against a floor needing 71 rows (margin 6 rows) with 20 rows matched only via ambiguous names.
3113
+
3114
+ <b>Why it is worth doing.</b> This is the only gate in <code>make check</code> that can fail a merge on retrieval quality, and every retrieval decision validated against it (RRF fusion vs preferring dense, pool depth, whether the LLM rerank earns its keep) inherits the looseness. The project already established the fix and built the harness for it; the required set simply never got migrated, and because the card is closed as shipped nothing tracks the remaining work on the set that matters most.
3115
+
3116
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CONFIRMED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
3117
+ <div class="meta">
3118
+ <span class="m">Complexity <b>M</b></span>
3119
+ <span class="m">Impact <b>Med</b></span>
3120
+ <span class="m">Wow <b class="wow">★★★</b></span>
3121
+ <span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
3122
+ </div>
3123
+ </article>
3124
+
3125
+ <article class="cap rcard" id="stale-tap-hint-dead-for-tap-only-installs">
3126
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
3127
+ <h3>The "taps last refreshed N days ago" hint can never fire on a machine that tapped and never ran <code>boost update</code> — the only writer of the marker is <code>update</code> itself</h3>
3128
+ <p><b>Measured.</b> The maintainer's own production install has 458 taps configured and no marker: <code>~/.boost/state/</code> is fully populated (pulse.jsonl 95k, lock-history/, snapshots/, and <code>last-shard-sync</code> stamped 8 Sep) while <code>last-tap-refresh</code> is absent — so the directory was not wiped, the file was simply never written across 458 taps, and the stale-tap hint CLAUDE.md describes as search's drift-reporting mechanism has never been able to fire there. The 20-tap eval corpus is the same: no marker. Two real installs, zero markers.
3129
+
3130
+ <b>Reproduce it.</b>
3131
+
3132
+ <code>export HOME=$TMPDIR/lens2-du2 ; export BOOST_HOME=$HOME/.boost ; mkdir -p "$HOME"</code><br>
3133
+ <code>cd &lt;repo&gt;</code><br>
3134
+ <code>python3 tests/make_fixture.py $TMPDIR/lens2-fix2</code><br>
3135
+ <code>./boost tap $TMPDIR/lens2-fix2</code><br>
3136
+ <code>python3 -c "from boost_cli.core import paths, registry; m=paths.tap_refresh_marker(); print('marker:',m); print('exists:',m.exists()); print('refresh_age_days():',registry.refresh_age_days()); print('STALE_TAPS_DAYS:',registry.STALE_TAPS_DAYS)"</code><br>
3137
+ <code># now prove update is the only writer:</code><br>
3138
+ <code>grep -rn 'mark_refreshed()' boost_cli | grep -v 'def mark_refreshed'</code><br>
3139
+ <code>./boost update</code><br>
3140
+ <code>ls -la $BOOST_HOME/state/last-tap-refresh</code>
3141
+
3142
+ <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
3143
+
3144
+ The mechanism reproduces exactly, but three of the claim's supporting statements are wrong:
3145
+
3146
+ 1. "the open card audit-audit-findings.md:36" — that card is <code>status: shipped</code> (docs/roadmap/items/audit-audit-findings.md, frontmatter line 5), not open. Its proposal is not pending; it landed.
3147
+
3148
+ 2. "would make two more surfaces silent for the same population" — false for <code>boost health</code>, which has ALREADY moved onto this marker and does NOT go silent. boost_cli/commands/quality.py:1417-1425 reads <code>registry.last_refresh_at()</code> and I measured the tap-only install printing <code>last tap sync never</code>. That is an honest degradation, visible to the user — the opposite of the silent failure the claim predicts.
3149
+
3150
+ 3. "would make two more surfaces silent" — also false for <code>boost audit --skills</code>, which never moved onto the marker. boost_cli/commands/safety.py:233 <code>_tap_age_days</code> still shells out to <code>git log -1 --format=%ct</code> on the clone, so it is unaffected by the marker either way. Zero additional surfaces are made silent, not two.
3151
+
3152
+ 4. "unreachable for the entire population it is aimed at" — over-broad. The hint is aimed at users whose taps are stale, and the long-ago-updated half of that population IS served correctly (my control run B proves it fires at 200 days).
3153
+
3154
+ <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
3155
+
3156
+ Scope limits of my repro:
3157
+
3158
+ - My A/B used a 5-item <code>tests/make_fixture.py</code> tap, not the real default set. The population claim about <code>boost tap --defaults</code> and <code>boost quickstart</code> is settled by code inspection, not by running them: quickstart.py touches only <code>registry.list_taps</code> and <code>registry.add_many</code>, and <code>pkg.py:1077</code> is the sole <code>registry.update</code> call in all of boost_cli/commands/. No command other than <code>update</code> can reach <code>mark_refreshed</code>. - I aged install A by backdating every file under BOOST_HOME and install B by backdating the marker; neither is a genuinely 200-day-old machine, but the marker's mtime is the only input <code>refresh_age_days</code> reads (registry.py:435-440), so the emulation is exact. - The real install was inspected read-only with <code>ls</code> and a <code>json.load</code> of config.json. I did NOT run <code>boost health</code> there — it writes caches — so the "last tap sync never" line is measured on my disposable HOME, and the real machine's marker absence is measured directly. - I did not weigh the mitigation heavily: <code>boost health</code> does report "never", but it reaches the wrong population — the hint lives in <code>search</code> precisely because that is the command a never-update user runs, and nothing routes them to <code>health</code>. - Noticed but out of scope, not chased: the <code>if results:</code> guard at registry.py:680 means an <code>update</code> sweep where every tap FAILED also skips the stamp, and <code>test_a_sweep_with_no_taps_stamps_nothing</code> pins the no-taps case deliberately. - Not carded: <code>grep -h '^title:' docs/roadmap/items/*.md</code> plus body greps for mark_refreshed / tap_refresh_marker / refresh_age_days / "never …
3159
+
3160
+ <b>Why it is worth doing.</b> Tap clones are load-bearing for both BM25 freshness and dense vector validity, and boost deliberately refuses to refresh them in the background — which makes this one muted line the entire mechanism by which a user learns their catalogue has drifted. It is switched off for precisely the users who need it (onboard via quickstart or <code>tap --defaults</code>, search for months, never update), and switched on only for users who already demonstrated they run <code>boost update</code>. Stamping the marker on a successful tap would cost one <code>write_text</code> and make the hint reachable.
3161
+
3162
+ <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
3163
+ <div class="meta">
3164
+ <span class="m">Complexity <b>M</b></span>
3165
+ <span class="m">Impact <b>Med</b></span>
3166
+ <span class="m">Wow <b class="wow">★★★</b></span>
3167
+ <span class="m">CLAUDE.md's rule is that "search must never refresh taps in the background: _hint_sta…</span>
3168
+ </div>
3169
+ </article>
3004
3170
  <!-- /ROADMAP:cards -->
3005
3171
 
3006
3172
  </div>
File without changes