boost-skill-cli 1.2.165__tar.gz → 1.2.166__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 (1131) hide show
  1. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/journal.py +1 -1
  4. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  5. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/SOURCES.txt +2 -1
  6. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/text-io-leaves-its-encoding-to-the-locale.md +44 -24
  7. boost_skill_cli-1.2.166/docs/roadmap/items/writers-whose-bytes-are-compared-do-not-pin-their-newline.md +49 -0
  8. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap.html +53 -75
  9. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_workspace_scope.py +5 -3
  10. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_canary_deps.py +2 -2
  11. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_baseline.py +7 -5
  12. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_corpus.py +1 -1
  13. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gemini_agent_sanitize.py +3 -2
  14. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_journal.py +32 -1
  15. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mutation_shards.py +51 -36
  16. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mutation_subfile_shards.py +28 -21
  17. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mutation_weights_drift.py +1 -1
  18. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shards.py +1 -1
  19. boost_skill_cli-1.2.166/tests/unit/test_text_io_names_its_encoding.py +496 -0
  20. boost_skill_cli-1.2.165/tests/unit/test_mutation_shards_names_its_encoding.py +0 -296
  21. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.gitattributes +0 -0
  22. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.gitignore +0 -0
  23. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.gitleaks.toml +0 -0
  24. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.htmlvalidate.json +0 -0
  25. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.lighthouserc.json +0 -0
  26. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.lycheeignore +0 -0
  27. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.markdownlint-cli2.jsonc +0 -0
  28. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.pre-commit-config.yaml +0 -0
  29. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.stylelintrc.json +0 -0
  30. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.vale/styles/boost/AIWriting.yml +0 -0
  31. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.vale/styles/boost/Terminology.yml +0 -0
  32. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  33. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/.vale.ini +0 -0
  34. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/CLAUDE.md +0 -0
  35. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/CODE_OF_CONDUCT.md +0 -0
  36. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/CONTRIBUTING.md +0 -0
  37. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/DCO +0 -0
  38. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/GOVERNANCE.md +0 -0
  39. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/LICENSE +0 -0
  40. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/MAINTAINERS.md +0 -0
  41. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/MANIFEST.in +0 -0
  42. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/Makefile +0 -0
  43. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/README.md +0 -0
  44. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/SECURITY.md +0 -0
  45. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/SUPPORT.md +0 -0
  46. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost +0 -0
  47. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/__init__.py +0 -0
  48. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/__main__.py +0 -0
  49. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/cli.py +0 -0
  50. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/cliparse.py +0 -0
  51. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/__init__.py +0 -0
  52. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/_common.py +0 -0
  53. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/bmad.py +0 -0
  54. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/configuration.py +0 -0
  55. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/discovery.py +0 -0
  56. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/hooks.py +0 -0
  57. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/info.py +0 -0
  58. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/intelligence.py +0 -0
  59. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/pkg.py +0 -0
  60. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/quality.py +0 -0
  61. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/quickstart.py +0 -0
  62. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/run.py +0 -0
  63. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/safety.py +0 -0
  64. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/taps.py +0 -0
  65. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/commands/team.py +0 -0
  66. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/__init__.py +0 -0
  67. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/adapters.py +0 -0
  68. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/agents.py +0 -0
  69. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/ai.py +0 -0
  70. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/aihost.py +0 -0
  71. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/archive.py +0 -0
  72. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/bmad.py +0 -0
  73. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/bootstrap.py +0 -0
  74. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/browse.py +0 -0
  75. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/builtin.py +0 -0
  76. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/capabilities.py +0 -0
  77. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/catalog.py +0 -0
  78. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/catalogbundle.py +0 -0
  79. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/chat.py +0 -0
  80. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/claude_settings.py +0 -0
  81. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/cohort.py +0 -0
  82. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/compact.py +0 -0
  83. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/complete.py +0 -0
  84. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/config.py +0 -0
  85. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/dense.py +0 -0
  86. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/deps.py +0 -0
  87. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/discovery.py +0 -0
  88. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/ed25519.py +0 -0
  89. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/embed.py +0 -0
  90. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/faithfulness.py +0 -0
  91. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/frontmatter.py +0 -0
  92. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/gitutil.py +0 -0
  93. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/hookhost.py +0 -0
  94. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/imperative.py +0 -0
  95. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/injectscan.py +0 -0
  96. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/installscan.py +0 -0
  97. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/integrity.py +0 -0
  98. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/jsonstate.py +0 -0
  99. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/localembed.py +0 -0
  100. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/lockfile.py +0 -0
  101. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/logs.py +0 -0
  102. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/mcp.py +0 -0
  103. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/mcpdecl.py +0 -0
  104. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/mcphost.py +0 -0
  105. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/minisign.py +0 -0
  106. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/nethttp.py +0 -0
  107. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/output.py +0 -0
  108. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/paths.py +0 -0
  109. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/policy.py +0 -0
  110. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/prereq.py +0 -0
  111. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/projectlock.py +0 -0
  112. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/provenance.py +0 -0
  113. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/rag.py +0 -0
  114. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/registry.py +0 -0
  115. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/report.py +0 -0
  116. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/resolve.py +0 -0
  117. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/rules.py +0 -0
  118. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/scopes.py +0 -0
  119. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/secretscan.py +0 -0
  120. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/selfupdate.py +0 -0
  121. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/serve.py +0 -0
  122. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/shards.py +0 -0
  123. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/stackprobe.py +0 -0
  124. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/staleness.py +0 -0
  125. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/store.py +0 -0
  126. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/trustaudit.py +0 -0
  127. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/typedvalue.py +0 -0
  128. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/typosquat.py +0 -0
  129. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/updatediff.py +0 -0
  130. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/util.py +0 -0
  131. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/core/workflows.py +0 -0
  132. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/data/registries.json +0 -0
  133. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/data/rules/boost-first.mdc +0 -0
  134. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/errors.py +0 -0
  135. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_cli/spin.py +0 -0
  136. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/__init__.py +0 -0
  137. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/_compat.py +0 -0
  138. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/graph.py +0 -0
  139. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/loader.py +0 -0
  140. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/py.typed +0 -0
  141. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_langchain/retriever.py +0 -0
  142. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  143. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  144. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/requires.txt +0 -0
  145. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/boost_skill_cli.egg-info/top_level.txt +0 -0
  146. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/codecov.yml +0 -0
  147. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/DEBUGGING.md +0 -0
  148. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/adapters.html +0 -0
  149. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/architecture/README.md +0 -0
  150. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/architecture/c4-components-core.md +0 -0
  151. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/architecture/c4-containers.md +0 -0
  152. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/architecture/c4-context.md +0 -0
  153. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/architecture/c4-dynamic-install.md +0 -0
  154. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/bmad.md +0 -0
  155. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/distill.gif +0 -0
  156. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/doctor.gif +0 -0
  157. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/explain.gif +0 -0
  158. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/hooks.gif +0 -0
  159. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/install.gif +0 -0
  160. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/pulse.gif +0 -0
  161. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/search.gif +0 -0
  162. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/gifs/tap.gif +0 -0
  163. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/distill.tape +0 -0
  164. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/doctor.tape +0 -0
  165. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/explain.tape +0 -0
  166. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/hooks.tape +0 -0
  167. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/install.tape +0 -0
  168. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/pulse.tape +0 -0
  169. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/search.tape +0 -0
  170. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel/tapes/tap.tape +0 -0
  171. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/carousel.html +0 -0
  172. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/chat.html +0 -0
  173. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/code-review.md +0 -0
  174. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/commands.html +0 -0
  175. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/commit-audit.md +0 -0
  176. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/demo-index.json +0 -0
  177. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/demo.gif +0 -0
  178. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/demo.html +0 -0
  179. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/demo.tape +0 -0
  180. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/dependencies.md +0 -0
  181. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/design-roadmap.html +0 -0
  182. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/eval-latest.json +0 -0
  183. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/eval.html +0 -0
  184. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/index.html +0 -0
  185. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/langchain.html +0 -0
  186. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/mcp-hub.html +0 -0
  187. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/openssf-badge.md +0 -0
  188. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/openssf-playbook.md +0 -0
  189. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/rag-architecture.md +0 -0
  190. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D01.md +0 -0
  191. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D02.md +0 -0
  192. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D03.md +0 -0
  193. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D04.md +0 -0
  194. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D05.md +0 -0
  195. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D06.md +0 -0
  196. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D07.md +0 -0
  197. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D08.md +0 -0
  198. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D09.md +0 -0
  199. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D10.md +0 -0
  200. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D11.md +0 -0
  201. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D12.md +0 -0
  202. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D13.md +0 -0
  203. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D14.md +0 -0
  204. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D15.md +0 -0
  205. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D16.md +0 -0
  206. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D17.md +0 -0
  207. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D18.md +0 -0
  208. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D19.md +0 -0
  209. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D20.md +0 -0
  210. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D21.md +0 -0
  211. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D22.md +0 -0
  212. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D23.md +0 -0
  213. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D24.md +0 -0
  214. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D25.md +0 -0
  215. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D26.md +0 -0
  216. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/BOOST-D27.md +0 -0
  217. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
  218. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  219. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
  220. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  221. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  222. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  223. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  224. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
  225. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  226. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  227. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  228. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  229. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/an-item-materialized-nowhere-reads-ok-in-verify-health-drift.md +0 -0
  230. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  231. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  232. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  233. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  234. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  235. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  236. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  237. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-attest-findings.md +0 -0
  238. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-audit-findings.md +0 -0
  239. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  240. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-browse-findings.md +0 -0
  241. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  242. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  243. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  244. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  245. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-chat-findings.md +0 -0
  246. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  247. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  248. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  249. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-completions-findings.md +0 -0
  250. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-config-findings.md +0 -0
  251. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  252. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-context-findings.md +0 -0
  253. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  254. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  255. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-create-findings.md +0 -0
  256. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  257. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-deps-findings.md +0 -0
  258. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-discover-findings.md +0 -0
  259. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  260. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  261. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-drift-findings.md +0 -0
  262. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  263. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-edit-findings.md +0 -0
  264. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  265. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-explain-findings.md +0 -0
  266. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-export-findings.md +0 -0
  267. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  268. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  269. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  270. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  271. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-git-operations-never-set-git-terminal-prompt-0-so-a-404-priv.md +0 -0
  272. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-health-findings.md +0 -0
  273. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  274. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  275. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-import-findings.md +0 -0
  276. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-index-findings.md +0 -0
  277. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  278. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  279. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-install-findings.md +0 -0
  280. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  281. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  282. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-lint-findings.md +0 -0
  283. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-log-findings.md +0 -0
  284. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  285. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  286. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  287. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  288. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  289. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  290. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-out-table-clips-data-columns-to-an-assumed-80-columns-when-s.md +0 -0
  291. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  292. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  293. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  294. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-pinned-taps-silently-moved-to-head-by-update-re-clone-and-co.md +0 -0
  295. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-policy-findings.md +0 -0
  296. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-preview-findings.md +0 -0
  297. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-profile-findings.md +0 -0
  298. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  299. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  300. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  301. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  302. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  303. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  304. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  305. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  306. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  307. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-replay-findings.md +0 -0
  308. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-root-findings.md +0 -0
  309. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  310. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-run-findings.md +0 -0
  311. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  312. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-search-findings.md +0 -0
  313. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  314. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-singular-plural-misses-1-skills-1-issue-need-1-skill-pass-ac.md +0 -0
  315. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  316. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  317. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  318. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  319. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  320. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  321. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-sync-findings.md +0 -0
  322. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-tag-findings.md +0 -0
  323. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  324. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-tap-findings.md +0 -0
  325. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-taps-findings.md +0 -0
  326. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  327. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-test-findings.md +0 -0
  328. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-trust-findings.md +0 -0
  329. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  330. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  331. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-untap-findings.md +0 -0
  332. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-update-findings.md +0 -0
  333. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  334. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-verify-findings.md +0 -0
  335. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/audit-who-findings.md +0 -0
  336. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  337. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  338. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  339. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  340. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  341. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  342. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  343. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  344. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  345. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  346. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  347. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  348. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  349. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  350. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  351. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  352. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/boost-first-rule.md +0 -0
  353. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  354. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  355. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/branch-current-gate.md +0 -0
  356. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  357. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  358. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  359. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  360. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  361. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  362. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
  363. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/canary-deps-check-skips-in-the-required-job.md +0 -0
  364. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  365. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  366. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  367. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  368. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  369. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  370. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  371. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
  372. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  373. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  374. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  375. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  376. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  377. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cli-command-audit.md +0 -0
  378. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  379. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  380. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  381. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
  382. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
  383. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  384. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/command-carousel-page.md +0 -0
  385. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  386. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  387. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  388. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  389. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  390. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/concurrency-probe-measured-a-race-not-the-pool.md +0 -0
  391. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  392. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
  393. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  394. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  395. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  396. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  397. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  398. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  399. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  400. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  401. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  402. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  403. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  404. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  405. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  406. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  407. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
  408. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  409. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  410. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  411. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  412. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  413. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  414. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  415. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  416. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  417. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  418. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  419. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  420. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  421. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  422. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  423. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  424. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  425. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  426. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  427. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  428. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
  429. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  430. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  431. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  432. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  433. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  434. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  435. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  436. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  437. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  438. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  439. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  440. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  441. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  442. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  443. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  444. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  445. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  446. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  447. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  448. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  449. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/floors-job-never-installed-setuptools.md +0 -0
  450. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  451. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  452. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  453. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  454. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
  455. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  456. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  457. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  458. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  459. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  460. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  461. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  462. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  463. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/github-community-health-files.md +0 -0
  464. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  465. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  466. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  467. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  468. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  469. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  470. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
  471. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  472. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
  473. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
  474. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  475. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  476. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
  477. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  478. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  479. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  480. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
  481. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  482. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  483. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  484. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  485. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  486. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  487. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/is-dir-follows-a-symlink-at-eleven-rmtree-call-sites.md +0 -0
  488. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  489. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
  490. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  491. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  492. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  493. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  494. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  495. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  496. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  497. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  498. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  499. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  500. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  501. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
  502. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  503. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  504. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  505. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  506. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  507. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  508. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  509. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  510. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  511. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  512. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  513. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  514. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  515. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
  516. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  517. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  518. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  519. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  520. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  521. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  522. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  523. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
  524. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  525. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  526. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  527. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  528. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
  529. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  530. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  531. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
  532. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  533. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  534. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  535. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  536. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
  537. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  538. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
  539. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  540. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  541. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  542. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  543. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  544. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  545. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  546. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  547. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  548. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  549. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  550. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-shard-balance-hints-are-a-release-behind.md +0 -0
  551. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  552. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  553. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  554. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  555. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  556. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  557. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  558. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
  559. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  560. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  561. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  562. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
  563. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  564. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  565. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  566. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/openssf-playbook.md +0 -0
  567. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/openssf-silver.md +0 -0
  568. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  569. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  570. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  571. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  572. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  573. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  574. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  575. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  576. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  577. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  578. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  579. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  580. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  581. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  582. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/project-scope-in-an-unmarked-tree-does-not-walk-up.md +0 -0
  583. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  584. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/project-uninstall-deletes-any-in-repo-directory-the-lock-names.md +0 -0
  585. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  586. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  587. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  588. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  589. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  590. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  591. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  592. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  593. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  594. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  595. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  596. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  597. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  598. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  599. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
  600. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  601. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  602. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  603. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  604. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
  605. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  606. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  607. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  608. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  609. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  610. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  611. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  612. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  613. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  614. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  615. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
  616. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  617. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/relicence-apache-2.md +0 -0
  618. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  619. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  620. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  621. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  622. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  623. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  624. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  625. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  626. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  627. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  628. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  629. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  630. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  631. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/rule-and-workflow-rows-carry-a-scope-nothing-but-list-local-reads.md +0 -0
  632. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  633. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  634. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  635. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  636. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
  637. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  638. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  639. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  640. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  641. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  642. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  643. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  644. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  645. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  646. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  647. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  648. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  649. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  650. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  651. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  652. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  653. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  654. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  655. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  656. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  657. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  658. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  659. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  660. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  661. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  662. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  663. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  664. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  665. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  666. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  667. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  668. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  669. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  670. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  671. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  672. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  673. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  674. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  675. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  676. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  677. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  678. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  679. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  680. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  681. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  682. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  683. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  684. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  685. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
  686. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  687. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  688. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  689. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  690. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  691. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  692. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
  693. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
  694. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
  695. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  696. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  697. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
  698. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  699. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  700. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  701. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  702. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  703. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  704. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  705. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  706. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  707. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  708. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows.md +0 -0
  709. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  710. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  711. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  712. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  713. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
  714. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  715. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  716. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  717. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  718. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  719. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/util-rmtree-chmods-a-symlink-target-outside-the-tree.md +0 -0
  720. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  721. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  722. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  723. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  724. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  725. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  726. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  727. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  728. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  729. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/workspace-scope-install.md +0 -0
  730. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/wrap-width-judged-by-stdout.md +0 -0
  731. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/zip-strict-audit.md +0 -0
  732. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  733. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  734. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/security-design.md +0 -0
  735. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/semantic-search.md +0 -0
  736. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  737. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/verifying-releases.md +0 -0
  738. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/meta.md +0 -0
  739. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/openvex.json +0 -0
  740. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  741. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  742. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  743. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  744. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/eslint.config.mjs +0 -0
  745. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/README.md +0 -0
  746. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/__init__.py +0 -0
  747. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/baseline.json +0 -0
  748. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/faithfulness.py +0 -0
  749. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/golden_set.json +0 -0
  750. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/make_corpus.py +0 -0
  751. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/make_golden.py +0 -0
  752. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/metrics.py +0 -0
  753. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/publish_golden_dataset.py +0 -0
  754. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/evals/run_evals.py +0 -0
  755. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/examples/README.md +0 -0
  756. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/examples/adapt-demo.sh +0 -0
  757. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/examples/boost-run-prototype.sh +0 -0
  758. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/index.html +0 -0
  759. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/noxfile.py +0 -0
  760. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/pyproject.toml +0 -0
  761. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/coverage-tools.in +0 -0
  762. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/coverage-tools.txt +0 -0
  763. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/lint-tools.in +0 -0
  764. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/lint-tools.txt +0 -0
  765. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/mutation-tools.in +0 -0
  766. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/mutation-tools.txt +0 -0
  767. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/platform-pins.lock +0 -0
  768. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/release-tools.in +0 -0
  769. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/release-tools.txt +0 -0
  770. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/test-tools.in +0 -0
  771. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/requirements/test-tools.txt +0 -0
  772. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/a11y_check.py +0 -0
  773. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/add_spdx_headers.py +0 -0
  774. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/bench_cli.sh +0 -0
  775. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_command_reference.py +0 -0
  776. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_demo_index.py +0 -0
  777. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_registries.py +0 -0
  778. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_roadmap.py +0 -0
  779. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_scale_corpus.py +0 -0
  780. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/build_vex.py +0 -0
  781. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_anchors.py +0 -0
  782. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_branch_current.py +0 -0
  783. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_dco.py +0 -0
  784. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_licenses.py +0 -0
  785. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_reproducible.py +0 -0
  786. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/check_required_checks.py +0 -0
  787. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/ensure_eval_corpus.sh +0 -0
  788. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_corpus.py +0 -0
  789. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_explain.py +0 -0
  790. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_gate.py +0 -0
  791. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_recommend.py +0 -0
  792. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_retrieval.py +0 -0
  793. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_stats_summary.py +0 -0
  794. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/eval_tools.py +0 -0
  795. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/import_budget.py +0 -0
  796. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/lock_toolchain.py +0 -0
  797. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/measure_near_duplicate_bound.py +0 -0
  798. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/measure_registry.py +0 -0
  799. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/mutation_gate.py +0 -0
  800. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/mutation_shards.py +0 -0
  801. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/mutation_weights.json +0 -0
  802. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/normalize_sdist.py +0 -0
  803. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/page_budget.py +0 -0
  804. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/perf_gate.py +0 -0
  805. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/post_deploy_smoke.py +0 -0
  806. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/publish_eval_json.py +0 -0
  807. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/publish_shards.py +0 -0
  808. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/release_guard.py +0 -0
  809. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/release_preflight.py +0 -0
  810. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/serve_docs.py +0 -0
  811. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/scripts/shard_plan.py +0 -0
  812. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/setup.cfg +0 -0
  813. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/sonar-project.properties +0 -0
  814. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/style/README.md +0 -0
  815. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/style/boost.css +0 -0
  816. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/style/boost.js +0 -0
  817. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/style/demo.html +0 -0
  818. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/adapt.feature +0 -0
  819. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/browse.feature +0 -0
  820. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/count.feature +0 -0
  821. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/discover.feature +0 -0
  822. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/doctor.feature +0 -0
  823. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/environment.py +0 -0
  824. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/explain.feature +0 -0
  825. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/index.feature +0 -0
  826. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/install.feature +0 -0
  827. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/list.feature +0 -0
  828. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/mcp.feature +0 -0
  829. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/search.feature +0 -0
  830. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/steps/cli_steps.py +0 -0
  831. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/steps/discovery_steps.py +0 -0
  832. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/steps/mcp_steps.py +0 -0
  833. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/bdd/features/steps/quality_steps.py +0 -0
  834. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/conftest.py +0 -0
  835. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/baseline.json +0 -0
  836. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/explain.jsonl +0 -0
  837. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  838. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/golden-natural.jsonl +0 -0
  839. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/golden.jsonl +0 -0
  840. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/recommend.jsonl +0 -0
  841. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/taps-scale.txt +0 -0
  842. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/taps.txt +0 -0
  843. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/eval/tool_calls.jsonl +0 -0
  844. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  845. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_bmad_all_hosts.py +0 -0
  846. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_bmad_personas_scope.py +0 -0
  847. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_capabilities_policy.py +0 -0
  848. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_adapt.py +0 -0
  849. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_bmad.py +0 -0
  850. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_catalog.py +0 -0
  851. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_chat.py +0 -0
  852. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_configuration.py +0 -0
  853. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_discovery.py +0 -0
  854. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_hooks.py +0 -0
  855. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_hooks_codex.py +0 -0
  856. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_hooks_gemini.py +0 -0
  857. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_identifier_columns.py +0 -0
  858. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_info.py +0 -0
  859. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_intelligence.py +0 -0
  860. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_json_reports.py +0 -0
  861. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_pane_width.py +0 -0
  862. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_pkg.py +0 -0
  863. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_quality.py +0 -0
  864. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_quickstart.py +0 -0
  865. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_tap_pins.py +0 -0
  866. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_taps.py +0 -0
  867. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_cli_team.py +0 -0
  868. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  869. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  870. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_everyday_loop.py +0 -0
  871. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_integrity_enforce.py +0 -0
  872. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_keyed_no_store_hint.py +0 -0
  873. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_kind_conformance.py +0 -0
  874. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_property_parsers.py +0 -0
  875. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_recommend_because_is_true.py +0 -0
  876. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
  877. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_reports_match_reality.py +0 -0
  878. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_run.py +0 -0
  879. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/functional/test_tap_signing.py +0 -0
  880. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/README.md +0 -0
  881. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  882. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  883. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  884. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  885. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  886. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  887. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  888. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  889. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  890. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  891. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  892. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  893. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  894. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  895. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  896. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  897. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  898. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  899. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  900. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  901. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  902. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  903. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  904. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/fuzz_frontmatter.py +0 -0
  905. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/fuzz/fuzz_registry.py +0 -0
  906. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/langchain/conftest.py +0 -0
  907. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/langchain/test_graph.py +0 -0
  908. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/langchain/test_loader.py +0 -0
  909. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/langchain/test_retriever.py +0 -0
  910. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/make_fixture.py +0 -0
  911. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/perf/test_benchmarks.py +0 -0
  912. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/smoke.sh +0 -0
  913. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  914. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_a11y_check.py +0 -0
  915. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_action_pin_lockstep.py +0 -0
  916. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_adapters.py +0 -0
  917. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_adapters_multi.py +0 -0
  918. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_adapters_runner.py +0 -0
  919. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_agents.py +0 -0
  920. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_ai.py +0 -0
  921. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_aihost.py +0 -0
  922. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_archive.py +0 -0
  923. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_bmad_core.py +0 -0
  924. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_boost_first_offer.py +0 -0
  925. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_bootstrap.py +0 -0
  926. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_bot_pr_dco.py +0 -0
  927. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_branch_current.py +0 -0
  928. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_browse.py +0 -0
  929. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_builtin.py +0 -0
  930. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_capabilities.py +0 -0
  931. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_catalog.py +0 -0
  932. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_catalog_distinct.py +0 -0
  933. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_catalog_keyword_words.py +0 -0
  934. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_catalogbundle.py +0 -0
  935. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_chat.py +0 -0
  936. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_check_anchors.py +0 -0
  937. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_check_dco.py +0 -0
  938. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_check_licenses.py +0 -0
  939. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_check_reproducible.py +0 -0
  940. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_claude_settings.py +0 -0
  941. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_claude_settings_codex.py +0 -0
  942. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_clean_internal_cache.py +0 -0
  943. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_cli_update_shards.py +0 -0
  944. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_cliparse.py +0 -0
  945. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_codeql_analysis_key.py +0 -0
  946. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_cohort.py +0 -0
  947. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_command_reference_fresh.py +0 -0
  948. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_community_health_files.py +0 -0
  949. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_compact.py +0 -0
  950. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_complete.py +0 -0
  951. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_complete_rc_block.py +0 -0
  952. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_config.py +0 -0
  953. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_content_dedupe.py +0 -0
  954. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_content_identity.py +0 -0
  955. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_corpus_prose.py +0 -0
  956. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  957. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_coverage_gate_prose.py +0 -0
  958. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_crash_redaction.py +0 -0
  959. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dedup_trust.py +0 -0
  960. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_demo_index.py +0 -0
  961. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense.py +0 -0
  962. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  963. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_embed_dedupe.py +0 -0
  964. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_entry_reuse.py +0 -0
  965. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_entry_vectors.py +0 -0
  966. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_fallback.py +0 -0
  967. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_fix_hint.py +0 -0
  968. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_model_unavailable.py +0 -0
  969. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_progress.py +0 -0
  970. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_quantized.py +0 -0
  971. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_ready_order.py +0 -0
  972. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_shard_real_schema.py +0 -0
  973. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  974. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_shards.py +0 -0
  975. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_status.py +0 -0
  976. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_status_cheap.py +0 -0
  977. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dense_vector_dedupe.py +0 -0
  978. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dependabot_config.py +0 -0
  979. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_deps.py +0 -0
  980. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_discovery.py +0 -0
  981. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_distill_merge.py +0 -0
  982. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_docs_pages_linked.py +0 -0
  983. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_docsite_chrome.py +0 -0
  984. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_doctor_output_polish.py +0 -0
  985. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_drift_hint.py +0 -0
  986. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_dry_run_parity.py +0 -0
  987. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_ed25519.py +0 -0
  988. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_embed.py +0 -0
  989. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_embed_local.py +0 -0
  990. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_embed_outranking.py +0 -0
  991. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_embed_truncated_response.py +0 -0
  992. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_entry_key.py +0 -0
  993. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_errors_and_cli_table.py +0 -0
  994. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_corpus_bodies.py +0 -0
  995. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_faithfulness.py +0 -0
  996. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_gate.py +0 -0
  997. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_grading.py +0 -0
  998. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_metrics.py +0 -0
  999. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_query_sets.py +0 -0
  1000. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_stats_summary.py +0 -0
  1001. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_tools.py +0 -0
  1002. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_eval_tools_probe.py +0 -0
  1003. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  1004. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_faithfulness.py +0 -0
  1005. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_first_run_pointer.py +0 -0
  1006. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_frontmatter.py +0 -0
  1007. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_fuzz_targets.py +0 -0
  1008. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gitleaks_config.py +0 -0
  1009. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gitutil.py +0 -0
  1010. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gitutil_lfs.py +0 -0
  1011. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gitutil_sparse.py +0 -0
  1012. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_gstack_coexistence.py +0 -0
  1013. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_help_contracts.py +0 -0
  1014. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_hook_settings_hosts.py +0 -0
  1015. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_hookhost.py +0 -0
  1016. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_hookhost_codex.py +0 -0
  1017. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_imperative.py +0 -0
  1018. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_import_budget.py +0 -0
  1019. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_injectscan.py +0 -0
  1020. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_install_permission_error.py +0 -0
  1021. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_installscan.py +0 -0
  1022. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_integrity.py +0 -0
  1023. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_jsonstate.py +0 -0
  1024. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_langchain_packaging.py +0 -0
  1025. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_launcher_python_floor.py +0 -0
  1026. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_lighthouse_budgets.py +0 -0
  1027. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_link_ownership.py +0 -0
  1028. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_localembed.py +0 -0
  1029. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_localembed_e2e.py +0 -0
  1030. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_lockfile.py +0 -0
  1031. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_logs.py +0 -0
  1032. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_marketing_counts.py +0 -0
  1033. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcp.py +0 -0
  1034. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
  1035. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcp_install_scan.py +0 -0
  1036. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcp_read.py +0 -0
  1037. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcpdecl.py +0 -0
  1038. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mcphost.py +0 -0
  1039. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_measure_registry.py +0 -0
  1040. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_minisign.py +0 -0
  1041. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mutation_hardening.py +0 -0
  1042. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_mutmut_source_paths.py +0 -0
  1043. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_near_duplicate_collapse.py +0 -0
  1044. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_nethttp.py +0 -0
  1045. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_normalize_sdist.py +0 -0
  1046. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_output.py +0 -0
  1047. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_output_table_drop.py +0 -0
  1048. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_output_table_whole.py +0 -0
  1049. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_page_budget.py +0 -0
  1050. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_paths.py +0 -0
  1051. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_perf_gate.py +0 -0
  1052. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_pkg_confusions.py +0 -0
  1053. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_pkg_injection.py +0 -0
  1054. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_pkg_secrets.py +0 -0
  1055. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_platform_pins.py +0 -0
  1056. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_policy.py +0 -0
  1057. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_post_deploy_smoke.py +0 -0
  1058. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_prereq.py +0 -0
  1059. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1060. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_projectlock.py +0 -0
  1061. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_provenance.py +0 -0
  1062. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_publish_golden_dataset.py +0 -0
  1063. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_quickstart_readiness.py +0 -0
  1064. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rag.py +0 -0
  1065. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rag_completeness.py +0 -0
  1066. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rag_extra_hint.py +0 -0
  1067. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rag_fastpath.py +0 -0
  1068. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rag_fusion.py +0 -0
  1069. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_read_text_arg.py +0 -0
  1070. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_registries_fresh.py +0 -0
  1071. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_registry.py +0 -0
  1072. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_registry_categories.py +0 -0
  1073. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_registry_control_chars.py +0 -0
  1074. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_registry_parallel.py +0 -0
  1075. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_release_guard.py +0 -0
  1076. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_release_preflight.py +0 -0
  1077. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_repo_root_guard.py +0 -0
  1078. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_report.py +0 -0
  1079. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_required_checks.py +0 -0
  1080. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rerank_cache.py +0 -0
  1081. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_resolve.py +0 -0
  1082. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1083. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_roadmap_fresh.py +0 -0
  1084. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_rules.py +0 -0
  1085. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
  1086. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_scale_corpus.py +0 -0
  1087. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_schedule_plist.py +0 -0
  1088. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_scopes.py +0 -0
  1089. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_sdist_contents.py +0 -0
  1090. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_secretscan.py +0 -0
  1091. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_selfupdate.py +0 -0
  1092. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_serve.py +0 -0
  1093. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_serve_docs.py +0 -0
  1094. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shard_plan.py +0 -0
  1095. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shards_carry_forward.py +0 -0
  1096. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shards_incremental.py +0 -0
  1097. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shards_ingest.py +0 -0
  1098. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_shards_matrix.py +0 -0
  1099. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1100. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_spdx_headers.py +0 -0
  1101. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_spin.py +0 -0
  1102. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_stackprobe.py +0 -0
  1103. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_staleness.py +0 -0
  1104. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_store.py +0 -0
  1105. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_store_materialize.py +0 -0
  1106. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_sync_blocked_links.py +0 -0
  1107. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_sync_lost_lock.py +0 -0
  1108. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1109. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_tap_pins.py +0 -0
  1110. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_token_parity.py +0 -0
  1111. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_toolchain_lock.py +0 -0
  1112. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_trustaudit.py +0 -0
  1113. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_typedvalue.py +0 -0
  1114. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_typosquat.py +0 -0
  1115. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_updatediff.py +0 -0
  1116. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_upstream_path.py +0 -0
  1117. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_util.py +0 -0
  1118. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_version.py +0 -0
  1119. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_version_tags.py +0 -0
  1120. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_vex.py +0 -0
  1121. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_visual_harness_capture.py +0 -0
  1122. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_visual_harness_flags.py +0 -0
  1123. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_workflow_concurrency.py +0 -0
  1124. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1125. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1126. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_workflow_timeouts.py +0 -0
  1127. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_workflows.py +0 -0
  1128. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1129. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/visual/a11y_check.mjs +0 -0
  1130. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/tests/visual/console_check.mjs +0 -0
  1131. {boost_skill_cli-1.2.165 → boost_skill_cli-1.2.166}/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.165
