boost-skill-cli 1.2.121__tar.gz → 1.2.123__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1048) hide show
  1. {boost_skill_cli-1.2.121/boost_skill_cli.egg-info → boost_skill_cli-1.2.123}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/pkg.py +11 -1
  4. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/quality.py +9 -3
  5. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/store.py +94 -5
  6. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123/boost_skill_cli.egg-info}/PKG-INFO +1 -1
  7. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_skill_cli.egg-info/SOURCES.txt +1 -0
  8. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +2 -0
  9. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +6 -4
  10. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap.html +13 -45
  11. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_pkg.py +3 -2
  12. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_quality.py +36 -0
  13. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_store.py +2 -1
  14. boost_skill_cli-1.2.123/tests/unit/test_sync_lost_lock.py +226 -0
  15. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.gitattributes +0 -0
  16. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.gitignore +0 -0
  17. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.gitleaks.toml +0 -0
  18. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.htmlvalidate.json +0 -0
  19. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.lighthouserc.json +0 -0
  20. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.lycheeignore +0 -0
  21. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.markdownlint-cli2.jsonc +0 -0
  22. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.pre-commit-config.yaml +0 -0
  23. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.stylelintrc.json +0 -0
  24. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.vale/styles/boost/AIWriting.yml +0 -0
  25. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.vale/styles/boost/Terminology.yml +0 -0
  26. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  27. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/.vale.ini +0 -0
  28. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/CLAUDE.md +0 -0
  29. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/CODE_OF_CONDUCT.md +0 -0
  30. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/CONTRIBUTING.md +0 -0
  31. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/DCO +0 -0
  32. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/GOVERNANCE.md +0 -0
  33. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/LICENSE +0 -0
  34. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/MAINTAINERS.md +0 -0
  35. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/MANIFEST.in +0 -0
  36. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/Makefile +0 -0
  37. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/README.md +0 -0
  38. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/SECURITY.md +0 -0
  39. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/SUPPORT.md +0 -0
  40. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost +0 -0
  41. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/__init__.py +0 -0
  42. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/__main__.py +0 -0
  43. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/cli.py +0 -0
  44. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/cliparse.py +0 -0
  45. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/__init__.py +0 -0
  46. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/_common.py +0 -0
  47. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/bmad.py +0 -0
  48. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/configuration.py +0 -0
  49. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/discovery.py +0 -0
  50. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/hooks.py +0 -0
  51. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/info.py +0 -0
  52. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/intelligence.py +0 -0
  53. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/quickstart.py +0 -0
  54. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/run.py +0 -0
  55. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/safety.py +0 -0
  56. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/taps.py +0 -0
  57. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/commands/team.py +0 -0
  58. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/__init__.py +0 -0
  59. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/adapters.py +0 -0
  60. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/agents.py +0 -0
  61. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/ai.py +0 -0
  62. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/aihost.py +0 -0
  63. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/archive.py +0 -0
  64. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/bmad.py +0 -0
  65. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/bootstrap.py +0 -0
  66. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/browse.py +0 -0
  67. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/builtin.py +0 -0
  68. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/capabilities.py +0 -0
  69. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/catalog.py +0 -0
  70. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/catalogbundle.py +0 -0
  71. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/chat.py +0 -0
  72. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/claude_settings.py +0 -0
  73. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/cohort.py +0 -0
  74. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/complete.py +0 -0
  75. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/config.py +0 -0
  76. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/dense.py +0 -0
  77. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/deps.py +0 -0
  78. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/discovery.py +0 -0
  79. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/ed25519.py +0 -0
  80. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/embed.py +0 -0
  81. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/faithfulness.py +0 -0
  82. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/frontmatter.py +0 -0
  83. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/gitutil.py +0 -0
  84. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/hookhost.py +0 -0
  85. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/imperative.py +0 -0
  86. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/injectscan.py +0 -0
  87. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/installscan.py +0 -0
  88. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/integrity.py +0 -0
  89. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/journal.py +0 -0
  90. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/jsonstate.py +0 -0
  91. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/localembed.py +0 -0
  92. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/lockfile.py +0 -0
  93. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/logs.py +0 -0
  94. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/mcp.py +0 -0
  95. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/mcpdecl.py +0 -0
  96. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/mcphost.py +0 -0
  97. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/minisign.py +0 -0
  98. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/nethttp.py +0 -0
  99. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/output.py +0 -0
  100. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/paths.py +0 -0
  101. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/policy.py +0 -0
  102. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/projectlock.py +0 -0
  103. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/provenance.py +0 -0
  104. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/rag.py +0 -0
  105. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/registry.py +0 -0
  106. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/report.py +0 -0
  107. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/resolve.py +0 -0
  108. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/rules.py +0 -0
  109. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/scopes.py +0 -0
  110. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/secretscan.py +0 -0
  111. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/selfupdate.py +0 -0
  112. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/serve.py +0 -0
  113. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/shards.py +0 -0
  114. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/stackprobe.py +0 -0
  115. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/staleness.py +0 -0
  116. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/trustaudit.py +0 -0
  117. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/typedvalue.py +0 -0
  118. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/typosquat.py +0 -0
  119. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/updatediff.py +0 -0
  120. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/util.py +0 -0
  121. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/core/workflows.py +0 -0
  122. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/data/registries.json +0 -0
  123. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/data/rules/boost-first.mdc +0 -0
  124. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/errors.py +0 -0
  125. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_cli/spin.py +0 -0
  126. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/__init__.py +0 -0
  127. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/_compat.py +0 -0
  128. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/graph.py +0 -0
  129. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/loader.py +0 -0
  130. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/py.typed +0 -0
  131. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_langchain/retriever.py +0 -0
  132. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  133. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  134. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_skill_cli.egg-info/requires.txt +0 -0
  135. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/boost_skill_cli.egg-info/top_level.txt +0 -0
  136. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/codecov.yml +0 -0
  137. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/.claude/settings.local.json +0 -0
  138. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/DEBUGGING.md +0 -0
  139. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/adapters.html +0 -0
  140. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/architecture/README.md +0 -0
  141. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/architecture/c4-components-core.md +0 -0
  142. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/architecture/c4-containers.md +0 -0
  143. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/architecture/c4-context.md +0 -0
  144. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/architecture/c4-dynamic-install.md +0 -0
  145. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/bmad.md +0 -0
  146. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/distill.gif +0 -0
  147. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/doctor.gif +0 -0
  148. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/explain.gif +0 -0
  149. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/hooks.gif +0 -0
  150. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/install.gif +0 -0
  151. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/pulse.gif +0 -0
  152. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/search.gif +0 -0
  153. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/gifs/tap.gif +0 -0
  154. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/distill.tape +0 -0
  155. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/doctor.tape +0 -0
  156. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/explain.tape +0 -0
  157. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/hooks.tape +0 -0
  158. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/install.tape +0 -0
  159. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/pulse.tape +0 -0
  160. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/search.tape +0 -0
  161. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel/tapes/tap.tape +0 -0
  162. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/carousel.html +0 -0
  163. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/chat.html +0 -0
  164. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/code-review.md +0 -0
  165. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/commands.html +0 -0
  166. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/commit-audit.md +0 -0
  167. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/demo-index.json +0 -0
  168. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/demo.gif +0 -0
  169. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/demo.html +0 -0
  170. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/demo.tape +0 -0
  171. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/dependencies.md +0 -0
  172. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/design-roadmap.html +0 -0
  173. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/eval-latest.json +0 -0
  174. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/eval.html +0 -0
  175. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/index.html +0 -0
  176. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/langchain.html +0 -0
  177. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/mcp-hub.html +0 -0
  178. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/openssf-badge.md +0 -0
  179. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/openssf-playbook.md +0 -0
  180. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/rag-architecture.md +0 -0
  181. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D01.md +0 -0
  182. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D02.md +0 -0
  183. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D03.md +0 -0
  184. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D04.md +0 -0
  185. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D05.md +0 -0
  186. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D06.md +0 -0
  187. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D07.md +0 -0
  188. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D08.md +0 -0
  189. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D09.md +0 -0
  190. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D10.md +0 -0
  191. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D11.md +0 -0
  192. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D12.md +0 -0
  193. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D13.md +0 -0
  194. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D14.md +0 -0
  195. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D15.md +0 -0
  196. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D16.md +0 -0
  197. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D17.md +0 -0
  198. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D18.md +0 -0
  199. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D19.md +0 -0
  200. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D20.md +0 -0
  201. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D21.md +0 -0
  202. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D22.md +0 -0
  203. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D23.md +0 -0
  204. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D24.md +0 -0
  205. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D25.md +0 -0
  206. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D26.md +0 -0
  207. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/BOOST-D27.md +0 -0
  208. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  209. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  210. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  211. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  212. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  213. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  214. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  215. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  216. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  217. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  218. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  219. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  220. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  221. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  222. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  223. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  224. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-attest-findings.md +0 -0
  225. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-audit-findings.md +0 -0
  226. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  227. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-browse-findings.md +0 -0
  228. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  229. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  230. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  231. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  232. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-chat-findings.md +0 -0
  233. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  234. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  235. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  236. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-completions-findings.md +0 -0
  237. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-config-findings.md +0 -0
  238. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  239. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-context-findings.md +0 -0
  240. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  241. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  242. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-create-findings.md +0 -0
  243. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  244. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-deps-findings.md +0 -0
  245. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-discover-findings.md +0 -0
  246. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  247. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  248. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-drift-findings.md +0 -0
  249. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  250. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-edit-findings.md +0 -0
  251. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  252. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-explain-findings.md +0 -0
  253. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-export-findings.md +0 -0
  254. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  255. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  256. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  257. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  258. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  259. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-health-findings.md +0 -0
  260. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  261. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  262. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-import-findings.md +0 -0
  263. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-index-findings.md +0 -0
  264. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  265. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  266. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-install-findings.md +0 -0
  267. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  268. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  269. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-lint-findings.md +0 -0
  270. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-log-findings.md +0 -0
  271. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  272. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  273. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  274. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  275. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  276. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  277. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  278. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  279. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  280. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  281. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  282. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-policy-findings.md +0 -0
  283. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-preview-findings.md +0 -0
  284. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-profile-findings.md +0 -0
  285. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  286. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  287. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  288. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  289. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  290. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  291. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  292. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  293. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  294. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-replay-findings.md +0 -0
  295. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-root-findings.md +0 -0
  296. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  297. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-run-findings.md +0 -0
  298. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  299. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-search-findings.md +0 -0
  300. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  301. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  302. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  303. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  304. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  305. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  306. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  307. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  308. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-sync-findings.md +0 -0
  309. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-tag-findings.md +0 -0
  310. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  311. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-tap-findings.md +0 -0
  312. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-taps-findings.md +0 -0
  313. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  314. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-test-findings.md +0 -0
  315. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-trust-findings.md +0 -0
  316. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  317. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  318. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-untap-findings.md +0 -0
  319. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-update-findings.md +0 -0
  320. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  321. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-verify-findings.md +0 -0
  322. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/audit-who-findings.md +0 -0
  323. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  324. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  325. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  326. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  327. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  328. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  329. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  330. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  331. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  332. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  333. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  334. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  335. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  336. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  337. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  338. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/boost-first-rule.md +0 -0
  339. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  340. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  341. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/branch-current-gate.md +0 -0
  342. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  343. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  344. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  345. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  346. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  347. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  348. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  349. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  350. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  351. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  352. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  353. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  354. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  355. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  356. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  357. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  358. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  359. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/cli-command-audit.md +0 -0
  360. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  361. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  362. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  363. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  364. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/command-carousel-page.md +0 -0
  365. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  366. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  367. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  368. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  369. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  370. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  371. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  372. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  373. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  374. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  375. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  376. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  377. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  378. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  379. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  380. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  381. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  382. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  383. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  384. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  385. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  386. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  387. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  388. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  389. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  390. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  391. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  392. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  393. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  394. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  395. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  396. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  397. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  398. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  399. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  400. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  401. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  402. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  403. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  404. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  405. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  406. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  407. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  408. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  409. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  410. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  411. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  412. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  413. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  414. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  415. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  416. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  417. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  418. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  419. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  420. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  421. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  422. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  423. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  424. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  425. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  426. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  427. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  428. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  429. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  430. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  431. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  432. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  433. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  434. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  435. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  436. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/github-community-health-files.md +0 -0
  437. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  438. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  439. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  440. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  441. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  442. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  443. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  444. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  445. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  446. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  447. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  448. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  449. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  450. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  451. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  452. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  453. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  454. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  455. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  456. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  457. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  458. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  459. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  460. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  461. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  462. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  463. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  464. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  465. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  466. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  467. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  468. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  469. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  470. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  471. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  472. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  473. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  474. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  475. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  476. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  477. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  478. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  479. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  480. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  481. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  482. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  483. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  484. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  485. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  486. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  487. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  488. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  489. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  490. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  491. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  492. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  493. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  494. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  495. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  496. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  497. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  498. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  499. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  500. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  501. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  502. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  503. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  504. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  505. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  506. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  507. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  508. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  509. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  510. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  511. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  512. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  513. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  514. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  515. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  516. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  517. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  518. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  519. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  520. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  521. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  522. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/openssf-playbook.md +0 -0
  523. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/openssf-silver.md +0 -0
  524. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  525. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  526. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  527. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  528. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  529. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  530. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  531. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  532. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  533. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  534. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  535. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  536. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  537. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  538. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  539. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  540. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  541. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  542. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  543. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  544. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  545. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  546. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  547. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  548. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  549. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  550. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  551. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  552. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  553. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  554. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  555. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  556. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  557. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  558. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  559. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  560. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  561. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  562. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  563. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  564. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  565. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  566. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  567. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  568. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/relicence-apache-2.md +0 -0
  569. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  570. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  571. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  572. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  573. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  574. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  575. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  576. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  577. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  578. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  579. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  580. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  581. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  582. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  583. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  584. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  585. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  586. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  587. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  588. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  589. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  590. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  591. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  592. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  593. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  594. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  595. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  596. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  597. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  598. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  599. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  600. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  601. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  602. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  603. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  604. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  605. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  606. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  607. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  608. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  609. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  610. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  611. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  612. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  613. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  614. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  615. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  616. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  617. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  618. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  619. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  620. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  621. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  622. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  623. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  624. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  625. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  626. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  627. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  628. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  629. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  630. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  631. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  632. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  633. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  634. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  635. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  636. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  637. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  638. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  639. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  640. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  641. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  642. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  643. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  644. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  645. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  646. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  647. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  648. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  649. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  650. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  651. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  652. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  653. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  654. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  655. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  656. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  657. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  658. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  659. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  660. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  661. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  662. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  663. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  664. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  665. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  666. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  667. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  668. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  669. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  670. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/workspace-scope-install.md +0 -0
  671. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/zip-strict-audit.md +0 -0
  672. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  673. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  674. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/security-design.md +0 -0
  675. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/semantic-search.md +0 -0
  676. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  677. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/verifying-releases.md +0 -0
  678. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/meta.md +0 -0
  679. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/openvex.json +0 -0
  680. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  681. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  682. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  683. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  684. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/eslint.config.mjs +0 -0
  685. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/README.md +0 -0
  686. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/__init__.py +0 -0
  687. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/baseline.json +0 -0
  688. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/faithfulness.py +0 -0
  689. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/golden_set.json +0 -0
  690. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/make_corpus.py +0 -0
  691. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/make_golden.py +0 -0
  692. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/metrics.py +0 -0
  693. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/publish_golden_dataset.py +0 -0
  694. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/evals/run_evals.py +0 -0
  695. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/examples/README.md +0 -0
  696. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/examples/adapt-demo.sh +0 -0
  697. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/examples/boost-run-prototype.sh +0 -0
  698. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/index.html +0 -0
  699. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/noxfile.py +0 -0
  700. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/pyproject.toml +0 -0
  701. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/coverage-tools.in +0 -0
  702. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/coverage-tools.txt +0 -0
  703. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/lint-tools.in +0 -0
  704. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/lint-tools.txt +0 -0
  705. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/mutation-tools.in +0 -0
  706. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/mutation-tools.txt +0 -0
  707. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/platform-pins.lock +0 -0
  708. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/release-tools.in +0 -0
  709. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/release-tools.txt +0 -0
  710. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/test-tools.in +0 -0
  711. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/requirements/test-tools.txt +0 -0
  712. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/a11y_check.py +0 -0
  713. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/add_spdx_headers.py +0 -0
  714. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/bench_cli.sh +0 -0
  715. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_command_reference.py +0 -0
  716. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_demo_index.py +0 -0
  717. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_registries.py +0 -0
  718. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_roadmap.py +0 -0
  719. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_scale_corpus.py +0 -0
  720. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/build_vex.py +0 -0
  721. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_anchors.py +0 -0
  722. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_branch_current.py +0 -0
  723. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_dco.py +0 -0
  724. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_licenses.py +0 -0
  725. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_reproducible.py +0 -0
  726. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/check_required_checks.py +0 -0
  727. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/ensure_eval_corpus.sh +0 -0
  728. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_corpus.py +0 -0
  729. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_explain.py +0 -0
  730. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_gate.py +0 -0
  731. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_recommend.py +0 -0
  732. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_retrieval.py +0 -0
  733. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_stats_summary.py +0 -0
  734. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/eval_tools.py +0 -0
  735. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/import_budget.py +0 -0
  736. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/lock_toolchain.py +0 -0
  737. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/measure_near_duplicate_bound.py +0 -0
  738. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/measure_registry.py +0 -0
  739. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/mutation_gate.py +0 -0
  740. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/mutation_shards.py +0 -0
  741. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/mutation_weights.json +0 -0
  742. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/normalize_sdist.py +0 -0
  743. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/page_budget.py +0 -0
  744. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/perf_gate.py +0 -0
  745. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/post_deploy_smoke.py +0 -0
  746. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/publish_eval_json.py +0 -0
  747. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/publish_shards.py +0 -0
  748. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/release_guard.py +0 -0
  749. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/release_preflight.py +0 -0
  750. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/serve_docs.py +0 -0
  751. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/scripts/shard_plan.py +0 -0
  752. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/setup.cfg +0 -0
  753. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/sonar-project.properties +0 -0
  754. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/style/README.md +0 -0
  755. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/style/boost.css +0 -0
  756. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/style/boost.js +0 -0
  757. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/style/demo.html +0 -0
  758. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/adapt.feature +0 -0
  759. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/browse.feature +0 -0
  760. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/count.feature +0 -0
  761. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/discover.feature +0 -0
  762. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/doctor.feature +0 -0
  763. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/environment.py +0 -0
  764. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/explain.feature +0 -0
  765. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/index.feature +0 -0
  766. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/install.feature +0 -0
  767. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/list.feature +0 -0
  768. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/mcp.feature +0 -0
  769. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/search.feature +0 -0
  770. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/steps/cli_steps.py +0 -0
  771. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/steps/discovery_steps.py +0 -0
  772. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/steps/mcp_steps.py +0 -0
  773. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/bdd/features/steps/quality_steps.py +0 -0
  774. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/conftest.py +0 -0
  775. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/baseline.json +0 -0
  776. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/explain.jsonl +0 -0
  777. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  778. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/golden-natural.jsonl +0 -0
  779. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/golden.jsonl +0 -0
  780. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/recommend.jsonl +0 -0
  781. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/taps-scale.txt +0 -0
  782. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/taps.txt +0 -0
  783. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/eval/tool_calls.jsonl +0 -0
  784. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  785. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_bmad_all_hosts.py +0 -0
  786. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_bmad_personas_scope.py +0 -0
  787. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_capabilities_policy.py +0 -0
  788. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_adapt.py +0 -0
  789. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_bmad.py +0 -0
  790. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_catalog.py +0 -0
  791. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_chat.py +0 -0
  792. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_configuration.py +0 -0
  793. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_discovery.py +0 -0
  794. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_hooks.py +0 -0
  795. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_hooks_gemini.py +0 -0
  796. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_info.py +0 -0
  797. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_intelligence.py +0 -0
  798. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_json_reports.py +0 -0
  799. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_pane_width.py +0 -0
  800. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_quickstart.py +0 -0
  801. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_tap_pins.py +0 -0
  802. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_taps.py +0 -0
  803. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_cli_team.py +0 -0
  804. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  805. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  806. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_everyday_loop.py +0 -0
  807. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_integrity_enforce.py +0 -0
  808. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_kind_conformance.py +0 -0
  809. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_property_parsers.py +0 -0
  810. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_recommend_because_is_true.py +0 -0
  811. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_reports_match_reality.py +0 -0
  812. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_run.py +0 -0
  813. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_tap_signing.py +0 -0
  814. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/functional/test_workspace_scope.py +0 -0
  815. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/README.md +0 -0
  816. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  817. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  818. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  819. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  820. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  821. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  822. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  823. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  824. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  825. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  826. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  827. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  828. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  829. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  830. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  831. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  832. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  833. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  834. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  835. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  836. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  837. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  838. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  839. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/fuzz_frontmatter.py +0 -0
  840. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/fuzz/fuzz_registry.py +0 -0
  841. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/langchain/conftest.py +0 -0
  842. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/langchain/test_graph.py +0 -0
  843. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/langchain/test_loader.py +0 -0
  844. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/langchain/test_retriever.py +0 -0
  845. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/make_fixture.py +0 -0
  846. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/perf/test_benchmarks.py +0 -0
  847. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/smoke.sh +0 -0
  848. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  849. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_a11y_check.py +0 -0
  850. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_action_pin_lockstep.py +0 -0
  851. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_adapters.py +0 -0
  852. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_adapters_multi.py +0 -0
  853. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_adapters_runner.py +0 -0
  854. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_agents.py +0 -0
  855. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_ai.py +0 -0
  856. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_aihost.py +0 -0
  857. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_archive.py +0 -0
  858. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_bmad_core.py +0 -0
  859. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_boost_first_offer.py +0 -0
  860. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_bootstrap.py +0 -0
  861. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_bot_pr_dco.py +0 -0
  862. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_branch_current.py +0 -0
  863. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_browse.py +0 -0
  864. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_builtin.py +0 -0
  865. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_capabilities.py +0 -0
  866. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_catalog.py +0 -0
  867. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_catalog_keyword_words.py +0 -0
  868. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_catalogbundle.py +0 -0
  869. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_chat.py +0 -0
  870. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_check_anchors.py +0 -0
  871. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_check_dco.py +0 -0
  872. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_check_licenses.py +0 -0
  873. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_check_reproducible.py +0 -0
  874. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_claude_settings.py +0 -0
  875. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_clean_internal_cache.py +0 -0
  876. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_cli_update_shards.py +0 -0
  877. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_cliparse.py +0 -0
  878. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_codeql_analysis_key.py +0 -0
  879. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_cohort.py +0 -0
  880. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_command_reference_fresh.py +0 -0
  881. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_community_health_files.py +0 -0
  882. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_compact.py +0 -0
  883. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_complete.py +0 -0
  884. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_complete_rc_block.py +0 -0
  885. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_config.py +0 -0
  886. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_content_dedupe.py +0 -0
  887. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_content_identity.py +0 -0
  888. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  889. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_crash_redaction.py +0 -0
  890. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dedup_trust.py +0 -0
  891. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_demo_index.py +0 -0
  892. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense.py +0 -0
  893. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  894. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_embed_dedupe.py +0 -0
  895. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_entry_reuse.py +0 -0
  896. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_entry_vectors.py +0 -0
  897. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_fallback.py +0 -0
  898. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_fix_hint.py +0 -0
  899. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_progress.py +0 -0
  900. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_quantized.py +0 -0
  901. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_ready_order.py +0 -0
  902. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_shard_real_schema.py +0 -0
  903. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  904. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_shards.py +0 -0
  905. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_status.py +0 -0
  906. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_status_cheap.py +0 -0
  907. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dense_vector_dedupe.py +0 -0
  908. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_dependabot_config.py +0 -0
  909. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_deps.py +0 -0
  910. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_discovery.py +0 -0
  911. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_distill_merge.py +0 -0
  912. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_docs_pages_linked.py +0 -0
  913. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_docsite_chrome.py +0 -0
  914. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_doctor_output_polish.py +0 -0
  915. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_drift_hint.py +0 -0
  916. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_ed25519.py +0 -0
  917. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_embed.py +0 -0
  918. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_embed_local.py +0 -0
  919. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_embed_truncated_response.py +0 -0
  920. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_entry_key.py +0 -0
  921. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_errors_and_cli_table.py +0 -0
  922. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_baseline.py +0 -0
  923. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_corpus.py +0 -0
  924. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_faithfulness.py +0 -0
  925. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_gate.py +0 -0
  926. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_grading.py +0 -0
  927. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_metrics.py +0 -0
  928. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_stats_summary.py +0 -0
  929. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_tools.py +0 -0
  930. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_eval_tools_probe.py +0 -0
  931. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  932. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_faithfulness.py +0 -0
  933. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_frontmatter.py +0 -0
  934. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_fuzz_targets.py +0 -0
  935. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  936. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gitleaks_config.py +0 -0
  937. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gitutil.py +0 -0
  938. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gitutil_lfs.py +0 -0
  939. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gitutil_sparse.py +0 -0
  940. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_gstack_coexistence.py +0 -0
  941. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_hook_settings_hosts.py +0 -0
  942. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_hookhost.py +0 -0
  943. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_imperative.py +0 -0
  944. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_import_budget.py +0 -0
  945. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_injectscan.py +0 -0
  946. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_install_permission_error.py +0 -0
  947. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_installscan.py +0 -0
  948. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_integrity.py +0 -0
  949. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_journal.py +0 -0
  950. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_jsonstate.py +0 -0
  951. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_langchain_packaging.py +0 -0
  952. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_launcher_python_floor.py +0 -0
  953. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_link_ownership.py +0 -0
  954. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_localembed.py +0 -0
  955. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_localembed_e2e.py +0 -0
  956. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_lockfile.py +0 -0
  957. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_logs.py +0 -0
  958. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_marketing_counts.py +0 -0
  959. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mcp.py +0 -0
  960. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mcp_install_scan.py +0 -0
  961. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mcp_read.py +0 -0
  962. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mcpdecl.py +0 -0
  963. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mcphost.py +0 -0
  964. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_measure_registry.py +0 -0
  965. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_minisign.py +0 -0
  966. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mutation_hardening.py +0 -0
  967. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mutation_shards.py +0 -0
  968. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mutation_subfile_shards.py +0 -0
  969. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_mutmut_source_paths.py +0 -0
  970. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_near_duplicate_collapse.py +0 -0
  971. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_nethttp.py +0 -0
  972. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_normalize_sdist.py +0 -0
  973. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_output.py +0 -0
  974. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_page_budget.py +0 -0
  975. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_paths.py +0 -0
  976. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_perf_gate.py +0 -0
  977. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_pkg_confusions.py +0 -0
  978. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_pkg_injection.py +0 -0
  979. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_pkg_secrets.py +0 -0
  980. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_platform_pins.py +0 -0
  981. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_policy.py +0 -0
  982. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_post_deploy_smoke.py +0 -0
  983. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_project_mcp_sidecar.py +0 -0
  984. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_projectlock.py +0 -0
  985. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_provenance.py +0 -0
  986. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_publish_golden_dataset.py +0 -0
  987. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rag.py +0 -0
  988. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rag_completeness.py +0 -0
  989. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rag_fastpath.py +0 -0
  990. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rag_fusion.py +0 -0
  991. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_registries_fresh.py +0 -0
  992. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_registry.py +0 -0
  993. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_registry_categories.py +0 -0
  994. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_registry_control_chars.py +0 -0
  995. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_registry_parallel.py +0 -0
  996. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_release_guard.py +0 -0
  997. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_release_preflight.py +0 -0
  998. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_report.py +0 -0
  999. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_required_checks.py +0 -0
  1000. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rerank_cache.py +0 -0
  1001. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_resolve.py +0 -0
  1002. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1003. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_roadmap_fresh.py +0 -0
  1004. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_rules.py +0 -0
  1005. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_scale_corpus.py +0 -0
  1006. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_schedule_plist.py +0 -0
  1007. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_scopes.py +0 -0
  1008. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_secretscan.py +0 -0
  1009. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_selfupdate.py +0 -0
  1010. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_serve.py +0 -0
  1011. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_serve_docs.py +0 -0
  1012. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_shard_plan.py +0 -0
  1013. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_shards.py +0 -0
  1014. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_shards_incremental.py +0 -0
  1015. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_shards_ingest.py +0 -0
  1016. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_shards_matrix.py +0 -0
  1017. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1018. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_spdx_headers.py +0 -0
  1019. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_spin.py +0 -0
  1020. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_stackprobe.py +0 -0
  1021. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_staleness.py +0 -0
  1022. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_store_materialize.py +0 -0
  1023. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_sync_blocked_links.py +0 -0
  1024. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1025. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_tap_pins.py +0 -0
  1026. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_token_parity.py +0 -0
  1027. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_toolchain_lock.py +0 -0
  1028. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_trustaudit.py +0 -0
  1029. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_typedvalue.py +0 -0
  1030. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_typosquat.py +0 -0
  1031. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_updatediff.py +0 -0
  1032. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_util.py +0 -0
  1033. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_version.py +0 -0
  1034. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_version_tags.py +0 -0
  1035. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_vex.py +0 -0
  1036. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_visual_harness_capture.py +0 -0
  1037. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_visual_harness_flags.py +0 -0
  1038. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_workflow_concurrency.py +0 -0
  1039. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1040. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1041. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_workflow_timeouts.py +0 -0
  1042. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_workflows.py +0 -0
  1043. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1044. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/visual/a11y_check.mjs +0 -0
  1045. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/visual/console_check.mjs +0 -0
  1046. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/visual/package-lock.json +0 -0
  1047. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/visual/package.json +0 -0
  1048. {boost_skill_cli-1.2.121 → boost_skill_cli-1.2.123}/tests/visual/visual_check.mjs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.121
