boost-skill-cli 1.2.153__tar.gz → 1.2.154__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 (1115) hide show
  1. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/CLAUDE.md +48 -16
  2. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/Makefile +11 -6
  3. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/PKG-INFO +1 -1
  4. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/_version.py +2 -2
  5. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  6. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/eval.html +9 -5
  7. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +17 -7
  8. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +12 -4
  9. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap.html +26 -93
  10. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_corpus.py +8 -3
  11. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_retrieval.py +17 -2
  12. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/baseline.json +18 -18
  13. boost_skill_cli-1.2.154/tests/eval/golden.jsonl +110 -0
  14. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/taps.txt +29 -14
  15. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_corpus.py +17 -7
  16. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_grading.py +109 -29
  17. boost_skill_cli-1.2.153/tests/eval/golden.jsonl +0 -102
  18. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.gitattributes +0 -0
  19. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.gitignore +0 -0
  20. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.gitleaks.toml +0 -0
  21. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.htmlvalidate.json +0 -0
  22. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.lighthouserc.json +0 -0
  23. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.lycheeignore +0 -0
  24. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.markdownlint-cli2.jsonc +0 -0
  25. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.pre-commit-config.yaml +0 -0
  26. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.stylelintrc.json +0 -0
  27. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.vale/styles/boost/AIWriting.yml +0 -0
  28. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.vale/styles/boost/Terminology.yml +0 -0
  29. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  30. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/.vale.ini +0 -0
  31. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/CODE_OF_CONDUCT.md +0 -0
  32. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/CONTRIBUTING.md +0 -0
  33. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/DCO +0 -0
  34. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/GOVERNANCE.md +0 -0
  35. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/LICENSE +0 -0
  36. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/MAINTAINERS.md +0 -0
  37. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/MANIFEST.in +0 -0
  38. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/README.md +0 -0
  39. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/SECURITY.md +0 -0
  40. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/SUPPORT.md +0 -0
  41. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost +0 -0
  42. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/__init__.py +0 -0
  43. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/__main__.py +0 -0
  44. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/cli.py +0 -0
  45. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/cliparse.py +0 -0
  46. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/__init__.py +0 -0
  47. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/_common.py +0 -0
  48. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/bmad.py +0 -0
  49. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/configuration.py +0 -0
  50. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/discovery.py +0 -0
  51. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/hooks.py +0 -0
  52. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/info.py +0 -0
  53. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/intelligence.py +0 -0
  54. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/pkg.py +0 -0
  55. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/quality.py +0 -0
  56. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/quickstart.py +0 -0
  57. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/run.py +0 -0
  58. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/safety.py +0 -0
  59. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/taps.py +0 -0
  60. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/commands/team.py +0 -0
  61. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/__init__.py +0 -0
  62. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/adapters.py +0 -0
  63. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/agents.py +0 -0
  64. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/ai.py +0 -0
  65. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/aihost.py +0 -0
  66. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/archive.py +0 -0
  67. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/bmad.py +0 -0
  68. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/bootstrap.py +0 -0
  69. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/browse.py +0 -0
  70. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/builtin.py +0 -0
  71. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/capabilities.py +0 -0
  72. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/catalog.py +0 -0
  73. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/catalogbundle.py +0 -0
  74. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/chat.py +0 -0
  75. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/claude_settings.py +0 -0
  76. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/cohort.py +0 -0
  77. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/compact.py +0 -0
  78. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/complete.py +0 -0
  79. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/config.py +0 -0
  80. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/dense.py +0 -0
  81. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/deps.py +0 -0
  82. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/discovery.py +0 -0
  83. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/ed25519.py +0 -0
  84. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/embed.py +0 -0
  85. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/faithfulness.py +0 -0
  86. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/frontmatter.py +0 -0
  87. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/gitutil.py +0 -0
  88. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/hookhost.py +0 -0
  89. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/imperative.py +0 -0
  90. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/injectscan.py +0 -0
  91. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/installscan.py +0 -0
  92. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/integrity.py +0 -0
  93. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/journal.py +0 -0
  94. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/jsonstate.py +0 -0
  95. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/localembed.py +0 -0
  96. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/lockfile.py +0 -0
  97. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/logs.py +0 -0
  98. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/mcp.py +0 -0
  99. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/mcpdecl.py +0 -0
  100. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/mcphost.py +0 -0
  101. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/minisign.py +0 -0
  102. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/nethttp.py +0 -0
  103. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/output.py +0 -0
  104. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/paths.py +0 -0
  105. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/policy.py +0 -0
  106. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/prereq.py +0 -0
  107. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/projectlock.py +0 -0
  108. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/provenance.py +0 -0
  109. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/rag.py +0 -0
  110. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/registry.py +0 -0
  111. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/report.py +0 -0
  112. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/resolve.py +0 -0
  113. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/rules.py +0 -0
  114. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/scopes.py +0 -0
  115. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/secretscan.py +0 -0
  116. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/selfupdate.py +0 -0
  117. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/serve.py +0 -0
  118. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/shards.py +0 -0
  119. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/stackprobe.py +0 -0
  120. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/staleness.py +0 -0
  121. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/store.py +0 -0
  122. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/trustaudit.py +0 -0
  123. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/typedvalue.py +0 -0
  124. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/typosquat.py +0 -0
  125. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/updatediff.py +0 -0
  126. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/util.py +0 -0
  127. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/core/workflows.py +0 -0
  128. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/data/registries.json +0 -0
  129. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/data/rules/boost-first.mdc +0 -0
  130. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/errors.py +0 -0
  131. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_cli/spin.py +0 -0
  132. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/__init__.py +0 -0
  133. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/_compat.py +0 -0
  134. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/graph.py +0 -0
  135. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/loader.py +0 -0
  136. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/py.typed +0 -0
  137. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_langchain/retriever.py +0 -0
  138. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  139. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  140. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  141. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/requires.txt +0 -0
  142. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/boost_skill_cli.egg-info/top_level.txt +0 -0
  143. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/codecov.yml +0 -0
  144. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/DEBUGGING.md +0 -0
  145. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/adapters.html +0 -0
  146. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/architecture/README.md +0 -0
  147. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/architecture/c4-components-core.md +0 -0
  148. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/architecture/c4-containers.md +0 -0
  149. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/architecture/c4-context.md +0 -0
  150. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/architecture/c4-dynamic-install.md +0 -0
  151. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/bmad.md +0 -0
  152. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/distill.gif +0 -0
  153. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/doctor.gif +0 -0
  154. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/explain.gif +0 -0
  155. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/hooks.gif +0 -0
  156. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/install.gif +0 -0
  157. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/pulse.gif +0 -0
  158. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/search.gif +0 -0
  159. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/gifs/tap.gif +0 -0
  160. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/distill.tape +0 -0
  161. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/doctor.tape +0 -0
  162. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/explain.tape +0 -0
  163. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/hooks.tape +0 -0
  164. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/install.tape +0 -0
  165. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/pulse.tape +0 -0
  166. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/search.tape +0 -0
  167. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel/tapes/tap.tape +0 -0
  168. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/carousel.html +0 -0
  169. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/chat.html +0 -0
  170. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/code-review.md +0 -0
  171. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/commands.html +0 -0
  172. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/commit-audit.md +0 -0
  173. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/demo-index.json +0 -0
  174. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/demo.gif +0 -0
  175. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/demo.html +0 -0
  176. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/demo.tape +0 -0
  177. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/dependencies.md +0 -0
  178. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/design-roadmap.html +0 -0
  179. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/eval-latest.json +0 -0
  180. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/index.html +0 -0
  181. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/langchain.html +0 -0
  182. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/mcp-hub.html +0 -0
  183. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/openssf-badge.md +0 -0
  184. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/openssf-playbook.md +0 -0
  185. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/rag-architecture.md +0 -0
  186. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D01.md +0 -0
  187. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D02.md +0 -0
  188. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D03.md +0 -0
  189. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D04.md +0 -0
  190. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D05.md +0 -0
  191. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D06.md +0 -0
  192. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D07.md +0 -0
  193. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D08.md +0 -0
  194. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D09.md +0 -0
  195. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D10.md +0 -0
  196. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D11.md +0 -0
  197. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D12.md +0 -0
  198. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D13.md +0 -0
  199. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D14.md +0 -0
  200. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D15.md +0 -0
  201. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D16.md +0 -0
  202. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D17.md +0 -0
  203. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D18.md +0 -0
  204. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D19.md +0 -0
  205. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D20.md +0 -0
  206. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D21.md +0 -0
  207. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D22.md +0 -0
  208. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D23.md +0 -0
  209. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D24.md +0 -0
  210. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D25.md +0 -0
  211. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D26.md +0 -0
  212. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/BOOST-D27.md +0 -0
  213. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
  214. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  215. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
  216. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  217. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  218. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  219. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  220. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
  221. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  222. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  223. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  224. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  225. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  226. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  227. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  228. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  229. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  230. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  231. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  232. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-attest-findings.md +0 -0
  233. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-audit-findings.md +0 -0
  234. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  235. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-browse-findings.md +0 -0
  236. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  237. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  238. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  239. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  240. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-chat-findings.md +0 -0
  241. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  242. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  243. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  244. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-completions-findings.md +0 -0
  245. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-config-findings.md +0 -0
  246. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  247. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-context-findings.md +0 -0
  248. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  249. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  250. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-create-findings.md +0 -0
  251. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  252. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-deps-findings.md +0 -0
  253. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-discover-findings.md +0 -0
  254. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  255. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  256. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-drift-findings.md +0 -0
  257. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  258. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-edit-findings.md +0 -0
  259. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  260. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-explain-findings.md +0 -0
  261. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-export-findings.md +0 -0
  262. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  263. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  264. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  265. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  266. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  267. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-health-findings.md +0 -0
  268. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  269. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  270. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-import-findings.md +0 -0
  271. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-index-findings.md +0 -0
  272. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  273. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  274. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-findings.md +0 -0
  275. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  276. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  277. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-lint-findings.md +0 -0
  278. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-log-findings.md +0 -0
  279. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  280. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  281. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  282. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  283. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  284. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  285. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  286. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  287. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  288. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  289. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  290. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-policy-findings.md +0 -0
  291. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-preview-findings.md +0 -0
  292. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-profile-findings.md +0 -0
  293. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  294. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  295. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  296. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  297. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  298. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  299. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  300. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  301. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  302. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-replay-findings.md +0 -0
  303. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-root-findings.md +0 -0
  304. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  305. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-run-findings.md +0 -0
  306. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  307. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-search-findings.md +0 -0
  308. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  309. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  310. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  311. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  312. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  313. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  314. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  315. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  316. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-sync-findings.md +0 -0
  317. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tag-findings.md +0 -0
  318. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  319. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-tap-findings.md +0 -0
  320. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-taps-findings.md +0 -0
  321. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  322. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-test-findings.md +0 -0
  323. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-trust-findings.md +0 -0
  324. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  325. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  326. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-untap-findings.md +0 -0
  327. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-update-findings.md +0 -0
  328. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  329. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-verify-findings.md +0 -0
  330. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/audit-who-findings.md +0 -0
  331. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  332. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  333. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  334. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  335. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  336. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  337. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  338. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  339. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  340. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  341. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  342. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  343. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  344. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  345. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  346. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  347. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-first-rule.md +0 -0
  348. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  349. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  350. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/branch-current-gate.md +0 -0
  351. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  352. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  353. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  354. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  355. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  356. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  357. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
  358. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  359. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  360. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  361. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  362. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  363. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  364. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  365. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
  366. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  367. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  368. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  369. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  370. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  371. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-command-audit.md +0 -0
  372. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  373. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  374. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  375. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
  376. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
  377. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  378. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/command-carousel-page.md +0 -0
  379. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  380. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  381. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  382. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  383. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  384. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  385. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
  386. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  387. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  388. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  389. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  390. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  391. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  392. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  393. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  394. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  395. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  396. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  397. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  398. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  399. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  400. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
  401. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  402. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  403. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  404. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  405. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  406. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  407. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  408. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  409. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  410. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  411. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  412. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  413. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  414. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  415. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  416. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  417. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  418. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  419. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  420. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  421. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
  422. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  423. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  424. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  425. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  426. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  427. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  428. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  429. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  430. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  431. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  432. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  433. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  434. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  435. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  436. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  437. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  438. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  439. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  440. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  441. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  442. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  443. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  444. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  445. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  446. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
  447. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  448. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  449. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  450. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  451. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  452. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  453. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  454. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/github-community-health-files.md +0 -0
  455. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  456. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  457. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  458. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  459. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  460. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  461. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
  462. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  463. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
  464. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
  465. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  466. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  467. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
  468. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  469. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  470. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  471. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
  472. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  473. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  474. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  475. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  476. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  477. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  478. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  479. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
  480. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  481. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  482. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  483. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  484. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  485. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  486. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  487. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  488. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  489. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  490. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  491. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
  492. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  493. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  494. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  495. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  496. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  497. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  498. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  499. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  500. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  501. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  502. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  503. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  504. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  505. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
  506. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  507. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  508. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  509. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  510. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  511. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  512. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  513. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
  514. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  515. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  516. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  517. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  518. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
  519. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  520. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  521. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
  522. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  523. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  524. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  525. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  526. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
  527. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  528. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
  529. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  530. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  531. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  532. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  533. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  534. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  535. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  536. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  537. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  538. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  539. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  540. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  541. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  542. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  543. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  544. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  545. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  546. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  547. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
  548. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  549. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  550. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  551. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
  552. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  553. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  554. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  555. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-playbook.md +0 -0
  556. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/openssf-silver.md +0 -0
  557. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  558. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  559. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  560. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  561. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  562. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  563. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  564. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  565. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  566. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  567. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  568. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  569. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  570. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  571. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  572. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  573. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  574. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  575. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  576. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  577. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  578. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  579. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  580. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  581. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  582. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  583. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  584. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  585. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  586. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
  587. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  588. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  589. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  590. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  591. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
  592. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  593. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  594. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  595. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  596. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  597. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  598. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  599. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  600. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  601. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  602. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
  603. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  604. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/relicence-apache-2.md +0 -0
  605. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  606. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  607. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  608. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  609. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  610. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  611. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  612. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  613. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  614. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  615. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  616. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  617. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  618. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  619. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  620. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  621. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
  622. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  623. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  624. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  625. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  626. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  627. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  628. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  629. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  630. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  631. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  632. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  633. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  634. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  635. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  636. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  637. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  638. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  639. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  640. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  641. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  642. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  643. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  644. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  645. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  646. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  647. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  648. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  649. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  650. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  651. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  652. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  653. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  654. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  655. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  656. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  657. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  658. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  659. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  660. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  661. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  662. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  663. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  664. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  665. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  666. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  667. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  668. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  669. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  670. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
  671. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  672. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  673. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  674. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  675. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  676. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  677. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
  678. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
  679. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
  680. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  681. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  682. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
  683. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  684. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  685. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  686. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  687. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  688. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  689. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  690. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  691. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  692. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  693. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  694. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  695. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  696. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  697. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
  698. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  699. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  700. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  701. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  702. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  703. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  704. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  705. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  706. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  707. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  708. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  709. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  710. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  711. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  712. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/workspace-scope-install.md +0 -0
  713. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/zip-strict-audit.md +0 -0
  714. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  715. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  716. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/security-design.md +0 -0
  717. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/semantic-search.md +0 -0
  718. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  719. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/verifying-releases.md +0 -0
  720. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/meta.md +0 -0
  721. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/openvex.json +0 -0
  722. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  723. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  724. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  725. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  726. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/eslint.config.mjs +0 -0
  727. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/README.md +0 -0
  728. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/__init__.py +0 -0
  729. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/baseline.json +0 -0
  730. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/faithfulness.py +0 -0
  731. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/golden_set.json +0 -0
  732. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/make_corpus.py +0 -0
  733. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/make_golden.py +0 -0
  734. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/metrics.py +0 -0
  735. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/publish_golden_dataset.py +0 -0
  736. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/evals/run_evals.py +0 -0
  737. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/examples/README.md +0 -0
  738. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/examples/adapt-demo.sh +0 -0
  739. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/examples/boost-run-prototype.sh +0 -0
  740. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/index.html +0 -0
  741. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/noxfile.py +0 -0
  742. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/pyproject.toml +0 -0
  743. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/coverage-tools.in +0 -0
  744. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/coverage-tools.txt +0 -0
  745. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/lint-tools.in +0 -0
  746. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/lint-tools.txt +0 -0
  747. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/mutation-tools.in +0 -0
  748. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/mutation-tools.txt +0 -0
  749. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/platform-pins.lock +0 -0
  750. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/release-tools.in +0 -0
  751. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/release-tools.txt +0 -0
  752. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/test-tools.in +0 -0
  753. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/requirements/test-tools.txt +0 -0
  754. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/a11y_check.py +0 -0
  755. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/add_spdx_headers.py +0 -0
  756. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/bench_cli.sh +0 -0
  757. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_command_reference.py +0 -0
  758. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_demo_index.py +0 -0
  759. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_registries.py +0 -0
  760. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_roadmap.py +0 -0
  761. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_scale_corpus.py +0 -0
  762. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/build_vex.py +0 -0
  763. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_anchors.py +0 -0
  764. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_branch_current.py +0 -0
  765. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_dco.py +0 -0
  766. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_licenses.py +0 -0
  767. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_reproducible.py +0 -0
  768. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/check_required_checks.py +0 -0
  769. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/ensure_eval_corpus.sh +0 -0
  770. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_explain.py +0 -0
  771. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_gate.py +0 -0
  772. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_recommend.py +0 -0
  773. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_stats_summary.py +0 -0
  774. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/eval_tools.py +0 -0
  775. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/import_budget.py +0 -0
  776. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/lock_toolchain.py +0 -0
  777. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/measure_near_duplicate_bound.py +0 -0
  778. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/measure_registry.py +0 -0
  779. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/mutation_gate.py +0 -0
  780. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/mutation_shards.py +0 -0
  781. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/mutation_weights.json +0 -0
  782. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/normalize_sdist.py +0 -0
  783. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/page_budget.py +0 -0
  784. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/perf_gate.py +0 -0
  785. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/post_deploy_smoke.py +0 -0
  786. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/publish_eval_json.py +0 -0
  787. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/publish_shards.py +0 -0
  788. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/release_guard.py +0 -0
  789. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/release_preflight.py +0 -0
  790. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/serve_docs.py +0 -0
  791. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/scripts/shard_plan.py +0 -0
  792. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/setup.cfg +0 -0
  793. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/sonar-project.properties +0 -0
  794. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/style/README.md +0 -0
  795. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/style/boost.css +0 -0
  796. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/style/boost.js +0 -0
  797. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/style/demo.html +0 -0
  798. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/adapt.feature +0 -0
  799. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/browse.feature +0 -0
  800. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/count.feature +0 -0
  801. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/discover.feature +0 -0
  802. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/doctor.feature +0 -0
  803. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/environment.py +0 -0
  804. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/explain.feature +0 -0
  805. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/index.feature +0 -0
  806. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/install.feature +0 -0
  807. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/list.feature +0 -0
  808. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/mcp.feature +0 -0
  809. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/search.feature +0 -0
  810. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/cli_steps.py +0 -0
  811. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/discovery_steps.py +0 -0
  812. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/mcp_steps.py +0 -0
  813. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/bdd/features/steps/quality_steps.py +0 -0
  814. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/conftest.py +0 -0
  815. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/explain.jsonl +0 -0
  816. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  817. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/golden-natural.jsonl +0 -0
  818. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/recommend.jsonl +0 -0
  819. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/taps-scale.txt +0 -0
  820. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/eval/tool_calls.jsonl +0 -0
  821. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  822. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_bmad_all_hosts.py +0 -0
  823. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_bmad_personas_scope.py +0 -0
  824. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_capabilities_policy.py +0 -0
  825. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_adapt.py +0 -0
  826. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_bmad.py +0 -0
  827. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_catalog.py +0 -0
  828. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_chat.py +0 -0
  829. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_configuration.py +0 -0
  830. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_discovery.py +0 -0
  831. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks.py +0 -0
  832. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks_codex.py +0 -0
  833. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_hooks_gemini.py +0 -0
  834. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_identifier_columns.py +0 -0
  835. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_info.py +0 -0
  836. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_intelligence.py +0 -0
  837. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_json_reports.py +0 -0
  838. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_pane_width.py +0 -0
  839. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_pkg.py +0 -0
  840. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_quality.py +0 -0
  841. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_quickstart.py +0 -0
  842. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_tap_pins.py +0 -0
  843. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_taps.py +0 -0
  844. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_cli_team.py +0 -0
  845. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  846. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  847. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_everyday_loop.py +0 -0
  848. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_integrity_enforce.py +0 -0
  849. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_keyed_no_store_hint.py +0 -0
  850. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_kind_conformance.py +0 -0
  851. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_property_parsers.py +0 -0
  852. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_recommend_because_is_true.py +0 -0
  853. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
  854. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_reports_match_reality.py +0 -0
  855. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_run.py +0 -0
  856. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_tap_signing.py +0 -0
  857. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/functional/test_workspace_scope.py +0 -0
  858. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/README.md +0 -0
  859. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  860. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  861. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  862. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  863. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  864. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  865. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  866. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  867. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  868. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  869. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  870. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  871. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  872. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  873. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  874. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  875. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  876. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  877. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  878. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  879. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  880. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  881. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  882. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/fuzz_frontmatter.py +0 -0
  883. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/fuzz/fuzz_registry.py +0 -0
  884. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/langchain/conftest.py +0 -0
  885. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/langchain/test_graph.py +0 -0
  886. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/langchain/test_loader.py +0 -0
  887. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/langchain/test_retriever.py +0 -0
  888. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/make_fixture.py +0 -0
  889. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/perf/test_benchmarks.py +0 -0
  890. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/smoke.sh +0 -0
  891. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  892. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_a11y_check.py +0 -0
  893. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_action_pin_lockstep.py +0 -0
  894. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_adapters.py +0 -0
  895. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_adapters_multi.py +0 -0
  896. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_adapters_runner.py +0 -0
  897. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_agents.py +0 -0
  898. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_ai.py +0 -0
  899. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_aihost.py +0 -0
  900. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_archive.py +0 -0
  901. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_bmad_core.py +0 -0
  902. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_boost_first_offer.py +0 -0
  903. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_bootstrap.py +0 -0
  904. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_bot_pr_dco.py +0 -0
  905. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_branch_current.py +0 -0
  906. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_browse.py +0 -0
  907. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_builtin.py +0 -0
  908. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_canary_deps.py +0 -0
  909. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_capabilities.py +0 -0
  910. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_catalog.py +0 -0
  911. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_catalog_distinct.py +0 -0
  912. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_catalog_keyword_words.py +0 -0
  913. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_catalogbundle.py +0 -0
  914. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_chat.py +0 -0
  915. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_check_anchors.py +0 -0
  916. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_check_dco.py +0 -0
  917. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_check_licenses.py +0 -0
  918. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_check_reproducible.py +0 -0
  919. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_claude_settings.py +0 -0
  920. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_claude_settings_codex.py +0 -0
  921. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_clean_internal_cache.py +0 -0
  922. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_cli_update_shards.py +0 -0
  923. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_cliparse.py +0 -0
  924. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_codeql_analysis_key.py +0 -0
  925. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_cohort.py +0 -0
  926. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_command_reference_fresh.py +0 -0
  927. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_community_health_files.py +0 -0
  928. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_compact.py +0 -0
  929. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_complete.py +0 -0
  930. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_complete_rc_block.py +0 -0
  931. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_config.py +0 -0
  932. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_content_dedupe.py +0 -0
  933. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_content_identity.py +0 -0
  934. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_corpus_prose.py +0 -0
  935. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  936. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_coverage_gate_prose.py +0 -0
  937. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_crash_redaction.py +0 -0
  938. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dedup_trust.py +0 -0
  939. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_demo_index.py +0 -0
  940. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense.py +0 -0
  941. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  942. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_embed_dedupe.py +0 -0
  943. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_entry_reuse.py +0 -0
  944. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_entry_vectors.py +0 -0
  945. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_fallback.py +0 -0
  946. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_fix_hint.py +0 -0
  947. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_model_unavailable.py +0 -0
  948. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_progress.py +0 -0
  949. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_quantized.py +0 -0
  950. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_ready_order.py +0 -0
  951. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shard_real_schema.py +0 -0
  952. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  953. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_shards.py +0 -0
  954. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_status.py +0 -0
  955. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_status_cheap.py +0 -0
  956. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dense_vector_dedupe.py +0 -0
  957. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dependabot_config.py +0 -0
  958. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_deps.py +0 -0
  959. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_discovery.py +0 -0
  960. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_distill_merge.py +0 -0
  961. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_docs_pages_linked.py +0 -0
  962. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_docsite_chrome.py +0 -0
  963. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_doctor_output_polish.py +0 -0
  964. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_drift_hint.py +0 -0
  965. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_dry_run_parity.py +0 -0
  966. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_ed25519.py +0 -0
  967. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_embed.py +0 -0
  968. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_embed_local.py +0 -0
  969. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_embed_outranking.py +0 -0
  970. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_embed_truncated_response.py +0 -0
  971. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_entry_key.py +0 -0
  972. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_errors_and_cli_table.py +0 -0
  973. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_baseline.py +0 -0
  974. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_corpus_bodies.py +0 -0
  975. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_faithfulness.py +0 -0
  976. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_gate.py +0 -0
  977. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_metrics.py +0 -0
  978. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_query_sets.py +0 -0
  979. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_stats_summary.py +0 -0
  980. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_tools.py +0 -0
  981. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_eval_tools_probe.py +0 -0
  982. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  983. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_faithfulness.py +0 -0
  984. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_first_run_pointer.py +0 -0
  985. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_frontmatter.py +0 -0
  986. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_fuzz_targets.py +0 -0
  987. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  988. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gitleaks_config.py +0 -0
  989. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil.py +0 -0
  990. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil_lfs.py +0 -0
  991. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gitutil_sparse.py +0 -0
  992. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_gstack_coexistence.py +0 -0
  993. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_help_contracts.py +0 -0
  994. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_hook_settings_hosts.py +0 -0
  995. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_hookhost.py +0 -0
  996. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_hookhost_codex.py +0 -0
  997. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_imperative.py +0 -0
  998. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_import_budget.py +0 -0
  999. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_injectscan.py +0 -0
  1000. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_install_permission_error.py +0 -0
  1001. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_installscan.py +0 -0
  1002. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_integrity.py +0 -0
  1003. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_journal.py +0 -0
  1004. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_jsonstate.py +0 -0
  1005. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_langchain_packaging.py +0 -0
  1006. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_launcher_python_floor.py +0 -0
  1007. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_lighthouse_budgets.py +0 -0
  1008. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_link_ownership.py +0 -0
  1009. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_localembed.py +0 -0
  1010. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_localembed_e2e.py +0 -0
  1011. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_lockfile.py +0 -0
  1012. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_logs.py +0 -0
  1013. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_marketing_counts.py +0 -0
  1014. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcp.py +0 -0
  1015. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
  1016. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_install_scan.py +0 -0
  1017. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcp_read.py +0 -0
  1018. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcpdecl.py +0 -0
  1019. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mcphost.py +0 -0
  1020. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_measure_registry.py +0 -0
  1021. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_minisign.py +0 -0
  1022. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_hardening.py +0 -0
  1023. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_shards.py +0 -0
  1024. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mutation_subfile_shards.py +0 -0
  1025. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_mutmut_source_paths.py +0 -0
  1026. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_near_duplicate_collapse.py +0 -0
  1027. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_nethttp.py +0 -0
  1028. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_normalize_sdist.py +0 -0
  1029. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_output.py +0 -0
  1030. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_output_table_drop.py +0 -0
  1031. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_output_table_whole.py +0 -0
  1032. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_page_budget.py +0 -0
  1033. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_paths.py +0 -0
  1034. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_perf_gate.py +0 -0
  1035. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_confusions.py +0 -0
  1036. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_injection.py +0 -0
  1037. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_pkg_secrets.py +0 -0
  1038. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_platform_pins.py +0 -0
  1039. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_policy.py +0 -0
  1040. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_post_deploy_smoke.py +0 -0
  1041. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_prereq.py +0 -0
  1042. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1043. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_projectlock.py +0 -0
  1044. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_provenance.py +0 -0
  1045. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_publish_golden_dataset.py +0 -0
  1046. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_quickstart_readiness.py +0 -0
  1047. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rag.py +0 -0
  1048. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rag_completeness.py +0 -0
  1049. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rag_extra_hint.py +0 -0
  1050. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rag_fastpath.py +0 -0
  1051. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rag_fusion.py +0 -0
  1052. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_read_text_arg.py +0 -0
  1053. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_registries_fresh.py +0 -0
  1054. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_registry.py +0 -0
  1055. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_registry_categories.py +0 -0
  1056. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_registry_control_chars.py +0 -0
  1057. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_registry_parallel.py +0 -0
  1058. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_release_guard.py +0 -0
  1059. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_release_preflight.py +0 -0
  1060. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_repo_root_guard.py +0 -0
  1061. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_report.py +0 -0
  1062. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_required_checks.py +0 -0
  1063. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rerank_cache.py +0 -0
  1064. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_resolve.py +0 -0
  1065. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1066. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_roadmap_fresh.py +0 -0
  1067. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_rules.py +0 -0
  1068. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
  1069. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_scale_corpus.py +0 -0
  1070. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_schedule_plist.py +0 -0
  1071. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_scopes.py +0 -0
  1072. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_sdist_contents.py +0 -0
  1073. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_secretscan.py +0 -0
  1074. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_selfupdate.py +0 -0
  1075. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_serve.py +0 -0
  1076. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_serve_docs.py +0 -0
  1077. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shard_plan.py +0 -0
  1078. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shards.py +0 -0
  1079. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shards_carry_forward.py +0 -0
  1080. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shards_incremental.py +0 -0
  1081. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shards_ingest.py +0 -0
  1082. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_shards_matrix.py +0 -0
  1083. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1084. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_spdx_headers.py +0 -0
  1085. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_spin.py +0 -0
  1086. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_stackprobe.py +0 -0
  1087. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_staleness.py +0 -0
  1088. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_store.py +0 -0
  1089. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_store_materialize.py +0 -0
  1090. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_sync_blocked_links.py +0 -0
  1091. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_sync_lost_lock.py +0 -0
  1092. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1093. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_tap_pins.py +0 -0
  1094. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_token_parity.py +0 -0
  1095. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_toolchain_lock.py +0 -0
  1096. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_trustaudit.py +0 -0
  1097. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_typedvalue.py +0 -0
  1098. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_typosquat.py +0 -0
  1099. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_updatediff.py +0 -0
  1100. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_upstream_path.py +0 -0
  1101. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_util.py +0 -0
  1102. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_version.py +0 -0
  1103. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_version_tags.py +0 -0
  1104. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_vex.py +0 -0
  1105. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_visual_harness_capture.py +0 -0
  1106. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_visual_harness_flags.py +0 -0
  1107. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_concurrency.py +0 -0
  1108. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1109. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1110. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_workflow_timeouts.py +0 -0
  1111. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_workflows.py +0 -0
  1112. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1113. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/visual/a11y_check.mjs +0 -0
  1114. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/visual/console_check.mjs +0 -0
  1115. {boost_skill_cli-1.2.153 → boost_skill_cli-1.2.154}/tests/visual/visual_check.mjs +0 -0