3
+ Version: 1.2.166
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.165'
22
- __version_tuple__ = version_tuple = (1, 2, 165)
21
+ __version__ = version = '1.2.166'
22
+ __version_tuple__ = version_tuple = (1, 2, 166)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -52,7 +52,7 @@ def log(action: str, subject: str = "", **fields) -> None:
52
52
  p = paths.pulse_path()
53
53
  try:
54
54
  p.parent.mkdir(parents=True, exist_ok=True)
55
- with p.open("a") as f:
55
+ with p.open("a", encoding="utf-8") as f:
56
56
  f.write(json.dumps(event) + "\n")
57
57
  except OSError as e:
58
58
  if not _WARNED_UNSAVED:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.165
3
+ Version: 1.2.166
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -723,6 +723,7 @@ docs/roadmap/items/workflow-linting-actionlint.md
723
723
  docs/roadmap/items/workflow-sast-zizmor.md
724
724
  docs/roadmap/items/workspace-scope-install.md
725
725
  docs/roadmap/items/wrap-width-judged-by-stdout.md
726
+ docs/roadmap/items/writers-whose-bytes-are-compared-do-not-pin-their-newline.md
726
727
  docs/roadmap/items/zip-strict-audit.md
727
728
  docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md
728
729
  docs/roadmap/items/zizmor-pin-is-a-yanked-release.md