3
+ Version: 1.2.123
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.121'
22
- __version_tuple__ = version_tuple = (1, 2, 121)
21
+ __version__ = version = '1.2.123'
22
+ __version_tuple__ = version_tuple = (1, 2, 123)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -619,6 +619,7 @@ _PLAN_LABELS = [
619
619
  ("blocked_links", "agent links blocked by a foreign file"),
620
620
  ("stale_links", "stale links"),
621
621
  ("orphaned_store", "orphaned store dirs"),
622
+ ("unrecorded_store", "store dirs the lock file has lost"),
622
623
  ("missing_materializations", "missing rule/workflow files"),
623
624
  ("out_of_scope_links", "linked outside declared scope"),
624
625
  ]
@@ -711,17 +712,26 @@ def cmd_sync(argv: list[str]) -> int:
711
712
  journal.log("prune", name)
712
713
  pruned.append(name)
713
714
  left = [n for n in orphans if n not in pruned]
715
+ # Re-recorded by sync_apply when the lock was merely missing; still here
716
+ # only when it is corrupt or in another schema, which sync never overwrites.
717
+ unrecorded = [n for n in plan["unrecorded_store"]
718
+ if lockfile.get_skill(n) is None]
714
719
  blocked = plan["blocked_links"]
715
720
  if args.json:
716
721
  # `sync --diff --json` above is indent=2; this printed one unindented
717
722
  # line, so the two `--json` shapes of the same command disagreed on
718
723
  # style for no reason tied to their content.
719
724
  print(json.dumps({"actions": actions, "pruned": pruned,
720
- "orphaned_store": left, "out_of_scope_links": oos,
725
+ "orphaned_store": left, "unrecorded_store": unrecorded,
726
+ "out_of_scope_links": oos,
721
727
  "blocked_links": blocked}, indent=2))
722
728
  return 0
723
729
  for a in actions:
724
730
  out.ok(a)
731
+ if unrecorded:
732
+ out.warn("%s the lock file cannot record, left as they are: %s — "
733
+ "restore the lock with `boost replay`"
734
+ % (_plural(len(unrecorded), "store dir"), ", ".join(unrecorded)))
725
735
  for name in pruned:
726
736
  out.ok("pruned %s" % _tilde(store.skill_store_dir(name)))
727
737
  if left:
@@ -447,8 +447,8 @@ def cmd_doctor(argv):
447
447
  if store.has_content():
448
448
  n = sum(1 for c in paths.store_dir().iterdir()
449
449
  if c.is_dir() and not c.name.startswith("."))
450
- bad("lockfile", "lock file missing — %d store dir%s unrecorded, run `boost sync`"
451
- % (n, _s(n)))
450
+ bad("lockfile", "lock file missing — %d store dir%s unrecorded, "
451
+ "run `boost sync` to re-record %s" % (n, _s(n), "it" if n == 1 else "them"))
452
452
  lock_ok = False