@@ -101,16 +101,23 @@ engines over the golden set (`tests/eval/golden.jsonl`) and floors **four**
101
101
  metrics on BM25 — recall@k, hit@1, MRR and nDCG@k. Flooring recall alone was a
102
102
  hole rather than a simplification: a ranker that finds the right answer every
103
103
  time and never ranks it first scores recall@10 1.000 with hit@1 0.000, and
104
- passed. The golden set grades real catalog items **by name**, so it needs a
105
- corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
106
- `tests/eval/taps.txt` (the minimal set covering all golden targets — `boost tap
107
- --defaults` is NOT enough, it omits every rule/workflow repo). The list is
108
- **twenty** repos: the first six cover every golden target, the rest exist so the
109
- corpus is a realistic size. That matters more than it sounds — over the six
110
- alone (921 entries at the current pins) BM25 scores 0.989 / 0.769 / 0.848 /
111
- 0.880, and over the twenty (10,731) it scores **0.841 / 0.484 / 0.607 / 0.655**
112
- on the same golden set (what `tests/eval/baseline.json` records), so three of
113
- the four old floors fail once the corpus stops being tiny.
104
+ passed. The golden set grades real catalog items **by the body they name**, so it
105
+ needs a corpus: `scripts/ensure_eval_corpus.sh` first taps the pinned repo list in
106
+ `tests/eval/taps.txt` (`boost tap --defaults` is NOT enough, it omits every
107
+ rule/workflow repo). The list is **twenty** repos and **not one of them
108
+ can be dropped**: the first six are the set the name-graded floors were first
109
+ measured on, and the `# --- scale` divider below them no longer separates
110
+ "targets" from "filler" — `golden.jsonl` pins exemplars into two repos below
111
+ it and `golden-natural.jsonl` into five, so no proper subset of the file can
112
+ score either set. The rest exist so the corpus is a realistic size. That matters more than it sounds — over the six
113
+ alone (921 entries at the current pins) BM25 scored 0.989 / 0.769 / 0.848 /
114
+ 0.880, and over the twenty (10,731) it scores **0.846 / 0.484 / 0.607 / 0.659**
115
+ (what `tests/eval/baseline.json` records), so three of the four old floors fail
116
+ once the corpus stops being tiny. The six-repo row is **historical**: it was
117
+ measured name-graded, before the set was pinned, and cannot be re-run against
118
+ today's `golden.jsonl` — see the coupling rule below. It stays re-derivable:
119
+ `git show e11a34f2:tests/eval/golden.jsonl` scored over a six-tap corpus
120
+ reproduces it exactly.
114
121
 
