boost-skill-cli 1.2.130__tar.gz → 1.2.131__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 (1048) hide show
  1. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/CLAUDE.md +4 -4
  2. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/CONTRIBUTING.md +1 -1
  3. {boost_skill_cli-1.2.130/boost_skill_cli.egg-info → boost_skill_cli-1.2.131}/PKG-INFO +4 -3
  4. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/README.md +3 -2
  5. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/_version.py +2 -2
  6. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/discovery.py +6 -1
  7. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/quickstart.py +4 -4
  8. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131/boost_skill_cli.egg-info}/PKG-INFO +4 -3
  9. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/index.html +5 -5
  10. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/openssf-badge.md +2 -2
  11. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +3 -3
  12. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +3 -3
  13. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +3 -3
  14. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap.html +6 -108
  15. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/security-design.md +1 -1
  16. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/semantic-search.md +3 -3
  17. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/shard_plan.py +2 -2
  18. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_pane_width.py +5 -0
  19. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_marketing_counts.py +21 -0
  20. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_spdx_headers.py +13 -0
  21. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.gitattributes +0 -0
  22. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.gitignore +0 -0
  23. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.gitleaks.toml +0 -0
  24. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.htmlvalidate.json +0 -0
  25. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.lighthouserc.json +0 -0
  26. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.lycheeignore +0 -0
  27. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.markdownlint-cli2.jsonc +0 -0
  28. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.pre-commit-config.yaml +0 -0
  29. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.stylelintrc.json +0 -0
  30. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.vale/styles/boost/AIWriting.yml +0 -0
  31. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.vale/styles/boost/Terminology.yml +0 -0
  32. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  33. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/.vale.ini +0 -0
  34. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/CODE_OF_CONDUCT.md +0 -0
  35. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/DCO +0 -0
  36. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/GOVERNANCE.md +0 -0
  37. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/LICENSE +0 -0
  38. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/MAINTAINERS.md +0 -0
  39. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/MANIFEST.in +0 -0
  40. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/Makefile +0 -0
  41. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/SECURITY.md +0 -0
  42. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/SUPPORT.md +0 -0
  43. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost +0 -0
  44. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/__init__.py +0 -0
  45. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/__main__.py +0 -0
  46. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/cli.py +0 -0
  47. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/cliparse.py +0 -0
  48. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/__init__.py +0 -0
  49. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/_common.py +0 -0
  50. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/bmad.py +0 -0
  51. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/configuration.py +0 -0
  52. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/hooks.py +0 -0
  53. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/info.py +0 -0
  54. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/intelligence.py +0 -0
  55. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/pkg.py +0 -0
  56. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/quality.py +0 -0
  57. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/run.py +0 -0
  58. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/safety.py +0 -0
  59. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/taps.py +0 -0
  60. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/commands/team.py +0 -0
  61. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/__init__.py +0 -0
  62. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/adapters.py +0 -0
  63. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/agents.py +0 -0
  64. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/ai.py +0 -0
  65. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/aihost.py +0 -0
  66. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/archive.py +0 -0
  67. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/bmad.py +0 -0
  68. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/bootstrap.py +0 -0
  69. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/browse.py +0 -0
  70. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/builtin.py +0 -0
  71. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/capabilities.py +0 -0
  72. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/catalog.py +0 -0
  73. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/catalogbundle.py +0 -0
  74. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/chat.py +0 -0
  75. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/claude_settings.py +0 -0
  76. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/cohort.py +0 -0
  77. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/complete.py +0 -0
  78. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/config.py +0 -0
  79. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/dense.py +0 -0
  80. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/deps.py +0 -0
  81. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/discovery.py +0 -0
  82. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/ed25519.py +0 -0
  83. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/embed.py +0 -0
  84. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/faithfulness.py +0 -0
  85. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/frontmatter.py +0 -0
  86. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/gitutil.py +0 -0
  87. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/hookhost.py +0 -0
  88. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/imperative.py +0 -0
  89. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/injectscan.py +0 -0
  90. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/installscan.py +0 -0
  91. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/integrity.py +0 -0
  92. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/journal.py +0 -0
  93. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/jsonstate.py +0 -0
  94. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/localembed.py +0 -0
  95. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/lockfile.py +0 -0
  96. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/logs.py +0 -0
  97. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/mcp.py +0 -0
  98. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/mcpdecl.py +0 -0
  99. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/mcphost.py +0 -0
  100. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/minisign.py +0 -0
  101. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/nethttp.py +0 -0
  102. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/output.py +0 -0
  103. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/paths.py +0 -0
  104. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/policy.py +0 -0
  105. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/projectlock.py +0 -0
  106. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/provenance.py +0 -0
  107. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/rag.py +0 -0
  108. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/registry.py +0 -0
  109. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/report.py +0 -0
  110. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/resolve.py +0 -0
  111. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/rules.py +0 -0
  112. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/scopes.py +0 -0
  113. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/secretscan.py +0 -0
  114. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/selfupdate.py +0 -0
  115. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/serve.py +0 -0
  116. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/shards.py +0 -0
  117. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/stackprobe.py +0 -0
  118. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/staleness.py +0 -0
  119. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/store.py +0 -0
  120. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/trustaudit.py +0 -0
  121. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/typedvalue.py +0 -0
  122. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/typosquat.py +0 -0
  123. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/updatediff.py +0 -0
  124. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/util.py +0 -0
  125. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/core/workflows.py +0 -0
  126. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/data/registries.json +0 -0
  127. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/data/rules/boost-first.mdc +0 -0
  128. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/errors.py +0 -0
  129. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_cli/spin.py +0 -0
  130. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/__init__.py +0 -0
  131. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/_compat.py +0 -0
  132. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/graph.py +0 -0
  133. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/loader.py +0 -0
  134. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/py.typed +0 -0
  135. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_langchain/retriever.py +0 -0
  136. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  137. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  138. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  139. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/requires.txt +0 -0
  140. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/boost_skill_cli.egg-info/top_level.txt +0 -0
  141. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/codecov.yml +0 -0
  142. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/.claude/settings.local.json +0 -0
  143. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/DEBUGGING.md +0 -0
  144. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/adapters.html +0 -0
  145. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/architecture/README.md +0 -0
  146. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/architecture/c4-components-core.md +0 -0
  147. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/architecture/c4-containers.md +0 -0
  148. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/architecture/c4-context.md +0 -0
  149. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/architecture/c4-dynamic-install.md +0 -0
  150. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/bmad.md +0 -0
  151. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/distill.gif +0 -0
  152. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/doctor.gif +0 -0
  153. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/explain.gif +0 -0
  154. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/hooks.gif +0 -0
  155. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/install.gif +0 -0
  156. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/pulse.gif +0 -0
  157. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/search.gif +0 -0
  158. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/gifs/tap.gif +0 -0
  159. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/distill.tape +0 -0
  160. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/doctor.tape +0 -0
  161. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/explain.tape +0 -0
  162. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/hooks.tape +0 -0
  163. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/install.tape +0 -0
  164. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/pulse.tape +0 -0
  165. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/search.tape +0 -0
  166. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel/tapes/tap.tape +0 -0
  167. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/carousel.html +0 -0
  168. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/chat.html +0 -0
  169. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/code-review.md +0 -0
  170. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/commands.html +0 -0
  171. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/commit-audit.md +0 -0
  172. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/demo-index.json +0 -0
  173. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/demo.gif +0 -0
  174. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/demo.html +0 -0
  175. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/demo.tape +0 -0
  176. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/dependencies.md +0 -0
  177. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/design-roadmap.html +0 -0
  178. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/eval-latest.json +0 -0
  179. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/eval.html +0 -0
  180. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/langchain.html +0 -0
  181. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/mcp-hub.html +0 -0
  182. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/openssf-playbook.md +0 -0
  183. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/rag-architecture.md +0 -0
  184. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D01.md +0 -0
  185. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D02.md +0 -0
  186. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D03.md +0 -0
  187. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D04.md +0 -0
  188. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D05.md +0 -0
  189. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D06.md +0 -0
  190. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D07.md +0 -0
  191. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D08.md +0 -0
  192. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D09.md +0 -0
  193. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D10.md +0 -0
  194. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D11.md +0 -0
  195. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D12.md +0 -0
  196. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D13.md +0 -0
  197. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D14.md +0 -0
  198. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D15.md +0 -0
  199. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D16.md +0 -0
  200. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D17.md +0 -0
  201. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D18.md +0 -0
  202. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D19.md +0 -0
  203. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D20.md +0 -0
  204. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D21.md +0 -0
  205. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D22.md +0 -0
  206. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D23.md +0 -0
  207. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D24.md +0 -0
  208. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D25.md +0 -0
  209. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D26.md +0 -0
  210. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/BOOST-D27.md +0 -0
  211. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  212. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  213. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  214. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  215. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  216. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  217. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  218. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  219. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  220. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  221. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  222. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  223. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  224. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  225. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  226. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  227. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-attest-findings.md +0 -0
  228. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-audit-findings.md +0 -0
  229. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  230. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-browse-findings.md +0 -0
  231. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  232. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  233. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  234. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  235. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-chat-findings.md +0 -0
  236. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  237. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  238. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  239. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-completions-findings.md +0 -0
  240. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-config-findings.md +0 -0
  241. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  242. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-context-findings.md +0 -0
  243. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  244. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  245. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-create-findings.md +0 -0
  246. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  247. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-deps-findings.md +0 -0
  248. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-discover-findings.md +0 -0
  249. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  250. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  251. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-drift-findings.md +0 -0
  252. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  253. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-edit-findings.md +0 -0
  254. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  255. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-explain-findings.md +0 -0
  256. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-export-findings.md +0 -0
  257. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  258. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  259. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  260. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  261. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  262. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-health-findings.md +0 -0
  263. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  264. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  265. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-import-findings.md +0 -0
  266. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-index-findings.md +0 -0
  267. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  268. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  269. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-findings.md +0 -0
  270. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  271. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  272. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-lint-findings.md +0 -0
  273. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-log-findings.md +0 -0
  274. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  275. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  276. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  277. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  278. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  279. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  280. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  281. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  282. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  283. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  284. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  285. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-policy-findings.md +0 -0
  286. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-preview-findings.md +0 -0
  287. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-profile-findings.md +0 -0
  288. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  289. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  290. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  291. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  292. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  293. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  294. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  295. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  296. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  297. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-replay-findings.md +0 -0
  298. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-root-findings.md +0 -0
  299. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  300. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-run-findings.md +0 -0
  301. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  302. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-search-findings.md +0 -0
  303. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  304. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  305. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  306. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  307. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  308. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  309. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  310. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-sync-findings.md +0 -0
  311. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tag-findings.md +0 -0
  312. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  313. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-tap-findings.md +0 -0
  314. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-taps-findings.md +0 -0
  315. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  316. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-test-findings.md +0 -0
  317. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-trust-findings.md +0 -0
  318. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  319. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  320. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-untap-findings.md +0 -0
  321. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-update-findings.md +0 -0
  322. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  323. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-verify-findings.md +0 -0
  324. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/audit-who-findings.md +0 -0
  325. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  326. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  327. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  328. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  329. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  330. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  331. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  332. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  333. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  334. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  335. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  336. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  337. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  338. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  339. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  340. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  341. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-first-rule.md +0 -0
  342. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  343. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  344. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/branch-current-gate.md +0 -0
  345. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  346. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  347. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  348. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  349. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  350. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  351. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  352. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  353. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  354. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  355. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  356. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  357. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  358. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  359. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  360. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  361. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  362. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-command-audit.md +0 -0
  363. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  364. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  365. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  366. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  367. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/command-carousel-page.md +0 -0
  368. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  369. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  370. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  371. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  372. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  373. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  374. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  375. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  376. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  377. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  378. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  379. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  380. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  381. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  382. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  383. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  384. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  385. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  386. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  387. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  388. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  389. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  390. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  391. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  392. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  393. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  394. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  395. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  396. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  397. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  398. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  399. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  400. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  401. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  402. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  403. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  404. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  405. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  406. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  407. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  408. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  409. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  410. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  411. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  412. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  413. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  414. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  415. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  416. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  417. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  418. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  419. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  420. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  421. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  422. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  423. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  424. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  425. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  426. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  427. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  428. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  429. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  430. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  431. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  432. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  433. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  434. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  435. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  436. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  437. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  438. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  439. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  440. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/github-community-health-files.md +0 -0
  441. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  442. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  443. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  444. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  445. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  446. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  447. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  448. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  449. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  450. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  451. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  452. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  453. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  454. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  455. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  456. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  457. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  458. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  459. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  460. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  461. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  462. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  463. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  464. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  465. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  466. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  467. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  468. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  469. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  470. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  471. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  472. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  473. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  474. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  475. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  476. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  477. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  478. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  479. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  480. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  481. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  482. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  483. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  484. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  485. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  486. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  487. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  488. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  489. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  490. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  491. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  492. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  493. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  494. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  495. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  496. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  497. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  498. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  499. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  500. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  501. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  502. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  503. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  504. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  505. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  506. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  507. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  508. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  509. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  510. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  511. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  512. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  513. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  514. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  515. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  516. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  517. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  518. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  519. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  520. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  521. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  522. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  523. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  524. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  525. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  526. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-playbook.md +0 -0
  527. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/openssf-silver.md +0 -0
  528. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  529. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  530. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  531. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  532. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  533. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  534. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  535. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  536. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  537. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  538. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  539. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  540. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  541. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  542. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  543. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  544. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  545. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  546. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  547. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  548. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  549. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  550. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  551. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  552. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  553. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  554. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  555. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  556. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  557. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  558. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  559. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  560. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  561. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  562. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  563. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  564. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  565. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  566. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  567. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  568. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  569. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  570. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  571. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  572. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/relicence-apache-2.md +0 -0
  573. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  574. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  575. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  576. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  577. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  578. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  579. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  580. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  581. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  582. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  583. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  584. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  585. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  586. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  587. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  588. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  589. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  590. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  591. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  592. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  593. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  594. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  595. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  596. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  597. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  598. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  599. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  600. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  601. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  602. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  603. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  604. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  605. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  606. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  607. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  608. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  609. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  610. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  611. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  612. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  613. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  614. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  615. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  616. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  617. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  618. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  619. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  620. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  621. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  622. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  623. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  624. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  625. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  626. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  627. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  628. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  629. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  630. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  631. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  632. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  633. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  634. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  635. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  636. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  637. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  638. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  639. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  640. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  641. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  642. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  643. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  644. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  645. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  646. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  647. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  648. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  649. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  650. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  651. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  652. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  653. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  654. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  655. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  656. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  657. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  658. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  659. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  660. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  661. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  662. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  663. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  664. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  665. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  666. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  667. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  668. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  669. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  670. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  671. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  672. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/workspace-scope-install.md +0 -0
  673. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/zip-strict-audit.md +0 -0
  674. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  675. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  676. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  677. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/verifying-releases.md +0 -0
  678. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/meta.md +0 -0
  679. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/openvex.json +0 -0
  680. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  681. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  682. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  683. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  684. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/eslint.config.mjs +0 -0
  685. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/README.md +0 -0
  686. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/__init__.py +0 -0
  687. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/baseline.json +0 -0
  688. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/faithfulness.py +0 -0
  689. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/golden_set.json +0 -0
  690. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/make_corpus.py +0 -0
  691. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/make_golden.py +0 -0
  692. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/metrics.py +0 -0
  693. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/publish_golden_dataset.py +0 -0
  694. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/evals/run_evals.py +0 -0
  695. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/examples/README.md +0 -0
  696. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/examples/adapt-demo.sh +0 -0
  697. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/examples/boost-run-prototype.sh +0 -0
  698. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/index.html +0 -0
  699. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/noxfile.py +0 -0
  700. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/pyproject.toml +0 -0
  701. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/coverage-tools.in +0 -0
  702. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/coverage-tools.txt +0 -0
  703. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/lint-tools.in +0 -0
  704. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/lint-tools.txt +0 -0
  705. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/mutation-tools.in +0 -0
  706. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/mutation-tools.txt +0 -0
  707. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/platform-pins.lock +0 -0
  708. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/release-tools.in +0 -0
  709. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/release-tools.txt +0 -0
  710. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/test-tools.in +0 -0
  711. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/requirements/test-tools.txt +0 -0
  712. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/a11y_check.py +0 -0
  713. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/add_spdx_headers.py +0 -0
  714. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/bench_cli.sh +0 -0
  715. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_command_reference.py +0 -0
  716. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_demo_index.py +0 -0
  717. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_registries.py +0 -0
  718. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_roadmap.py +0 -0
  719. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_scale_corpus.py +0 -0
  720. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/build_vex.py +0 -0
  721. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_anchors.py +0 -0
  722. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_branch_current.py +0 -0
  723. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_dco.py +0 -0
  724. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_licenses.py +0 -0
  725. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_reproducible.py +0 -0
  726. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/check_required_checks.py +0 -0
  727. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/ensure_eval_corpus.sh +0 -0
  728. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_corpus.py +0 -0
  729. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_explain.py +0 -0
  730. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_gate.py +0 -0
  731. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_recommend.py +0 -0
  732. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_retrieval.py +0 -0
  733. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_stats_summary.py +0 -0
  734. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/eval_tools.py +0 -0
  735. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/import_budget.py +0 -0
  736. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/lock_toolchain.py +0 -0
  737. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/measure_near_duplicate_bound.py +0 -0
  738. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/measure_registry.py +0 -0
  739. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/mutation_gate.py +0 -0
  740. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/mutation_shards.py +0 -0
  741. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/mutation_weights.json +0 -0
  742. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/normalize_sdist.py +0 -0
  743. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/page_budget.py +0 -0
  744. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/perf_gate.py +0 -0
  745. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/post_deploy_smoke.py +0 -0
  746. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/publish_eval_json.py +0 -0
  747. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/publish_shards.py +0 -0
  748. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/release_guard.py +0 -0
  749. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/release_preflight.py +0 -0
  750. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/scripts/serve_docs.py +0 -0
  751. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/setup.cfg +0 -0
  752. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/sonar-project.properties +0 -0
  753. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/style/README.md +0 -0
  754. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/style/boost.css +0 -0
  755. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/style/boost.js +0 -0
  756. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/style/demo.html +0 -0
  757. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/adapt.feature +0 -0
  758. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/browse.feature +0 -0
  759. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/count.feature +0 -0
  760. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/discover.feature +0 -0
  761. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/doctor.feature +0 -0
  762. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/environment.py +0 -0
  763. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/explain.feature +0 -0
  764. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/index.feature +0 -0
  765. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/install.feature +0 -0
  766. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/list.feature +0 -0
  767. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/mcp.feature +0 -0
  768. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/search.feature +0 -0
  769. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/cli_steps.py +0 -0
  770. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/discovery_steps.py +0 -0
  771. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/mcp_steps.py +0 -0
  772. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/bdd/features/steps/quality_steps.py +0 -0
  773. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/conftest.py +0 -0
  774. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/baseline.json +0 -0
  775. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/explain.jsonl +0 -0
  776. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  777. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/golden-natural.jsonl +0 -0
  778. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/golden.jsonl +0 -0
  779. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/recommend.jsonl +0 -0
  780. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/taps-scale.txt +0 -0
  781. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/taps.txt +0 -0
  782. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/eval/tool_calls.jsonl +0 -0
  783. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  784. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_bmad_all_hosts.py +0 -0
  785. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_bmad_personas_scope.py +0 -0
  786. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_capabilities_policy.py +0 -0
  787. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_adapt.py +0 -0
  788. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_bmad.py +0 -0
  789. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_catalog.py +0 -0
  790. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_chat.py +0 -0
  791. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_configuration.py +0 -0
  792. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_discovery.py +0 -0
  793. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_hooks.py +0 -0
  794. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_hooks_gemini.py +0 -0
  795. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_info.py +0 -0
  796. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_intelligence.py +0 -0
  797. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_json_reports.py +0 -0
  798. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_pkg.py +0 -0
  799. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_quality.py +0 -0
  800. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_quickstart.py +0 -0
  801. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_tap_pins.py +0 -0
  802. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_taps.py +0 -0
  803. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_cli_team.py +0 -0
  804. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  805. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  806. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_everyday_loop.py +0 -0
  807. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_integrity_enforce.py +0 -0
  808. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_kind_conformance.py +0 -0
  809. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_property_parsers.py +0 -0
  810. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_recommend_because_is_true.py +0 -0
  811. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_reports_match_reality.py +0 -0
  812. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_run.py +0 -0
  813. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_tap_signing.py +0 -0
  814. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/functional/test_workspace_scope.py +0 -0
  815. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/README.md +0 -0
  816. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  817. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  818. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  819. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  820. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  821. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  822. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  823. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  824. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  825. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  826. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  827. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  828. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  829. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  830. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  831. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  832. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  833. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  834. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  835. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  836. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  837. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  838. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  839. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/fuzz_frontmatter.py +0 -0
  840. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/fuzz/fuzz_registry.py +0 -0
  841. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/langchain/conftest.py +0 -0
  842. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/langchain/test_graph.py +0 -0
  843. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/langchain/test_loader.py +0 -0
  844. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/langchain/test_retriever.py +0 -0
  845. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/make_fixture.py +0 -0
  846. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/perf/test_benchmarks.py +0 -0
  847. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/smoke.sh +0 -0
  848. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  849. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_a11y_check.py +0 -0
  850. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_action_pin_lockstep.py +0 -0
  851. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_adapters.py +0 -0
  852. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_adapters_multi.py +0 -0
  853. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_adapters_runner.py +0 -0
  854. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_agents.py +0 -0
  855. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_ai.py +0 -0
  856. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_aihost.py +0 -0
  857. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_archive.py +0 -0
  858. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_bmad_core.py +0 -0
  859. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_boost_first_offer.py +0 -0
  860. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_bootstrap.py +0 -0
  861. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_bot_pr_dco.py +0 -0
  862. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_branch_current.py +0 -0
  863. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_browse.py +0 -0
  864. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_builtin.py +0 -0
  865. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_capabilities.py +0 -0
  866. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_catalog.py +0 -0
  867. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_catalog_keyword_words.py +0 -0
  868. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_catalogbundle.py +0 -0
  869. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_chat.py +0 -0
  870. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_check_anchors.py +0 -0
  871. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_check_dco.py +0 -0
  872. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_check_licenses.py +0 -0
  873. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_check_reproducible.py +0 -0
  874. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_claude_settings.py +0 -0
  875. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_clean_internal_cache.py +0 -0
  876. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_cli_update_shards.py +0 -0
  877. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_cliparse.py +0 -0
  878. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_codeql_analysis_key.py +0 -0
  879. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_cohort.py +0 -0
  880. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_command_reference_fresh.py +0 -0
  881. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_community_health_files.py +0 -0
  882. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_compact.py +0 -0
  883. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_complete.py +0 -0
  884. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_complete_rc_block.py +0 -0
  885. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_config.py +0 -0
  886. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_content_dedupe.py +0 -0
  887. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_content_identity.py +0 -0
  888. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  889. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_crash_redaction.py +0 -0
  890. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dedup_trust.py +0 -0
  891. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_demo_index.py +0 -0
  892. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense.py +0 -0
  893. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  894. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_embed_dedupe.py +0 -0
  895. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_entry_reuse.py +0 -0
  896. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_entry_vectors.py +0 -0
  897. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_fallback.py +0 -0
  898. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_fix_hint.py +0 -0
  899. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_progress.py +0 -0
  900. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_quantized.py +0 -0
  901. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_ready_order.py +0 -0
  902. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shard_real_schema.py +0 -0
  903. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  904. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_shards.py +0 -0
  905. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_status.py +0 -0
  906. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_status_cheap.py +0 -0
  907. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dense_vector_dedupe.py +0 -0
  908. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_dependabot_config.py +0 -0
  909. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_deps.py +0 -0
  910. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_discovery.py +0 -0
  911. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_distill_merge.py +0 -0
  912. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_docs_pages_linked.py +0 -0
  913. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_docsite_chrome.py +0 -0
  914. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_doctor_output_polish.py +0 -0
  915. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_drift_hint.py +0 -0
  916. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_ed25519.py +0 -0
  917. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_embed.py +0 -0
  918. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_embed_local.py +0 -0
  919. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_embed_truncated_response.py +0 -0
  920. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_entry_key.py +0 -0
  921. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_errors_and_cli_table.py +0 -0
  922. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_baseline.py +0 -0
  923. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_corpus.py +0 -0
  924. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_faithfulness.py +0 -0
  925. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_gate.py +0 -0
  926. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_grading.py +0 -0
  927. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_metrics.py +0 -0
  928. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_stats_summary.py +0 -0
  929. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_tools.py +0 -0
  930. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_eval_tools_probe.py +0 -0
  931. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  932. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_faithfulness.py +0 -0
  933. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_frontmatter.py +0 -0
  934. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_fuzz_targets.py +0 -0
  935. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  936. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gitleaks_config.py +0 -0
  937. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil.py +0 -0
  938. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil_lfs.py +0 -0
  939. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gitutil_sparse.py +0 -0
  940. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_gstack_coexistence.py +0 -0
  941. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_hook_settings_hosts.py +0 -0
  942. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_hookhost.py +0 -0
  943. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_imperative.py +0 -0
  944. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_import_budget.py +0 -0
  945. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_injectscan.py +0 -0
  946. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_install_permission_error.py +0 -0
  947. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_installscan.py +0 -0
  948. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_integrity.py +0 -0
  949. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_journal.py +0 -0
  950. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_jsonstate.py +0 -0
  951. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_langchain_packaging.py +0 -0
  952. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_launcher_python_floor.py +0 -0
  953. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_link_ownership.py +0 -0
  954. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_localembed.py +0 -0
  955. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_localembed_e2e.py +0 -0
  956. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_lockfile.py +0 -0
  957. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_logs.py +0 -0
  958. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mcp.py +0 -0
  959. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mcp_install_scan.py +0 -0
  960. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mcp_read.py +0 -0
  961. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mcpdecl.py +0 -0
  962. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mcphost.py +0 -0
  963. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_measure_registry.py +0 -0
  964. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_minisign.py +0 -0
  965. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_hardening.py +0 -0
  966. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_shards.py +0 -0
  967. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mutation_subfile_shards.py +0 -0
  968. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_mutmut_source_paths.py +0 -0
  969. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_near_duplicate_collapse.py +0 -0
  970. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_nethttp.py +0 -0
  971. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_normalize_sdist.py +0 -0
  972. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_output.py +0 -0
  973. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_page_budget.py +0 -0
  974. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_paths.py +0 -0
  975. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_perf_gate.py +0 -0
  976. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_confusions.py +0 -0
  977. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_injection.py +0 -0
  978. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_pkg_secrets.py +0 -0
  979. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_platform_pins.py +0 -0
  980. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_policy.py +0 -0
  981. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_post_deploy_smoke.py +0 -0
  982. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_project_mcp_sidecar.py +0 -0
  983. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_projectlock.py +0 -0
  984. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_provenance.py +0 -0
  985. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_publish_golden_dataset.py +0 -0
  986. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rag.py +0 -0
  987. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rag_completeness.py +0 -0
  988. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rag_fastpath.py +0 -0
  989. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rag_fusion.py +0 -0
  990. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_registries_fresh.py +0 -0
  991. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_registry.py +0 -0
  992. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_registry_categories.py +0 -0
  993. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_registry_control_chars.py +0 -0
  994. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_registry_parallel.py +0 -0
  995. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_release_guard.py +0 -0
  996. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_release_preflight.py +0 -0
  997. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_report.py +0 -0
  998. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_required_checks.py +0 -0
  999. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rerank_cache.py +0 -0
  1000. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_resolve.py +0 -0
  1001. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1002. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_roadmap_fresh.py +0 -0
  1003. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_rules.py +0 -0
  1004. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_scale_corpus.py +0 -0
  1005. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_schedule_plist.py +0 -0
  1006. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_scopes.py +0 -0
  1007. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_secretscan.py +0 -0
  1008. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_selfupdate.py +0 -0
  1009. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_serve.py +0 -0
  1010. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_serve_docs.py +0 -0
  1011. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_shard_plan.py +0 -0
  1012. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_shards.py +0 -0
  1013. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_shards_incremental.py +0 -0
  1014. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_shards_ingest.py +0 -0
  1015. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_shards_matrix.py +0 -0
  1016. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1017. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_spin.py +0 -0
  1018. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_stackprobe.py +0 -0
  1019. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_staleness.py +0 -0
  1020. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_store.py +0 -0
  1021. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_store_materialize.py +0 -0
  1022. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_sync_blocked_links.py +0 -0
  1023. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_sync_lost_lock.py +0 -0
  1024. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1025. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_tap_pins.py +0 -0
  1026. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_token_parity.py +0 -0
  1027. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_toolchain_lock.py +0 -0
  1028. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_trustaudit.py +0 -0
  1029. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_typedvalue.py +0 -0
  1030. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_typosquat.py +0 -0
  1031. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_updatediff.py +0 -0
  1032. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_util.py +0 -0
  1033. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_version.py +0 -0
  1034. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_version_tags.py +0 -0
  1035. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_vex.py +0 -0
  1036. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_visual_harness_capture.py +0 -0
  1037. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_visual_harness_flags.py +0 -0
  1038. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_concurrency.py +0 -0
  1039. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1040. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1041. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_workflow_timeouts.py +0 -0
  1042. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_workflows.py +0 -0
  1043. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1044. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/visual/a11y_check.mjs +0 -0
  1045. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/visual/console_check.mjs +0 -0
  1046. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/visual/package-lock.json +0 -0
  1047. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/visual/package.json +0 -0
  1048. {boost_skill_cli-1.2.130 → boost_skill_cli-1.2.131}/tests/visual/visual_check.mjs +0 -0
