boost-skill-cli 1.2.134__tar.gz → 1.2.135__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 (1071) hide show
  1. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/CLAUDE.md +6 -4
  2. {boost_skill_cli-1.2.134/boost_skill_cli.egg-info → boost_skill_cli-1.2.135}/PKG-INFO +1 -1
  3. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/_version.py +2 -2
  4. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/configuration.py +15 -6
  5. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/discovery.py +4 -3
  6. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/intelligence.py +17 -8
  7. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/pkg.py +28 -12
  8. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/quality.py +25 -13
  9. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/team.py +5 -1
  10. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/chat.py +189 -13
  11. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/store.py +167 -30
  12. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  13. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
  14. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/chat.html +11 -3
  15. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/commands.html +5 -5
  16. boost_skill_cli-1.2.135/docs/demo.gif +0 -0
  17. boost_skill_cli-1.2.135/docs/roadmap/items/audit-chat-findings.md +82 -0
  18. boost_skill_cli-1.2.135/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +38 -0
  19. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +3 -3
  20. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap.html +45 -63
  21. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_chat.py +99 -0
  22. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_discovery.py +6 -0
  23. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_pkg.py +49 -5
  24. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_quality.py +93 -0
  25. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_team.py +23 -0
  26. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_boost_first_offer.py +42 -1
  27. boost_skill_cli-1.2.135/tests/unit/test_chat.py +848 -0
  28. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_store.py +325 -0
  29. boost_skill_cli-1.2.134/docs/demo.gif +0 -0
  30. boost_skill_cli-1.2.134/docs/roadmap/items/audit-chat-findings.md +0 -44
  31. boost_skill_cli-1.2.134/tests/unit/test_chat.py +0 -413
  32. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.gitattributes +0 -0
  33. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.gitignore +0 -0
  34. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.gitleaks.toml +0 -0
  35. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.htmlvalidate.json +0 -0
  36. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.lighthouserc.json +0 -0
  37. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.lycheeignore +0 -0
  38. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.markdownlint-cli2.jsonc +0 -0
  39. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.pre-commit-config.yaml +0 -0
  40. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.stylelintrc.json +0 -0
  41. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.vale/styles/boost/AIWriting.yml +0 -0
  42. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.vale/styles/boost/Terminology.yml +0 -0
  43. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  44. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/.vale.ini +0 -0
  45. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/CODE_OF_CONDUCT.md +0 -0
  46. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/CONTRIBUTING.md +0 -0
  47. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/DCO +0 -0
  48. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/GOVERNANCE.md +0 -0
  49. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/LICENSE +0 -0
  50. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/MAINTAINERS.md +0 -0
  51. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/MANIFEST.in +0 -0
  52. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/Makefile +0 -0
  53. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/README.md +0 -0
  54. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/SECURITY.md +0 -0
  55. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/SUPPORT.md +0 -0
  56. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost +0 -0
  57. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/__init__.py +0 -0
  58. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/__main__.py +0 -0
  59. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/cli.py +0 -0
  60. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/cliparse.py +0 -0
  61. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/__init__.py +0 -0
  62. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/_common.py +0 -0
  63. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/bmad.py +0 -0
  64. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/hooks.py +0 -0
  65. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/info.py +0 -0
  66. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/quickstart.py +0 -0
  67. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/run.py +0 -0
  68. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/safety.py +0 -0
  69. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/commands/taps.py +0 -0
  70. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/__init__.py +0 -0
  71. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/adapters.py +0 -0
  72. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/agents.py +0 -0
  73. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/ai.py +0 -0
  74. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/aihost.py +0 -0
  75. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/archive.py +0 -0
  76. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/bmad.py +0 -0
  77. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/bootstrap.py +0 -0
  78. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/browse.py +0 -0
  79. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/builtin.py +0 -0
  80. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/capabilities.py +0 -0
  81. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/catalog.py +0 -0
  82. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/catalogbundle.py +0 -0
  83. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/claude_settings.py +0 -0
  84. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/cohort.py +0 -0
  85. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/compact.py +0 -0
  86. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/complete.py +0 -0
  87. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/config.py +0 -0
  88. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/dense.py +0 -0
  89. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/deps.py +0 -0
  90. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/discovery.py +0 -0
  91. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/ed25519.py +0 -0
  92. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/embed.py +0 -0
  93. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/faithfulness.py +0 -0
  94. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/frontmatter.py +0 -0
  95. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/gitutil.py +0 -0
  96. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/hookhost.py +0 -0
  97. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/imperative.py +0 -0
  98. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/injectscan.py +0 -0
  99. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/installscan.py +0 -0
  100. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/integrity.py +0 -0
  101. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/journal.py +0 -0
  102. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/jsonstate.py +0 -0
  103. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/localembed.py +0 -0
  104. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/lockfile.py +0 -0
  105. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/logs.py +0 -0
  106. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/mcp.py +0 -0
  107. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/mcpdecl.py +0 -0
  108. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/mcphost.py +0 -0
  109. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/minisign.py +0 -0
  110. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/nethttp.py +0 -0
  111. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/output.py +0 -0
  112. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/paths.py +0 -0
  113. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/policy.py +0 -0
  114. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/projectlock.py +0 -0
  115. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/provenance.py +0 -0
  116. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/rag.py +0 -0
  117. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/registry.py +0 -0
  118. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/report.py +0 -0
  119. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/resolve.py +0 -0
  120. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/rules.py +0 -0
  121. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/scopes.py +0 -0
  122. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/secretscan.py +0 -0
  123. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/selfupdate.py +0 -0
  124. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/serve.py +0 -0
  125. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/shards.py +0 -0
  126. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/stackprobe.py +0 -0
  127. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/staleness.py +0 -0
  128. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/trustaudit.py +0 -0
  129. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/typedvalue.py +0 -0
  130. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/typosquat.py +0 -0
  131. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/updatediff.py +0 -0
  132. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/util.py +0 -0
  133. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/core/workflows.py +0 -0
  134. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/data/registries.json +0 -0
  135. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/data/rules/boost-first.mdc +0 -0
  136. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/errors.py +0 -0
  137. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_cli/spin.py +0 -0
  138. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/__init__.py +0 -0
  139. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/_compat.py +0 -0
  140. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/graph.py +0 -0
  141. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/loader.py +0 -0
  142. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/py.typed +0 -0
  143. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_langchain/retriever.py +0 -0
  144. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  145. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  146. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_skill_cli.egg-info/requires.txt +0 -0
  147. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/boost_skill_cli.egg-info/top_level.txt +0 -0
  148. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/codecov.yml +0 -0
  149. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/.claude/settings.local.json +0 -0
  150. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/DEBUGGING.md +0 -0
  151. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/adapters.html +0 -0
  152. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/architecture/README.md +0 -0
  153. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/architecture/c4-components-core.md +0 -0
  154. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/architecture/c4-containers.md +0 -0
  155. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/architecture/c4-context.md +0 -0
  156. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/architecture/c4-dynamic-install.md +0 -0
  157. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/bmad.md +0 -0
  158. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/distill.gif +0 -0
  159. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/doctor.gif +0 -0
  160. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/explain.gif +0 -0
  161. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/hooks.gif +0 -0
  162. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/install.gif +0 -0
  163. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/pulse.gif +0 -0
  164. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/search.gif +0 -0
  165. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/gifs/tap.gif +0 -0
  166. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/distill.tape +0 -0
  167. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/doctor.tape +0 -0
  168. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/explain.tape +0 -0
  169. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/hooks.tape +0 -0
  170. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/install.tape +0 -0
  171. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/pulse.tape +0 -0
  172. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/search.tape +0 -0
  173. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel/tapes/tap.tape +0 -0
  174. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/carousel.html +0 -0
  175. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/code-review.md +0 -0
  176. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/commit-audit.md +0 -0
  177. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/demo-index.json +0 -0
  178. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/demo.html +0 -0
  179. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/demo.tape +0 -0
  180. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/dependencies.md +0 -0
  181. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/design-roadmap.html +0 -0
  182. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/eval-latest.json +0 -0
  183. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/eval.html +0 -0
  184. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/index.html +0 -0
  185. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/langchain.html +0 -0
  186. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/mcp-hub.html +0 -0
  187. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/openssf-badge.md +0 -0
  188. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/openssf-playbook.md +0 -0
  189. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/rag-architecture.md +0 -0
  190. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D01.md +0 -0
  191. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D02.md +0 -0
  192. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D03.md +0 -0
  193. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D04.md +0 -0
  194. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D05.md +0 -0
  195. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D06.md +0 -0
  196. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D07.md +0 -0
  197. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D08.md +0 -0
  198. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D09.md +0 -0
  199. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D10.md +0 -0
  200. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D11.md +0 -0
  201. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D12.md +0 -0
  202. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D13.md +0 -0
  203. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D14.md +0 -0
  204. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D15.md +0 -0
  205. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D16.md +0 -0
  206. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D17.md +0 -0
  207. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D18.md +0 -0
  208. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D19.md +0 -0
  209. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D20.md +0 -0
  210. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D21.md +0 -0
  211. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D22.md +0 -0
  212. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D23.md +0 -0
  213. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D24.md +0 -0
  214. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D25.md +0 -0
  215. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D26.md +0 -0
  216. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/BOOST-D27.md +0 -0
  217. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  218. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  219. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  220. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  221. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  222. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  223. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  224. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  225. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  226. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  227. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  228. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  229. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  230. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  231. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  232. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  233. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-attest-findings.md +0 -0
  234. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-audit-findings.md +0 -0
  235. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  236. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-browse-findings.md +0 -0
  237. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  238. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  239. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  240. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  241. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  242. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  243. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  244. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-completions-findings.md +0 -0
  245. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-config-findings.md +0 -0
  246. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  247. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-context-findings.md +0 -0
  248. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  249. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  250. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-create-findings.md +0 -0
  251. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  252. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-deps-findings.md +0 -0
  253. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-discover-findings.md +0 -0
  254. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  255. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  256. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-drift-findings.md +0 -0
  257. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  258. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-edit-findings.md +0 -0
  259. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  260. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-explain-findings.md +0 -0
  261. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-export-findings.md +0 -0
  262. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  263. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  264. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  265. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  266. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  267. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-health-findings.md +0 -0
  268. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  269. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  270. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-import-findings.md +0 -0
  271. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-index-findings.md +0 -0
  272. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  273. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  274. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-install-findings.md +0 -0
  275. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  276. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  277. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-lint-findings.md +0 -0
  278. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-log-findings.md +0 -0
  279. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  280. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  281. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  282. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  283. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  284. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  285. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  286. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  287. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  288. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  289. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  290. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-policy-findings.md +0 -0
  291. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-preview-findings.md +0 -0
  292. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-profile-findings.md +0 -0
  293. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  294. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  295. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  296. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  297. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  298. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  299. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  300. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  301. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  302. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-replay-findings.md +0 -0
  303. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-root-findings.md +0 -0
  304. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  305. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-run-findings.md +0 -0
  306. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  307. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-search-findings.md +0 -0
  308. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  309. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  310. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  311. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  312. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  313. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  314. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  315. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  316. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-sync-findings.md +0 -0
  317. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-tag-findings.md +0 -0
  318. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  319. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-tap-findings.md +0 -0
  320. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-taps-findings.md +0 -0
  321. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  322. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-test-findings.md +0 -0
  323. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-trust-findings.md +0 -0
  324. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  325. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  326. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-untap-findings.md +0 -0
  327. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-update-findings.md +0 -0
  328. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  329. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-verify-findings.md +0 -0
  330. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/audit-who-findings.md +0 -0
  331. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  332. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  333. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  334. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  335. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  336. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  337. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  338. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  339. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  340. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  341. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  342. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  343. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  344. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  345. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  346. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  347. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/boost-first-rule.md +0 -0
  348. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  349. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  350. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/branch-current-gate.md +0 -0
  351. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  352. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  353. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  354. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  355. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  356. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  357. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
  358. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  359. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  360. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  361. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  362. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  363. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  364. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  365. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  366. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  367. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  368. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  369. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  370. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cli-command-audit.md +0 -0
  371. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  372. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  373. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  374. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  375. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/command-carousel-page.md +0 -0
  376. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  377. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  378. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  379. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  380. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  381. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  382. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
  383. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  384. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  385. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  386. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  387. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  388. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  389. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  390. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  391. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  392. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  393. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  394. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  395. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  396. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  397. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  398. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  399. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  400. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  401. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  402. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  403. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  404. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  405. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  406. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  407. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  408. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  409. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  410. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  411. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  412. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  413. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  414. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  415. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  416. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  417. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
  418. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  419. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  420. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  421. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  422. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  423. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  424. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  425. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  426. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  427. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  428. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  429. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  430. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  431. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  432. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  433. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  434. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  435. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  436. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  437. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  438. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  439. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  440. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  441. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  442. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  443. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  444. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  445. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  446. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  447. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  448. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  449. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  450. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/github-community-health-files.md +0 -0
  451. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  452. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  453. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  454. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  455. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  456. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  457. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
  458. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  459. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
  460. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  461. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  462. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  463. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  464. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  465. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  466. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  467. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  468. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  469. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  470. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  471. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  472. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
  473. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  474. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  475. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  476. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  477. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  478. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  479. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  480. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  481. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  482. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  483. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  484. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  485. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  486. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  487. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  488. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  489. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  490. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  491. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  492. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  493. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  494. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  495. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  496. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  497. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  498. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  499. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  500. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  501. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  502. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  503. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  504. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  505. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  506. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  507. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  508. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  509. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  510. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  511. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  512. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  513. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  514. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  515. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  516. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  517. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  518. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  519. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  520. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  521. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  522. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  523. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  524. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  525. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  526. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  527. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  528. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  529. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  530. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  531. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  532. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  533. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  534. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  535. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  536. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  537. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  538. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  539. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/openssf-playbook.md +0 -0
  540. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/openssf-silver.md +0 -0
  541. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  542. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  543. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  544. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  545. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  546. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  547. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  548. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  549. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  550. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  551. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  552. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  553. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  554. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  555. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  556. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  557. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  558. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  559. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  560. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  561. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  562. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  563. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  564. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  565. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  566. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  567. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  568. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  569. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  570. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  571. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  572. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  573. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  574. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
  575. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  576. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  577. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  578. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  579. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  580. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  581. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  582. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  583. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  584. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  585. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  586. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/relicence-apache-2.md +0 -0
  587. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  588. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  589. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  590. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  591. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  592. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  593. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  594. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  595. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  596. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  597. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  598. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  599. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  600. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  601. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  602. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  603. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  604. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  605. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  606. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  607. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  608. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  609. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  610. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  611. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  612. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  613. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  614. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  615. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  616. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  617. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  618. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  619. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  620. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  621. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  622. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  623. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  624. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  625. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  626. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  627. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  628. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  629. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  630. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  631. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  632. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  633. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  634. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  635. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  636. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  637. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  638. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  639. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  640. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  641. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  642. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  643. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  644. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  645. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  646. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  647. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  648. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  649. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  650. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  651. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  652. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  653. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  654. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  655. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  656. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  657. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  658. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  659. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  660. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  661. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  662. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  663. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  664. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  665. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  666. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  667. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  668. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  669. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  670. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  671. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  672. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  673. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  674. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  675. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  676. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  677. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  678. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  679. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  680. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  681. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  682. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  683. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  684. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  685. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  686. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  687. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  688. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/workspace-scope-install.md +0 -0
  689. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/zip-strict-audit.md +0 -0
  690. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  691. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  692. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/security-design.md +0 -0
  693. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/semantic-search.md +0 -0
  694. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  695. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/verifying-releases.md +0 -0
  696. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/meta.md +0 -0
  697. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/openvex.json +0 -0
  698. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  699. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  700. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  701. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  702. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/eslint.config.mjs +0 -0
  703. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/README.md +0 -0
  704. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/__init__.py +0 -0
  705. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/baseline.json +0 -0
  706. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/faithfulness.py +0 -0
  707. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/golden_set.json +0 -0
  708. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/make_corpus.py +0 -0
  709. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/make_golden.py +0 -0
  710. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/metrics.py +0 -0
  711. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/publish_golden_dataset.py +0 -0
  712. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/evals/run_evals.py +0 -0
  713. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/examples/README.md +0 -0
  714. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/examples/adapt-demo.sh +0 -0
  715. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/examples/boost-run-prototype.sh +0 -0
  716. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/index.html +0 -0
  717. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/noxfile.py +0 -0
  718. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/pyproject.toml +0 -0
  719. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/coverage-tools.in +0 -0
  720. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/coverage-tools.txt +0 -0
  721. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/lint-tools.in +0 -0
  722. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/lint-tools.txt +0 -0
  723. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/mutation-tools.in +0 -0
  724. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/mutation-tools.txt +0 -0
  725. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/platform-pins.lock +0 -0
  726. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/release-tools.in +0 -0
  727. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/release-tools.txt +0 -0
  728. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/test-tools.in +0 -0
  729. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/requirements/test-tools.txt +0 -0
  730. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/a11y_check.py +0 -0
  731. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/add_spdx_headers.py +0 -0
  732. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/bench_cli.sh +0 -0
  733. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_command_reference.py +0 -0
  734. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_demo_index.py +0 -0
  735. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_registries.py +0 -0
  736. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_roadmap.py +0 -0
  737. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_scale_corpus.py +0 -0
  738. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/build_vex.py +0 -0
  739. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_anchors.py +0 -0
  740. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_branch_current.py +0 -0
  741. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_dco.py +0 -0
  742. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_licenses.py +0 -0
  743. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_reproducible.py +0 -0
  744. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/check_required_checks.py +0 -0
  745. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/ensure_eval_corpus.sh +0 -0
  746. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_corpus.py +0 -0
  747. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_explain.py +0 -0
  748. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_gate.py +0 -0
  749. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_recommend.py +0 -0
  750. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_retrieval.py +0 -0
  751. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_stats_summary.py +0 -0
  752. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/eval_tools.py +0 -0
  753. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/import_budget.py +0 -0
  754. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/lock_toolchain.py +0 -0
  755. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/measure_near_duplicate_bound.py +0 -0
  756. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/measure_registry.py +0 -0
  757. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/mutation_gate.py +0 -0
  758. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/mutation_shards.py +0 -0
  759. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/mutation_weights.json +0 -0
  760. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/normalize_sdist.py +0 -0
  761. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/page_budget.py +0 -0
  762. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/perf_gate.py +0 -0
  763. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/post_deploy_smoke.py +0 -0
  764. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/publish_eval_json.py +0 -0
  765. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/publish_shards.py +0 -0
  766. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/release_guard.py +0 -0
  767. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/release_preflight.py +0 -0
  768. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/serve_docs.py +0 -0
  769. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/scripts/shard_plan.py +0 -0
  770. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/setup.cfg +0 -0
  771. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/sonar-project.properties +0 -0
  772. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/style/README.md +0 -0
  773. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/style/boost.css +0 -0
  774. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/style/boost.js +0 -0
  775. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/style/demo.html +0 -0
  776. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/adapt.feature +0 -0
  777. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/browse.feature +0 -0
  778. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/count.feature +0 -0
  779. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/discover.feature +0 -0
  780. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/doctor.feature +0 -0
  781. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/environment.py +0 -0
  782. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/explain.feature +0 -0
  783. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/index.feature +0 -0
  784. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/install.feature +0 -0
  785. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/list.feature +0 -0
  786. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/mcp.feature +0 -0
  787. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/search.feature +0 -0
  788. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/steps/cli_steps.py +0 -0
  789. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/steps/discovery_steps.py +0 -0
  790. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/steps/mcp_steps.py +0 -0
  791. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/bdd/features/steps/quality_steps.py +0 -0
  792. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/conftest.py +0 -0
  793. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/baseline.json +0 -0
  794. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/explain.jsonl +0 -0
  795. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  796. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/golden-natural.jsonl +0 -0
  797. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/golden.jsonl +0 -0
  798. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/recommend.jsonl +0 -0
  799. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/taps-scale.txt +0 -0
  800. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/taps.txt +0 -0
  801. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/eval/tool_calls.jsonl +0 -0
  802. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  803. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_bmad_all_hosts.py +0 -0
  804. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_bmad_personas_scope.py +0 -0
  805. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_capabilities_policy.py +0 -0
  806. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_adapt.py +0 -0
  807. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_bmad.py +0 -0
  808. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_catalog.py +0 -0
  809. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_configuration.py +0 -0
  810. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_hooks.py +0 -0
  811. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_hooks_gemini.py +0 -0
  812. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_info.py +0 -0
  813. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_intelligence.py +0 -0
  814. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_json_reports.py +0 -0
  815. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_pane_width.py +0 -0
  816. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_quickstart.py +0 -0
  817. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_tap_pins.py +0 -0
  818. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_cli_taps.py +0 -0
  819. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  820. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  821. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_everyday_loop.py +0 -0
  822. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_integrity_enforce.py +0 -0
  823. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_kind_conformance.py +0 -0
  824. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_property_parsers.py +0 -0
  825. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_recommend_because_is_true.py +0 -0
  826. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_reports_match_reality.py +0 -0
  827. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_run.py +0 -0
  828. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_tap_signing.py +0 -0
  829. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/functional/test_workspace_scope.py +0 -0
  830. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/README.md +0 -0
  831. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  832. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  833. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  834. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  835. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  836. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  837. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  838. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  839. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  840. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  841. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  842. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  843. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  844. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  845. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  846. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  847. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  848. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  849. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  850. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  851. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  852. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  853. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  854. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/fuzz_frontmatter.py +0 -0
  855. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/fuzz/fuzz_registry.py +0 -0
  856. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/langchain/conftest.py +0 -0
  857. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/langchain/test_graph.py +0 -0
  858. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/langchain/test_loader.py +0 -0
  859. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/langchain/test_retriever.py +0 -0
  860. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/make_fixture.py +0 -0
  861. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/perf/test_benchmarks.py +0 -0
  862. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/smoke.sh +0 -0
  863. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  864. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_a11y_check.py +0 -0
  865. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_action_pin_lockstep.py +0 -0
  866. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_adapters.py +0 -0
  867. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_adapters_multi.py +0 -0
  868. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_adapters_runner.py +0 -0
  869. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_agents.py +0 -0
  870. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_ai.py +0 -0
  871. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_aihost.py +0 -0
  872. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_archive.py +0 -0
  873. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_bmad_core.py +0 -0
  874. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_bootstrap.py +0 -0
  875. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_bot_pr_dco.py +0 -0
  876. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_branch_current.py +0 -0
  877. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_browse.py +0 -0
  878. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_builtin.py +0 -0
  879. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_capabilities.py +0 -0
  880. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_catalog.py +0 -0
  881. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_catalog_keyword_words.py +0 -0
  882. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_catalogbundle.py +0 -0
  883. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_check_anchors.py +0 -0
  884. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_check_dco.py +0 -0
  885. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_check_licenses.py +0 -0
  886. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_check_reproducible.py +0 -0
  887. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_claude_settings.py +0 -0
  888. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_clean_internal_cache.py +0 -0
  889. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_cli_update_shards.py +0 -0
  890. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_cliparse.py +0 -0
  891. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_codeql_analysis_key.py +0 -0
  892. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_cohort.py +0 -0
  893. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_command_reference_fresh.py +0 -0
  894. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_community_health_files.py +0 -0
  895. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_compact.py +0 -0
  896. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_complete.py +0 -0
  897. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_complete_rc_block.py +0 -0
  898. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_config.py +0 -0
  899. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_content_dedupe.py +0 -0
  900. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_content_identity.py +0 -0
  901. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_corpus_prose.py +0 -0
  902. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  903. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_crash_redaction.py +0 -0
  904. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dedup_trust.py +0 -0
  905. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_demo_index.py +0 -0
  906. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense.py +0 -0
  907. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  908. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_embed_dedupe.py +0 -0
  909. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_entry_reuse.py +0 -0
  910. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_entry_vectors.py +0 -0
  911. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_fallback.py +0 -0
  912. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_fix_hint.py +0 -0
  913. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_model_unavailable.py +0 -0
  914. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_progress.py +0 -0
  915. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_quantized.py +0 -0
  916. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_ready_order.py +0 -0
  917. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_shard_real_schema.py +0 -0
  918. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  919. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_shards.py +0 -0
  920. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_status.py +0 -0
  921. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_status_cheap.py +0 -0
  922. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dense_vector_dedupe.py +0 -0
  923. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dependabot_config.py +0 -0
  924. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_deps.py +0 -0
  925. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_discovery.py +0 -0
  926. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_distill_merge.py +0 -0
  927. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_docs_pages_linked.py +0 -0
  928. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_docsite_chrome.py +0 -0
  929. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_doctor_output_polish.py +0 -0
  930. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_drift_hint.py +0 -0
  931. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_dry_run_parity.py +0 -0
  932. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_ed25519.py +0 -0
  933. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_embed.py +0 -0
  934. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_embed_local.py +0 -0
  935. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_embed_truncated_response.py +0 -0
  936. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_entry_key.py +0 -0
  937. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_errors_and_cli_table.py +0 -0
  938. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_baseline.py +0 -0
  939. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_corpus.py +0 -0
  940. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_corpus_bodies.py +0 -0
  941. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_faithfulness.py +0 -0
  942. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_gate.py +0 -0
  943. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_grading.py +0 -0
  944. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_metrics.py +0 -0
  945. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_stats_summary.py +0 -0
  946. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_tools.py +0 -0
  947. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_eval_tools_probe.py +0 -0
  948. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  949. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_faithfulness.py +0 -0
  950. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_first_run_pointer.py +0 -0
  951. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_frontmatter.py +0 -0
  952. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_fuzz_targets.py +0 -0
  953. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  954. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gitleaks_config.py +0 -0
  955. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gitutil.py +0 -0
  956. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gitutil_lfs.py +0 -0
  957. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gitutil_sparse.py +0 -0
  958. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_gstack_coexistence.py +0 -0
  959. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_hook_settings_hosts.py +0 -0
  960. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_hookhost.py +0 -0
  961. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_imperative.py +0 -0
  962. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_import_budget.py +0 -0
  963. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_injectscan.py +0 -0
  964. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_install_permission_error.py +0 -0
  965. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_installscan.py +0 -0
  966. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_integrity.py +0 -0
  967. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_journal.py +0 -0
  968. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_jsonstate.py +0 -0
  969. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_langchain_packaging.py +0 -0
  970. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_launcher_python_floor.py +0 -0
  971. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_lighthouse_budgets.py +0 -0
  972. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_link_ownership.py +0 -0
  973. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_localembed.py +0 -0
  974. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_localembed_e2e.py +0 -0
  975. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_lockfile.py +0 -0
  976. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_logs.py +0 -0
  977. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_marketing_counts.py +0 -0
  978. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mcp.py +0 -0
  979. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mcp_install_scan.py +0 -0
  980. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mcp_read.py +0 -0
  981. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mcpdecl.py +0 -0
  982. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mcphost.py +0 -0
  983. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_measure_registry.py +0 -0
  984. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_minisign.py +0 -0
  985. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mutation_hardening.py +0 -0
  986. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mutation_shards.py +0 -0
  987. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mutation_subfile_shards.py +0 -0
  988. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_mutmut_source_paths.py +0 -0
  989. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_near_duplicate_collapse.py +0 -0
  990. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_nethttp.py +0 -0
  991. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_normalize_sdist.py +0 -0
  992. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_output.py +0 -0
  993. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_output_table_drop.py +0 -0
  994. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_page_budget.py +0 -0
  995. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_paths.py +0 -0
  996. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_perf_gate.py +0 -0
  997. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_pkg_confusions.py +0 -0
  998. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_pkg_injection.py +0 -0
  999. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_pkg_secrets.py +0 -0
  1000. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_platform_pins.py +0 -0
  1001. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_policy.py +0 -0
  1002. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_post_deploy_smoke.py +0 -0
  1003. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1004. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_projectlock.py +0 -0
  1005. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_provenance.py +0 -0
  1006. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_publish_golden_dataset.py +0 -0
  1007. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_quickstart_readiness.py +0 -0
  1008. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rag.py +0 -0
  1009. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rag_completeness.py +0 -0
  1010. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rag_fastpath.py +0 -0
  1011. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rag_fusion.py +0 -0
  1012. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_registries_fresh.py +0 -0
  1013. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_registry.py +0 -0
  1014. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_registry_categories.py +0 -0
  1015. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_registry_control_chars.py +0 -0
  1016. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_registry_parallel.py +0 -0
  1017. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_release_guard.py +0 -0
  1018. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_release_preflight.py +0 -0
  1019. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_report.py +0 -0
  1020. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_required_checks.py +0 -0
  1021. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rerank_cache.py +0 -0
  1022. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_resolve.py +0 -0
  1023. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1024. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_roadmap_fresh.py +0 -0
  1025. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_rules.py +0 -0
  1026. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_scale_corpus.py +0 -0
  1027. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_schedule_plist.py +0 -0
  1028. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_scopes.py +0 -0
  1029. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_secretscan.py +0 -0
  1030. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_selfupdate.py +0 -0
  1031. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_serve.py +0 -0
  1032. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_serve_docs.py +0 -0
  1033. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_shard_plan.py +0 -0
  1034. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_shards.py +0 -0
  1035. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_shards_incremental.py +0 -0
  1036. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_shards_ingest.py +0 -0
  1037. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_shards_matrix.py +0 -0
  1038. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1039. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_spdx_headers.py +0 -0
  1040. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_spin.py +0 -0
  1041. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_stackprobe.py +0 -0
  1042. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_staleness.py +0 -0
  1043. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_store_materialize.py +0 -0
  1044. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_sync_blocked_links.py +0 -0
  1045. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_sync_lost_lock.py +0 -0
  1046. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1047. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_tap_pins.py +0 -0
  1048. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_token_parity.py +0 -0
  1049. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_toolchain_lock.py +0 -0
  1050. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_trustaudit.py +0 -0
  1051. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_typedvalue.py +0 -0
  1052. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_typosquat.py +0 -0
  1053. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_updatediff.py +0 -0
  1054. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_upstream_path.py +0 -0
  1055. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_util.py +0 -0
  1056. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_version.py +0 -0
  1057. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_version_tags.py +0 -0
  1058. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_vex.py +0 -0
  1059. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_visual_harness_capture.py +0 -0
  1060. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_visual_harness_flags.py +0 -0
  1061. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_workflow_concurrency.py +0 -0
  1062. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1063. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1064. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_workflow_timeouts.py +0 -0
  1065. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_workflows.py +0 -0
  1066. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1067. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/visual/a11y_check.mjs +0 -0
  1068. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/visual/console_check.mjs +0 -0
  1069. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/visual/package-lock.json +0 -0
  1070. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/visual/package.json +0 -0
  1071. {boost_skill_cli-1.2.134 → boost_skill_cli-1.2.135}/tests/visual/visual_check.mjs +0 -0