115
122
  **The ranked list de-duplicates on the content hash, not the name.** A grade key
116
123
  decides both relevance and identity, and keying identity on the name collapsed
@@ -118,16 +125,22 @@ decides both relevance and identity, and keying identity on the name collapsed
118
125
  ranker with a compression that existed only in the scoring code, and worth about
119
126
  one query of recall@10. That is where the old "recall is 1.000" folklore came
120
127
  from; the six-repo corpus measured 0.978 at the pins of the time once mirrors
121
- collapse and homonyms do not. Relevance is still decided by name (or by content
122
- class when a golden row pins an `exemplar`), so the sets can migrate a row at a
123
- time.
128
+ collapse and homonyms do not. Relevance is decided by the content class of the
129
+ bodies a row pins in its `exemplar`, or by name for a row that pins none. The
130
+ two conventions coexist so a set can migrate a row at a time, and **both
131
+ shipped sets have now finished** — `golden.jsonl` 91/91 here, and
132
+ `golden-natural.jsonl` 50/50 back in #434. So no shipped set exercises the
133
+ name path any more: it is kept for a set added outside this repo, and unit
134
+ tests (`TestNameGradingIsUnchanged`) are the only thing covering it. Don't
135
+ delete it on the strength of the coverage report, and don't claim a shipped
136
+ set still uses it.
124
137
 