@@ -1031,7 +1032,6 @@ tests/unit/test_measure_registry.py
1031
1032
  tests/unit/test_minisign.py
1032
1033
  tests/unit/test_mutation_hardening.py
1033
1034
  tests/unit/test_mutation_shards.py
1034
- tests/unit/test_mutation_shards_names_its_encoding.py
1035
1035
  tests/unit/test_mutation_subfile_shards.py
1036
1036
  tests/unit/test_mutation_weights_drift.py
1037
1037
  tests/unit/test_mutmut_source_paths.py
@@ -1103,6 +1103,7 @@ tests/unit/test_sync_blocked_links.py
1103
1103
  tests/unit/test_sync_lost_lock.py
1104
1104
  tests/unit/test_sync_repairs_gutted_skill.py
1105
1105
  tests/unit/test_tap_pins.py
1106
+ tests/unit/test_text_io_names_its_encoding.py
1106
1107
  tests/unit/test_token_parity.py
1107
1108
  tests/unit/test_toolchain_lock.py
1108
1109
  tests/unit/test_trustaudit.py
@@ -2,16 +2,16 @@
2
2
  id: text-io-leaves-its-encoding-to-the-locale
3
3
  board: code
4
4
  section: compat
5
- status: planned
5
+ status: shipped
6
6
  category: Portability · Windows