@@ -645,10 +645,12 @@ attempt for an hour (`RETRY_AFTER`): measured on a 5-chunk store, each search
645
645
  paid one failed fetch (~3.6 s against 0.1 s) while doctor said "active".
646
646
  `boost reindex --dense` retries at once, because it is the remedy the hint
647
647
  names. `dense.ready()` still answers for the store alone. `dense.fix_hint()` maps
648
- whichever state it is to the one next action — `boost doctor`, `boost search`,
649
- the MCP `SEARCH ENGINE` line and both shard surfaces (`reindex --fetch-shards`,
650
- `update --shards`) all read that same table, so they can't give contradictory
651
- advice.
648
+ whichever state it is to the one next action — `boost doctor`, `boost search`
649
+ and the MCP `SEARCH ENGINE` line all read that same table, so they can't give
650
+ contradictory advice. The shard surfaces (`reindex --fetch-shards`, `update
651
+ --shards`, `quickstart` and the vector refresh in `boost update`) answer a refused
652
+ manifest through `shards.remedy()`, which hands back to that table, with the
653
+ whole status, whenever the store or a missing provider is the real answer.
652
654
 
653
655
  **The dense store ranks twice, and `vec0` is why.** `sqlite-vec` has no ANN
654
656
  index: a float32 `MATCH` scores *every* vector in the store, which on a real
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.134
3
+ Version: 1.2.135
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.2.134'
22
- __version_tuple__ = version_tuple = (1, 2, 134)
21
+ __version__ = version = '1.2.135'
22
+ __version_tuple__ = version_tuple = (1, 2, 135)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1594,9 +1594,10 @@ def _tool_install(args: dict):
1594
1594
  if res.conflicts:
1595
1595
  lines.append("conflicts (left in place): %s" % ", ".join(res.conflicts))
1596
1596
  if res.unwritable:
1597
- lines.append("not linked, directory not writable: %s — ask the user to "
1597
+ lines.append("not %s, directory not writable: %s — ask the user to "
1598
1598
  "`chmod u+w` it, then `boost sync`"
1599
- % ", ".join(res.unwritable))
1599
+ % ("linked" if res.kind == "skill" else "written",
1600
+ ", ".join(res.unwritable)))
1600
1601
  # The same prompt-injection and secret scan `boost install` runs. This path
1601
1602
  # needs it more, not less: nobody is watching a terminal here, and the skill
1602
1603
  # was chosen and installed by an agent acting on its own. The install still
@@ -2059,13 +2060,21 @@ def _offer_boost_first(hosts: list[str]) -> None:
2059
2060
  try:
2060
2061
  builtin.ensure_tap()
2061
2062
  catalog.rebuild_tap(registry.get(builtin.BUILTIN_TAP))
2062
- store.install(catalog.resolve_one(builtin.BUILTIN_RULES[0]),
2063
- only_agents=[a for a in scoped_agents if a])
2063
+ res = store.install(catalog.resolve_one(builtin.BUILTIN_RULES[0]),
2064
+ only_agents=[a for a in scoped_agents if a])
2064
2065
  except (BoostError, OSError) as exc:
2065
2066
  out.warn("could not install %s: %s" % (builtin.BUILTIN_RULES[0], exc))
2066
2067
  return
2067
- out.ok("installed %s — remove it with `boost uninstall %s`"
2068
- % (builtin.BUILTIN_RULES[0], builtin.BUILTIN_RULES[0]))
2068
+ from .pkg import _warn_unwritable
2069
+ if not res.linked:
2070
+ # Every file it was offered for refused the write. The lock records
2071
+ # the refusal so `boost sync` can finish it, but "installed" would be
2072
+ # a success nothing on disk backs.
2073
+ out.warn("%s was not written anywhere yet" % builtin.BUILTIN_RULES[0])
2074
+ else:
2075
+ out.ok("installed %s — remove it with `boost uninstall %s`"
2076
+ % (builtin.BUILTIN_RULES[0], builtin.BUILTIN_RULES[0]))
2077
+ _warn_unwritable(res)
2069
2078
 
2070
2079
 
2071
2080
  def cmd_mcp(argv) -> int:
@@ -109,7 +109,7 @@ def cmd_search(argv):
109
109
  help="rerank the top hits with Claude")
110
110
  p.add_argument("--category", default="",
111
111
  help="only show entries whose category matches (case-insensitive)")
112
- p.add_argument("--limit", type=util.positive_int, default=15,
112
+ p.add_argument("-k", "--limit", type=util.positive_int, default=15,
113
113
  help="max results (default 15)")
114
114
  p.add_argument("--collapse-near-duplicates", action="store_true",
115
115
  dest="collapse_dupes",
@@ -2017,8 +2017,9 @@ def cmd_browse(argv):
2017
2017
  for conflict in res.conflicts:
2018
2018
  out.warn("conflict: %s exists and is not a symlink" % _tilde(conflict))
2019
2019
  for adir in res.unwritable:
2020
- out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
2021
- "`boost sync`" % (_tilde(adir), _tilde(adir)))
2020
+ out.warn("not %s: %s is not writable — `chmod u+w %s`, then "
2021
+ "`boost sync`" % ("linked" if res.kind == "skill" else "written",
2022
+ _tilde(adir), _tilde(adir)))
2022
2023
  return 0
2023
2024
 
2024
2025
 
@@ -1294,8 +1294,10 @@ def cmd_chat(argv: list[str]) -> int:
1294
1294
  ap.add_argument("question", nargs="*", metavar="QUESTION",
1295
1295
  help="ask once and exit; omit for an interactive session")
1296
1296
  ap.add_argument("-k", "--limit", type=util.positive_int, default=chat_engine.TOP_K,
1297
- metavar="N", help="candidate skills to consider (default %d)"
1298
- % chat_engine.TOP_K)
1297
+ metavar="N",
1298
+ help="candidate skills per search (default %d); a follow-up "
1299
+ "that points back also keeps the previous list"
1300
+ % chat_engine.TOP_K)
1299
1301
  ap.add_argument("--no-sources", action="store_true",
1300
1302
  help="hide the citation block under each answer")