@@ -293,10 +293,10 @@ line coverage. Target `boost_cli/core` behavior with assertions, not just import
293
293
  adding to the vale list.** Every `.py`/`.sh` under `boost_cli`,
294
294
  `boost_langchain`, `evals`, `scripts`, `tests` plus `./boost` and
295
295
  `noxfile.py` opens with `# Copyright the boost contributors.` and
296
- `# SPDX-License-Identifier: GPL-3.0-only`. Run
296
+ `# SPDX-License-Identifier: Apache-2.0`. Run
297
297
  `python3 scripts/add_spdx_headers.py` (idempotent) — the file list and the
298
- expression live there, so changing `-only` to `-or-later` is one edit rather
299
- than 314. Separately, `prose-lint.yml` names the Markdown files vale checks
298
+ expression live there, so changing the licence expression is one edit rather
299
+ than hundreds. Separately, `prose-lint.yml` names the Markdown files vale checks
300
300
  **explicitly**: a new doc that is not added to that list is never linted, and
301
301
  `make lint` will not tell you.
302
302
 
@@ -517,7 +517,7 @@ each agent's skills dir, and updating the lock file.
517
517
 
518
518
  - **The shard matrix is packed, not sliced, and 256 is a hard ceiling.**
519
519
  GitHub runs at most 256 matrix jobs per workflow, so `shards.yml` cannot take