7
7
  complexity: M
8
8
  impact: Med
9
9
  wow: 2
10
- note: 73 reads and writes take the locale's encoding; 910 writes take its line ending
10
+ note: all 73 encoded; the guard is repo-wide over 414 files; the newline half is its own card
11
11
  order: 362
12
- owner:
13
- pr:
14
- title: "73 reads and writes leave the text encoding to the locale, and the Windows jobs are the only thing that notices"
12
+ owner: loop/text-io-encoding
13
+ pr: 1015
14
+ title: "73 reads and writes left the text encoding to the locale, and the Windows jobs were the only thing that noticed"
15
15
  ---
16
16
  <code>Path.read_text()</code>, <code>Path.write_text()</code> and <code>open()</code> in text mode use
17
17
  <code>locale.getencoding()</code> when no <code>encoding=</code> is given. On Linux and macOS that is UTF-8
@@ -52,21 +52,35 @@ have refused a valid measurement and said "not readable JSON".
52
52
  <b>preview</b> rule, so <code>ruff check --select PLW1514</code> without <code>--preview</code> checks
53
53
  nothing at all and prints "All checks passed" &mdash; indistinguishable from a clean tree, and a trap
54
54
  this card fell into once already. And with <code>--preview</code> it resolves the receiver
55
- syntactically: over <code>origin/main</code> it reports exactly <b>one</b> site,
56
- <code>scripts/mutation_shards.py:718</code>, because it sees <code>path.read_text()</code> where
57
- <code>path = Path(...)</code> is in view; it never saw the <code>md.read_text()</code> off a pytest
58
- <code>tmp_path</code> fixture that actually broke CI. #1012 fixed that one site, so on <code>main</code>
59
- after this merge the rule reports <b>zero</b> while the walker still reports 73 &mdash; which is the
60
- clearest statement of the gap there is. The sweep wants the AST walker in
61
- <code>tests/unit/test_mutation_shards_names_its_encoding.py</code>, whose <code>WATCHED</code> tuple is the
62
- list to grow &mdash; it already pins the two files #1012 owns, so the guard generalises by adding a path
63
- rather than by being rewritten.
55
+ <em>syntactically</em>, which over this repo means it sees almost nothing: run against the
56
+ pre-sweep tree it reports <b>0</b> sites to the walker's <b>73</b>. It flags
57
+ <code>p.read_text()</code> only where <code>p = Path(...)</code> is in view, and all 73 are a
58
+ <code>tmp_path / "x"</code> fixture, a chained call or a parameter &mdash; including the
59
+ <code>md.read_text()</code> that actually broke CI. 0 against 73 is the clearest statement of the gap
60
+ there is, and the reason the rule was not simply switched on. Turning it on also means turning
61
+ <code>preview</code> on in <code>pyproject.toml</code>, which changes how every other selected rule
62
+ behaves; one rule, for 0 of the 73, is not that trade.
64
63
 