125
138
  The floors are fixed absolute values, and the uniform "~10%" margin this file
126
139
  claimed from 170d52c0 (2026-07-31) onward was never one of them. They sit under
127
- their measured values (7.2% / 17.3% / 14.3% / 11.5%), recall@k the tightest —
140
+ their measured values (7.8% / 17.3% / 14.3% / 12.1%), recall@k the tightest —
128
141
  loose enough that upstream drift can't flake the build, tight enough to catch a
129
- collapse, but a 2.39x spread rather than one number, and the tightest of them
130
- is worth 5.5 queries of 91. The spread is the design working, not drifting: the
142
+ collapse, but a 2.21x spread rather than one number, and the tightest of them
143
+ is worth 6.0 queries of 91. The spread is the design working, not drifting: the
131
144
  monthly refresh re-measures the row and deliberately leaves the floors where
132
145
  they are, so every refresh that improves a metric widens that metric's margin.
133
146
  Floors are re-stated after a refresh, never re-derived — a floor that follows
@@ -156,6 +169,25 @@ floored recall alone at 0.85 against a measured 0.863 — a buffer of 1.15
156
169
  queries out of 91 — and applied none of the other three). Moving a pin means
157
170
  regenerating the baseline; the file says how.
158
171
 
172
+ **A pinned golden row couples the set to a corpus, and that is the trade.**
173
+ An `exemplar` is `tap::skill_md`, so a row can only be scored over a corpus
174
+ holding that tap: `prepare_row` raises `SystemExit` on a spec it cannot
175
+ resolve, deliberately, because a silent fall back to name grading turns a typo
176
+ into a quietly weaker gate that still reports a number. Consequences:
177
+
178
+ - **A subset corpus can no longer score `golden.jsonl`.** The six-repo
179
+ comparison figure is historical for this reason, not stale. `taps-scale.txt`
180
+ is fine — it holds every row of `taps.txt` and 129 more, so
181
+ `eval-scale.yml` keeps scoring the same set.
182
+ - **A pin move can invalidate a path.** `eval-corpus-refresh.yml`'s re-baseline
183
+ step is not `continue-on-error`, so a renamed file stops the monthly refresh
184
+ before its pull request opens. That is the intended signal and the fix is to
185
+ re-resolve the path in the new clone — `--worksheet` will not help, because
186
+ it lists rows still graded **by name** and a pinned row is not one.
187
+ - **Do not "fix" it by tolerating an unresolvable spec in a multi-spec list.**
188
+ A refresh that drops a repo would then narrow every such row's class to
189
+ whatever still resolves, which is the same silent weakening one level down.
190
+
159
191
  **Baselines are keyed by query set** (`name@content-digest`), so one file holds