520
- one job per registry once the scope is the 463-registry catalogue — the run
520
+ one job per registry once the scope is the ~460-registry catalogue — the run
521
521
  fails before a job starts. `scripts/shard_plan.py` bin-packs by the measured
522
522
  `est_items` (longest-processing-time-first), which matters because cost is
523
523
  uneven: the largest catalogued registry is 880 items against a median of 30,
@@ -191,7 +191,7 @@ form linked there, never a public issue.
191
191
  tests that actually kill your mutants.
192
192
  - **Every source file opens with a two-line header** —
193
193
  `# Copyright the boost contributors.` then
194
- `# SPDX-License-Identifier: GPL-3.0-only`, below any shebang.
194
+ `# SPDX-License-Identifier: Apache-2.0`, below any shebang.
195
195
  `python3 scripts/add_spdx_headers.py` stamps whatever is missing and is safe
196
196
  to re-run; `tests/unit/test_spdx_headers.py` fails the build for a new file
197
197
  without one.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.130
3
+ Version: 1.2.131
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -190,8 +190,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
190
190
  and importing the same rows takes 0.12 s, so the difference between the two is
191
191
  the difference between semantic search being available and being reachable.
192
192
 
193
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
194
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
193
+ Want everything? `boost quickstart --catalog` taps every catalogued
194
+ registry — measured at 2 min 10 s for 463 of them, now that clones run in
195
+ parallel — and fetches vectors
195
196
  for every one that has a published shard.