453
453
  else:
454
454
  rep.note("lockfile", "no lock file yet — nothing installed")
@@ -613,7 +613,10 @@ def cmd_doctor(argv):
613
613
  orphans = [c.name for c in sorted(root.iterdir())
614
614
  if c.is_dir() and not c.name.startswith(".") and c.name not in skills
615
615
  ] if root.is_dir() else []
616
- if orphans:
616
+ # Only while the lock can vouch. Without one every store dir reads as an
617
+ # orphan, the lock line above already names the state and its remedy, and
618
+ # a second "run `boost sync`" line counted the same fault twice.
619
+ if orphans and store.lock_vouches():
617
620
  bad("orphans", "%d orphaned store dir%s (%s) — run `boost sync`"
618
621
  % (len(orphans), _s(len(orphans)), ", ".join(orphans[:5])))
619
622
 
@@ -1104,6 +1107,9 @@ def cmd_heal(argv):
1104
1107
  for name in plan["missing_store"]:
1105
1108
  out.info("would restore %s from its tap (or drop it from the lock)" % name)
1106
1109
  actions.append("restore %s" % name)
1110
+ for name in plan["unrecorded_store"]:
1111
+ out.info("would re-record %s, which the lock file has lost" % name)
1112
+ actions.append("re-record %s" % name)
1107
1113
  else:
1108
1114
  for msg in store.sync_apply(plan):
1109
1115
  out.ok(msg.replace(str(paths.home()), "~"))
@@ -1680,6 +1680,21 @@ def restore_preserve_newer_lock_sections(
1680
1680
  return kept
1681
1681
 
1682
1682
 
1683
+ def lock_vouches() -> bool:
1684
+ """Whether the lock file can say which store dirs and links are boost's.
1685
+
1686
+ It can when it parses, and when it is missing over an empty store — that
1687
+ is a fresh install with nothing to disown. It cannot when it is missing
1688
+ over a populated store, corrupt, or written in another schema:
1689
+ :func:`lockfile.installed` collapses all three into an empty record, and
1690
+ reading that as "nothing is installed" turned `boost sync` — the command
1691
+ `boost doctor` prescribes for exactly this state — into an uninstaller that
1692
+ removed every live link of an intact install with green ticks and exit 0.
1693
+ """
1694
+ integ = lockfile.check()
1695
+ return integ.ok or (integ.problem == "missing" and not has_content())
1696
+
1697
+
1683
1698
  def sync_plan() -> dict[str, list]:
1684
1699
  """Compare lock file <-> store <-> agent symlinks.
1685
1700
 
@@ -1691,6 +1706,9 @@ def sync_plan() -> dict[str, list]:
1691
1706
  symlink occupies the link path — sync will not clobber it
1692
1707
  stale_links: paths in agent dirs that are broken/unmanaged symlinks
1693
1708
  orphaned_store: store dirs not present in the lock file
1709
+ unrecorded_store: the same, while the lock cannot vouch for anything
1710
+ (:func:`lock_vouches`) — never pruned, re-recorded by
1711
+ :func:`sync_apply` when the lock is merely missing
1694
1712
  out_of_scope_links: (skill, agent) pairs linked outside a declared
1695
1713
  ``--agent`` narrowing — reported, never auto-removed
1696
1714
 
@@ -1704,9 +1722,11 @@ def sync_plan() -> dict[str, list]:
1704
1722
  as a directory: a closed loop with no exit.
1705
1723
  """
1706
1724
  lock = lockfile.installed()
1725
+ vouches = lock_vouches()
1707
1726
  plan: dict[str, list] = {"missing_store": [], "missing_links": [],
1708
1727
  "blocked_links": [], "stale_links": [], "orphaned_store": [],
1709
- "missing_materializations": [], "out_of_scope_links": []}
1728
+ "unrecorded_store": [], "missing_materializations": [],
1729
+ "out_of_scope_links": []}
1710
1730
  for name, entry in lock.items():
1711
1731
  sdir = skill_store_dir(name)
1712
1732
  # A directory with no SKILL.md counts as missing, not as healthy. The
@@ -1780,9 +1800,11 @@ def sync_plan() -> dict[str, list]:
1780
1800
  plan["out_of_scope_links"].append((name, agent))
1781
1801
  store_root = paths.store_dir()
1782
1802
  if store_root.is_dir():
1783
- for child in store_root.iterdir():
1784
- if child.is_dir() and child.name not in lock:
1785
- plan["orphaned_store"].append(child.name)
1803
+ for child in sorted(store_root.iterdir()):
1804
+ if (child.is_dir() and not child.name.startswith(".")
1805
+ and child.name not in lock):
1806
+ plan["orphaned_store" if vouches else "unrecorded_store"].append(
1807
+ child.name)
1786
1808
  for adir in agents.enabled_agents().values():
1787
1809
  if not adir.is_dir():
1788
1810
  continue
@@ -1790,8 +1812,13 @@ def sync_plan() -> dict[str, list]:
1790
1812
  # Ownership first, for broken links too: the old test short-circuited
1791
1813
  # on `not link.exists()`, so any dangling symlink a user happened to
1792
1814
  # keep in ~/.claude/skills was swept up by `boost sync`.
1815
+ #
1816
+ # "Not in the lock" means "not installed" only while the lock can
1817
+ # vouch. Without that guard a missing lock made every live link
1818
+ # into an intact store look stale, and sync removed them all.
1793
1819
  if (link.is_symlink() and points_into_store(link)
1794
- and (not link.exists() or link.name not in lock)):
1820
+ and (not link.exists()
1821
+ or (vouches and link.name not in lock))):
1795
1822
  plan["stale_links"].append(str(link))