65
- <b>Shape of the work.</b> Mechanical but not blind: each site needs a decision between
66
- <code>encoding="utf-8"</code> and <code>read_bytes()</code>/binary mode, and a handful read files boost did
67
- not write (a user's <code>CLAUDE.md</code>, a tapped repo's Markdown) where <code>errors="replace"</code> may
68
- be the honest answer rather than a crash. Land it per-directory so each PR stays reviewable, extending
69
- <code>WATCHED</code> as it goes.
64
+ <b>What shipped.</b> All 73 sites name <code>encoding="utf-8"</code>, and the guard
65
+ &mdash; renamed <code>tests/unit/test_text_io_names_its_encoding.py</code>, since it is no longer about
66
+ the shard planner &mdash; walks every root holding Python rather than a <code>WATCHED</code> list of two:
67
+ <code>boost_cli</code>, <code>boost_langchain</code>, <code>evals</code>, <code>scripts</code>,
68
+ <code>tests</code> and <code>noxfile.py</code>, <b>414</b> files. Its <code>EXEMPT</code> set is empty and
69
+ documented to stay empty: a call that should not be flagged is a bug in <code>_is_file_open</code> or
70
+ <code>_mode</code>, where fixing it covers every file, not an entry that mutes one. The
71
+ <code>./boost</code> launcher is the one deliberate omission &mdash; it is a bash shim that
72
+ <code>ast.parse</code> cannot read and that opens no files.
73
+
74
+ <b>The single <code>boost_cli</code> site was the interesting one.</b>
75
+ <code>journal.log</code> appended to the pulse feed with <code>p.open("a")</code> while
76
+ <code>journal.events</code> read it back with <code>encoding="utf-8"</code>. That asymmetry is latent
77
+ rather than live: <code>json.dumps</code> defaults to <code>ensure_ascii=True</code>, so every byte
78
+ written today is ASCII and cp1252 agrees with UTF-8 about all of them. What makes it worth fixing is
79
+ the reader's <code>errors="replace"</code>, which would turn the first byte they ever disagreed about
80
+ into U+FFFD without raising &mdash; a feed that silently loses a character rather than failing. A
81
+ round-trip test cannot show any of this on Linux, so the test watches the argument reaching
82
+ <code>Path.open</code> instead of the bytes on disk; dropping the keyword and misspelling the codec
83
+ both fail it.
70
84
 
71
85
  <b>The encoding is only half of what text mode decides.</b> It also translates <code>\n</code> to the
72
86
  platform separator on write, so a file written with <code>encoding="utf-8"</code> on a Windows runner
@@ -76,8 +90,14 @@ the encoding leaves every writer whose output is compared against a string, a ha
76
90
  still platform-dependent, so this card covers <code>newline="\n"</code> on writers as well &mdash;