160
192
  both `golden.jsonl` and `golden-natural.jsonl` without either overwriting the
161
193
  other. Before that, running the natural-language set printed eight confident
@@ -122,16 +122,21 @@ dist-check:
122
122
  # 0.000 passed.
123
123
  #
124
124
  # The floors are calibrated against a TWENTY-tap corpus, not the six it used to
125
- # be. Over the six (921 entries) BM25 scores 0.989 / 0.769 / 0.848 / 0.880;
126
- # over twenty it scores 0.841 / 0.484 / 0.607 / 0.655 on the same golden set,
127
- # which is what tests/eval/baseline.json records at the current pins. The
125
+ # be. Over the six (921 entries) BM25 scored 0.989 / 0.769 / 0.848 / 0.880;
126
+ # over twenty it scores 0.846 / 0.484 / 0.607 / 0.659, which is what
127
+ # tests/eval/baseline.json records at the current pins. Not the same golden
128
+ # set: the six-repo row is name-graded and HISTORICAL, measured before every
129
+ # row pinned an exemplar, and today's golden.jsonl cannot be scored over six
130
+ # taps at all (a pin naming a tap outside the corpus is a hard error). It is
131
+ # still re-derivable -- `git show e11a34f2:tests/eval/golden.jsonl` over a
132
+ # six-tap corpus reproduces it to three places. The
128
133
  # second set is what a real user sees, so flooring against the first was
129
134
  # measuring the corpus rather than the retrieval — three of the four old floors
130
135
  # fail outright once the corpus is realistic. The four floors sit a margin
131
- # under their measured values (7.2% / 17.3% / 14.3% / 11.5%), recall@k the
132
- # tightest at 5.5 queries of 91: loose enough that a query or two cannot flake
136
+ # under their measured values (7.8% / 17.3% / 14.3% / 12.1%), recall@k the
137
+ # tightest at 6.0 queries of 91: loose enough that a query or two cannot flake
133
138
  # the build, tight enough that a collapse fails it. That margin is not uniform
134
- # and never was -- it is a 2.39x spread, because the row moves with every
139
+ # and never was -- it is a 2.21x spread, because the row moves with every
135
140
  # monthly refresh and the floors deliberately do not. So it is quoted rather
136
141
  # than asserted, and tests/unit/test_corpus_prose.py fails until the new
137
142
  # spread is written here. Regression-vs-baseline stays relaxed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.153
3
+ Version: 1.2.154
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.153'
22
- __version_tuple__ = version_tuple = (1, 2, 153)
21
+ __version__ = version = '1.2.154'
22
+ __version_tuple__ = version_tuple = (1, 2, 154)
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.153
3
+ Version: 1.2.154
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -146,7 +146,7 @@
146
146
 
147
147
  <div class="stats">
148
148
  <div class="stat reveal"><b>5</b><span>Evaluation tiers</span></div>
149
- <div class="stat reveal"><b>0.841</b><span>BM25 recall@10 · pinned corpus</span></div>
149
+ <div class="stat reveal"><b>0.846</b><span>BM25 recall@10 · pinned corpus</span></div>
150
150
  <div class="stat reveal"><b>141</b><span>Golden judgments</span></div>
151
151
  <div class="stat reveal"><b>0</b><span>Deps in the required gate</span></div>
152
152
  </div>
@@ -326,7 +326,8 @@
326
326
  regression &mdash; it is what users already had, now visible.</p>
327
327
 
328
328
  <h3>2 &middot; The score was also about the shape of the question</h3>
329
- <p>The keyword golden set grades catalog items <b>by name</b>, so its queries carry the
329
+ <p>The keyword golden set was graded <b>by name</b> when these runs were made &mdash; both
330
+ shipped sets now pin an exemplar body on every row &mdash; and its queries carry the
330
331
  vocabulary of the thing they are looking for. That is BM25's home ground. The 50 queries in
331
332
  <code>golden-natural.jsonl</code> describe a <em>problem</em> instead &mdash; each written
332
333
  from its target's own description, with the target's distinctive name tokens deliberately
@@ -341,7 +342,8 @@
341
342
  query sets, <code>k=10</code>. <b>Voyage is absent: it needs an API key, and these runs were
342
343
  keyless</b>, which is the configuration most users are in.</p>
343
344
 
344
- <p><b>Keyword golden set</b> &mdash; 91 queries that grade items by name:</p>
345
+ <p><b>Keyword golden set</b> &mdash; 91 queries, graded by name at the pins these runs
346
+ used; every row pins an exemplar body today:</p>
345
347
  <table class="contract">
346
348
  <thead><tr><th>engine</th><th>recall@10</th><th>hit@1</th><th>MRR</th><th>nDCG@10</th></tr></thead>
347
349
  <tbody>
@@ -397,8 +399,10 @@
397
399
  <div class="wrap">
398
400
  <span class="eyebrow">Sequence · the required gate</span>
399
401
  <h2 class="sec-title">How Tier 1 runs on every PR</h2>