1301
1303
  ap.add_argument("--json", action="store_true", dest="as_json",
@@ -1336,26 +1338,33 @@ def _chat_session(args) -> int:
1336
1338
  assistant, and a long transcript encourages answering from the conversation
1337
1339
  rather than from what retrieval actually returned.
1338
1340
  """
1339
- if not ai.available():
1341
+ have_ai = ai.available()
1342
+ if not have_ai:
1340
1343
  # Worth saying up front rather than letting every answer look terse for
1341
1344
  # an unexplained reason.
1342
1345
  note = ("no AI configured — answers are the grounded matches "
1343
1346
  "themselves (%s)" % ai.fallback_note())
1344
1347
  for line in out.wrap(note, max(out.term_width() - 2, 20)):
1345
1348
  out.info(out.role(line, "muted"))
1346
- out.info(out.role("ask about skills; blank line or Ctrl-D to exit", "muted"))
1349
+ # With stdin piped nobody is typing, so the prompt and the typing hint are
1350
+ # only chrome in the answers a script captures — the same rule
1351
+ # output.confirm applies. A terminal is unchanged.
1352
+ typing = sys.stdin.isatty()
1353
+ if typing:
1354
+ out.info(out.role("ask about skills; blank line or Ctrl-D to exit", "muted"))
1347
1355
  history: list[chat_engine.Turn] = []
1348
1356
  while True:
1349
1357
  try:
1350
- question = input("\n> ").strip()
1358
+ question = input("\n> " if typing else "").strip()
1351
1359
  except (EOFError, KeyboardInterrupt):
1352
- out.info("")
1360
+ if typing:
1361
+ out.info("") # end the prompt line the EOF left open
1353
1362
  return 0
1354
1363
  if not question:
1355
1364
  return 0
1356
1365
  reply = chat_engine.answer(question, history=history, k=args.limit)
1357
1366
  out.info("")
1358
1367
  _print_reply(reply, not args.no_sources)
1359
- history.append(chat_engine.Turn(question, reply.text))
1360
- for follow in chat_engine.suggest_followups(reply.skills)[:2]:
1368
+ history.append(chat_engine.Turn(question, reply.text, reply.skills))
1369
+ for follow in chat_engine.suggest_followups(reply.skills, with_ai=have_ai)[:2]:
1361
1370
  out.info(out.role(" try: %s" % follow, "muted"))
@@ -231,6 +231,7 @@ def _report_result(res: store.InstallResult, no_mcp: bool = False) -> None:
231
231
  where = " (this repo)" if res.scope == "project" else ""
232
232
  out.ok("materialized%s → %s"
233
233
  % (where, " · ".join(res.linked) or "(no enabled agents)"))
234
+ _warn_unwritable(res)
234
235
  out.ok("lock updated (.skill-lock.json)")
235
236
  _warn_injection(res)
236
237
  _warn_secrets(res)
@@ -258,8 +259,6 @@ def _report_result(res: store.InstallResult, no_mcp: bool = False) -> None:
258
259
  if res.native:
259
260
  out.ok("available to %s (reads the store directly)"
260
261
  % " · ".join(agents.display_name(a) for a in res.native))
261
- for path in res.conflicts:
262
- out.warn("not linked: %s exists and is not managed by boost" % _tilde(path))
263
262
  _warn_unwritable(res)
264
263
  out.ok("lock updated (.skill-lock.json)")
265
264
  _warn_injection(res)
@@ -268,13 +267,20 @@ def _report_result(res: store.InstallResult, no_mcp: bool = False) -> None:
268
267
 
269
268
 
270
269
  def _warn_unwritable(res) -> None:
271
- """Name the remedy for each agent skills dir an install could not link
272
- into — every path that installs, reinstall and update included, so none
273
- reports success over a link it silently skipped."""
270
+ """Name what an install skipped, and the remedy — every path that
271
+ installs, reinstall and update included, so none reports success over an
272
+ agent it silently left out.
273
+
274
+ A conflict is a real file squatting a skill's link path. An unwritable dir
275
+ refused a link, or a rule or workflow file; the refused agent is still
276
+ recorded, so `boost sync` writes it once the dir allows it."""
277
+ for path in res.conflicts:
278
+ out.warn("not linked: %s exists and is not managed by boost" % _tilde(path))
279
+ what = ("not linked", "adds the link") if res.kind == "skill" else (
280
+ "not written", "writes it")
274
281
  for adir in res.unwritable:
275
- out.warn("not linked: %s is not writable — `chmod u+w %s`, then "
276
- "`boost sync` adds the link" % (_tilde(adir), _tilde(adir)),
277
- wrap=True)
282
+ out.warn("%s: %s is not writable — `chmod u+w %s`, then `boost sync` %s"
283
+ % (what[0], _tilde(adir), _tilde(adir), what[1]), wrap=True)
278
284
 
279
285
 
280
286
  def _boostfile_text(skills: dict[str, dict], via: str = "boost bundle dump") -> str:
@@ -776,7 +782,14 @@ def cmd_sync(argv: list[str]) -> int:
776
782
  % (_plural(len(blocked), "agent link"),
777
783
  ", ".join("%s → %s (%s in the way)"
778
784
  % (n, a, _tilde(Path(p))) for n, a, p in blocked)))
779
- if not actions and not pruned and not left and not oos and not blocked:
785
+ # A dir that refused a link or a file: sync wrote what it could and says
786
+ # what it could not, rather than "everything in sync" over it.
787
+ stuck = store.unwritable_agent_dirs()
788
+ for adir in stuck:
789
+ out.warn("agent dir %s is not writable — `chmod u+w %s`, then re-run "
790
+ "`boost sync`" % (_tilde(adir), _tilde(adir)), wrap=True)
791
+ if (not actions and not pruned and not left and not oos and not blocked
792
+ and not stuck):
780
793
  out.ok("everything in sync")
781
794
  return 0
782
795
 
@@ -917,8 +930,10 @@ def _update_materialized(kind: str, installed: dict[str, dict], results) -> int:
917
930
  continue
918
931
  try:
919
932
  # keep the item where it was installed (user vs a specific repo).
920
- store.install(entry, force=True,
921
- scope=lk.get("scope", "user"), base=lk.get("base"))
933
+ # A dir that refused the refresh is named here, as for a skill.
934
+ _warn_unwritable(store.install(
935
+ entry, force=True,
936
+ scope=lk.get("scope", "user"), base=lk.get("base")))
922
937
  except BoostError as err:
923
938
  out.warn("%s: %s" % (name, err.message))
924
939
  continue
@@ -1540,13 +1555,14 @@ def _bundle_install(file: str | None, dry_run: bool = False) -> int:
1540
1555
  installed_n += 1
1541
1556
  continue
1542
1557
  try:
1543
- store.install(entry)
1558
+ res = store.install(entry)
1544
1559
  except BoostError as err:
1545
1560
  out.warn("%s: %s" % (sname, err.message))
1546
1561
  failed += 1
1547
1562
  continue
1548
1563
  out.ok("installed %s v%s (%s)" % (sname, entry.get("version"),
1549
1564
  entry["tap"]))
1565
+ _warn_unwritable(res)
1550
1566
  have_installed[sname] = (entry_kind, entry)
1551
1567
  installed_kinds.add(entry_kind)
1552
1568
  installed_n += 1
@@ -597,9 +597,22 @@ def cmd_doctor(argv):
597
597
  quarantined_rules = len(all_rules) - len(rules)
598
598
  quarantined_workflows = len(all_workflows) - len(workflows)
599
599
  mat_issues = 0
600
+ for kind, section in (("rule", rules), ("workflow", workflows)):
601
+ for name, entry in sorted(section.items()):
602
+ for m in entry.get("materializations") or []:
603
+ if m.get("unwritable"):
604
+ # Refused at install, so `boost reinstall` would be refused
605
+ # too until the dir allows it; the agent-dir line below
606
+ # names the `chmod`. Any file there predates the refusal.
607
+ bad(kind, "%s %s was not written for %s: its dir was not "
608
+ "writable — `boost sync` writes it once it is"
609
+ % (kind, name, m.get("agent", "?")), wrap=True)
610
+ mat_issues += 1
600
611
  for name, entry in sorted(rules.items()):
601
612
  for m in entry.get("materializations") or []:
602
613
  p = Path(m.get("path", ""))
614
+ if m.get("unwritable"):
615
+ continue
603
616
  if m.get("mode") == "claude":
604
617
  try:
605
618
  present = p.exists() and ("boost:rule:%s start" % name) in \
@@ -614,7 +627,7 @@ def cmd_doctor(argv):
614
627
  mat_issues += 1
615
628
  for name, entry in sorted(workflows.items()):
616
629
  for m in entry.get("materializations") or []:
617
- if not Path(m.get("path", "")).is_file():
630
+ if not m.get("unwritable") and not Path(m.get("path", "")).is_file():
618
631
  bad("workflow", "workflow %s missing its %s file — run `boost reinstall %s`"
619
632
  % (name, m.get("agent", "?"), name))
620
633
  mat_issues += 1
@@ -689,16 +702,16 @@ def cmd_doctor(argv):
689
702
  % (dup.name, agents.display_name(dup.agent), _tilde(dup.path),
690
703
  _tilde(dup.target)), wrap=True)
691
704
 
692
- # Linking agents only: a native-store agent's skills dir (Gemini's) is
693
- # never written, so its permissions are not boost's problem and `boost
694
- # sync` could not act on them.
695
- for adir in agents.linking_agents().values():
696
- if adir.is_dir() and not os.access(str(adir), os.W_OK):
697
- # A next action, like the log line below it: without one this was
698
- # the only issue doctor names that nothing can act on.
699
- bad("agent-dir", "agent dir %s is not writable — `chmod u+w %s`, "
700
- "then `boost sync` relinks what it missed"
701
- % (_tilde(adir), _tilde(adir)), wrap=True)
705
+ # Every dir boost writes into: the linking agents' skills dirs, and the
706
+ # rules/ and commands/ dirs rules and workflows materialize into. Not a
707
+ # native-store agent's skills dir (Gemini's): boost never writes it, and
708
+ # `boost sync` could not act on it.
709
+ for adir in store.unwritable_agent_dirs():
710
+ # A next action, like the log line below it: without one this was
711
+ # the only issue doctor names that nothing can act on.
712
+ bad("agent-dir", "agent dir %s is not writable — `chmod u+w %s`, "
713
+ "then `boost sync` writes what it missed"
714
+ % (_tilde(adir), _tilde(adir)), wrap=True)
702
715
 
703
716
  rotation = journal.rotation_healthy()
704
717
  if not rotation:
@@ -1254,8 +1267,7 @@ def cmd_heal(argv):
1254
1267
  % cfg_err, wrap=True)
1255
1268
  # Permissions are the user's to change, not heal's; but a dir heal saw and
1256
1269
  # cannot fix must not sit under an all-clear.
1257
- stuck = [adir for adir in agents.linking_agents().values()
1258
- if adir.is_dir() and not os.access(str(adir), os.W_OK)]
1270
+ stuck = store.unwritable_agent_dirs()
1259
1271
  for adir in stuck:
1260
1272
  out.warn("agent dir %s is not writable — heal does not change "
1261
1273
  "permissions; run `chmod u+w %s`, then `boost sync`"
@@ -28,7 +28,7 @@ from ..core import (
28
28
  from ..core import output as out
29
29
  from ..errors import BoostError
30
30
  from ._common import _s
31
- from .pkg import _report_result
31
+ from .pkg import _report_result, _warn_unwritable
32
32
 
33
33
  _tilde = paths.tilde
34
34
 
@@ -202,6 +202,7 @@ def cmd_cohort(argv) -> int:
202
202
  res = store.install(entry)
203
203
  if not args.json:
204
204
  out.ok("installed %s → %s" % (skill, " · ".join(res.linked)))
205
+ _warn_unwritable(res)
205
206
  installed_here.append(skill)
206
207
  applied += 1
207
208
  per_cohort.append({"cohort": cname, "member": True,
@@ -462,6 +463,7 @@ def cmd_profile(argv) -> int:
462
463
  res = store.install(entry)
463
464
  if not args.json:
464
465
  out.ok("installed %s → %s" % (n, " · ".join(res.linked)))
466
+ _warn_unwritable(res)
465
467
  installed_now.append(n)
466
468
  for n in changed:
467
469
  # Mirrors `diff`'s "~ NAME (version differs)" — `use` used to discard
@@ -880,6 +882,8 @@ def cmd_replay(argv) -> int:
880
882
  % (n, entry.get("version"), want.get("version")))
881
883
  elif not args.json:
882
884
  out.ok("restored %s → %s" % (n, " · ".join(res.linked)))
885
+ if not args.json:
886
+ _warn_unwritable(res)
883
887
  restored.append(n)
884
888
  for n in changed:
885
889
  if not args.json:
@@ -76,10 +76,17 @@ _SYSTEM = (
76
76
 
77
77
 
78
78
  class Turn(NamedTuple):
79
- """One exchange, kept so a follow-up can refer back to it."""
79
+ """One exchange, kept so a follow-up can refer back to it.
80
+
81
+ ``skills`` is what the answer drew on, in the order it was shown. A
82
+ follow-up like "which of these should I install first?" points at exactly
83
+ that list, and the list cannot be rebuilt from the question — re-querying
84
+ the catalogue with it retrieved skills the user had never been shown.
85
+ """
80
86
 
81
87
  question: str
82
88
  answer: str
89
+ skills: Sequence[dict] = ()
83
90
 
84
91
 
85
92
  class Reply(NamedTuple):
@@ -131,11 +138,149 @@ def expand_query(question: str, history: Sequence[Turn]) -> str:
131
138
  if not history:
132
139
  return question
133
140
  # Long questions carry their own context; short ones are the follow-ups.
141
+ # This is also the fresh search a pointer ("which of these…") runs
142
+ # alongside the rows it points at, so it must stay the query main sends:
143
+ # that is what keeps a misread pointer from losing main's answer.
134
144
  if len(question.split()) > 6:
135
145
  return question
136
146
  return "%s %s" % (history[-1].question, question)
137
147
 
138
148
 
149
+ # Phrases that point back at the list the previous answer showed. Kept narrow,
150
+ # though a false match now costs order rather than the answer (see
151
+ # :func:`retrieve`): "those flaky tests" is a new subject, "those skills" is a
152
+ # reference; "which one is best for linting?" asks the catalogue, "which one of
153
+ # these" asks the list; "the other SKILL.md field" is a new subject, "from the
154
+ # others" is not; "this one-liner" and "best of both worlds" are English.
155
+ _REFERS = re.compile(
156
+ r"\b(?:(?:of|between|among|from|compare)\s+(?:these|those|them)"
157
+ r"|(?:of|between|among|from|than|to|about|vs\.?|versus|compared?)\s+the\s+others"
158
+ r"|(?:these|those)\s+(?:ones?|skills?|options?|results?|matches)"
159
+ r"|(?:that|this)\s+one\b(?!-))\b", re.IGNORECASE)
160
+
161
+ # "the second one", "the 2nd skill?" — one row of the previous list. The
162
+ # ordinal needs a pointer in front ("the", "that", "this", or nothing but the
163
+ # ordinal in the whole question): "my first skill" is a new subject. With a
164
+ # noun rather than "one" it must also end the clause, because "the last skill I
165
+ # should install for linting" is a new question that happens to say "the last",
166
+ # and "one" must not start a compound: "the first one-shot prompt".
167
+ _ORDINAL = re.compile(
168
+ r"(?:\b(?:the|that|this)\s+|^\W*(?:and\s+)?)"
169
+ r"(?P<word>first|second|third|fourth|fifth|last|1st|2nd|3rd|4th|5th)\s+"
170
+ r"(?:one\b(?!-)|(?:skill|option|result|match)\b(?=\s*(?:[?.!,;]|$)))",
171
+ re.IGNORECASE)
172
+
173
+ # "#3", "number 2" — only where a row number can stand: the whole question, a
174
+ # question that opens "and #3" / "is number 1", or after a verb or preposition
175
+ # that takes one ("about #3", "try #2"). "is", "and" and "or" count only at the
176
+ # start: mid-question they join numbers that count something else ("which
177
+ # skill is #1 for security?", "PRs #2 and #3").
178
+ _ROW_NUMBER = re.compile(
179
+ r"(?:^\W*(?:(?:and|or|is)\s+)?|\b(?:about|try|install|use|pick|choose|vs|than|with)\s+)"
180
+ r"(?:#\s*|number\s+)(?P<n>\d+)\b", re.IGNORECASE)
181
+ # A number after one of these numbers that thing, and so does every number in
182
+ # a question that has one: "compare PR #2 with #3" is two pull requests.
183
+ _TRACKED = re.compile(
184
+ r"\b(?:prs?|pull\s+requests?|issues?|bugs?|tickets?)\s*(?:#\s*|number\s+)?\d",
185
+ re.IGNORECASE)
186
+ _ORDINALS = {"first": 1, "second": 2, "third": 3, "fourth": 4, "fifth": 5,
187
+ "1st": 1, "2nd": 2, "3rd": 3, "4th": 4, "5th": 5}
188
+
189
+
190
+ def _row_number(question: str) -> int | None:
191
+ """The row a "#N" / "number N" in ``question`` names, if it names one."""
192
+ if _TRACKED.search(question):
193
+ return None
194
+ m = _ROW_NUMBER.search(question)
195
+ return int(m.group("n")) if m else None
196
+
197
+
198
+ def is_referential(question: str) -> bool:
199
+ """Whether ``question`` points back at the previous answer's list."""
200
+ return bool(_REFERS.search(question) or _ORDINAL.search(question)
201
+ or _row_number(question) is not None)
202
+
203
+
204
+ def referenced(question: str, previous: Sequence[dict]) -> list[dict] | None:
205
+ """The previous answer's rows if ``question`` points at them, else None.
206
+
207
+ An ordinal or a row number moves its row to the front, numbered as the
208
+ answer numbered it, and keeps the others after it: the pointer might be a
209
+ misreading, and the rest of the list costs nothing to keep. A word ordinal
210
+ past the end still points at the list. A number past the end does not:
211
+ "what about #42?" is not a row of five, and gets an ordinary search.
212
+ """
213
+ if not previous or not is_referential(question):
214
+ return None
215
+ word = _ORDINAL.search(question)
216
+ number = _row_number(question)
217
+ if word:
218
+ w = word.group("word").lower()
219
+ n = len(previous) if w == "last" else _ORDINALS[w]
220
+ elif number is not None:
221
+ n = number
222
+ else:
223
+ return list(previous)
224
+ if 1 <= n <= len(previous):
225
+ return [previous[n - 1], *previous[:n - 1], *previous[n:]]
226
+ # Past the end, a word ordinal still points at the list; a number numbers
227
+ # something else unless the question also points back.
228
+ if word or _REFERS.search(question):
229
+ return list(previous)
230
+ return None
231
+
232
+
233
+ def _name(entry: dict) -> str:
234
+ return str(entry.get("name", "")).lower()
235
+
236
+
237
+ def _row(entry: dict) -> tuple:
238
+ """Row identity (``rag.entry_key``'s fields), tolerant of synthesised rows.
239
+
240
+ Equality rather than ``is``: the previous turn's rows and this turn's hits
241
+ can be equal dicts from two catalogue loads, and must not be listed twice.
242
+ """
243
+ return (entry.get("tap"), entry.get("skill_md"), entry.get("name"))
244
+
245
+
246
+ def promote_named(question: str, ranked: Sequence[dict],
247
+ previous: Sequence[dict] = (),
248
+ catalogue: Sequence[dict] = ()) -> list[dict]:
249
+ """``ranked`` with any skill the question names moved to the front.
250
+
251
+ Asking "what does orch-review actually do?" is a lookup, and a ranker can
252
+ score a sibling that repeats the query terms above the skill it names — the
253
+ audit saw ``orch-refine-code`` outrank ``orch-review`` for exactly that
254
+ question. A name counts when it is catalogue-shaped (hyphenated), or when
255
+ it is any word naming a skill the previous answer showed: "teach" in an
256
+ arbitrary question is English, but not right after the user was shown a
257
+ skill called ``teach``.
258
+
259
+ For each name the row the user was just shown wins, then the best-ranked
260
+ hit, then the catalogue — so a name several taps carry resolves to the one
261
+ the conversation is about. Namesakes are kept, ranked after.
262
+ """
263
+ shown = {_name(e) for e in previous}
264
+ words = re.findall(r"[a-z0-9][a-z0-9-]*[a-z0-9]|[a-z0-9]", question.lower())
265
+ # dict.fromkeys: each name once, in the order the question gives them.
266
+ names = dict.fromkeys(w for w in words if _TOKEN.fullmatch(w) or w in shown)
267
+ pools = (previous, ranked, catalogue)
268
+ found = (next((e for pool in pools for e in pool if _name(e) == n), None)
269
+ for n in names)
270
+ front = [e for e in found if e is not None]
271
+ placed = {_row(e) for e in front}
272
+ return front + [e for e in ranked if _row(e) not in placed]
273
+
274
+
275
+ def _search(query: str, k: int, entries: list[dict]) -> tuple[list[dict], str]:
276
+ """The top ``k`` for ``query`` from whichever engine the machine has."""
277
+ hits, engine = rag.retrieve_any(query, k=k, entries=entries)
278
+ if hits is None:
279
+ # No index of any kind: catalog.search is the documented floor.
280
+ return [e for e, _score in catalog.search(query)[:k]], "frontmatter scan"
281
+ return [h["entry"] for h in hits[:k]], engine
282
+
283
+
139
284
  def retrieve(question: str, history: Sequence[Turn] = (),
140
285
  k: int = TOP_K) -> tuple[list[dict], str]:
141
286
  """Candidate catalogue entries for ``question``, best first.
@@ -144,15 +289,39 @@ def retrieve(question: str, history: Sequence[Turn] = (),
144
289
  gets whatever the machine has — hybrid, dense, or BM25 — rather than pinning
145
290
  an engine of its own, and falls back to the frontmatter scan when no index
146
291
  exists at all so a fresh install still answers.
292
+
293
+ A follow-up that points back at the previous answer ("which of these…",
294
+ "the second one") leads with that answer's rows, the row it names first:
295
+ the audit measured "which of these should I install first?" coming back
296
+ with nothing from the turn before. It never *replaces* the search, though.
297
+ The same search runs, and its results follow the carried rows, so a
298
+ question misread as a pointer ("this one-liner", "PRs #2 and #3") loses
299
+ order, not the answer. That makes such a turn longer than ``k``: ``k``
300
+ carried rows (plus any the question names that fell past ``k``), then a
301
+ skill named but never shown, then the search's ``k``.
302
+
303
+ A skill the question names is ranked first on an ordinary search, and may
304
+ come from the catalogue: "is pre-commit better than those skills?" names a
305
+ skill the list never showed, and an answer about it is only grounded if
306
+ it is among the sources. On a pointer it goes after the carried rows,
307
+ which are what the question is about.
147
308
  """
148
- query = expand_query(question, history)
309
+ previous = list(history[-1].skills) if history else []
149
310
  entries = catalog.all_entries()
150
- hits, engine = rag.retrieve_any(query, k=k, entries=entries)
151
- if hits is None:
152
- # No index of any kind: catalog.search is the documented floor.
153
- scored = catalog.search(query)
154
- return [e for e, _score in scored[:k]], "frontmatter scan"
155
- return [h["entry"] for h in hits[:k]], engine
311
+ found, engine = _search(expand_query(question, history), k, entries)
312
+ carried = referenced(question, previous)
313
+ if carried is None:
314
+ return promote_named(question, found, previous, entries)[:k], engine
315
+ head = carried[:k]
316
+ # Search hits before the rest of the catalogue, so a name several taps
317
+ # carry resolves to the copy the search ranked.
318
+ lead = promote_named(question, head, previous, [*found, *entries])
319
+ shown = {_row(e) for e in previous}
320
+ placed = {_row(e) for e in lead}
321
+ return ([e for e in lead if _row(e) in shown]
322
+ + [e for e in lead if _row(e) not in shown]
323
+ + [e for e in found if _row(e) not in placed],
324
+ "previous answer + %s" % engine)
156
325
 
157
326
 
158
327
  # Catalogue descriptions are untrusted upstream text and some are enormous:
@@ -389,19 +558,26 @@ def citations(entries: Sequence[dict]) -> list[dict[str, str]]:
389
558
  return out
390
559
 
391
560
 
392
- def suggest_followups(entries: Sequence[dict]) -> list[str]:
561
+ def suggest_followups(entries: Sequence[dict], with_ai: bool = True) -> list[str]:
393
562
  """Concrete next questions, drawn from what was actually retrieved.
394
563
 
395
564
  Generic prompts ("ask me anything!") teach nothing; naming a real retrieved
396
565
  skill shows the user the shape of a question that works.
566
+
567
+ ``with_ai=False`` offers only what the extractive answer can answer: a
568
+ lookup of one named skill, which :func:`promote_named` puts first. A
569
+ comparison or a "which first" needs prose that path does not write, so
570
+ suggesting one invites a question whose answer is the same list again.
397
571
  """
398
572
  if not entries:
399
- return ["what skills do I have installed?"]
573
+ return ["what skills do I have installed?"] if with_ai else []
400
574
  top: dict | None = entries[0]
401
575
  name = str(top.get("name", "")) if top else ""
402
576
  out: list[str] = []
403
577
  if name:
404
- out.extend(("what does %s actually do?" % name,
405
- "how is %s different from the others?" % name))
406
- out.append("which of these should I install first?")
578
+ out.append("what does %s actually do?" % name)
579
+ if with_ai:
580
+ if name:
581
+ out.append("how is %s different from the others?" % name)
582
+ out.append("which of these should I install first?")
407
583
  return out