77
91
  readers need nothing, since universal newlines already fold CRLF on the way in.
78
92
 
79
- That second sweep is <b>910</b> writes (857 tests, 32 <code>boost_cli</code>, 21 <code>scripts</code>),
80
- and unlike the encoding it should <em>not</em> be applied everywhere: a write whose bytes nobody
81
- compares is fine as it is. The ones that matter are writers whose output is read back and compared
82
- &mdash; against a string, a hash, a golden file, or the same report printed to a log. Scoping that
83
- subset is the first task of this card, not a mechanical pass.
93
+ That second sweep is <b>917</b> writes on the tree this change ships (858 <code>tests</code>, 32
94
+ <code>boost_cli</code>, 21 <code>scripts</code>, 6 <code>evals</code>; 916 on <code>origin/main</code>,
95
+ and the 910 this card first quoted was the same count taken before <code>evals</code> was in the walk)
96
+ and is <b>deliberately not in this change</b>, because unlike the encoding it
97
+ must <em>not</em> be applied everywhere: a write whose bytes nobody compares is fine as it is, so a
98
+ blanket pass would be 917 edits of which most are churn and none is a fix. Scoping the subset that
99
+ is read back and compared is work of its own, and it has its own card &mdash;
100
+ <code>writers-whose-bytes-are-compared-do-not-pin-their-newline</code>. The newline walker
101
+ (<code>unpinned_newline</code>) ships here beside the encoding one, still scoped to
102
+ <code>scripts/mutation_shards.py</code>, which is the one file whose writers are already known to be
103
+ byte-compared.
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: writers-whose-bytes-are-compared-do-not-pin-their-newline
3
+ board: code
4
+ section: compat
5
+ status: planned
6
+ category: Portability · Windows
7
+ complexity: M
8
+ impact: Med
9
+ wow: 2
10
+ note: 917 text writes take the platform line ending; only the compared ones are bugs
11
+ order: 363
12
+ owner:
13
+ pr:
14
+ title: "917 text writes leave the line ending to the platform, and only some of them are bugs"
15
+ ---
16
+ Text mode decides two things, and naming the encoding fixes one of them. It also translates
17
+ <code>\n</code> to the platform separator <em>on write</em>, so a file written with
18
+ <code>encoding="utf-8"</code> on a GitHub <b>Windows</b> runner still holds CRLF. The sibling card
19
+ <code>text-io-leaves-its-encoding-to-the-locale</code> closed the encoding half across 414 files; this
20
+ is the other half, and it is deliberately not the same kind of sweep.
21
+
22
+ <b>#1012 hit both, one after the other, and the first fix hid the second.</b> Naming the encoding
23
+ turned the three <code>tests (windows-latest, 3.1x)</code> jobs green on the assertion that had failed
24
+ &mdash; and the next run put them straight back to red on the line endings of the same line. Two
25
+ platform defects in one call, and no way to see the second until the first was gone.
26
+
27
+ <b>The count is 917, and a blanket pass would be wrong.</b> 858 in <code>tests</code>, 32 in
28
+ <code>boost_cli</code>, 21 in <code>scripts</code>, 6 in <code>evals</code>. Most of those writes
29
+ produce files whose line endings nothing ever compares, so pinning
30
+ <code>newline="\n"</code> on all of them is 917 edits of which the overwhelming majority are churn
31
+ and none is a fix &mdash; and churn in a diff is what makes the real change unreviewable. Readers need
32
+ nothing at all: universal newlines already fold CRLF to LF on the way in, which is why the guard that
33
+ ships with the encoding card walks <em>writers only</em>.
34
+
35
+ <b>So the work is the scoping, not the edit.</b> The subset that matters is writers whose output is
36
+ read back and compared &mdash; against a string, a hash, a golden file, or the same report printed to a
37
+ log beside it. Three shapes are known to qualify and are a good place to start the inventory:
38
+ a file written here and read back by an assertion in the same test; anything hashed or diffed
39
+ (<code>fingerprint</code>, the generated-file <code>--check</code> gates, golden fixtures); and
40
+ anything a <em>second</em> process parses line by line, which is how
41
+ <code>$GITHUB_OUTPUT</code> got onto the list. <code>scripts/mutation_shards.py</code> is already
42
+ pinned and already guarded by <code>TestTheScriptPinsItsNewlines</code> &mdash; extending that guard a
43
+ scoped set at a time, with the reason each set is in it, is the shape this should take.
44
+
45
+ <b>What would make it falsifiable.</b> A Windows job that asserts byte equality, not string
46
+ equality: today a round trip on Linux passes whether the newline is pinned or not, which is exactly
47
+ the class of test the encoding card's own verification pass caught twice. The AST walker
48
+ (<code>unpinned_newline</code> in <code>tests/unit/test_text_io_names_its_encoding.py</code>) is the
49
+ platform-independent half and already exists; what it cannot tell you is which of the 917 are bugs.
@@ -143,7 +143,7 @@
143
143
  <div class="stat"><b>27</b><span>Shipped</span></div>
144
144
  <div class="stat"><b>1</b><span>Next up</span></div>
145
145
  <div class="stat"><b>75</b><span>Planned</span></div>
146
- <div class="stat"><b>518</b><span>Loop finds</span></div>
146
+ <div class="stat"><b>519</b><span>Loop finds</span></div>
147
147
  <!-- /ROADMAP:stats -->
148
148
  </div>
149
149
  </section>
@@ -7185,81 +7185,59 @@ the stripped block. Found while verifying
7185
7185
  </article>
7186
7186
 
7187
7187
  <article class="cap rcard" id="text-io-leaves-its-encoding-to-the-locale">
7188
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Portability · Windows</span></div>
7189
+ <h3>73 reads and writes left the text encoding to the locale, and the Windows jobs were the only thing that noticed</h3>
7190
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/text-io-leaves-its-encoding-to-the-locale.md">Write-up &middot; text-io-leaves-its-encoding-to-the-locale.md</a></p>
7191
+ <div class="meta">
7192
+ <span class="m">Complexity <b>M</b></span>
7193
+ <span class="m">Impact <b>Med</b></span>
7194
+ <span class="m">Wow <b class="wow">★★</b></span>
7195
+ <span class="m">all 73 encoded; the guard is repo-wide over 414 files; the newline half is its own card</span>
7196
+ </div>
7197
+ </article>
7198
+
7199
+ <article class="cap rcard" id="writers-whose-bytes-are-compared-do-not-pin-their-newline">
7188
7200
  <div class="head"><span class="pill planned">Planned</span><span class="cat">Portability · Windows</span></div>