400
- <p class="lead" style="margin-top:20px">The golden set grades items <em>by name</em>, so the
401
- repos that hold them must be present. CI taps a pinned corpus first, builds the BM25 index,
402
+ <p class="lead" style="margin-top:20px">Every golden row pins the <em>body</em> it was
403
+ written about, as <code>tap::skill_md</code>, so the repos that hold them must be present
404
+ &mdash; a pin the corpus cannot resolve halts the gate and names the missing spec,
405
+ rather than quietly scoring a smaller set. CI taps a pinned corpus first, builds the BM25 index,
402
406
  scores the golden set, and floors recall — all offline after the tap, all deterministic.</p>
403
407
 
404
408
  <div class="diagram">
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  id: gated-golden-set-has-zero-exemplars
3
3
  board: code
4
- section: planned
5
- status: planned
4
+ section: shipped
5
+ status: shipped
6
6
  category: Quality · Retrieval eval
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…
11
11
  order: 214
12
- owner:
13
- pr:
14
- title: The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 43 hit@1 credits are on names the metric cannot adjudicate
12
+ owner: loop/gated-golden-exemplars
13
+ pr: "994"
14
+ title: The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 44 hit@1 credits are on names the metric cannot adjudicate
15
15
  ---
16
16
  <b>Measured.</b> On the 10,731-entry corpus that committed <code>taps.txt</code> materializes today, <code>tests/eval/golden.jsonl</code> — the only set the required <code>eval</code> gate floors — is 0/91 exemplar-pinned while the ungated <code>golden-natural.jsonl</code> is 50/50; 10 of its 44 hit@1 credits (22.7%) are awarded on a name that resolves to more than one distinct body, and the hit@1 floor's entire headroom is 7.60 queries, smaller than the 10 credits the metric cannot adjudicate.
17
17
 
@@ -19,7 +19,7 @@ title: The exemplar mechanism was applied to the ungated set only: golden.jsonl
19
19
 
20
20
  <code>cd &lt;repo&gt;</code><br>
21
21
  <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
22
- <code># 0. confirm which corpus you are on (expect 10152)</code><br>
22
+ <code># 0. confirm which corpus you are on (expect 10731)</code><br>
23
23
  <code>.venv/bin/python -c "import sys;sys.path.insert(0,'.');from boost_cli.core import catalog;print(len(catalog.all_entries()))"; echo EXIT=$?</code><br>
24
24
  <code># 1. exemplar counts per set</code><br>
25
25
  <code>python3 -c "</code><br>
@@ -52,6 +52,16 @@ Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62
52
52
 
53
53
  5. NOT A DEFECT IN THE HARNESS: <code>exemplar_worksheet</code> (scripts/eval_retrieval.py:219) and exemplar grading work correctly and fail loudly on a bad pin.
54
54
 
55
- <b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge. 23.3% of its hit@1 credits are awarded on a name that maps to several genuinely different skills, and the floor's whole margin (6.60 queries) is narrower than the un-adjudicated credit count (10). That does not mean retrieval is worse than reported — the realistic shift is 1-2 queries — it means the published margin cannot be read as precision about the intended skill, so anyone tuning blend weights or pool depth against this gate inherits an unquantified slack.
55
+ <b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge. 22.7% of its hit@1 credits are awarded on a name that maps to several genuinely different skills, and the floor's whole margin (7.60 queries) is narrower than the un-adjudicated credit count (10). That does not mean retrieval is worse than reported — the realistic shift is 1-2 queries — it means the published margin cannot be read as precision about the intended skill, so anyone tuning blend weights or pool depth against this gate inherits an unquantified slack.
56
56
 
57
57
  <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>
58
+
59
+ <b>Shipped.</b> All 91 rows of <code>tests/eval/golden.jsonl</code> now pin an <code>exemplar</code>, so the required gate grades by content class rather than by name. <code>--worksheet</code> reports 0 rows still name-graded, and <code>prepare_row</code> raises on a spec that resolves to nothing, so a stale pin fails the gate rather than quietly weakening it.
60
+
61
+ <b>The pins are a judgment, so they were made as one.</b> 64 of the 91 rows resolved to a single body and were pinned by lookup. Clustering the remaining 27 rows' candidate bodies mechanically (difflib ratio 0.90) collapsed 7 of them to a single re-publication cluster, pinnable as a list by <code>diff</code> rather than opinion. That left <b>20</b> genuine homonym rows, each judged by an agent under one rule — keep a cluster if a user typing this query would be correctly served by it; two independent implementations of the same job both count; drop only a cluster doing a different job — and each judgment then attacked by two adversarial verifiers, one hunting over-narrow pins and one hunting over-broad. 60 agents, <b>0 of 20 decisions refuted</b>, 19 of 20 at high confidence. Two clusters were dropped: Sentry's <code>brand-guidelines</code> (copy-writing, not a visual brand system) and oh-my-agent's <code>pdf</code> (PDF&rarr;Markdown conversion, which cannot fill a form field).
62
+
63
+ <b>What the measurement did, and did not, do.</b> Scored per query against the old set and the new on the same 10,731-entry corpus, <b>exactly 1 of 91 rows changed</b>. The other 90 grade identically under name and content class, which is the honest result: on this corpus the name was already selecting the right body almost everywhere, and the value of pinning is that it can no longer stop doing so silently. The one mover is the set's only two-name row (<code>style an html artifact with a color and font theme</code>, relevant <code>theme-factory</code> + <code>web-artifacts-builder</code>): <code>relevant</code> is documented as names that <em>count as a correct top hit</em> — alternatives — but <code>recall@k</code> over a two-element set scored 0.5 for finding one of them. The four pinned bodies are one class, so it scores 1.0, and the aggregate moved 76.5/91 &rarr; 77.0/91. <code>hit@1</code> and <code>MRR</code> are bit-identical.
64
+
65
+ BM25 over the twenty taps: 0.841 / 0.484 / 0.607 / 0.655 &rarr; <b>0.846 / 0.484 / 0.607 / 0.659</b>. All four floors still clear, and none was moved &mdash; margins are now 7.8% / 17.3% / 14.3% / 12.1%, a 2.21x spread, recall@k binding at 6.0 queries of 91.
66
+
67
+ <b>The cost, recorded rather than discovered later.</b> A pin is <code>tap::skill_md</code>, so the set can only be scored over a corpus holding that tap. The six-repo comparison figure in <code>Makefile</code> is therefore <b>historical</b>, not stale: today's <code>golden.jsonl</code> cannot be scored over six taps at all. It stays re-derivable &mdash; <code>git show e11a34f2:tests/eval/golden.jsonl</code> over a six-tap corpus reproduces 0.989 / 0.769 / 0.848 / 0.880 to three places. <code>taps-scale.txt</code> is unaffected: it is a superset of <code>taps.txt</code> (149 rows &supe; 20), so <code>eval-scale.yml</code> keeps scoring the same set. The real exposure is <code>eval-corpus-refresh.yml</code>, whose re-baseline step is not <code>continue-on-error</code>: a monthly pin move past a renamed file now stops 141 pinned rows instead of 50, and the pull request does not open. That is the intended signal and is written up as a non-obvious rule in <code>CLAUDE.md</code>.
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  id: required-eval-gate-still-grades-by-name
3
3
  board: code
4
- section: planned
5
- status: planned
4
+ section: shipped
5
+ status: shipped
6
6
  category: Tech-debt
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…
11
11
  order: 243
12
- owner:
13
- pr:
12
+ owner: loop/gated-golden-exemplars
13
+ pr: "994"
14
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
15
  ---
16
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).
@@ -40,3 +40,11 @@ Floor-margin exposure, with that qualification attached: hit@1 measures 44/91 =
40
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
41
 
42
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>
43
+
44
+ <b>Shipped, with the card above.</b> This card and <code>gated-golden-set-has-zero-exemplars</code> measured one defect from two angles — 0/91 pinned rows, and 27 of those rows ambiguous on the gate's own corpus — and one change closes both. All 91 rows of <code>tests/eval/golden.jsonl</code> now pin an <code>exemplar</code>; the required gate grades by content class.
45
+
46
+ <b>This card's severity call was right, and the measurement confirms it.</b> The verifier lowered severity from High to Medium on the grounds that most ambiguous names are re-publications of one upstream skill, so a "wrong body" was still a correct answer. That is exactly what the pins found: the 20 judged rows kept 2-4 bodies each and dropped only <b>2</b> clusters in total, and scoring per query showed <b>90 of 91 rows grade identically</b> under name and content class. The looseness was real and worth closing, and it was not inflating the published numbers.
47
+
48
+ The card's own row arithmetic predicted the result before the pins existed: it stated <em>"recall@10 measures 77/91 = 0.846 against a floor needing 71 rows (margin 6 rows)"</em>, counting a row as matched or not. The metric averaged 76.5/91 = 0.841 because the set's one two-name row scored 0.5 for finding one of two documented alternatives. Pinning makes those alternatives one class, so the metric now reads 77/91 = <b>0.846</b> — the card's figure, arrived at independently.
49
+
50
+ <b>What was NOT done, deliberately.</b> No floor was moved. The four floors stay at 0.78 / 0.40 / 0.52 / 0.58 and all four still clear; #993 established in this same file that a floor is restated after a measurement, never re-derived from it. The name-grading path is kept, not deleted &mdash; but nothing shipped exercises it any more: <code>golden-natural.jsonl</code> finished migrating in #434 and is 50/50, so with golden.jsonl at 91/91 both shipped sets are fully pinned. It stays for a query set added outside this repo, covered by <code>TestNameGradingIsUnchanged</code> alone.
@@ -140,9 +140,9 @@
140
140
  <section class="block reveal">