196
197
 
197
198
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -148,8 +148,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
148
148
  and importing the same rows takes 0.12 s, so the difference between the two is
149
149
  the difference between semantic search being available and being reachable.
150
150
 
151
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
152
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
151
+ Want everything? `boost quickstart --catalog` taps every catalogued
152
+ registry — measured at 2 min 10 s for 463 of them, now that clones run in
153
+ parallel — and fetches vectors
153
154
  for every one that has a published shard.
154
155
 
155
156
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -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.130'
22
- __version_tuple__ = version_tuple = (1, 2, 130)
21
+ __version__ = version = '1.2.131'
22
+ __version_tuple__ = version_tuple = (1, 2, 131)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -256,7 +256,12 @@ def cmd_search(argv):
256
256
  else:
257
257
  footer = ("%d match%s · ranked by %s"
258
258
  % (len(scored), "" if len(scored) == 1 else "es", ranker))
259
- out.info(out.role(footer, "muted"))
259
+ # Chrome, so fitted like the rows `search_layout` just fitted above it —
260
+ # the same wrap-then-colour as `_hint_semantic_search`. Emitted whole it
261
+ # measured 55 columns in a 40-column pane (the cap branch), and the
262
+ # pane-width gate only passed because its fixture returned one match.
263
+ for line in out.wrap(footer, max(out.term_width() - 2, 20)):
264
+ out.info(out.role(line, "muted"))
260
265
  if use_rag:
261
266
  _note_stem_expansions(query)
262
267
  _note_dropped_terms(dropped)
@@ -36,9 +36,9 @@ def _selection(catalog_scope: bool) -> list[dict]:
36
36
  """The registries quickstart will tap: the seven defaults, or all of them.
37
37
 
38
38
  `--catalog` exists because "search everything" is a real ask and the two
39
- costs that used to make it unreasonable are gone: tapping 463 registries is
40
- 2 min 10 s now that clones run in parallel, and their vectors are a
41
- download rather than an hour of CPU.
39
+ costs that used to make it unreasonable are gone: tapping the whole
40
+ catalogue measured 2 min 10 s (463 registries) once clones ran in
41
+ parallel, and their vectors are a download rather than an hour of CPU.
42
42
  """
43
43
  if not catalog_scope:
44
44
  return [d.copy() for d in config.DEFAULT_TAPS]
@@ -62,7 +62,7 @@ def _tap_defaults(selection: list[dict], pins: dict[str, dict],
62
62
  if dry_run:
63
63
  existing = {t.name for t in registry.list_taps()}
64
64
  pending = [n for n in names if n not in existing]
65
- # Over 463 registries a line each is a wall of text, so past a handful
65
+ # Over the whole catalogue a line each is a wall of text, so past a handful
66
66
  # the dry run reports the shape instead of the list.
67
67
  if len(pending) > 12:
68
68
  out.info("would tap %d registries (%d pinned to a published "
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.130
3
+ Version: 1.2.131
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -190,8 +190,9 @@ those vectors. Embedding is ~1.2 s/chunk on CPU — hours for a real corpus —
190
190
  and importing the same rows takes 0.12 s, so the difference between the two is
191
191
  the difference between semantic search being available and being reachable.
192
192
 
193
- Want everything? `boost quickstart --catalog` taps all 463 catalogued
194
- registries — 2 min 10 s now that clones run in parallel — and fetches vectors
193
+ Want everything? `boost quickstart --catalog` taps every catalogued
194
+ registry — measured at 2 min 10 s for 463 of them, now that clones run in
195
+ parallel — and fetches vectors
195
196
  for every one that has a published shard.
196
197
 
197
198
  Already tapped? `boost reindex --fetch-shards` does the download half alone,
@@ -658,7 +658,7 @@ facilitate structured divergent thinking:
658
658
  <div class="node src">
659
659
  <span class="tag">Source</span>
660
660
  <h3>GitHub registries</h3>
661
- <p>7 pre-tapped registries + a 10,000-skill discovery index</p>
661
+ <p>7 pre-tapped registries + live GitHub discovery</p>
662
662
  </div>
663
663
  </div>
664
664
  <div class="flow-arrow reveal">
@@ -874,8 +874,8 @@ facilitate structured divergent thinking:
874
874
  <p class="sec-sub">Boost ships pre-tapped to seven curated registries covering all three
875
875
  item kinds — skills, rules and workflows — and <code>boost mcp</code> taps them for you
876
876
  on a machine that has none. Beyond that,
877
- the curated catalog spans 100+ registries and <code>boost discover</code> indexes
878
- 10,000+ skills across GitHub. Tap your own team’s repo anytime.</p>
877
+ the curated catalog spans 100+ registries and <code>boost discover</code> searches
878
+ GitHub live for skill repositories you have not tapped. Tap your own team’s repo anytime.</p>
879
879
 
880
880
  <div class="reg-wrap reveal">
881
881
  <div class="reg-scroll">
@@ -937,7 +937,7 @@ facilitate structured divergent thinking:
937
937
  </div>
938
938
  </div>
939
939
  <p class="reg-note">Item counts (skills + rules + workflows) measured from the live repositories ·
940
- build the GitHub-wide index with <code>boost index</code>, browse it with <code>boost discover</code></p>
940
+ <code>boost discover &lt;query&gt;</code> searches GitHub live; <code>boost index</code> builds the offline index that bare <code>discover</code> and <code>--local</code> browse</p>
941
941
  </div>
942
942
  </section>
943
943
 
@@ -1009,7 +1009,7 @@ pipx inject boost-skill-cli <span class="yv">"boost-skill-cli[rag]"</span>
1009
1009
  <a href="#commands"><span class="name"><span class="v">boost</span> install brainstorming</span><p>Install into every agent</p></a>
1010
1010
  <a href="#commands"><span class="name"><span class="v">boost</span> recommend</span><p>Suggestions for your stack</p></a>
1011
1011
  <a href="#commands"><span class="name"><span class="v">boost</span> browse</span><p>Interactive TUI explorer</p></a>
1012
- <a href="#commands"><span class="name"><span class="v">boost</span> discover</span><p>Browse 10,000+ skills</p></a>
1012
+ <a href="#commands"><span class="name"><span class="v">boost</span> discover</span><p>Find untapped skills on GitHub</p></a>
1013
1013
  <a href="#commands"><span class="name"><span class="v">boost</span> doctor</span><p>Health check &amp; repair hints</p></a>
1014
1014
  </div>
1015
1015
  </div>
@@ -241,8 +241,8 @@ that sets response headers) and three are a recruiting problem.
241
241
 
242
242
  | Criterion | Cat. | Answer | Evidence |
243
243
  |---|---|---|---|
244
- | `copyright_per_file` | MUST | **Met** | Every source file opens with `# Copyright the boost contributors.` — 314 files across `boost_cli/`, `boost_langchain/`, `evals/`, `scripts/`, `tests/` and the two root files. [`scripts/add_spdx_headers.py`](https://github.com/jonnyeclectic/boost/blob/main/scripts/add_spdx_headers.py) stamps them idempotently and `tests/unit/test_spdx_headers.py` fails the build if a new file arrives without one. |
245
- | `license_per_file` | MUST | **Met** | The next line of every one of those files is `# SPDX-License-Identifier: GPL-3.0-only`. `-only` rather than `-or-later` because nothing in the repository grants "or any later version"; a test asserts that LICENSE still contains no such grant, so the expression cannot quietly become wrong. |
244
+ | `copyright_per_file` | MUST | **Met** | Every source file opens with `# Copyright the boost contributors.` — every `.py`/`.sh` file across `boost_cli/`, `boost_langchain/`, `evals/`, `scripts/`, `tests/` and the two root files. [`scripts/add_spdx_headers.py`](https://github.com/jonnyeclectic/boost/blob/main/scripts/add_spdx_headers.py) stamps them idempotently and `tests/unit/test_spdx_headers.py` fails the build if a new file arrives without one. |
245
+ | `license_per_file` | MUST | **Met** | The next line of every one of those files is `# SPDX-License-Identifier: Apache-2.0`, the licence LICENSE carries. `tests/unit/test_spdx_headers.py` fails the build on a file missing either line, and a second test pins CLAUDE.md's contributor rule to the same expression. |
246
246
  | `repo_distributed` | MUST | **Met** | git. |
247
247
  | `small_tasks` | SHOULD | **Met** | [CONTRIBUTING.md § Good first tasks](https://github.com/jonnyeclectic/boost/blob/main/CONTRIBUTING.md#good-first-tasks) names five standing starter tasks, each with the exact file to edit — adding a registry row, adding a retrieval golden-set query, teaching the prose linter a word, sharpening a command summary, covering an untested branch. They are standing tasks on purpose: a newcomer can start without waiting for an issue to be triaged. Specific one-off tasks carry the `good first issue` label. |
248
248
 
@@ -2,15 +2,15 @@
2
2
  id: audit-stale-prose-after-shipped-changes-catalog-export-live-discov
3
3
  board: code
4
4
  section: dx
5
- status: planned
5
+ status: shipped
6
6
  category: Docs · Drift
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 1
10
10
  note: a documented command that exits 2, 463 vs 464 in eight places, a GPL rule over Apache files
11
11
  order: 244
12
- owner:
13
- pr:
12
+ owner: loop/stale-prose
13
+ pr: 883
14
14
  title: "Stale prose after shipped changes: <code>catalog --export</code>, live discover, 464 count, Apache-2.0"
15
15
  ---
16
16
  Four patches of prose describe the repo as it was before a shipped change, each verified against the current
@@ -2,15 +2,15 @@
2
2
  id: search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to
3
3
  board: code
4
4
  section: planned
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: S
8
8
  impact: Low
9
9
  wow: 2
10
10
  note: search_layout's docstring guarantees every row measures within cols, and at COLUMNS=4…
11
11
  order: 231
12
- owner:
13
- pr:
12
+ owner: loop/search-footer-fit
13
+ pr: 884
14
14
  title: The search footer is the one unfitted line on a screen <code>search_layout</code> just fitted: 55 columns in a 40-column pane
15
15
  ---
16
16
  <b>Measured.</b> The same command measures 55 columns in a 40-column pane in the field and 39 in the test that asserts it fits: <code>tests/functional/test_cli_pane_width.py::TestChromeOnlyCommandsFitAnyPane::test_search[40]</code> passes only because its fixture tap yields exactly one match, whose footer is <code>1 match · ranked by full-content BM25</code> = 39 — one column under the pane.
@@ -2,15 +2,15 @@
2
2
  id: search-footer-overflows-40-col-pane-gate-passes-by-luck
3
3
  board: code
4
4
  section: planned
5
- status: planned
5
+ status: shipped
6
6
  category: UX · Bug
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 3
10
10
  note: tests/functional/test_cli_pane_width.py asserts _widest(r.out) &lt;= cols for boost sear…
11
11
  order: 232
12
- owner:
13
- pr:
12
+ owner: loop/search-footer-fit
13
+ pr: 884
14
14
  title: <code>boost search</code>'s footer overflows a 40-column pane by 2-15 cells, and the gate that swears it doesn't passes only because its fixture returns exactly one match
15
15
  ---
16
16
  <b>Measured.</b> On the gate's <b>own</b> 5-item fixture at COLUMNS=40, changing the query from <code>brainstorming</code> to <code>workflow</code> — nothing else — takes <code>_widest(r.out)</code> from 40 (passes) to 41 (fails), because the footer goes from <code>1 match · ranked by full-content BM25</code> (39 cells) to <code>2 matches · ranked by full-content BM25</code> (41 cells): the gate's green is a property of the singular noun, not of the code. On the 20-tap corpus the same footer measures 55 cells at COLUMNS=40 (over by 15) via the <code>hit_cap</code> branch.
@@ -2221,46 +2221,9 @@ MITIGATIONS (why Med and not High): every failure path recovers in one command.
2221
2221
  </article>
2222
2222
 
2223
2223
  <article class="cap rcard" id="search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to">
2224
- <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
2224
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
2225
2225
  <h3>The search footer is the one unfitted line on a screen <code>search_layout</code> just fitted: 55 columns in a 40-column pane</h3>
2226
- <p><b>Measured.</b> The same command measures 55 columns in a 40-column pane in the field and 39 in the test that asserts it fits: <code>tests/functional/test_cli_pane_width.py::TestChromeOnlyCommandsFitAnyPane::test_search[40]</code> passes only because its fixture tap yields exactly one match, whose footer is <code>1 match · ranked by full-content BM25</code> = 39 — one column under the pane.
2227
-
2228
- <b>Reproduce it.</b>
2229
-
2230
- <code>cd &lt;repo&gt;</code><br>
2231
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
2232
- <code>COLUMNS=40 ./boost search "code review" 2&gt;&amp;1 | python3 -c "</code><br>
2233
- <code>import sys,re,unicodedata</code><br>
2234
- <code>A=re.compile(r'\033\[[0-9;]*m')</code><br>
2235
- <code>def vl(s):</code><br>
2236
- <code> s=A.sub('',s); return sum(0 if unicodedata.combining(c) else (2 if unicodedata.east_asian_width(c) in ('W','F') else 1) for c in s)</code><br>
2237
- <code>for i,l in enumerate(sys.stdin.read().splitlines()):</code><br>
2238
- <code> if vl(l)&gt;40: print('OVERFLOW line%d %d&gt;40: %r' % (i, vl(l), l))</code><br>
2239
- <code>"</code>
2240
-
2241
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
2242
-
2243
- Three citation errors; all measured numbers are right.
2244
-
2245
- 1. The footer emit is <code>boost_cli/commands/discovery.py:238</code>, not 239. 2. The <code>search_layout</code> docstring sentence is <code>boost_cli/core/output.py:665-667</code> (the whole docstring runs 653-668), not 680-682. Lines 680-682 are <code>desc_room()</code>'s body and the <code>tap_w</code> drop test. 3. "thirty lines later in the same module" is wrong: 238 -&gt; 258 is 20 lines. The finding's own <code>why_it_matters</code> already says "20 lines away", so the evidence contradicts itself.
2246
-
2247
- Not a correction but a scope fact the finding did not state: the *other* footer branch also overflows. At COLUMNS=40 with BM25 the widths are 39 (1 match, fits) / 41 (3) / 42 (35 matches, measured) / 55 (cap branch, measured) — i.e. the overflow is 1-15 cells, zero at exactly one match. The smart path pushes it further ("ranked by Claude Haiku relevance" = 59).
2248
-
2249
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
2250
-
2251
- Scope of my repro: the 20-tap eval corpus at $TMPDIR/eval-home for the field measurement, plus the real <code>tests/make_fixture.py</code> tap in a disposable HOME for the gate fixture. No network, no writes to the shared corpus. The defect is in the emit site, not the corpus — any query returning &gt;1 match reproduces it.
2252
-
2253
- Four things a card author must not get wrong:
2254
-
2255
- 1. <b><code>search_layout</code> does not violate its own docstring.</b> Its guarantee is over "every row assembled from the plan"; the footer is not a row assembled from the plan. The title's contrast is rhetorical and true as *juxtaposition* (the fitted rows sit directly above an unfitted line), but a card must not say "search_layout breaks its own guarantee." The law the footer *does* break is the repo's own, stated in <code>tests/functional/test_cli_pane_width.py</code>'s module docstring: "Commands whose whole output boost composed — <code>search</code>, <code>who</code>, <code>protocol</code> — are swept at panes down to 40 columns. Every line is chrome, so every line is boost's to fit."
2256
-
2257
- 2. <b>"The one unfitted line" holds only for a screen with results.</b> On the zero-result screen a different line overflows and <code>search_layout</code> never runs: <code>COLUMNS=40 ./boost search zzzqqxnothing</code> emits <code> → try \</code>boost discover zzzqqxnothing\<code> to search all of GitHub</code> at 62 columns. Fixing the footer does not make <code>boost search</code> pane-clean, and a card claiming it does will be wrong the first time someone types a miss.
2258
-
2259
- 3.
2260
-
2261
- <b>Why it is worth doing.</b> The footer is chrome (a count and a ranker name), so the wrap law permits fitting it — nothing on that line is data the user must copy. Leaving it unfitted means the one screen boost spent a whole frozen <code>SearchLayout</code> dataclass fitting still wraps on a narrow pane, and it wraps on the summary line, breaking the visual bottom edge of the result block. The fix is one call already used 20 lines away in the same file.
2262
-
2263
- <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>
2226
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md">Write-up &middot; search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md</a></p>
2264
2227
  <div class="meta">
2265
2228
  <span class="m">Complexity <b>S</b></span>
2266
2229
  <span class="m">Impact <b>Low</b></span>
@@ -2270,47 +2233,9 @@ Four things a card author must not get wrong:
2270
2233
  </article>
2271
2234
 
2272
2235
  <article class="cap rcard" id="search-footer-overflows-40-col-pane-gate-passes-by-luck">
2273
- <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
2236
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">UX · Bug</span></div>
2274
2237
  <h3><code>boost search</code>'s footer overflows a 40-column pane by 2-15 cells, and the gate that swears it doesn't passes only because its fixture returns exactly one match</h3>
2275
- <p><b>Measured.</b> On the gate's <b>own</b> 5-item fixture at COLUMNS=40, changing the query from <code>brainstorming</code> to <code>workflow</code> — nothing else — takes <code>_widest(r.out)</code> from 40 (passes) to 41 (fails), because the footer goes from <code>1 match · ranked by full-content BM25</code> (39 cells) to <code>2 matches · ranked by full-content BM25</code> (41 cells): the gate's green is a property of the singular noun, not of the code. On the 20-tap corpus the same footer measures 55 cells at COLUMNS=40 (over by 15) via the <code>hit_cap</code> branch.
2276
-
2277
- <b>Reproduce it.</b>
2278
-
2279
- <code>cd &lt;repo&gt;</code><br>
2280
- <code>export BOOST_HOME=$TMPDIR/eval-home</code><br>
2281
- <code>.venv/bin/python - &lt;&lt;'PY'</code><br>
2282
- <code>import os,subprocess,sys</code><br>
2283
- <code>sys.path.insert(0,".")</code><br>
2284
- <code>from boost_cli.core import output</code><br>
2285
- <code>for C in (40,48,60,80,120):</code><br>
2286
- <code> env=dict(os.environ); env["COLUMNS"]=str(C)</code><br>
2287
- <code> r=subprocess.run(["./boost","search","code","review"],capture_output=True,text=True,env=env)</code><br>
2288
- <code> lines=r.stdout.splitlines()</code><br>
2289
- <code> w=max((output.visible_len(l) for l in lines),default=0)</code><br>
2290
- <code> print("COLUMNS=%-4d widest=%-4d %s" % (C,w,"OVER by %d"%(w-C) if w&gt;C else "ok"))</code><br>
2291
- <code> for l in lines:</code><br>
2292
- <code> if output.visible_len(l)&gt;C: print(" %3d | %s" % (output.visible_len(l), l))</code><br>
2293
- <code>for q in (["quarkus"],["minio"]):</code><br>
2294
- <code> env=dict(os.environ); env["COLUMNS"]="40"</code><br>
2295
- …
2296
-
2297
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
2298
-
2299
- Three of the finding's file:line refs are stale against current HEAD (9b70fc8e). A card author copying them lands in the wrong place:
2300
-
2301
- 1. <code>hit_cap = len(hits) &gt;= k</code> is at <b>discovery.py:161</b>, not 157. 2. <code>k = max(60, args.limit * 4)</code> is at <b>discovery.py:153</b>, not 150. 3. <code>out.info(out.role(footer, "muted"))</code> is at <b>discovery.py:238</b>, not 239. (<code>discovery.py:234-237</code> for the footer assembly IS correct — 234 is the cap branch, 236-237 the plain branch.) 4. The test-file docstring quote is at <b>test_cli_pane_width.py:15-17</b>, not 14-17 (line 14 is blank).
2302
-
2303
- 5. "Every other count on any corpus overflows" is over-scoped. The 8-cell count budget (40 - 2 indent - 3 separator - 27 for "ranked by full-content BM25") is specific to the <b>key-free BM25 label</b>. <code>rag.py:1282-1287</code> ships two other labels and the envelope moves in BOTH directions: - <code>dense vectors</code> → "ranked by dense vectors" is 23, budget 12, so counts up to <code>9999 matches</code> fit at 40. A dense-backed install's plain branch mostly does not overflow. - <code>hybrid RRF (BM25 + dense)</code> → "ranked by hybrid RRF (BM25 + dense)" is 35, budget 0, so <b>nothing</b> fits at COLUMNS=40 — including <code>1 match</code>.
2304
-
2305
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
2306
-
2307
- SCOPE OF MY REPRO - The 55 / 54 / 42 / 41 numbers come from the shared 20-tap eval corpus at $TMPDIR/eval-home. They are "how bad on a real catalogue", corpus-dependent. - The load-bearing half is corpus-INDEPENDENT: the arithmetic (2 + len("N match(es)") + 3 + len("ranked by &lt;label&gt;")) and the fixture proof above, both reproducible with only <code>tests/make_fixture.py</code>. A card can be written without any external corpus. - The gate currently passes (4 passed, exit 0). I did not edit any source.
2308
-
2309
- DEDUPE — clean, not carded. I read <code>long-hints-overflow-narrow-panes.md</code> (#555) in full: it enumerates its 11+1 offenders by name (doctor 127, AI-fallback 101, protocol 100, changelog 93, who 87, search's *extra hint* 82, simulate 97) and its "Still open" section names only doctor's ·-joined summaries at 71 and protocol's <code>try it:</code> at 59 — the search footer is absent, and could not be present since 74c4aac9 wrote the long branch after #555. <code>audit-search-findings.md</code> (#770) specifies the footer's new wording and never measures a pane. <code>search-and-browse-visual-refresh.md</code> scopes its 40-column claim to <code>format_search_row</code>, which my measurement confirms still holds (every result row fits at 40 and 48). Also checked BOOST-D23, BOOST-D24, BOOST-D27, cli-output-ignored-the-terminal, cli-audit-2026-08-full-sweep, audit-output-wrap-tokens…, audit-out-table-clips… — none mention search's footer.
2310
-
2311
- <b>Why it is worth doing.</b> A required functional gate is asserting an invariant that is false for every real user, and it stays green because the fixture happens to hit the one count that fits. Anyone reading <code>test_cli_pane_width.py</code> or <code>long-hints-overflow-narrow-panes</code> ("eight overflowing lines became two, and the two are the data lines") believes <code>boost search</code> is width-clean at 40 columns; on a real catalogue the footer wraps in a split pane or narrow tmux window, which is exactly the class of regression PR 555 built the sweep to catch. The footer is chrome by the card's own definition — a match count and an engine label, not data like <code>pulse</code>'s paths or <code>fingerprint</code>'s hash — so nothing exempts it.
2312
-
2313
- <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>
2238
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md">Write-up &middot; search-footer-overflows-40-col-pane-gate-passes-by-luck.md</a></p>
2314
2239
  <div class="meta">
2315
2240
  <span class="m">Complexity <b>M</b></span>
2316
2241
  <span class="m">Impact <b>Med</b></span>
@@ -6268,36 +6193,9 @@ Found by the 2026-08 CLI audit (cluster help-examples-sweep); repro in the audit
6268
6193
  </article>
6269
6194
 
6270
6195
  <article class="cap rcard" id="audit-stale-prose-after-shipped-changes-catalog-export-live-discov">
6271
- <div class="head"><span class="pill planned">Planned</span><span class="cat">Docs · Drift</span></div>
6196
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Docs · Drift</span></div>
6272
6197
  <h3>Stale prose after shipped changes: <code>catalog --export</code>, live discover, 464 count, Apache-2.0</h3>
6273
- <p>Four patches of prose describe the repo as it was before a shipped change, each verified against the current
6274
- tree. <b>A documented command that does not run:</b> <code>docs/security-design.md:35</code> says
6275
- <em>a <code>boost catalog export</code> tarball</em>; running it prints <code>Error: one of the arguments
6276
- --export --import --show is required</code> and exits 2 &mdash; the flag is <code>--export</code>.
6277
- <b>Pre-live-search discover:</b> <code>docs/index.html:877</code> (<em><code>boost discover</code> indexes
6278
- 10,000+ skills across GitHub</em>) and <code>:940</code> (<em>build the GitHub-wide index &hellip; browse it with
6279
- <code>boost discover</code></em>) predate the shipped change that made a query hit GitHub Code Search live; the
6280
- index now only backs bare <code>discover</code> and <code>--local</code>, exactly as the command's own help says.
6281
-
6282
- <b>A hard-coded count, off by one and spreading:</b> README:151, <code>semantic-search.md:64</code> and
6283
- <code>quickstart.py:39</code> say <code>--catalog</code> taps <b>463</b> registries;
6284
- <code>registries.json</code> holds <b>464</b> non-list_only rows of 487, and <code>quickstart --dry-run
6285
- --catalog</code> on the 20-tap fixture prints <code>would tap 445 registries</code> (445&nbsp;+&nbsp;19 already
6286
- tapped&nbsp;=&nbsp;464). Verification found more copies than the auditor: README:211,
6287
- <code>quickstart.py:65</code> and CLAUDE.md:183&ndash;184 and :500. <b>A licence rule contradicting every
6288
- file:</b> CLAUDE.md:276 still says headers open with <code>SPDX-License-Identifier: GPL-3.0-only</code>, but
6289
- every source file greps to <code>Apache-2.0</code>, LICENSE is the Apache License 2.0, and
6290
- <code>scripts/add_spdx_headers.py</code> already writes Apache-2.0 &mdash; the CLAUDE.md paragraph (and its
6291
- <code>-only</code>&rarr;<code>-or-later</code> example) is the sole stale statement.
6292
-
6293
- Fix as one doc-only PR: <code>security-design.md:35</code> &rarr; <code>boost catalog --export</code>; rewrite
6294
- the two <code>index.html</code> sentences to live-GitHub-search plus <code>boost index</code>/<code>--local</code>;
6295
- replace the literal 463 with <em>every catalogued registry</em> (or 464) in README.md:151/211,
6296
- <code>semantic-search.md:64</code>, <code>quickstart.py:39/65</code> and CLAUDE.md:183/500 &mdash; a number
6297
- <code>scripts/build_registries.py</code> changes should not be hard-coded in prose; and correct the CLAUDE.md
6298
- licence paragraph to Apache-2.0. <code>security-design.md</code> and <code>semantic-search.md</code> are already
6299
- in <code>prose-lint.yml</code>'s vale list, so no lint wiring is needed; <code>docs/commands.html</code> is
6300
- untouched (no parser changes). Found by the 2026-08 CLI audit (cluster stale-prose-docs); repro in the audit log.</p>
6198
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md">Write-up &middot; audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md</a></p>
6301
6199
  <div class="meta">
6302
6200
  <span class="m">Complexity <b>S</b></span>
6303
6201
  <span class="m">Impact <b>Low</b></span>
@@ -32,7 +32,7 @@ thing boost does, and the code path treats it that way.
32
32
  | Boundary | Trusted side | Untrusted side |
33
33
  |---|---|---|
34
34
  | **Tap content** | boost's own code | every byte of a cloned registry: file names, paths, YAML frontmatter, body text |
35
- | **Catalogue bundle** | the importing machine | a `boost catalog export` tarball received from elsewhere |
35
+ | **Catalogue bundle** | the importing machine | a `boost catalog --export` tarball received from elsewhere |
36
36
  | **The agent** | — | boost cannot police what an agent does with a file it has loaded |
37
37
  | **The toolchain** | the pinned hashes in `requirements/` | PyPI, and anything it resolves to |
38
38
  | **CI** | the workflow files in this repo | every third-party action, and anything a fork's PR can influence |
@@ -61,12 +61,12 @@ two commands consume them:
61
61
 
62
62
  ```bash
63
63
  boost quickstart # tap the starter registries + import their vectors
64
- boost quickstart --catalog # …or all 463 catalogued registries
64
+ boost quickstart --catalog # …or every catalogued registry
65
65
  boost reindex --fetch-shards # already tapped: import whatever is published
66
66
  ```
67
67
 
68
- The published set is the whole catalogue, refreshed weekly. CI packs the 463
69
- registries into ~60 matrix jobs rather than one per registry, because GitHub
68
+ The published set is the whole catalogue, refreshed weekly. CI packs the
69
+ catalogue into ~60 matrix jobs rather than one per registry, because GitHub
70
70
  caps a matrix at 256 jobs and embedding cost is uneven enough that slicing
71
71
  would leave one job carrying several of the largest registries
72
72
  (`scripts/shard_plan.py`).
@@ -4,8 +4,8 @@
4
4
  """Pack the registry catalogue into a bounded, balanced Actions matrix.
5
5
 
6
6
  WHY THIS EXISTS. `shards.yml` ran one job per registry, which is fine for the
7
- 20-repo eval corpus and impossible for the 463-registry catalogue: **GitHub
8
- caps a matrix at 256 jobs per workflow run**, so 463 rows do not start at all.
7
+ 20-repo eval corpus and impossible for the ~460-registry catalogue: **GitHub
8
+ caps a matrix at 256 jobs per workflow run**, so ~460 rows do not start at all.
9
9
  Chunking is therefore not an optimisation, it is the difference between the
10
10
  workflow running and not.
11
11
 
@@ -62,6 +62,11 @@ class TestChromeOnlyCommandsFitAnyPane:
62
62
  pane(cols)
63
63
  r = boost("search", "brainstorming", expect=None)
64
64
  assert _widest(r.out) <= cols
65
+ # One match made the footer 39 cells — one under the narrowest pane —
66
+ # so the gate passed on the singular noun. Two matches is 41.
67
+ r = boost("search", "workflow", expect=None)
68
+ assert "2 matches" in r.out.replace("\n ", " ")
69
+ assert _widest(r.out) <= cols
65
70
 
66
71
  @pytest.mark.parametrize("cols", NARROW)
67
72
  def test_who(self, boost, tapped, pane, cols):
@@ -15,6 +15,7 @@ that lies about what it proves.
15
15
  """
16
16
  from __future__ import annotations
17
17
 
18
+ import json
18
19
  import re
19
20
  import sys
20
21
  from pathlib import Path
@@ -143,6 +144,26 @@ class TestSuiteSizesAgree:
143
144
  assert stated and set(stated) == {(len(features), scenarios)}, stated
144
145
 
145
146
 
147
+ class TestCatalogueSizeIsNotHardCoded:
148
+ def test_no_doc_states_a_catalogue_size_the_data_disagrees_with(self):
149
+ # `scripts/build_registries.py` moves this number; prose that states
150
+ # it went stale at 463 while registries.json held 464. Say "every
151
+ # catalogued registry" instead, or state the current figure.
152
+ data = json.loads((ROOT / "boost_cli" / "data" / "registries.json")
153
+ .read_text(encoding="utf-8"))
154
+ size = sum(1 for r in data["registries"] if not r.get("list_only"))
155
+ docs = [ROOT / "README.md", *sorted((ROOT / "docs").glob("*.md"))]
156
+ for doc in docs:
157
+ text = doc.read_text(encoding="utf-8")
158
+ # `\s+`: README broke this very phrase across a line. The second
159
+ # form is "the N-registry catalogue"; a "~N" is an estimate.
160
+ for n in re.findall(r"all\s+(\d+)\s+catalogued\s+registr"
161
+ r"|(?<![~\d])(\d+)-registry\s+catalogue", text):
162
+ n = next(g for g in n if g)
163
+ assert int(n) == size, "%s says all %s; the catalogue is %d" % (
164
+ doc.name, n, size)
165
+
166
+
146
167
  class TestNoStaleCountsElsewhere:
147
168
  @pytest.mark.parametrize("doc", ["README.md", "docs/index.html"])
148
169
  def test_no_command_count_is_a_stale_literal(self, doc):
@@ -9,6 +9,7 @@ from landing without one.
9
9
  from __future__ import annotations
10
10
 
11
11
  import importlib.util
12
+ import re
12
13
  from pathlib import Path
13
14
 
14
15
  import pytest
@@ -105,3 +106,15 @@ def test_no_two_package_files_are_byte_identical() -> None:
105
106
  )
106
107
  dupes = {d: f for d, f in by_digest.items() if len(f) > 1}
107
108
  assert not dupes, f"identical files ship twice in the wheel: {dupes}"
109
+
110
+
111
+ @pytest.mark.parametrize("guide", ["CLAUDE.md", "CONTRIBUTING.md"])
112
+ def test_contributor_guide_names_the_expression_the_script_writes(guide):
113
+ # Both guides told contributors to write GPL-3.0-only headers long after
114
+ # every file, LICENSE and this script had moved to Apache-2.0.
115
+ path = ROOT / guide
116
+ if not path.exists():
117
+ pytest.skip("%s not reachable (e.g. mutation sandbox)" % guide)
118
+ text = path.read_text(encoding="utf-8")
119
+ assert set(re.findall(r"SPDX-License-Identifier: ([\w.+-]+)", text)) \
120
+ == {_SPDX.SPDX_ID}
File without changes