1796
1823
  # Rules/workflows don't live in the store — they materialize into agent dirs.
1797
1824
  # A materialization whose file (or CLAUDE.md block) is gone can be repaired
@@ -1893,9 +1920,71 @@ def _pinned_repair_blocked(entry: dict, source_sha: str | None) -> bool:
1893
1920
  return source_sha is None or source_sha != entry.get("sha256")
1894
1921
 
1895
1922
 
1923
+ def recover_unrecorded(name: str) -> str | None:
1924
+ """Re-record one store dir the lock has lost; return how, or None.
1925
+
1926
+ Only ever called while the lock file is missing over a populated store, so
1927
+ writing a record cannot overwrite a newer or merely unreadable lock. The
1928
+ store copy is authoritative and is never replaced: re-installing would
1929
+ have been the obvious repair, and it silently discards any edits made to
1930
+ the store copy.
1931
+
1932
+ A dir whose content is byte-identical to exactly one tapped source is
1933
+ recorded as installed from that tap, the record a fresh install would have
1934
+ written. Anything else — edited, or from a tap no longer tapped — is
1935
+ recorded as a local skill whose source is the store dir itself, so nothing
1936
+ is lost and nothing is left unrecorded: a dir left out would read as an
1937
+ orphan the moment this pass creates a lock, and the next sync would remove
1938
+ its links, the defect this function exists to close.
1939
+ """
1940
+ sdir = skill_store_dir(name)
1941
+ if not (sdir / "SKILL.md").is_file():
1942
+ return None
1943
+ from . import catalog, gitutil
1944
+ have = util.sha256_dir(sdir)
1945
+ matches = [e for e in catalog.find(name)
1946
+ if e.get("kind", "skill") == "skill"
1947
+ and _skill_source_sha(e) == have]
1948
+ linked = linked_agents(name)
1949
+ linking = list(agents.linking_agents())
1950
+ # Record what is on disk: a skill linked into fewer agents than are enabled
1951
+ # was narrowed, and recording no narrowing would have the next sync link it
1952
+ # everywhere behind the user's back.
1953
+ narrowed = sorted(linked) if linked and set(linked) != set(linking) else None
1954
+ now = util.now_iso()
1955
+ record: dict[str, object]
1956
+ if len(matches) == 1:
1957
+ cat = matches[0]
1958
+ tap = registry.get(cat["tap"])
1959
+ record = {"version": cat.get("version", "0.0.0"), "tap": cat["tap"],
1960
+ "source_dir": cat.get("rel_dir", "."),
1961
+ "commit": gitutil.head_commit(tap.path)}
1962
+ how = "from %s" % cat["tap"]
1963
+ else:
1964
+ # The shape `import_local` writes for a skill with no tap behind it.
1965
+ record = {"version": "0.0.0", "tap": "local", "source_dir": str(sdir),
1966
+ "commit": ""}
1967
+ how = ("as a local skill (its content matches %s tapped source; "
1968
+ "`boost reinstall %s` replaces it with a tap's copy)"
1969
+ % ("no" if not matches else "more than one", name))
1970
+ record.update({"sha256": have, "installed_at": now, "updated_at": now,
1971
+ "pinned": False, "quarantined": False, "agents": linked,
1972
+ "only_agents": narrowed, "tags": []})
1973
+ lockfile.set_skill(name, record)
1974
+ journal.log("recover", name, how=record["tap"])
1975
+ return "re-recorded %s %s" % (name, how)
1976
+
1977
+
1896
1978
  def sync_apply(plan: dict[str, list]) -> list[str]:
1897
1979
  """Fix what sync_plan found. Returns human-readable actions taken."""
1898
1980
  actions = []
1981
+ # First, so every re-recorded skill is in the lock before anything else
1982
+ # runs; and only when the lock is *missing* — a corrupt or other-schema
1983
+ # lock is left for `boost replay`, never overwritten.
1984
+ if plan.get("unrecorded_store") and lockfile.check().problem == "missing":
1985
+ for name in plan["unrecorded_store"]:
1986
+ how = recover_unrecorded(name)
1987
+ actions.append(how or "left %s unrecorded (no SKILL.md to record)" % name)
1899
1988
  for name, agent in plan["missing_links"]:
1900
1989
  res = link_agents(name, only=[agent])
1901
1990
  if agent in res.linked:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.121
3
+ Version: 1.2.123
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -1018,6 +1018,7 @@ tests/unit/test_staleness.py
1018
1018
  tests/unit/test_store.py
1019
1019
  tests/unit/test_store_materialize.py
1020
1020
  tests/unit/test_sync_blocked_links.py
1021
+ tests/unit/test_sync_lost_lock.py
1021
1022
  tests/unit/test_sync_repairs_gutted_skill.py
1022
1023
  tests/unit/test_tap_pins.py
1023
1024
  tests/unit/test_token_parity.py
@@ -79,3 +79,5 @@ description lacks <code>proactively</code> in any case and contains its persona'
79
79
  and no unit test can observe delegation, so the headless run is the acceptance check. Only re-running
80
80
  <code>boost bmad on</code> rewrites unedited persona files (<code>boost_cli/core/bmad.py:672</code>), so the
81
81
  release note must tell users to re-run it.
82
+
83
+ <b>Measured after #865 shipped, and it does not show the defect.</b> The headless run above, 12 router-trivial prompts per arm (the 3 fixtures plus 9 trivial prompts from one real history), counted <code>bmad-*</code> spawns by the main agent: <b>0/12 with no personas, 0/12 with the shipped <code>Use PROACTIVELY</code> descriptions, 0/12 with the fixed ones</b>. At 0/12 the 95% Wilson upper bound is 24%, so this rules out a common spawn, not a rare one. The shipped arm spawned no more than the no-persona arm, which is this card's own stop condition: the fix is harmless, and there was no delegation for it to remove. Two limits. Each run stopped after 4 main-agent tool calls, and 7 of the 12 shipped-arm runs hit that cap, so a spawn later in a long session would not be counted. And the fourth arm, routed prompts with the real hook, measured nothing: in the nested sandboxed session the hooks failed with <code>EPERM</code>, all 6 runs ended in about a second, and no banner reached the context. So whether the fixed wording still delegates when a banner names the persona is <b>not established</b>; re-run that arm outside a sandbox. Cost: $6.20 over the runs that reported one, a floor, since runs stopped early report none.
@@ -1,16 +1,16 @@
1
1
  ---
2
2
  id: doctor-prescribes-sync-that-deletes-live-links
3
3
  board: code
4
- section: planned
5
- status: planned
4
+ section: health
5
+ status: shipped
6
6
  category: Onboarding · Bug
7
7
  complexity: L
8
8
  impact: High
9
9
  wow: 4
10
10
  note: store.sync_plan decides staleness with link.name not in lock where lock = lockfile.in…
11
11
  order: 206
12
- owner:
13
- pr:
12
+ owner: loop/sync-keeps-live-links
13
+ pr: 869
14
14
  title: A missing or corrupt lock file makes doctor prescribe <code>boost sync</code>/<code>boost heal</code>, and both delete every live agent symlink of an intact install
15
15
  ---
16
16
  <b>Measured.</b> With the lock file deleted from an otherwise intact install, <code>boost doctor</code> exits 1 and prescribes <code>boost sync</code> on two separate lines; running that prescription removes 4 of 4 live, boost-owned, store-resolving agent symlinks (claude-code, windsurf, cursor, antigravity) with four green ✓ marks, no confirmation prompt of any kind, and exit code 0 — because <code>store.sync_plan</code> (store.py:1785-1787) tests <code>link.name not in lock</code> against <code>lockfile.installed()</code>, which collapses a missing lock into an empty skeleton (lockfile.py:44-45), and <code>sync_apply</code>'s unlink loop (store.py:1895) has no confirm while cmd_sync's only two confirms (pkg.py:694, 704) are both <code>--prune</code>-gated.