7189
- <h3>73 reads and writes leave the text encoding to the locale, and the Windows jobs are the only thing that notices</h3>
7190
- <p><code>Path.read_text()</code>, <code>Path.write_text()</code> and <code>open()</code> in text mode use
7191
- <code>locale.getencoding()</code> when no <code>encoding=</code> is given. On Linux and macOS that is UTF-8
7192
- and nothing ever goes wrong. On a GitHub <b>Windows</b> runner it is <b>cp1252</b>, so the same file
7193
- written by one call and read by another comes back as different text the moment it holds a
7194
- character outside Latin-1.
7195
-
7196
- An AST sweep of <code>boost_cli</code>, <code>scripts</code>, <code>tests</code> and <code>evals</code> finds
7197
- <b>73</b> such sites &mdash; 72 in the test suite, 1 in <code>boost_cli</code>
7198
- (<code>core/journal.py:55</code>, <code>with p.open("a")</code>) and none in <code>scripts</code>. The
7199
- test-suite concentration is not the harmless part: a test that writes UTF-8 and reads it back in
7200
- cp1252 is exactly the shape that reddened three Windows jobs below.
7201
-
7202
- <b>That figure was 116 in the first draft of this card, and the 43 it lost are the point.</b> An
7203
- inflated backlog is not a safe error &mdash; it sizes a sweep nobody can finish and plants a
7204
- false-positive the guard will fail on. Thirty of the 43 were <code>tarfile.open(path, "w:gz")</code>,
7205
- three <code>os.open</code> (a file descriptor, which has no encoding), two
7206
- <code>webbrowser.open(url)</code>, one a urllib response, and seven were binary
7207
- <code>Path.open("rb")</code> miscounted because the walker read the mode from the builtin's argument
7208
- position rather than <code>Path.open</code>'s. The single most misleading line was the one claiming
7209
- 17 <code>boost_cli</code> sites "would mis-read a user's own file": sixteen of those seventeen were
7210
- not text IO at all.
7211
-
7212
- <b>This is not theoretical, and it already cost a build.</b> #1012 added a <code>drift</code> report
7213
- written with <code>encoding="utf-8"</code> containing an em dash, and a test that read it back with a bare
7214
- <code>read_text()</code>. Every Linux and macOS job passed; all three
7215
- <code>tests (windows-latest, 3.12 / 3.13 / 3.14)</code> jobs failed, on a change that had touched nothing
7216
- platform-specific. The failure names neither the encoding nor the character &mdash; it prints two
7217
- truncated strings that look identical.
7218
-
7219
- <b>The quieter half is worse than the loud one.</b> A missing encoding on a <em>reader</em> raises
7220
- <code>UnicodeDecodeError</code>, which is a subclass of <code>ValueError</code> &mdash; so any
7221
- <code>except (OSError, ValueError)</code> around a JSON load swallows it and reports a perfectly good
7222
- file as unreadable. <code>mutation_shards._unusable</code> had exactly that shape: on Windows it would
7223
- have refused a valid measurement and said "not readable JSON".
7224
-
7225
- <b>Why ruff's <code>PLW1514</code> is not the whole answer.</b> Two reasons, both measured. It is a
7226
- <b>preview</b> rule, so <code>ruff check --select PLW1514</code> without <code>--preview</code> checks
7227
- nothing at all and prints "All checks passed" &mdash; indistinguishable from a clean tree, and a trap
7228
- this card fell into once already. And with <code>--preview</code> it resolves the receiver
7229
- syntactically: over <code>origin/main</code> it reports exactly <b>one</b> site,
7230
- <code>scripts/mutation_shards.py:718</code>, because it sees <code>path.read_text()</code> where
7231
- <code>path = Path(...)</code> is in view; it never saw the <code>md.read_text()</code> off a pytest
7232
- <code>tmp_path</code> fixture that actually broke CI. #1012 fixed that one site, so on <code>main</code>
7233
- after this merge the rule reports <b>zero</b> while the walker still reports 73 &mdash; which is the
7234
- clearest statement of the gap there is. The sweep wants the AST walker in
7235
- <code>tests/unit/test_mutation_shards_names_its_encoding.py</code>, whose <code>WATCHED</code> tuple is the
7236
- list to grow &mdash; it already pins the two files #1012 owns, so the guard generalises by adding a path
7237
- rather than by being rewritten.
7238
-
7239
- <b>Shape of the work.</b> Mechanical but not blind: each site needs a decision between
7240
- <code>encoding="utf-8"</code> and <code>read_bytes()</code>/binary mode, and a handful read files boost did
7241
- not write (a user's <code>CLAUDE.md</code>, a tapped repo's Markdown) where <code>errors="replace"</code> may
7242
- be the honest answer rather than a crash. Land it per-directory so each PR stays reviewable, extending
7243
- <code>WATCHED</code> as it goes.
7244
-
7245
- <b>The encoding is only half of what text mode decides.</b> It also translates <code>\n</code> to the
7246
- platform separator on write, so a file written with <code>encoding="utf-8"</code> on a Windows runner
7247
- still holds CRLF. #1012 hit both, one after the other: naming the encoding turned the three Windows
7248
- jobs green on that assertion and straight back to red on the line endings. A sweep that fixes only
7249
- the encoding leaves every writer whose output is compared against a string, a hash or another file
7250
- still platform-dependent, so this card covers <code>newline="\n"</code> on writers as well &mdash;
7251
- readers need nothing, since universal newlines already fold CRLF on the way in.
7252
-
7253
- That second sweep is <b>910</b> writes (857 tests, 32 <code>boost_cli</code>, 21 <code>scripts</code>),
7254
- and unlike the encoding it should <em>not</em> be applied everywhere: a write whose bytes nobody
7255
- compares is fine as it is. The ones that matter are writers whose output is read back and compared
7256
- &mdash; against a string, a hash, a golden file, or the same report printed to a log. Scoping that
7257
- subset is the first task of this card, not a mechanical pass.</p>
7258
- <div class="meta">
7259
- <span class="m">Complexity <b>M</b></span>
7260
- <span class="m">Impact <b>Med</b></span>
7261
- <span class="m">Wow <b class="wow">★★</b></span>
7262
- <span class="m">73 reads and writes take the locale's encoding; 910 writes take its line ending</span>
7201
+ <h3>917 text writes leave the line ending to the platform, and only some of them are bugs</h3>
7202
+ <p>Text mode decides two things, and naming the encoding fixes one of them. It also translates
7203
+ <code>\n</code> to the platform separator <em>on write</em>, so a file written with
7204
+ <code>encoding="utf-8"</code> on a GitHub <b>Windows</b> runner still holds CRLF. The sibling card
7205
+ <code>text-io-leaves-its-encoding-to-the-locale</code> closed the encoding half across 414 files; this
7206
+ is the other half, and it is deliberately not the same kind of sweep.
7207
+
7208
+ <b>#1012 hit both, one after the other, and the first fix hid the second.</b> Naming the encoding
7209
+ turned the three <code>tests (windows-latest, 3.1x)</code> jobs green on the assertion that had failed
7210
+ &mdash; and the next run put them straight back to red on the line endings of the same line. Two
7211
+ platform defects in one call, and no way to see the second until the first was gone.
7212
+
7213
+ <b>The count is 917, and a blanket pass would be wrong.</b> 858 in <code>tests</code>, 32 in
7214
+ <code>boost_cli</code>, 21 in <code>scripts</code>, 6 in <code>evals</code>. Most of those writes
7215
+ produce files whose line endings nothing ever compares, so pinning
7216
+ <code>newline="\n"</code> on all of them is 917 edits of which the overwhelming majority are churn
7217
+ and none is a fix &mdash; and churn in a diff is what makes the real change unreviewable. Readers need
7218
+ nothing at all: universal newlines already fold CRLF to LF on the way in, which is why the guard that
7219
+ ships with the encoding card walks <em>writers only</em>.
7220
+
7221
+ <b>So the work is the scoping, not the edit.</b> The subset that matters is writers whose output is
7222
+ read back and compared &mdash; against a string, a hash, a golden file, or the same report printed to a
7223
+ log beside it. Three shapes are known to qualify and are a good place to start the inventory:
7224
+ a file written here and read back by an assertion in the same test; anything hashed or diffed
7225
+ (<code>fingerprint</code>, the generated-file <code>--check</code> gates, golden fixtures); and
7226
+ anything a <em>second</em> process parses line by line, which is how
7227
+ <code>$GITHUB_OUTPUT</code> got onto the list. <code>scripts/mutation_shards.py</code> is already
7228
+ pinned and already guarded by <code>TestTheScriptPinsItsNewlines</code> &mdash; extending that guard a
7229
+ scoped set at a time, with the reason each set is in it, is the shape this should take.
7230
+
7231
+ <b>What would make it falsifiable.</b> A Windows job that asserts byte equality, not string
7232
+ equality: today a round trip on Linux passes whether the newline is pinned or not, which is exactly
7233
+ the class of test the encoding card's own verification pass caught twice. The AST walker
7234
+ (<code>unpinned_newline</code> in <code>tests/unit/test_text_io_names_its_encoding.py</code>) is the
7235
+ platform-independent half and already exists; what it cannot tell you is which of the 917 are bugs.</p>
7236
+ <div class="meta">
7237
+ <span class="m">Complexity <b>M</b></span>
7238
+ <span class="m">Impact <b>Med</b></span>
7239
+ <span class="m">Wow <b class="wow">★★</b></span>
7240
+ <span class="m">917 text writes take the platform line ending; only the compared ones are bugs</span>
7263
7241
  </div>
7264
7242
  </article>
7265
7243
  <!-- /ROADMAP:cards -->
@@ -400,7 +400,7 @@ def test_a_local_install_records_mcp_servers_in_the_repo(boost, tapped, repo):
400
400
  boost("install", "brainstorming", "--local")
401
401
  sidecar = repo / mcpdecl.SIDECAR
402
402
  assert sidecar.is_file(), "no .mcp.json written into the repo"
403
- servers = json.loads(sidecar.read_text())[mcpdecl.SERVERS_KEY]
403
+ servers = json.loads(sidecar.read_text(encoding="utf-8"))[mcpdecl.SERVERS_KEY]
404
404
  assert "gh" in servers
405
405
  assert servers["gh"][mcpdecl.MARKER_KEY] == "brainstorming", \