141
141
  <div class="stats">
142
142
  <!-- ROADMAP:stats -->
143
- <div class="stat"><b>25</b><span>Shipped</span></div>
143
+ <div class="stat"><b>27</b><span>Shipped</span></div>
144
144
  <div class="stat"><b>1</b><span>Next up</span></div>
145
- <div class="stat"><b>76</b><span>Planned</span></div>
145
+ <div class="stat"><b>74</b><span>Planned</span></div>
146
146
  <div class="stat"><b>505</b><span>Loop finds</span></div>
147
147
  <!-- /ROADMAP:stats -->
148
148
  </div>
@@ -432,6 +432,30 @@
432
432
  </div>
433
433
  </article>
434
434
 
435
+ <article class="cap rcard" id="gated-golden-set-has-zero-exemplars">
436
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Quality · Retrieval eval</span></div>
437
+ <h3>The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 44 hit@1 credits are on names the metric cannot adjudicate</h3>
438
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md">Write-up &middot; gated-golden-set-has-zero-exemplars.md</a></p>
439
+ <div class="meta">
440
+ <span class="m">Complexity <b>M</b></span>
441
+ <span class="m">Impact <b>Med</b></span>
442
+ <span class="m">Wow <b class="wow">★★★</b></span>
443
+ <span class="m">CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…</span>
444
+ </div>
445
+ </article>
446
+
447
+ <article class="cap rcard" id="required-eval-gate-still-grades-by-name">
448
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Tech-debt</span></div>
449
+ <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>
450
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/required-eval-gate-still-grades-by-name.md">Write-up &middot; required-eval-gate-still-grades-by-name.md</a></p>
451
+ <div class="meta">
452
+ <span class="m">Complexity <b>M</b></span>
453
+ <span class="m">Impact <b>Med</b></span>
454
+ <span class="m">Wow <b class="wow">★★★</b></span>
455
+ <span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
456
+ </div>
457
+ </article>
458
+
435
459
  <article class="cap rcard" id="install-cannot-tell-a-skill-needs-another-one">
436
460
  <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Install · Research</span></div>
437
461
  <h3>Research: how <code>boost install</code> could tell that a skill needs something else installed first</h3>
@@ -1256,59 +1280,6 @@ NOT ALREADY CARDED, but read the existing card first.
1256
1280
  </div>
1257
1281
  </article>
1258
1282
 
1259
- <article class="cap rcard" id="gated-golden-set-has-zero-exemplars">
1260
- <div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
1261
- <h3>The exemplar mechanism was applied to the ungated set only: golden.jsonl is 0/91 pinned, and 10 of its 43 hit@1 credits are on names the metric cannot adjudicate</h3>
1262
- <p><b>Measured.</b> On the 10,731-entry corpus that committed <code>taps.txt</code> materializes today, <code>tests/eval/golden.jsonl</code> — the only set the required <code>eval</code> gate floors — is 0/91 exemplar-pinned while the ungated <code>golden-natural.jsonl</code> is 50/50; 10 of its 44 hit@1 credits (22.7%) are awarded on a name that resolves to more than one distinct body, and the hit@1 floor's entire headroom is 7.60 queries, smaller than the 10 credits the metric cannot adjudicate.
1263
-
1264
- <b>Reproduce it.</b>
1265
-
1266
- <code>cd &lt;repo&gt;</code><br>
1267
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
1268
- <code># 0. confirm which corpus you are on (expect 10152)</code><br>
1269
- <code>.venv/bin/python -c "import sys;sys.path.insert(0,'.');from boost_cli.core import catalog;print(len(catalog.all_entries()))"; echo EXIT=$?</code><br>
1270
- <code># 1. exemplar counts per set</code><br>
1271
- <code>python3 -c "</code><br>
1272
- <code>import json</code><br>
1273
- <code>for f in ['tests/eval/golden.jsonl','tests/eval/golden-natural.jsonl']:</code><br>
1274
- <code> r=[json.loads(l) for l in open(f) if l.strip() and not l.startswith('#')]</code><br>
1275
- <code> print(f,'rows:',len(r),'with exemplar:',sum(1 for x in r if x.get('exemplar')))"; echo EXIT=$?</code><br>
1276
- <code># 2. the harness's own list of undecided gated rows</code><br>
1277
- …
1278
-
1279
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
1280
-
1281
- The defect is real and the spine is exact, but five figures are stale by one corpus refresh. The finding measured on the 10,152-entry corpus CLAUDE.md documents; committed <code>tests/eval/taps.txt</code> moved on 2026-09-01 (cbc0a58b) and now materializes 10,731 entries, which is what <code>make eval</code>/CI builds today. Corrected values, all measured by me on that corpus:
1282
-
1283
- - hit@1 credits: 43/91 = 0.473 -&gt; <b>44/91 = 0.484</b> - un-adjudicated share of credits: 23.3% -&gt; <b>22.7%</b> (the count stays <b>10</b>) - floor headroom: 6.60 queries -&gt; <b>7.60 queries</b> - worst-case bound stripping all 10: 33/91 = 0.363 -&gt; <b>34/91 = 0.374</b> (still below the 0.400 floor) - BM25 four-metric line: 0.852 / 0.473 / 0.605 / 0.657 -&gt; <b>0.841 / 0.484 / 0.607 / 0.655</b>
1284
-
1285
- The finding's numbers are correct for the corpus it names and it disclosed the provenance honestly; they are nonetheless the wrong numbers to print about "the set the required eval gate floors", because the gate no longer builds that corpus. A card must publish the 10,731 figures and name the corpus.
1286
-
1287
- Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62 candidate bodies, the same 10 names and 10 queries, the skill-creator worked example, the not-carded check, and the "realistic shift is 1-2 queries, the floor still passes" bound all hold on BOTH corpora.
1288
-
1289
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
1290
-
1291
- 1. WHAT IS CORPUS-INDEPENDENT (identical on 10,152 and 10,731): exemplar counts 0/91 and 50/50; 27 undecided worksheet rows over 62 candidate bodies; the same 10 ambiguous-credit names and the same 10 queries; the skill-creator example. Only the credit count and the two ratios moved. Build the card on the invariant half and quote the 10,731 figures for the rest.
1292
-
1293
- 2. TRAP FOR THE NEXT VERIFIER: the shared read-only <code>$TMPDIR/eval-home</code> is a PRE-REFRESH corpus — its <code>.eval-corpus-ready</code> sentinel digest does not match <code>sha256(tests/eval/taps.txt)</code>, and 10 of its 20 clones sit at a different commit. Anyone who measures only there reproduces the finding's old numbers verbatim and marks it CONFIRMED without noticing. Rebuilding at the committed pins in a disposable HOME took ~3 minutes and is what produced the correction.
1294
-
1295
- 3. DO NOT COPY Makefile:126, which still comments "over twenty it scores 0.863 / 0.473 / 0.607 / 0.662". That matches neither corpus (10,152 gives 0.852/0.473/0.605/0.657; 10,731 gives 0.841/0.484/0.607/0.655). CLAUDE.md:67's figures are right for the old corpus and now also stale.
1296
-
1297
- 4. SCOPE OF MY REPRO: I verified the BM25 engine only (<code>--engines bm25</code>), which is what the gate floors; I did not build a dense store (impossible here). I did not run <code>make eval</code> end to end, only its second command against a corpus I materialised with its first.
1298
-
1299
- 5. NOT A DEFECT IN THE HARNESS: <code>exemplar_worksheet</code> (scripts/eval_retrieval.py:219) and exemplar grading work correctly and fail loudly on a bad pin.
1300
-
1301
- <b>Why it is worth doing.</b> golden.jsonl is the set the required <code>eval</code> gate floors, so it is the only one that can block a merge. 23.3% of its hit@1 credits are awarded on a name that maps to several genuinely different skills, and the floor's whole margin (6.60 queries) is narrower than the un-adjudicated credit count (10). That does not mean retrieval is worse than reported — the realistic shift is 1-2 queries — it means the published margin cannot be read as precision about the intended skill, so anyone tuning blend weights or pool depth against this gate inherits an unquantified slack.
1302
-
1303
- <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>
1304
- <div class="meta">
1305
- <span class="m">Complexity <b>M</b></span>
1306
- <span class="m">Impact <b>Med</b></span>
1307
- <span class="m">Wow <b class="wow">★★★</b></span>
1308
- <span class="m">CLAUDE.md presents exemplar pinning as a live migration — "relevance is still decided…</span>
1309
- </div>
1310
- </article>
1311
-
1312
1283
  <article class="cap rcard" id="info-deps-materialize-a-dir-they-then-reject">