@@ -46,3 +46,5 @@ NOT A DUPLICATE — I re-checked all 432 items independently rather than trustin
46
46
  <b>Why it is worth doing.</b> This is the recovery surface behaving as a destroyer at the exact moment a user reaches for it. The lock file is the one file with no atomic-write protection story a new user knows about (an interrupted install, a full disk, a bad restore), the skill on disk and its four agent links are all still correct, and the single command doctor prints — twice — silently uninstalls it from Claude Code, Cursor, Windsurf and Antigravity, exits 0, and calls the result healthy two commands later. The one command that actually recovers (<code>boost install &lt;name&gt;</code>) is never mentioned, and the corrupt-lock alternative (<code>boost replay</code>) is empty on any machine with a single install — i.e.
47
47
 
48
48
  <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em>
49
+
50
+ <b>Fixed.</b> The lock is authoritative only while it can vouch (<code>store.lock_vouches</code>): a missing lock over a populated store, a corrupt one or one in another schema cannot, and then nothing it lacks is a stale link or an orphan — the store dirs are reported as <code>unrecorded_store</code>, which <code>--prune</code> never touches. A merely <em>missing</em> lock is rebuilt by <code>boost sync</code> from what is on disk: a dir byte-identical to exactly one tapped source is re-recorded from that tap, anything else as a local skill whose source is the store copy (reinstalling was the obvious repair, and it silently discards edits), and a narrowed install keeps its narrowing. A corrupt lock is never overwritten; sync leaves the links alone and points at <code>boost replay</code>. Re-running the reproduction above: sync prints <code>re-recorded brainstorming from …</code> and all four links survive.
@@ -132,7 +132,7 @@
132
132
  <!-- ROADMAP:stats -->
133
133
  <div class="stat"><b>20</b><span>Shipped</span></div>
134
134
  <div class="stat"><b>1</b><span>Next up</span></div>
135
- <div class="stat"><b>54</b><span>Planned</span></div>
135
+ <div class="stat"><b>53</b><span>Planned</span></div>
136
136
  <div class="stat"><b>468</b><span>Loop finds</span></div>
137
137
  <!-- /ROADMAP:stats -->
138
138
  </div>
@@ -1293,50 +1293,6 @@ PRIOR DISCLOSURE (the finder declared it, and I confirmed it): docs/roadmap/item
1293
1293
  </div>
1294
1294
  </article>
1295
1295
 