406
406
  "the entry must name the skill that asked for it, so uninstall can reverse it"
@@ -423,7 +423,8 @@ def test_uninstalling_locally_removes_the_servers_it_added(boost, tapped, repo):
423
423
  _declare_mcp(tapped, "brainstorming")
424
424
  boost("install", "brainstorming", "--local")
425
425
  boost("uninstall", "brainstorming", "--local")
426
- servers = json.loads((repo / mcpdecl.SIDECAR).read_text())[mcpdecl.SERVERS_KEY]
426
+ servers = json.loads(
427
+ (repo / mcpdecl.SIDECAR).read_text(encoding="utf-8"))[mcpdecl.SERVERS_KEY]
427
428
  assert "gh" not in servers, \
428
429
  "a skill removed from the repo must stop launching its server"
429
430
 
@@ -445,7 +446,8 @@ def test_uninstall_leaves_a_hand_written_server_alone(boost, tapped, repo):
445
446
  _declare_mcp(tapped, "brainstorming")
446
447
  boost("install", "brainstorming", "--local")
447
448
  boost("uninstall", "brainstorming", "--local")
448
- servers = json.loads((repo / mcpdecl.SIDECAR).read_text())[mcpdecl.SERVERS_KEY]
449
+ servers = json.loads(
450
+ (repo / mcpdecl.SIDECAR).read_text(encoding="utf-8"))[mcpdecl.SERVERS_KEY]
449
451
  assert servers["mine"] == {"command": "my-own-thing"}, \
450
452
  "boost must only reverse what boost wrote"
451
453
 
@@ -918,8 +918,8 @@ class TestGuardDetection:
918
918
  files never touch it, and one imports it without a guard.
919
919
  """
920
920
  (tmp_path / "a_test.py").write_text(
921
- "import pytest\nwidget = pytest.importorskip('widget')\n")
922
- (tmp_path / "b_test.py").write_text("import widget\n")
921
+ "import pytest\nwidget = pytest.importorskip('widget')\n", encoding="utf-8")
922
+ (tmp_path / "b_test.py").write_text("import widget\n", encoding="utf-8")
923
923
  required, optional = _scan([tmp_path])
924
924
  assert "widget" in required
925
925
  assert "widget" not in optional
@@ -73,7 +73,7 @@ class TestBaselineIsKeyedToItsQuerySet:
73
73
  ev.save_baseline(10, [_result()], golden=KEYWORD)
74
74
  ev.save_baseline(10, [_result(**{"recall@k": 0.69, "hit@1": 0.24})],
75
75
  golden=NATURAL)
76
- data = json.loads(baseline.read_text())
76
+ data = json.loads(baseline.read_text(encoding="utf-8"))
77
77
  keys = set(data["sets"])
78
78
  assert len(keys) == 2, "one set's baseline overwrote the other: %s" % keys
79
79
 
@@ -96,9 +96,11 @@ class TestBaselineIsKeyedToItsQuerySet:
96
96
  # Editing the queries changes what the numbers mean, even under the same
97
97
  # filename — so identity is the content, not the path.
98
98
  golden = tmp_path / "golden.jsonl"
99
- golden.write_text('{"query": "a", "relevant": ["x"], "kind": "skill"}\n')
99
+ golden.write_text('{"query": "a", "relevant": ["x"], "kind": "skill"}\n',
100
+ encoding="utf-8")
100
101
  ev.save_baseline(10, [_result()], golden=golden)
101
- golden.write_text('{"query": "b", "relevant": ["y"], "kind": "skill"}\n')
102
+ golden.write_text('{"query": "b", "relevant": ["y"], "kind": "skill"}\n',
103
+ encoding="utf-8")
102
104
  assert ev.check_regressions([_result(**{"recall@k": 0.1})],
103
105
  eps=0.02, golden=golden) == []
104
106
 
@@ -111,7 +113,7 @@ class TestBackCompat:
111
113
  "k": 10,
112
114
  "engines": {"BM25 full-content": {
113
115
  "recall@k": 1.0, "hit@1": 0.78, "MRR": 0.86, "nDCG@k": 0.89}},
114
- }))
116
+ }), encoding="utf-8")
115
117
  problems = ev.check_regressions([_result(**{"hit@1": 0.10})],
116
118
  eps=0.02, golden=KEYWORD)
117
119
  assert problems, "a pre-existing baseline stopped catching regressions"
@@ -121,7 +123,7 @@ class TestBackCompat:
121
123
  "k": 10,
122
124
  "engines": {"BM25 full-content": {
123
125
  "recall@k": 1.0, "hit@1": 0.78, "MRR": 0.86, "nDCG@k": 0.89}},
124
- }))
126
+ }), encoding="utf-8")
125
127
  assert ev.check_regressions([_result(**{"hit@1": 0.10})],
126
128
  eps=0.02, golden=NATURAL) == []
127
129
 
@@ -663,7 +663,7 @@ class TestTheCorpusSizeBlock:
663
663
  # wrong — which is how the cross-population ratio survived: the number
664
664
  # in taps.txt looked settled because nobody recomputed it.
665
665
  m = _load()
666
- text = _TAPS.read_text()
666
+ text = _TAPS.read_text(encoding="utf-8")
667
667
  assert m.with_size(text) == text
668
668
 
669
669
  def test_the_content_line_never_says_entries(self):
@@ -1219,8 +1219,9 @@ def _bundle_source() -> str:
1219
1219
  if not entry.is_file():
1220
1220
  continue
1221
1221
  for chunk in sorted(set(re.findall(
1222
- r"chunk-[A-Z0-9]+\.js", entry.read_text(errors="replace")))):
1223
- src = (root / chunk).read_text(errors="replace")
1222
+ r"chunk-[A-Z0-9]+\.js", entry.read_text(errors="replace",
1223
+ encoding="utf-8")))):
1224
+ src = (root / chunk).read_text(encoding="utf-8", errors="replace")
1224
1225
  if BUNDLE_MARKER in src:
1225
1226
  return src
1226
1227
  return pytest.skip("Gemini CLI bundle not installed")
@@ -50,6 +50,37 @@ class TestLog:
50
50
  journal.log("b", "2")
51
51
  assert len(paths.pulse_path().read_text(encoding="utf-8").splitlines()) == 2
52
52
 
53
+ def test_the_feed_is_written_in_the_encoding_it_is_read_in(
54
+ self, sandbox, monkeypatch):
55
+ """``log`` must name UTF-8, because ``events`` reads UTF-8.
56
+
57
+ A round trip cannot show this. On Linux and macOS the locale is
58
+ already UTF-8, and ``json.dumps`` defaults to ``ensure_ascii=True``,
59
+ so write-then-read passes identically with the encoding named or
60
+ omitted — the assertion would be true for the wrong reason. On a
61
+ Windows runner the locale is cp1252, and the reader's
62
+ ``errors="replace"`` would turn the first byte the two disagree
63
+ about into U+FFFD rather than raising. So this watches the argument
64
+ instead of the result, which also fails if the keyword is dropped
65
+ rather than merely misspelt.
66
+ """
67
+ path_type = type(paths.pulse_path())
68
+ real_open = path_type.open
69
+ seen = []
70
+
71
+ def spy(self, *a, **kw):
72
+ mode = kw.get("mode", a[0] if a else "r")
73
+ if self == paths.pulse_path() and "b" not in mode:
74
+ seen.append((mode, kw.get("encoding")))
75
+ return real_open(self, *a, **kw)
76
+
77
+ monkeypatch.setattr(path_type, "open", spy)
78
+ journal.log("install", "brainstorming")
79
+ # `log` appends; the rotation check behind it reads. Both are text
80
+ # opens of the same file, so both have to agree with `events`.
81
+ assert ("a", "utf-8") in seen, seen
82
+ assert all(enc == "utf-8" for _, enc in seen), seen
83
+
53
84
 
54
85
  class TestEvents:
55
86
  def test_missing_file_is_empty_list(self, sandbox):
@@ -94,7 +125,7 @@ class TestEvents:
94
125
 
95
126
  def test_corrupt_lines_skipped(self, sandbox):
96
127
  journal.log("install", "good")
97
- with paths.pulse_path().open("a") as f:
128
+ with paths.pulse_path().open("a", encoding="utf-8") as f:
98
129
  f.write("this is not json\n")
99
130
  f.write("{\"also: broken\n")
100
131
  journal.log("install", "good2")