1313
1284
  <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
1314
1285
  <h3><code>boost info</code>/<code>deps</code> on a not-installed rule or workflow widens the tap's sparse cone for a directory <code>source_dir_for</code> immediately rejects</h3>
@@ -1633,44 +1604,6 @@ Nothing else in the finding is wrong. 0/91 vs 50/50, the 27 undecided rows / 62
1633
1604
  </div>
1634
1605
  </article>
1635
1606
 
1636
- <article class="cap rcard" id="required-eval-gate-still-grades-by-name">
1637
- <div class="head"><span class="pill planned">Planned</span><span class="cat">Tech-debt</span></div>
1638
- <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>
1639
- <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).
1640
-
1641
- <b>Reproduce it.</b>
1642
-
1643
- <code>cd &lt;repo&gt;</code><br>
1644
- <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>
1645
- <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>
1646
- <code>grep -n 'DEFAULT_GOLDEN' scripts/eval_retrieval.py</code><br>
1647
- <code>sed -n '134,139p' Makefile</code><br>
1648
- <code>sed -n '269,279p' .github/workflows/ci.yml</code><br>
1649
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
1650
- <code>python3 -c "</code><br>
1651
- <code>import json,glob,collections,os</code><br>
1652
- <code>n2c=collections.defaultdict(set)</code><br>
1653
- …
1654
-
1655
- <b>Verification found nothing to correct.</b> Every number, <code>file:line</code> and command output above was independently re-derived and matched exactly.
1656
-
1657
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
1658
-
1659
- 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.
1660
-
1661
- 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.
1662
-
1663
- <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.
1664
-
1665
- <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>
1666
- <div class="meta">
1667
- <span class="m">Complexity <b>M</b></span>
1668
- <span class="m">Impact <b>Med</b></span>
1669
- <span class="m">Wow <b class="wow">★★★</b></span>
1670
- <span class="m">CLAUDE.md states "Relevance is still decided by name (or by content class when a gold…</span>
1671
- </div>
1672
- </article>
1673
-
1674
1607
  <article class="cap rcard" id="stale-tap-hint-dead-for-tap-only-installs">
1675
1608
  <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Tech-debt</span></div>
1676
1609
  <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>
@@ -181,7 +181,10 @@ MAX_CONTENT_SHARE = 0.40
181
181
  # taps-scale.txt is generated, and its generator owns its header.
182
182
  SIZE_START = "# --- corpus size: written from the rows below by eval_corpus.py ---"
183
183
  SIZE_END = "# --- end corpus size ---"
184
- # The rows above this line hold every golden target; the rest are scale.
184
+ # The rows above this line are the six the name-graded floors were first
185
+ # measured on. They are NOT "every golden target" any more: both shipped
186
+ # query sets pin exemplars below the divider too, so the label written from
187
+ # it says "six-repo set", not "targets". taps.txt says why at length.
185
188
  SCALE_DIVIDER = "# --- scale"
186
189
 
187
190
 
@@ -348,8 +351,10 @@ def size_lines(text: str) -> list[str]:
348
351
  head, divider, _tail = text.partition("\n" + SCALE_DIVIDER)
349
352
  if divider:
350
353
  targets = [n for _r, _s, n in parse_taps(head) if n is not None]
351
- lines.append("# targets: %s entries in the %d repos above the scale "
352
- "divider" % (f"{sum(targets):,}", len(targets)))
354
+ lines.append("# sixrepo: %s entries in the %d repos above the scale"
355
+ % (f"{sum(targets):,}", len(targets)))
356
+ lines.append("# divider -- a historical baseline, not a "
357
+ "subset that scores")
353
358
  # strict=False: a list of one repo has a largest and no runner-up.
354
359
  labels = ("largest:", "next: ")
355
360
  for label, (repo, count, share) in zip(labels, ranked, strict=False):
@@ -140,8 +140,13 @@ METRICS: dict[str, Callable[[Sequence[str], set, int], float]] = {
140
140
  # punish a correct answer for arriving from a mirror), while a different skill
141
141
  # sharing the name does not.
142
142
  #
143
- # Rows without an exemplar still decide RELEVANCE by name, so the sets can
144
- # migrate a row at a time. What is no longer name-keyed is IDENTITY: the ranked
143
+ # Rows without an exemplar still decide RELEVANCE by name, which is what let
144
+ # the sets migrate a row at a time. Both shipped sets have now finished --
145
+ # `golden.jsonl` 91/91, `golden-natural.jsonl` 50/50 since #434 -- so NO
146
+ # shipped set exercises this path. It is kept for a set added outside this
147
+ # repo and is covered only by unit tests; treat a coverage report that calls
148
+ # it dead as a statement about the shipped sets, not about the contract.
149
+ # What is no longer name-keyed is IDENTITY: the ranked
145
150
  # list de-duplicates on the content hash for every row, exemplar or not. Keying
146
151
  # both on the name collapsed 13 different `code-reviewer`s into one rank slot
147
152
  # and inflated recall@10 by about one query (0.863 -> 0.852 over the pinned
@@ -366,6 +371,16 @@ def evaluate(rows: list[dict], ranker: Ranker, k: int) -> tuple[list[dict], dict
366
371
 
367
372
 
368
373
  def _aggregate(per_case: list[dict]) -> dict:
374
+ """Overall metrics, plus an INDICATIVE slice per item kind.
375
+
376
+ A row's `kind` is its PRIMARY target's kind, and an exemplar row's
377
+ relevant set is a content class, which can span kinds: golden.jsonl's
378
+ Docker and Flutter rows each pin an `agents/*.md` workflow together with
379
+ a `SKILL.md` that answers the same question, so the `workflow` slice can
380
+ be credited for retrieving the skill. That is correct grading and a fuzzy
381
+ slice -- read `by_kind` as "how the gate does on questions shaped like
382
+ this", not as a per-kind guarantee. Only `overall` is floored.
383
+ """
369
384
  overall = {m: _mean(c["scores"][m] for c in per_case) for m in METRICS}
370
385
  by_kind: dict[str, dict] = {}
371
386
  for kind in KINDS:
@@ -1,23 +1,5 @@
1
1
  {
2
2
  "sets": {
3
- "golden.jsonl@a0617183f8c9": {
4
- "k": 10,
5
- "golden": "golden.jsonl",
6
- "engines": {
7
- "catalog.search": {
8
- "recall@k": 0.7307692307692307,
9
- "hit@1": 0.46153846153846156,
10
- "MRR": 0.561042281984482,
11
- "nDCG@k": 0.5927377504239227
12
- },
13
- "BM25 full-content": {
14
- "recall@k": 0.8406593406593407,
15
- "hit@1": 0.4835164835164835,
16
- "MRR": 0.6065168803770766,
17
- "nDCG@k": 0.6552333001662786
18
- }
19
- }
20
- },
21
3
  "golden-natural.jsonl@0d91b0cd8e41": {
22
4
  "k": 10,
23
5
  "golden": "golden-natural.jsonl",
@@ -35,6 +17,24 @@
35
17
  "nDCG@k": 0.2591292012176286
36
18
  }
37
19
  }
20
+ },
21
+ "golden.jsonl@d49143dc71a0": {
22
+ "k": 10,
23
+ "golden": "golden.jsonl",
24
+ "engines": {
25
+ "catalog.search": {
26
+ "recall@k": 0.7362637362637363,
27
+ "hit@1": 0.46153846153846156,
28
+ "MRR": 0.5608885895230973,
29
+ "nDCG@k": 0.596988880173753
30
+ },
31
+ "BM25 full-content": {
32
+ "recall@k": 0.8461538461538461,
33
+ "hit@1": 0.4835164835164835,
34
+ "MRR": 0.6065168803770766,
35
+ "nDCG@k": 0.6594844299161087
36
+ }
37
+ }
38
38
  }
39
39
  }
40
40
  }