1296
- <article class="cap rcard" id="doctor-prescribes-sync-that-deletes-live-links">
1297
- <div class="head"><span class="pill planned">Planned</span><span class="cat">Onboarding · Bug</span></div>
1298
- <h3>A missing or corrupt lock file makes doctor prescribe <code>boost sync</code>/<code>boost heal</code>, and both delete every live agent symlink of an intact install</h3>
1299
- <p><b>Measured.</b> With the lock file deleted from an otherwise intact install, <code>boost doctor</code> exits 1 and prescribes <code>boost sync</code> on two separate lines; running that prescription removes 4 of 4 live, boost-owned, store-resolving agent symlinks (claude-code, windsurf, cursor, antigravity) with four green ✓ marks, no confirmation prompt of any kind, and exit code 0 — because <code>store.sync_plan</code> (store.py:1785-1787) tests <code>link.name not in lock</code> against <code>lockfile.installed()</code>, which collapses a missing lock into an empty skeleton (lockfile.py:44-45), and <code>sync_apply</code>'s unlink loop (store.py:1895) has no confirm while cmd_sync's only two confirms (pkg.py:694, 704) are both <code>--prune</code>-gated.
1300
-
1301
- <b>Reproduce it.</b>
1302
-
1303
- <code>cd &lt;repo&gt; || exit 1</code><br>
1304
- <code>export HOME=$TMPDIR/audit-doctor-verify1; export BOOST_HOME=$HOME/.boost; mkdir -p "$HOME"</code><br>
1305
- <code>python3 tests/make_fixture.py $TMPDIR/audit-doctor-fix1 &gt;/dev/null</code><br>
1306
- <code>./boost tap $TMPDIR/audit-doctor-fix1 &gt;/dev/null 2&gt;&amp;1</code><br>
1307
- <code>BOOST_ASSUME_YES=1 ./boost install brainstorming &gt;/dev/null 2&gt;&amp;1</code><br>
1308
- <code>ls -l $HOME/.claude/skills/ # link present and resolving</code><br>
1309
- <code>rm $HOME/.agents/skills/.skill-lock.json</code><br>
1310
- <code>./boost doctor; echo "DOCTOR_EXIT=$?" # prescribes `boost sync` twice</code><br>
1311
- <code>./boost sync; echo "SYNC_EXIT=$?" # removes all 4 live links, exit 0, no prompt</code><br>
1312
- <code>ls -A $HOME/.claude/skills/ $HOME/.cursor/skills/ $HOME/.windsurf/skills/ $HOME/.gemini/antigravity-cli/skills/</code><br>
1313
- …
1314
-
1315
- <b>What adversarial verification corrected.</b> This card's numbers are the re-measured ones, not the ones first reported.
1316
-
1317
- The defect is real and the mechanism is exactly as described. Five corrections, two of them citation drift and three substantive enough that a card must not inherit them:
1318
-
1319
- 1. CITATION (minor). <code>store.py:1784-1787</code> — line 1784 is a comment (<code># keep in ~/.claude/skills was swept up by \</code>boost sync\<code>.</code>). The predicate is at <b>1785-1786</b> and <code>plan["stale_links"].append(str(link))</code> at <b>1787</b>. Cite <b>store.py:1785-1787</b>. (store.py:1684 docstring, store.py:1895, lockfile.py:44-45, lockfile.py:226-228, pkg.py:694 and pkg.py:704 are all EXACT as stated.)
1320
-
1321
- 2. CITATION (minor). <code>read()</code> returns the skeleton for corrupt at <b>lockfile.py:54</b>, not 53. Line 52 is a comment, line 53 is <code>_preserve_corrupt(p)</code>, line 54 is <code>return _skeleton()</code>. Cite <b>lockfile.py:53-54</b> (or 50-54 for the whole except block).
1322
-
1323
- 3. SUBSTANTIVE — the root-cause story in <code>why_it_matters</code> is wrong. It claims the lock file is "the one file with no atomic-write protection story ... (an interrupted install, a full disk, a bad restore)". The lock file <b>is</b> written atomically: <code>lockfile.write</code> ends at <code>lockfile.py:160</code> with <code>util.atomic_write_text(...)</code>, which writes to a same-directory temp file, flushes, fsyncs and <code>os.replace</code>s (util.py:123-135, docstring names the lock file explicitly), and the roadmap card <code>docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md</code> is <code>status: shipped</code>, <code>pr: 65</code>.
1324
-
1325
- <b>What is NOT established.</b> Recorded because a card that overstates its own evidence is worse than no card.
1326
-
1327
- NOT A DUPLICATE — I re-checked all 432 items independently rather than trusting the finder's list. - <code>audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md</code> (shipped, PR #674) is the closest and is the direct predecessor, not a duplicate: read in full, it is explicitly scoped to REPORTING in <code>cmd_verify</code>/<code>cmd_drift</code>/<code>cmd_doctor</code>, and it is the card that INTRODUCED the exact wording measured here ("! lock file missing — N store dirs unrecorded, run <code>boost sync</code>"). Grep confirms <code>lockfile.check()</code>/<code>store.has_content()</code> appear ONLY in <code>quality.py:442,447</code> and <code>_common.py:57,61</code> — never in <code>store.py</code>. The repair engine was never converted. - <code>sync-deletes-unowned-broken-symlinks.md</code> (PR #273) and <code>heal-deleted-links-it-never-made.md</code> (PR #459) both concern ownership of BROKEN/foreign links; the links here are live, owned, and resolve. Sharpest near-miss evidence: the heal card's own body says ownership must be read from the link "because the two moments a dangling link is most likely to exist — a skill uninstalled mid-sweep, <b>a lock file that has gone missing</b> — are exactly the moments the lock cannot answer", then applies that reasoning only to the <code>points_into_store</code> half of the predicate, leaving <code>link.name not in lock</code> still consulting the lock. - <code>audit-focus-profile-sideline-...md</code> (PR #741) is the inverse direction — sync RELINKS via <code>missing_links</code>, undoing a sideline.
1328
-
1329
- <b>Why it is worth doing.</b> This is the recovery surface behaving as a destroyer at the exact moment a user reaches for it. The lock file is the one file with no atomic-write protection story a new user knows about (an interrupted install, a full disk, a bad restore), the skill on disk and its four agent links are all still correct, and the single command doctor prints — twice — silently uninstalls it from Claude Code, Cursor, Windsurf and Antigravity, exits 0, and calls the result healthy two commands later. The one command that actually recovers (<code>boost install &lt;name&gt;</code>) is never mentioned, and the corrupt-lock alternative (<code>boost replay</code>) is empty on any machine with a single install — i.e.
1330
-
1331
- <em>Found by an automated audit of retrieval/eval quality, the search &amp; browse surfaces, and first-run onboarding; every finding was then re-measured from scratch by an independent adversarial verifier whose instruction was to refute it. Verdict: <b>CORRECTED</b>. No fix is prescribed here — the measurement is the contribution.</em></p>
1332
- <div class="meta">
1333
- <span class="m">Complexity <b>L</b></span>
1334
- <span class="m hi">Impact <b>High</b></span>
1335
- <span class="m">Wow <b class="wow">★★★★</b></span>
1336
- <span class="m">store.sync_plan decides staleness with link.name not in lock where lock = lockfile.in…</span>
1337
- </div>
1338
- </article>
1339
-
1340
1296
  <article class="cap rcard" id="err-multiline-hint-colours-across-the-newline">
1341
1297
  <div class="head"><span class="pill planned">Planned</span><span class="cat">UX · Bug</span></div>
1342
1298
  <h3><code>out.err</code>'s multi-line hint is coloured as one span, so line 1 ends with no RESET and lines 2+ carry no start code</h3>
@@ -4545,6 +4501,18 @@ rather than leaving <code>doctor</code> as the only command that knows.</p>
4545
4501
  </div>
4546
4502
  </article>
4547
4503
 
4504
+ <article class="cap rcard" id="doctor-prescribes-sync-that-deletes-live-links">
4505
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Onboarding · Bug</span></div>
4506
+ <h3>A missing or corrupt lock file makes doctor prescribe <code>boost sync</code>/<code>boost heal</code>, and both delete every live agent symlink of an intact install</h3>
4507
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md">Write-up &middot; doctor-prescribes-sync-that-deletes-live-links.md</a></p>
4508
+ <div class="meta">
4509
+ <span class="m">Complexity <b>L</b></span>
4510
+ <span class="m hi">Impact <b>High</b></span>
4511
+ <span class="m">Wow <b class="wow">★★★★</b></span>
4512
+ <span class="m">store.sync_plan decides staleness with link.name not in lock where lock = lockfile.in…</span>
4513
+ </div>
4514
+ </article>
4515
+
4548
4516
  <article class="cap rcard" id="audit-import-all-skips-the-injection-secret-scans-and-the-per-skil">
4549
4517
  <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Safety · Bug</span></div>
4550
4518
  <h3>import <code>--all</code> skips the injection/secret scans and the per-skill report single import runs</h3>
@@ -1609,12 +1609,13 @@ class TestSyncJson:
1609
1609
  plan = json.loads(boost("sync", "--diff", "--json").out)
1610
1610
  assert plan == {"missing_store": [], "missing_links": [],
1611
1611
  "blocked_links": [], "stale_links": [],
1612
- "orphaned_store": [],
1612
+ "orphaned_store": [], "unrecorded_store": [],
1613
1613
  "missing_materializations": [], "out_of_scope_links": [],
1614
1614
  "project": {"missing": [], "orphaned": []}}
1615
1615
  data = json.loads(boost("sync", "--json").out)
1616
1616
  assert data == {"actions": [], "pruned": [], "orphaned_store": [],
1617
- "out_of_scope_links": [], "blocked_links": []}
1617
+ "unrecorded_store": [], "out_of_scope_links": [],
1618
+ "blocked_links": []}
1618
1619
 
1619
1620
  def test_a_narrowing_reinstall_is_reported_and_pruned_only_on_request(
1620
1621
  self, boost, installed):
@@ -181,6 +181,42 @@ class TestDoctor:
181
181
  assert "lock file missing — 1 store dir unrecorded, run `boost sync`" in r.out
182
182
  assert "lock file integrity OK" not in r.out
183
183
 
184
+ def test_following_the_missing_lock_prescription_repairs_not_uninstalls(
185
+ self, boost, installed):
186
+ """The prescription used to be an uninstaller: `boost sync` removed
187
+ every live agent link with green ticks and exit 0. It must now be the
188
+ repair doctor promises, and doctor must say so once, not twice."""
189
+ links = [p for p in (paths.home() / d / "brainstorming" for d in (
190
+ ".claude/skills", ".cursor/skills", ".windsurf/skills",
191
+ ".gemini/antigravity-cli/skills")) if p.is_symlink()]
192
+ assert len(links) == 4
193
+ paths.lockfile_path().unlink()
194
+ r = boost("doctor", expect=1)
195
+ assert "run `boost sync` to re-record it" in r.out
196
+ assert "orphaned store dir" not in r.out
197
+ r = boost("sync")
198
+ assert "re-recorded brainstorming from" in r.out
199
+ assert "removed stale link" not in r.out
200
+ assert all(p.is_symlink() and p.exists() for p in links)
201
+ r = boost("doctor")
202
+ assert "lock file parses (v3)" in r.out
203
+
204
+ def test_a_corrupt_lock_leaves_sync_non_destructive(self, boost, installed):
205
+ link = paths.home() / ".claude/skills" / "brainstorming"
206
+ paths.lockfile_path().write_text("{oops", encoding="utf-8")
207
+ r = boost("sync")
208
+ assert "removed stale link" not in r.out
209
+ assert "restore the lock with `boost replay`" in r.out + r.err
210
+ assert link.is_symlink() and link.exists()
211
+ r = boost("doctor", expect=1)
212
+ assert "orphaned store dir" not in r.out
213
+
214
+ def test_heal_previews_the_re_record(self, boost, installed):
215
+ paths.lockfile_path().unlink()
216
+ r = boost("heal", "--dry-run")
217
+ assert "would re-record brainstorming" in r.out
218
+ assert "would remove stale link" not in r.out
219
+
184
220
  def test_missing_lock_with_empty_store_is_not_an_issue(self, boost, sandbox):
185
221
  # No lock file and nothing in the store either: a fresh install, not
186
222
  # a fault. Must not claim "parses" for a file that isn't there.
@@ -912,7 +912,8 @@ class TestUninstall:
912
912
  class TestSyncPlan:
913
913
  EMPTY: ClassVar[dict] = {"missing_store": [], "missing_links": [],
914
914
  "blocked_links": [], "stale_links": [], "orphaned_store": [],
915
- "missing_materializations": [], "out_of_scope_links": []}
915
+ "unrecorded_store": [], "missing_materializations": [],
916
+ "out_of_scope_links": []}
916
917
 
917
918
  def test_clean_state_empty_plan(self, brainstorming):
918
919
  assert store.sync_plan() == self.EMPTY