boost-skill-cli 1.2.170__tar.gz → 1.2.172__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 (1135) hide show
  1. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/scopes.py +62 -5
  4. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/store.py +164 -8
  5. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  6. boost_skill_cli-1.2.172/docs/roadmap/items/uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows.md +80 -0
  7. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap.html +7 -31
  8. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/coverage-tools.txt +211 -207
  9. boost_skill_cli-1.2.172/requirements/lint-tools.txt +763 -0
  10. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/mutation-tools.txt +214 -210
  11. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/release-tools.txt +371 -336
  12. boost_skill_cli-1.2.172/requirements/test-tools.txt +338 -0
  13. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/conftest.py +45 -4
  14. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_workspace_scope.py +119 -0
  15. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mutmut_source_paths.py +95 -9
  16. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_scopes.py +100 -0
  17. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_store.py +214 -0
  18. boost_skill_cli-1.2.170/docs/roadmap/items/uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows.md +0 -40
  19. boost_skill_cli-1.2.170/requirements/lint-tools.txt +0 -761
  20. boost_skill_cli-1.2.170/requirements/test-tools.txt +0 -334
  21. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.gitattributes +0 -0
  22. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.gitignore +0 -0
  23. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.gitleaks.toml +0 -0
  24. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.htmlvalidate.json +0 -0
  25. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.lighthouserc.json +0 -0
  26. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.lycheeignore +0 -0
  27. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.markdownlint-cli2.jsonc +0 -0
  28. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.pre-commit-config.yaml +0 -0
  29. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.stylelintrc.json +0 -0
  30. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.vale/styles/boost/AIWriting.yml +0 -0
  31. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.vale/styles/boost/Terminology.yml +0 -0
  32. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
  33. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/.vale.ini +0 -0
  34. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/CLAUDE.md +0 -0
  35. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/CODE_OF_CONDUCT.md +0 -0
  36. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/CONTRIBUTING.md +0 -0
  37. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/DCO +0 -0
  38. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/GOVERNANCE.md +0 -0
  39. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/LICENSE +0 -0
  40. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/MAINTAINERS.md +0 -0
  41. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/MANIFEST.in +0 -0
  42. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/Makefile +0 -0
  43. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/README.md +0 -0
  44. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/SECURITY.md +0 -0
  45. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/SUPPORT.md +0 -0
  46. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost +0 -0
  47. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/__init__.py +0 -0
  48. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/__main__.py +0 -0
  49. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/cli.py +0 -0
  50. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/cliparse.py +0 -0
  51. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/__init__.py +0 -0
  52. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/_common.py +0 -0
  53. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/bmad.py +0 -0
  54. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/configuration.py +0 -0
  55. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/discovery.py +0 -0
  56. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/hooks.py +0 -0
  57. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/info.py +0 -0
  58. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/intelligence.py +0 -0
  59. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/pkg.py +0 -0
  60. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/quality.py +0 -0
  61. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/quickstart.py +0 -0
  62. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/run.py +0 -0
  63. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/safety.py +0 -0
  64. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/taps.py +0 -0
  65. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/commands/team.py +0 -0
  66. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/__init__.py +0 -0
  67. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/adapters.py +0 -0
  68. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/agents.py +0 -0
  69. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/ai.py +0 -0
  70. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/aihost.py +0 -0
  71. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/archive.py +0 -0
  72. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/bmad.py +0 -0
  73. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/bootstrap.py +0 -0
  74. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/browse.py +0 -0
  75. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/builtin.py +0 -0
  76. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/capabilities.py +0 -0
  77. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/catalog.py +0 -0
  78. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/catalogbundle.py +0 -0
  79. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/chat.py +0 -0
  80. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/claude_settings.py +0 -0
  81. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/cohort.py +0 -0
  82. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/compact.py +0 -0
  83. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/complete.py +0 -0
  84. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/config.py +0 -0
  85. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/dense.py +0 -0
  86. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/deps.py +0 -0
  87. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/discovery.py +0 -0
  88. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/ed25519.py +0 -0
  89. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/embed.py +0 -0
  90. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/faithfulness.py +0 -0
  91. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/frontmatter.py +0 -0
  92. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/gitutil.py +0 -0
  93. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/hookhost.py +0 -0
  94. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/imperative.py +0 -0
  95. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/injectscan.py +0 -0
  96. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/installscan.py +0 -0
  97. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/integrity.py +0 -0
  98. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/journal.py +0 -0
  99. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/jsonstate.py +0 -0
  100. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/localembed.py +0 -0
  101. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/lockfile.py +0 -0
  102. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/logs.py +0 -0
  103. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/mcp.py +0 -0
  104. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/mcpdecl.py +0 -0
  105. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/mcphost.py +0 -0
  106. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/minisign.py +0 -0
  107. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/nethttp.py +0 -0
  108. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/output.py +0 -0
  109. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/paths.py +0 -0
  110. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/policy.py +0 -0
  111. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/prereq.py +0 -0
  112. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/projectlock.py +0 -0
  113. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/provenance.py +0 -0
  114. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/rag.py +0 -0
  115. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/registry.py +0 -0
  116. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/report.py +0 -0
  117. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/resolve.py +0 -0
  118. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/rules.py +0 -0
  119. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/secretscan.py +0 -0
  120. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/selfupdate.py +0 -0
  121. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/serve.py +0 -0
  122. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/shards.py +0 -0
  123. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/stackprobe.py +0 -0
  124. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/staleness.py +0 -0
  125. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/trustaudit.py +0 -0
  126. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/typedvalue.py +0 -0
  127. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/typosquat.py +0 -0
  128. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/updatediff.py +0 -0
  129. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/util.py +0 -0
  130. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/core/workflows.py +0 -0
  131. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/data/registries.json +0 -0
  132. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/data/rules/boost-first.mdc +0 -0
  133. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/errors.py +0 -0
  134. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_cli/spin.py +0 -0
  135. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/__init__.py +0 -0
  136. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/_compat.py +0 -0
  137. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/graph.py +0 -0
  138. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/loader.py +0 -0
  139. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/py.typed +0 -0
  140. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_langchain/retriever.py +0 -0
  141. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
  142. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  143. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  144. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/requires.txt +0 -0
  145. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/boost_skill_cli.egg-info/top_level.txt +0 -0
  146. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/codecov.yml +0 -0
  147. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/DEBUGGING.md +0 -0
  148. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/adapters.html +0 -0
  149. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/architecture/README.md +0 -0
  150. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/architecture/c4-components-core.md +0 -0
  151. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/architecture/c4-containers.md +0 -0
  152. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/architecture/c4-context.md +0 -0
  153. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/architecture/c4-dynamic-install.md +0 -0
  154. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/bmad.md +0 -0
  155. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/distill.gif +0 -0
  156. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/doctor.gif +0 -0
  157. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/explain.gif +0 -0
  158. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/hooks.gif +0 -0
  159. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/install.gif +0 -0
  160. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/pulse.gif +0 -0
  161. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/search.gif +0 -0
  162. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/gifs/tap.gif +0 -0
  163. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/distill.tape +0 -0
  164. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/doctor.tape +0 -0
  165. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/explain.tape +0 -0
  166. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/hooks.tape +0 -0
  167. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/install.tape +0 -0
  168. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/pulse.tape +0 -0
  169. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/search.tape +0 -0
  170. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel/tapes/tap.tape +0 -0
  171. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/carousel.html +0 -0
  172. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/chat.html +0 -0
  173. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/code-review.md +0 -0
  174. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/commands.html +0 -0
  175. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/commit-audit.md +0 -0
  176. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/demo-index.json +0 -0
  177. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/demo.gif +0 -0
  178. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/demo.html +0 -0
  179. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/demo.tape +0 -0
  180. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/dependencies.md +0 -0
  181. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/design-roadmap.html +0 -0
  182. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/eval-latest.json +0 -0
  183. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/eval.html +0 -0
  184. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/index.html +0 -0
  185. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/langchain.html +0 -0
  186. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/mcp-hub.html +0 -0
  187. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/openssf-badge.md +0 -0
  188. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/openssf-playbook.md +0 -0
  189. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/rag-architecture.md +0 -0
  190. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D01.md +0 -0
  191. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D02.md +0 -0
  192. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D03.md +0 -0
  193. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D04.md +0 -0
  194. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D05.md +0 -0
  195. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D06.md +0 -0
  196. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D07.md +0 -0
  197. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D08.md +0 -0
  198. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D09.md +0 -0
  199. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D10.md +0 -0
  200. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D11.md +0 -0
  201. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D12.md +0 -0
  202. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D13.md +0 -0
  203. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D14.md +0 -0
  204. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D15.md +0 -0
  205. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D16.md +0 -0
  206. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D17.md +0 -0
  207. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D18.md +0 -0
  208. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D19.md +0 -0
  209. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D20.md +0 -0
  210. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D21.md +0 -0
  211. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D22.md +0 -0
  212. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D23.md +0 -0
  213. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D24.md +0 -0
  214. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D25.md +0 -0
  215. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D26.md +0 -0
  216. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/BOOST-D27.md +0 -0
  217. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/a-correct-link-in-a-locked-dir-reads-as-refused.md +0 -0
  218. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/a-new-shipped-card-always-404s-its-own-write-up-link.md +0 -0
  219. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/a-refusal-and-its-remedy-never-wrapped.md +0 -0
  220. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/a11y-sweep-flakes-on-color-contrast.md +0 -0
  221. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  222. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/actionlint-skips-shellcheck-silently.md +0 -0
  223. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
  224. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/agent-dir-shapes-install-still-trips-on.md +0 -0
  225. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/agents-field-records-the-request-not-the-links.md +0 -0
  226. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ai-backend-fanout.md +0 -0
  227. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
  228. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
  229. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/an-item-materialized-nowhere-reads-ok-in-verify-health-drift.md +0 -0
  230. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  231. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  232. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-absorb-findings.md +0 -0
  233. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-adapt-findings.md +0 -0
  234. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-adapt-renders-every-sibling-of-a-flat-agents-dir-workflow-as.md +0 -0
  235. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-adapt-run-stats-edit-tag-export-reject-the-tap-name-qualifie.md +0 -0
  236. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-ai-degrade-note-blames-path-api-keys-regardless-of-cause-sev.md +0 -0
  237. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-attest-findings.md +0 -0
  238. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-audit-findings.md +0 -0
  239. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-bmad-findings.md +0 -0
  240. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-browse-findings.md +0 -0
  241. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-bundle-findings.md +0 -0
  242. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-catalog-findings.md +0 -0
  243. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-catalog-resolve-one-s-duplicate-name-hint-advertises-path-to.md +0 -0
  244. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-changelog-findings.md +0 -0
  245. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-chat-findings.md +0 -0
  246. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-clean-counts-failed-removals-as-cleaned-journals-the-inflate.md +0 -0
  247. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-cli-py-commands-summaries-and-parser-help-contradict-behavio.md +0 -0
  248. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-cohort-findings.md +0 -0
  249. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-completions-findings.md +0 -0
  250. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-config-findings.md +0 -0
  251. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-config-policy-set-store-type-unchecked-values-consumers-cras.md +0 -0
  252. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-context-findings.md +0 -0
  253. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-corrupt-settings-config-state-json-silently-read-as-empty-th.md +0 -0
  254. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-create-distill-infer-absorb-install-silently-replace-an-inst.md +0 -0
  255. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-create-findings.md +0 -0
  256. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-declined-confirms-never-name-y-boost-assume-yes-snapshot-cle.md +0 -0
  257. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-deps-findings.md +0 -0
  258. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-discover-findings.md +0 -0
  259. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-distill-s-heuristic-merge-drops-repeated-fences-braces-writi.md +0 -0
  260. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-doctor-findings.md +0 -0
  261. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-drift-findings.md +0 -0
  262. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-dry-runs-disagree-with-the-real-run-compact-counts-bytes-it.md +0 -0
  263. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-edit-findings.md +0 -0
  264. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-evolve-findings.md +0 -0
  265. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-explain-findings.md +0 -0
  266. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-export-findings.md +0 -0
  267. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-export-o-cohort-create-and-profile-save-silently-overwrite-e.md +0 -0
  268. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-fingerprint-findings.md +0 -0
  269. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-five-exit-70-crashes-on-bad-paths-data-catalog-export-serve.md +0 -0
  270. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-focus-profile-sideline-by-unlinking-without-recording-it-lis.md +0 -0
  271. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/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.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-health-findings.md +0 -0
  273. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-hooks-remove-n-cannot-find-hooks-boost-itself-added-unknown.md +0 -0
  274. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-import-all-skips-the-injection-secret-scans-and-the-per-skil.md +0 -0
  275. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-import-findings.md +0 -0
  276. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-index-findings.md +0 -0
  277. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-info-stats-explain-render-a-different-smaller-shape-for-rule.md +0 -0
  278. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-install-dry-run-promises-agents-the-real-install-never-write.md +0 -0
  279. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-install-findings.md +0 -0
  280. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-install-local-writes-empties-the-repo-s-mcp-json-silently-of.md +0 -0
  281. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-json-accepted-but-ignored-on-many-branches-cohort-config-pol.md +0 -0
  282. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-lint-findings.md +0 -0
  283. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-log-findings.md +0 -0
  284. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-log-simulate-changelog-headings-echo-the-raw-qualified-argum.md +0 -0
  285. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-mcp-findings.md +0 -0
  286. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-mcp-register-s-boost-first-consent-names-only-the-registered.md +0 -0
  287. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-missing-json-on-doctor-test-health-changelog-trending-log-ho.md +0 -0
  288. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-name-miss-errors-unknown-tap-qualifier-unnamed-no-close-matc.md +0 -0
  289. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-onboard-findings.md +0 -0
  290. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/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.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-out-warn-defaults-to-stdout-infer-absorb-corrupt-skill-md-se.md +0 -0
  292. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-outdated-findings.md +0 -0
  293. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-output-wrap-tokens-splits-punctuation-off-backtick-spans-ins.md +0 -0
  294. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/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.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-policy-findings.md +0 -0
  296. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-preview-findings.md +0 -0
  297. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-profile-findings.md +0 -0
  298. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis.md +0 -0
  299. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-protocol-findings.md +0 -0
  300. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-pulse-findings.md +0 -0
  301. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-quarantine-findings.md +0 -0
  302. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-quarantine-pin-state-invisible-list-info-doctor-report-links.md +0 -0
  303. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-quickstart-findings.md +0 -0
  304. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-recommend-findings.md +0 -0
  305. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-reindex-findings.md +0 -0
  306. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-reinstall-sync-repair-and-audit-resolve-by-name-tap-ignoring.md +0 -0
  307. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-replay-findings.md +0 -0
  308. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-root-findings.md +0 -0
  309. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-rules-workflows-reported-as-skills-uninstall-claims-a-store.md +0 -0
  310. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-run-findings.md +0 -0
  311. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-schedule-findings.md +0 -0
  312. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-search-findings.md +0 -0
  313. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-simulate-findings.md +0 -0
  314. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/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.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-six-count-flags-tap-chat-absorb-lint-changelog-hooks-skip-ut.md +0 -0
  316. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-skill-profile-name-slugging-is-inconsistent-distill-o-accept.md +0 -0
  317. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-snapshot-restore-replaces-the-lock-wholesale-orphaning-newer.md +0 -0
  318. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-stale-prose-after-shipped-changes-catalog-export-live-discov.md +0 -0
  319. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-stray-positionals-and-inapplicable-flags-silently-ignored-ac.md +0 -0
  320. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-sweep-positionals-json-lack-help-strings-and-no-command-help.md +0 -0
  321. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-sync-findings.md +0 -0
  322. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-tag-findings.md +0 -0
  323. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-tap-dry-run-is-silently-ignored-outside-catalog-spec-and-def.md +0 -0
  324. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-tap-findings.md +0 -0
  325. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-taps-findings.md +0 -0
  326. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-taps-outdated-decay-policy-snapshot-json-emit-display-string.md +0 -0
  327. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-test-findings.md +0 -0
  328. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-trust-findings.md +0 -0
  329. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-trust-verify-labels-a-manifest-tampered-after-signing-by-a-t.md +0 -0
  330. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-unpin-findings.md +0 -0
  331. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-untap-findings.md +0 -0
  332. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-update-findings.md +0 -0
  333. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-verify-drift-say-nothing-installed-exit-0-and-doctor-says-lo.md +0 -0
  334. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-verify-findings.md +0 -0
  335. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/audit-who-findings.md +0 -0
  336. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  337. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bare-boost-never-names-an-entry-point.md +0 -0
  338. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/because-that-was-not-the-reason.md +0 -0
  339. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bm25-empty-tokenization-kills-catalog-fallback.md +0 -0
  340. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bm25-has-no-stemming.md +0 -0
  341. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bm25-index-is-one-json-blob.md +0 -0
  342. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-autopilot-one-command-persona-routing.md +0 -0
  343. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-done-contract-ignores-the-track.md +0 -0
  344. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-gemini-gets-claude-hook-output.md +0 -0
  345. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-hooks-all-hosts.md +0 -0
  346. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-personas-delegate-outside-the-router.md +0 -0
  347. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-roster-drifted-from-bmad-6-12.md +0 -0
  348. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-route-ignores-autopilot-state.md +0 -0
  349. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-router-one-keyword-decides-the-track.md +0 -0
  350. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bmad-router-reads-each-prompt-alone.md +0 -0
  351. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/boost-first-carried-the-losing-trigger.md +0 -0
  352. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/boost-first-rule.md +0 -0
  353. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/boost-langchain-publishing.md +0 -0
  354. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  355. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/branch-current-gate.md +0 -0
  356. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  357. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  358. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/browse-could-not-search-two-words.md +0 -0
  359. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  360. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  361. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  362. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cache-writers-that-still-crash-on-a-read-only-cache.md +0 -0
  363. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/canary-deps-check-skips-in-the-required-job.md +0 -0
  364. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  365. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/capability-policy-skips-rules-and-workflows.md +0 -0
  366. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/catalog-categories-beyond-curated.md +0 -0
  367. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/catalogue-entries-carry-no-content-identity.md +0 -0
  368. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/chat-cites-sources-by-a-number-it-never-prints.md +0 -0
  369. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/chat-command-grounded-conversational-search.md +0 -0
  370. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
  371. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ci-summary-reports-the-wrong-coverage-gate.md +0 -0
  372. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
  373. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ci-time-is-now-runner-queueing.md +0 -0
  374. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/claude-md-instructs-the-wrong-licence-header.md +0 -0
  375. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  376. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cli-audit-2026-08-full-sweep.md +0 -0
  377. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cli-command-audit.md +0 -0
  378. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cli-output-ignored-the-terminal.md +0 -0
  379. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/code-scanning-rule-can-be-restored.md +0 -0
  380. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/codeql-job-rename-stranded-merge-protection.md +0 -0
  381. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/codex-hooks-timeout-units-are-unestablished.md +0 -0
  382. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/codex-is-not-an-mcp-host.md +0 -0
  383. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/cold-search-reads-the-whole-catalogue.md +0 -0
  384. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/command-carousel-page.md +0 -0
  385. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  386. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/compact-answers-a-named-tap-with-a-global-all-clear.md +0 -0
  387. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/completions-complete-only-command-names.md +0 -0
  388. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/completions-install-could-eat-your-rc-file.md +0 -0
  389. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  390. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/concurrency-probe-measured-a-race-not-the-pool.md +0 -0
  391. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/concurrent-rag-builds-delete-each-others-temp-index.md +0 -0
  392. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/config-json-edge-shapes-crash-or-disagree.md +0 -0
  393. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  394. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/corpus-refresh-updates-data-not-prose.md +0 -0
  395. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/corrupt-config-reads-as-ready-to-set-up.md +0 -0
  396. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/count-flags-that-silently-invert.md +0 -0
  397. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  398. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  399. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
  400. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  401. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/crash-reports-leak-api-keys.md +0 -0
  402. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/delay-true-defeats-the-log-suppress.md +0 -0
  403. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/demo-cannot-open-its-own-pr.md +0 -0
  404. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
  405. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/demo-workflow-cancels-other-prs.md +0 -0
  406. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-kill-switch-has-no-reason-state.md +0 -0
  407. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-local-built-store-displaced-by-a-key.md +0 -0
  408. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-no-key-guard-is-unreachable.md +0 -0
  409. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-ready-but-embedder-cannot-run.md +0 -0
  410. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-reindex-has-no-progress-or-durability.md +0 -0
  411. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-reindex-reuses-whole-taps.md +0 -0
  412. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
  413. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-search-rescans-every-vector.md +0 -0
  414. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dense-store-holds-every-vector-once-per-copy.md +0 -0
  415. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
  416. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dependabot-regeneration-drops-platform-pins.md +0 -0
  417. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dependabot-root-pip-entry-duplicates-requirements.md +0 -0
  418. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dependabot-splits-multi-path-action-repos.md +0 -0
  419. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  420. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/discover-searches-github-not-a-stale-sample.md +0 -0
  421. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
  422. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  423. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  424. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/doctor-prescribes-sync-that-deletes-live-links.md +0 -0
  425. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/dry-run-promised-a-link-nobody-makes.md +0 -0
  426. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/efficiency-registries-ponytail-caveman.md +0 -0
  427. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  428. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/err-colour-judged-by-stdout.md +0 -0
  429. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/err-multiline-hint-colours-across-the-newline.md +0 -0
  430. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/est-items-counts-agent-mirrors-as-items.md +0 -0
  431. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-cannot-see-real-retrieval.md +0 -0
  432. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-counted-by-the-method-the-repo-disavows.md +0 -0
  433. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-duplication-is-intra-tap-not-mirrors.md +0 -0
  434. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-is-96x-smaller-than-a-real-install.md +0 -0
  435. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-is-one-strangers-repo.md +0 -0
  436. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-pins-have-no-refresh-path.md +0 -0
  437. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-corpus-was-not-actually-pinned.md +0 -0
  438. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-deduped-ranked-lists-by-name.md +0 -0
  439. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-floor-calibration-stale-after-pin-refresh.md +0 -0
  440. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-gate-scores-a-body-less-corpus.md +0 -0
  441. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/eval-stats-could-never-publish.md +0 -0
  442. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/exemplar-graded-golden-set-runs-in-no-gate.md +0 -0
  443. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/expanded-card-bodies-overflow.md +0 -0
  444. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/explain-outline-has-no-cap.md +0 -0
  445. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  446. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  447. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  448. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  449. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/floors-job-never-installed-setuptools.md +0 -0
  450. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  451. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  452. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  453. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  454. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/free-threaded-canary-warns-about-nothing.md +0 -0
  455. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  456. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gate-parity-test-ignores-k-and-golden.md +0 -0
  457. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gated-golden-set-has-zero-exemplars.md +0 -0
  458. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gemini-agent-frontmatter-sanitizer.md +0 -0
  459. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gemini-cli-agent-target.md +0 -0
  460. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gemini-duplicate-skill-discovery.md +0 -0
  461. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gemini-hooks-host-aware.md +0 -0
  462. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gemini-mcp-parity.md +0 -0
  463. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/github-community-health-files.md +0 -0
  464. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  465. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/golden-set-grades-by-name-not-by-skill.md +0 -0
  466. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
  467. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/gstack-tap-first-then-coexistence.md +0 -0
  468. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  469. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/heal-deleted-links-it-never-made.md +0 -0
  470. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/hooks-list-drops-the-name-before-the-host.md +0 -0
  471. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  472. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/identifier-columns-shrink-to-a-name-no-command-accepts.md +0 -0
  473. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/import-budget-gate-passes-when-boost-cannot-import.md +0 -0
  474. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/info-deps-materialize-a-dir-they-then-reject.md +0 -0
  475. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/info-rejects-the-qualified-name-it-recommends.md +0 -0
  476. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-cannot-tell-a-skill-needs-another-one.md +0 -0
  477. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
  478. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
  479. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-path-disambiguation.md +0 -0
  480. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-paths-that-still-drop-the-result.md +0 -0
  481. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
  482. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
  483. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/install-writes-through-a-redirected-dotdir-uninstall-will-not.md +0 -0
  484. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
  485. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  486. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/internal-architecture-diagrams.md +0 -0
  487. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  488. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/is-dir-follows-a-symlink-at-eleven-rmtree-call-sites.md +0 -0
  489. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
  490. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/keyed-no-store-hint-disagrees-with-shard-remedy.md +0 -0
  491. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/keyless-dense-tier-local-static-embeddings.md +0 -0
  492. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/keyless-semantic-search-for-everyone.md +0 -0
  493. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/langchain-in-the-wheel.md +0 -0
  494. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/langchain-integration-explainer-page.md +0 -0
  495. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/langchain-langgraph-langsmith-integration.md +0 -0
  496. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/langchain-retriever-metadata-and-k-floor.md +0 -0
  497. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  498. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/license-compliance-scanning.md +0 -0
  499. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  500. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lighthouse-flips-on-byte-identical-input.md +0 -0
  501. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lighthouse-scored-a-page-nobody-is-served.md +0 -0
  502. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/links-job-503s-its-own-write-up-links.md +0 -0
  503. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
  504. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  505. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  506. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
  507. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lock-kept-links-it-had-just-removed.md +0 -0
  508. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  509. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  510. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/long-hints-overflow-narrow-panes.md +0 -0
  511. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  512. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
  513. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
  514. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/make-lint-masks-actionlint-failures.md +0 -0
  515. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  516. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/manifest-in-prunes-only-the-root-copy.md +0 -0
  517. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  518. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
  519. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/marketing-crm-domain-had-no-category.md +0 -0
  520. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-already-covered-defeater.md +0 -0
  521. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-aware-skills.md +0 -0
  522. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-cannot-read-a-skill-before-installing.md +0 -0
  523. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-check-skills-before-starting-a-task.md +0 -0
  524. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-doctor-says-healthy-where-mcp-search-says-nothing-is-tapped.md +0 -0
  525. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  526. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-install-description-omits-antigravity.md +0 -0
  527. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-install-skips-the-injection-scan.md +0 -0
  528. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  529. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-miss-reply-echoes-the-whole-query.md +0 -0
  530. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-one-benefit-nameable-task.md +0 -0
  531. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  532. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-registration-writes-outside-a-sandboxed-home.md +0 -0
  533. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
  534. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-search-cost-overstated-on-keyless-machines.md +0 -0
  535. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-search-cost-was-understated.md +0 -0
  536. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-search-hid-which-ranking-ran.md +0 -0
  537. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-server-dies-on-a-valid-json-message-that-is-not-an-object.md +0 -0
  538. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-servers-ignore-install-scope.md +0 -0
  539. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-session-dies-on-a-deeply-nested-json-line.md +0 -0
  540. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-skip-list-absent-from-tool-descriptions.md +0 -0
  541. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  542. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mcp-zero-setup-and-three-kinds.md +0 -0
  543. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  544. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
  545. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/merged-loop-branches-are-never-pruned.md +0 -0
  546. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  547. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
  548. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  549. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  550. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  551. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-shard-balance-hints-are-a-release-behind.md +0 -0
  552. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-shard-floor-is-one-file.md +0 -0
  553. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mutation-shards-rerun-full-set-every-push.md +0 -0
  554. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
  555. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/near-duplicate-items-eat-the-result-slots.md +0 -0
  556. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/near-identical-copies-still-eat-the-slots.md +0 -0
  557. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
  558. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
  559. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-bad-agent-dir-silences-the-whole-doctor-report.md +0 -0
  560. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  561. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-commit-can-cut-two-releases.md +0 -0
  562. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-dead-tap-broke-every-update.md +0 -0
  563. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-failed-shard-job-drops-registries-from-the-manifest.md +0 -0
  564. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  565. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/openssf-best-practices-badge.md +0 -0
  566. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/openssf-gold-ceiling.md +0 -0
  567. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/openssf-playbook.md +0 -0
  568. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/openssf-silver.md +0 -0
  569. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/osps-baseline-levels.md +0 -0
  570. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  571. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/panel-fits-data-to-an-assumed-80-in-a-pipe.md +0 -0
  572. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  573. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
  574. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/pathlib-exists-is-not-total.md +0 -0
  575. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/pep585-604-modernization-sweep.md +0 -0
  576. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  577. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
  578. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
  579. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  580. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  581. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/prerequisites-and-semantic-search-setup.md +0 -0
  582. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
  583. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/project-scope-in-an-unmarked-tree-does-not-walk-up.md +0 -0
  584. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
  585. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/project-uninstall-deletes-any-in-repo-directory-the-lock-names.md +0 -0
  586. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  587. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  588. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  589. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  590. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  591. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
  592. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/publish-the-keyword-index.md +0 -0
  593. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
  594. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/published-shards-have-no-consumer.md +0 -0
  595. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
  596. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/python-floor-moves-to-312.md +0 -0
  597. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  598. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quickstart-drops-incompatible-shard-status.md +0 -0
  599. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quickstart-manifest-error-drops-hint-and-misnames-cause.md +0 -0
  600. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quickstart-rerun-retargets-tapped-registries.md +0 -0
  601. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quickstart-says-ready-exit-0-after-every-tap-failed.md +0 -0
  602. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/quickstart-shard-download-invisible-in-preview-and-run.md +0 -0
  603. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ragas-unpin-when-upstream-ships.md +0 -0
  604. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
  605. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/read-only-boost-home-with-no-cache-dir.md +0 -0
  606. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/readme-81-command-table-lists-80-omits-quickstart.md +0 -0
  607. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/readme-hero-installs-a-name-no-starter-registry-ships.md +0 -0
  608. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/readme-prune-and-search-guide.md +0 -0
  609. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/reclone-leaves-a-clone-on-head-when-it-cannot-reach-the-pin.md +0 -0
  610. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/recommend-recomputes-its-columns-per-row.md +0 -0
  611. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  612. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/refresh-strands-the-natural-set-baseline.md +0 -0
  613. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  614. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/reindex-reported-a-completeness-share-it-could-not-compute.md +0 -0
  615. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
  616. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/release-guard-fails-open-when-it-cannot-read-tags.md +0 -0
  617. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/release-verifies-the-wrong-commit.md +0 -0
  618. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/relicence-apache-2.md +0 -0
  619. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/reproducible-release-artifacts.md +0 -0
  620. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
  621. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/required-checks-config-drift.md +0 -0
  622. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/required-eval-gate-still-grades-by-name.md +0 -0
  623. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/resolve-vendored-duplicate-copies.md +0 -0
  624. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  625. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  626. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/roadmap-boards-advertise-python-39.md +0 -0
  627. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
  628. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/roadmap-page-weight-grows-without-bound.md +0 -0
  629. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/roadmap-perf-budget-has-no-local-guard.md +0 -0
  630. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  631. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
  632. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/rule-and-workflow-rows-carry-a-scope-nothing-but-list-local-reads.md +0 -0
  633. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  634. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/rules-install-but-cannot-be-governed.md +0 -0
  635. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  636. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
  637. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sandbox-fixture-does-not-sandbox-the-working-directory.md +0 -0
  638. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  639. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sbom-declares-the-wrong-version.md +0 -0
  640. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  641. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
  642. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  643. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/scheduled-toolchain-lock-regeneration.md +0 -0
  644. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
  645. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/scripts-under-the-lint-gate.md +0 -0
  646. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-and-browse-visual-refresh.md +0 -0
  647. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-caps-the-two-copyable-identifiers.md +0 -0
  648. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-drops-symbol-language-queries-silently.md +0 -0
  649. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-footer-not-fitted-to-the-pane-its-rows-were-fitted-to.md +0 -0
  650. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-footer-overflows-40-col-pane-gate-passes-by-luck.md +0 -0
  651. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-never-notices-a-new-tap.md +0 -0
  652. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-relevance-meter-is-constant-on-default-page.md +0 -0
  653. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/search-rows-use-term-width-so-piping-drops-the-tap-column.md +0 -0
  654. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  655. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  656. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  657. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  658. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
  659. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/self-update-claims-up-to-date-without-asking.md +0 -0
  660. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/serve-404-reflected-the-request.md +0 -0
  661. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/serve-is-a-searchable-catalogue.md +0 -0
  662. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
  663. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shard-refresh-skips-processed-commits.md +0 -0
  664. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shard-runs-reembed-everything-weekly.md +0 -0
  665. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shard-weights-do-not-predict-the-job-timeout.md +0 -0
  666. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shards-pipeline-never-produced-a-shard.md +0 -0
  667. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shareable-catalogue-bundle.md +0 -0
  668. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  669. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/shrink-the-published-index.md +0 -0
  670. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  671. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  672. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/smart-rerank-pays-per-novel-query.md +0 -0
  673. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  674. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/stale-gate-sizes-in-readme-and-contributing.md +0 -0
  675. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/stale-tap-hint-dead-for-tap-only-installs.md +0 -0
  676. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  677. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  678. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
  679. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  680. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/surface-dehyphenation-rationale-is-false.md +0 -0
  681. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  682. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sweep-died-at-a-page-not-at-launch.md +0 -0
  683. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sweep-died-at-launch-not-at-a-page.md +0 -0
  684. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sync-could-not-repair-a-gutted-skill.md +0 -0
  685. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
  686. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sync-relinks-into-every-agent-ignoring-scope.md +0 -0
  687. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sync-repairs-a-disabled-agents-row-every-run.md +0 -0
  688. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/sync-reported-success-for-a-link-it-refused.md +0 -0
  689. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/table-fit-widths-floor-destroys-columns-and-still-overflows.md +0 -0
  690. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  691. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/taps-check-out-freight-they-never-index.md +0 -0
  692. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/taps-vouches-for-a-clone-that-is-not-there.md +0 -0
  693. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/text-io-leaves-its-encoding-to-the-locale.md +0 -0
  694. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-catalogue-advertised-repos-that-no-longer-exist.md +0 -0
  695. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-install-path-hands-agy-claudes-mcp-argv.md +0 -0
  696. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-links-concurrency-cap-did-not-hold.md +0 -0
  697. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-model-back-off-mixes-two-clocks.md +0 -0
  698. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-scale-corpus-refreshed-the-wrong-rows.md +0 -0
  699. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-shard-job-that-could-not-finish.md +0 -0
  700. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/the-windows-test-cap-is-five-minutes-from-the-measurement.md +0 -0
  701. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  702. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/tier3-ceiling-unreachable-at-default-n.md +0 -0
  703. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/tool-call-eval-tier.md +0 -0
  704. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/two-ci-controls-that-could-not-act.md +0 -0
  705. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/two-crashes-that-should-have-been-messages.md +0 -0
  706. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  707. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/typos-reported-as-boost-bugs.md +0 -0
  708. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  709. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  710. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
  711. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/unreadable-tap-cache-healthy-doctor-crashing-heal.md +0 -0
  712. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  713. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/unwatched-crons-hid-a-real-fuzz-crash.md +0 -0
  714. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/unwritable-agent-dir-has-no-remedy.md +0 -0
  715. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/unwritable-rule-or-workflow-dir-crashes-install.md +0 -0
  716. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/update-advertises-a-flag-it-rejects.md +0 -0
  717. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  718. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/update-refreshed-rules-without-a-gate.md +0 -0
  719. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  720. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
  721. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/util-rmtree-chmods-a-symlink-target-outside-the-tree.md +0 -0
  722. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/vex-openvex-feed.md +0 -0
  723. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  724. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/weekly-vectors-had-no-ingestion-path.md +0 -0
  725. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  726. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  727. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
  728. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  729. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  730. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  731. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/workspace-scope-install.md +0 -0
  732. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/wrap-width-judged-by-stdout.md +0 -0
  733. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/writers-whose-bytes-are-compared-do-not-pin-their-newline.md +0 -0
  734. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/zip-strict-audit.md +0 -0
  735. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/zizmor-ignores-drift-and-make-lint-never-ran-it.md +0 -0
  736. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/roadmap/items/zizmor-pin-is-a-yanked-release.md +0 -0
  737. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/security-design.md +0 -0
  738. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/semantic-search.md +0 -0
  739. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/superpowers/specs/2026-08-16-catalogue-content-identity-design.md +0 -0
  740. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/verifying-releases.md +0 -0
  741. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/meta.md +0 -0
  742. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/openvex.json +0 -0
  743. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/statements/gitleaks-secretscan-test-fixtures.md +0 -0
  744. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/statements/quality-trust-fingerprint-not-sensitive.md +0 -0
  745. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/statements/zizmor-adhoc-packages-lint-runners.md +0 -0
  746. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/docs/vex/statements/zizmor-dangerous-triggers-workflow-run.md +0 -0
  747. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/eslint.config.mjs +0 -0
  748. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/README.md +0 -0
  749. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/__init__.py +0 -0
  750. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/baseline.json +0 -0
  751. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/faithfulness.py +0 -0
  752. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/golden_set.json +0 -0
  753. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/make_corpus.py +0 -0
  754. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/make_golden.py +0 -0
  755. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/metrics.py +0 -0
  756. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/publish_golden_dataset.py +0 -0
  757. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/evals/run_evals.py +0 -0
  758. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/examples/README.md +0 -0
  759. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/examples/adapt-demo.sh +0 -0
  760. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/examples/boost-run-prototype.sh +0 -0
  761. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/index.html +0 -0
  762. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/noxfile.py +0 -0
  763. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/pyproject.toml +0 -0
  764. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/coverage-tools.in +0 -0
  765. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/lint-tools.in +0 -0
  766. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/mutation-tools.in +0 -0
  767. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/platform-pins.lock +0 -0
  768. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/release-tools.in +0 -0
  769. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/requirements/test-tools.in +0 -0
  770. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/a11y_check.py +0 -0
  771. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/add_spdx_headers.py +0 -0
  772. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/bench_cli.sh +0 -0
  773. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_command_reference.py +0 -0
  774. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_demo_index.py +0 -0
  775. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_registries.py +0 -0
  776. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_roadmap.py +0 -0
  777. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_scale_corpus.py +0 -0
  778. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/build_vex.py +0 -0
  779. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_anchors.py +0 -0
  780. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_branch_current.py +0 -0
  781. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_dco.py +0 -0
  782. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_licenses.py +0 -0
  783. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_reproducible.py +0 -0
  784. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/check_required_checks.py +0 -0
  785. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/ensure_eval_corpus.sh +0 -0
  786. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_corpus.py +0 -0
  787. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_explain.py +0 -0
  788. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_gate.py +0 -0
  789. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_recommend.py +0 -0
  790. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_retrieval.py +0 -0
  791. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_stats_summary.py +0 -0
  792. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/eval_tools.py +0 -0
  793. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/import_budget.py +0 -0
  794. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/lock_toolchain.py +0 -0
  795. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/measure_near_duplicate_bound.py +0 -0
  796. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/measure_registry.py +0 -0
  797. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/mutation_gate.py +0 -0
  798. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/mutation_shards.py +0 -0
  799. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/mutation_weights.json +0 -0
  800. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/normalize_sdist.py +0 -0
  801. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/page_budget.py +0 -0
  802. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/perf_gate.py +0 -0
  803. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/post_deploy_smoke.py +0 -0
  804. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/publish_eval_json.py +0 -0
  805. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/publish_shards.py +0 -0
  806. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/release_guard.py +0 -0
  807. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/release_preflight.py +0 -0
  808. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/serve_docs.py +0 -0
  809. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/scripts/shard_plan.py +0 -0
  810. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/setup.cfg +0 -0
  811. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/sonar-project.properties +0 -0
  812. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/style/README.md +0 -0
  813. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/style/boost.css +0 -0
  814. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/style/boost.js +0 -0
  815. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/style/demo.html +0 -0
  816. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/adapt.feature +0 -0
  817. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/browse.feature +0 -0
  818. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/count.feature +0 -0
  819. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/discover.feature +0 -0
  820. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/doctor.feature +0 -0
  821. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/environment.py +0 -0
  822. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/explain.feature +0 -0
  823. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/index.feature +0 -0
  824. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/install.feature +0 -0
  825. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/list.feature +0 -0
  826. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/mcp.feature +0 -0
  827. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/search.feature +0 -0
  828. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/steps/cli_steps.py +0 -0
  829. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/steps/discovery_steps.py +0 -0
  830. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/steps/mcp_steps.py +0 -0
  831. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/bdd/features/steps/quality_steps.py +0 -0
  832. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/baseline.json +0 -0
  833. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/explain.jsonl +0 -0
  834. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/fixtures/claude_init_event.jsonl +0 -0
  835. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/golden-natural.jsonl +0 -0
  836. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/golden.jsonl +0 -0
  837. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/recommend.jsonl +0 -0
  838. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/taps-scale.txt +0 -0
  839. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/taps.txt +0 -0
  840. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/eval/tool_calls.jsonl +0 -0
  841. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_bad_input_is_not_a_crash.py +0 -0
  842. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_bmad_all_hosts.py +0 -0
  843. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_bmad_personas_scope.py +0 -0
  844. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_capabilities_policy.py +0 -0
  845. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_adapt.py +0 -0
  846. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_bmad.py +0 -0
  847. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_catalog.py +0 -0
  848. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_chat.py +0 -0
  849. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_configuration.py +0 -0
  850. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_discovery.py +0 -0
  851. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_hooks.py +0 -0
  852. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_hooks_codex.py +0 -0
  853. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_hooks_gemini.py +0 -0
  854. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_identifier_columns.py +0 -0
  855. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_info.py +0 -0
  856. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_intelligence.py +0 -0
  857. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_json_reports.py +0 -0
  858. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_pane_width.py +0 -0
  859. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_pkg.py +0 -0
  860. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_quality.py +0 -0
  861. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_quickstart.py +0 -0
  862. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_tap_pins.py +0 -0
  863. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_taps.py +0 -0
  864. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_cli_team.py +0 -0
  865. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_context_sees_an_unborn_branch.py +0 -0
  866. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_count_flags_reject_nonpositive.py +0 -0
  867. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_everyday_loop.py +0 -0
  868. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_integrity_enforce.py +0 -0
  869. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_keyed_no_store_hint.py +0 -0
  870. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_kind_conformance.py +0 -0
  871. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_property_parsers.py +0 -0
  872. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_recommend_because_is_true.py +0 -0
  873. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_repo_root_guard_covers_real_installs.py +0 -0
  874. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_reports_match_reality.py +0 -0
  875. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_run.py +0 -0
  876. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/functional/test_tap_signing.py +0 -0
  877. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/README.md +0 -0
  878. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
  879. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
  880. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
  881. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
  882. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
  883. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
  884. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
  885. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
  886. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
  887. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
  888. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
  889. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
  890. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
  891. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/02-https.txt +0 -0
  892. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
  893. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
  894. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
  895. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/06-space.txt +0 -0
  896. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
  897. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
  898. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/09-nul.txt +0 -0
  899. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/10-name-too-long.txt +0 -0
  900. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/corpus/registry/11-long-owner-repo.txt +0 -0
  901. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/fuzz_frontmatter.py +0 -0
  902. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/fuzz/fuzz_registry.py +0 -0
  903. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/langchain/conftest.py +0 -0
  904. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/langchain/test_graph.py +0 -0
  905. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/langchain/test_loader.py +0 -0
  906. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/langchain/test_retriever.py +0 -0
  907. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/make_fixture.py +0 -0
  908. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/perf/test_benchmarks.py +0 -0
  909. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/smoke.sh +0 -0
  910. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/data/bmad-skills-6.12.0.json +0 -0
  911. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_a11y_check.py +0 -0
  912. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_action_pin_lockstep.py +0 -0
  913. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_adapters.py +0 -0
  914. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_adapters_multi.py +0 -0
  915. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_adapters_runner.py +0 -0
  916. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_agents.py +0 -0
  917. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_ai.py +0 -0
  918. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_aihost.py +0 -0
  919. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_archive.py +0 -0
  920. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_bmad_core.py +0 -0
  921. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_boost_first_offer.py +0 -0
  922. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_bootstrap.py +0 -0
  923. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_bot_pr_dco.py +0 -0
  924. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_branch_current.py +0 -0
  925. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_browse.py +0 -0
  926. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_builtin.py +0 -0
  927. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_canary_deps.py +0 -0
  928. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_capabilities.py +0 -0
  929. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_catalog.py +0 -0
  930. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_catalog_distinct.py +0 -0
  931. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_catalog_keyword_words.py +0 -0
  932. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_catalogbundle.py +0 -0
  933. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_chat.py +0 -0
  934. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_check_anchors.py +0 -0
  935. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_check_dco.py +0 -0
  936. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_check_licenses.py +0 -0
  937. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_check_reproducible.py +0 -0
  938. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_claude_settings.py +0 -0
  939. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_claude_settings_codex.py +0 -0
  940. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_clean_internal_cache.py +0 -0
  941. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_cli_update_shards.py +0 -0
  942. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_cliparse.py +0 -0
  943. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_codeql_analysis_key.py +0 -0
  944. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_cohort.py +0 -0
  945. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_command_reference_fresh.py +0 -0
  946. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_community_health_files.py +0 -0
  947. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_compact.py +0 -0
  948. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_complete.py +0 -0
  949. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_complete_rc_block.py +0 -0
  950. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_config.py +0 -0
  951. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_content_dedupe.py +0 -0
  952. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_content_identity.py +0 -0
  953. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_corpus_prose.py +0 -0
  954. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_count_flags_use_positive_int.py +0 -0
  955. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_coverage_gate_prose.py +0 -0
  956. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_crash_redaction.py +0 -0
  957. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dedup_trust.py +0 -0
  958. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_demo_index.py +0 -0
  959. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense.py +0 -0
  960. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_boilerplate_cluster.py +0 -0
  961. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_embed_dedupe.py +0 -0
  962. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_entry_reuse.py +0 -0
  963. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_entry_vectors.py +0 -0
  964. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_fallback.py +0 -0
  965. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_fix_hint.py +0 -0
  966. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_model_unavailable.py +0 -0
  967. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_progress.py +0 -0
  968. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_quantized.py +0 -0
  969. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_ready_order.py +0 -0
  970. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_shard_real_schema.py +0 -0
  971. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_shard_unreadable_vectors.py +0 -0
  972. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_shards.py +0 -0
  973. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_status.py +0 -0
  974. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_status_cheap.py +0 -0
  975. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dense_vector_dedupe.py +0 -0
  976. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dependabot_config.py +0 -0
  977. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_deps.py +0 -0
  978. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_discovery.py +0 -0
  979. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_distill_merge.py +0 -0
  980. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_docs_pages_linked.py +0 -0
  981. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_docsite_chrome.py +0 -0
  982. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_doctor_output_polish.py +0 -0
  983. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_drift_hint.py +0 -0
  984. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_dry_run_parity.py +0 -0
  985. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_ed25519.py +0 -0
  986. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_embed.py +0 -0
  987. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_embed_local.py +0 -0
  988. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_embed_outranking.py +0 -0
  989. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_embed_truncated_response.py +0 -0
  990. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_entry_key.py +0 -0
  991. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_errors_and_cli_table.py +0 -0
  992. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_baseline.py +0 -0
  993. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_corpus.py +0 -0
  994. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_corpus_bodies.py +0 -0
  995. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_faithfulness.py +0 -0
  996. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_gate.py +0 -0
  997. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_grading.py +0 -0
  998. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_metrics.py +0 -0
  999. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_query_sets.py +0 -0
  1000. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_stats_summary.py +0 -0
  1001. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_tools.py +0 -0
  1002. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_eval_tools_probe.py +0 -0
  1003. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_failure_alerting_covers_unattended.py +0 -0
  1004. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_faithfulness.py +0 -0
  1005. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_first_run_pointer.py +0 -0
  1006. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_frontmatter.py +0 -0
  1007. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_fuzz_targets.py +0 -0
  1008. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gemini_agent_sanitize.py +0 -0
  1009. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gitleaks_config.py +0 -0
  1010. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gitutil.py +0 -0
  1011. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gitutil_lfs.py +0 -0
  1012. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gitutil_sparse.py +0 -0
  1013. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_gstack_coexistence.py +0 -0
  1014. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_help_contracts.py +0 -0
  1015. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_hook_settings_hosts.py +0 -0
  1016. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_hookhost.py +0 -0
  1017. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_hookhost_codex.py +0 -0
  1018. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_imperative.py +0 -0
  1019. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_import_budget.py +0 -0
  1020. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_injectscan.py +0 -0
  1021. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_install_permission_error.py +0 -0
  1022. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_installscan.py +0 -0
  1023. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_integrity.py +0 -0
  1024. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_journal.py +0 -0
  1025. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_jsonstate.py +0 -0
  1026. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_langchain_packaging.py +0 -0
  1027. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_launcher_python_floor.py +0 -0
  1028. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_lighthouse_budgets.py +0 -0
  1029. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_link_ownership.py +0 -0
  1030. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_localembed.py +0 -0
  1031. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_localembed_e2e.py +0 -0
  1032. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_lockfile.py +0 -0
  1033. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_logs.py +0 -0
  1034. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_marketing_counts.py +0 -0
  1035. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcp.py +0 -0
  1036. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcp_install_sandbox_home.py +0 -0
  1037. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcp_install_scan.py +0 -0
  1038. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcp_read.py +0 -0
  1039. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcpdecl.py +0 -0
  1040. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mcphost.py +0 -0
  1041. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_measure_registry.py +0 -0
  1042. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_minisign.py +0 -0
  1043. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mutation_hardening.py +0 -0
  1044. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mutation_shards.py +0 -0
  1045. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mutation_subfile_shards.py +0 -0
  1046. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_mutation_weights_drift.py +0 -0
  1047. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_near_duplicate_collapse.py +0 -0
  1048. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_nethttp.py +0 -0
  1049. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_normalize_sdist.py +0 -0
  1050. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_output.py +0 -0
  1051. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_output_table_drop.py +0 -0
  1052. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_output_table_whole.py +0 -0
  1053. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_page_budget.py +0 -0
  1054. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_paths.py +0 -0
  1055. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_perf_gate.py +0 -0
  1056. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_pkg_confusions.py +0 -0
  1057. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_pkg_injection.py +0 -0
  1058. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_pkg_secrets.py +0 -0
  1059. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_platform_pins.py +0 -0
  1060. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_policy.py +0 -0
  1061. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_post_deploy_smoke.py +0 -0
  1062. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_prereq.py +0 -0
  1063. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_project_mcp_sidecar.py +0 -0
  1064. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_projectlock.py +0 -0
  1065. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_provenance.py +0 -0
  1066. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_publish_golden_dataset.py +0 -0
  1067. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_quickstart_readiness.py +0 -0
  1068. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rag.py +0 -0
  1069. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rag_completeness.py +0 -0
  1070. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rag_extra_hint.py +0 -0
  1071. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rag_fastpath.py +0 -0
  1072. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rag_fusion.py +0 -0
  1073. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_read_text_arg.py +0 -0
  1074. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_registries_fresh.py +0 -0
  1075. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_registry.py +0 -0
  1076. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_registry_categories.py +0 -0
  1077. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_registry_control_chars.py +0 -0
  1078. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_registry_parallel.py +0 -0
  1079. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_release_guard.py +0 -0
  1080. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_release_preflight.py +0 -0
  1081. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_repo_root_guard.py +0 -0
  1082. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_report.py +0 -0
  1083. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_required_checks.py +0 -0
  1084. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rerank_cache.py +0 -0
  1085. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_resolve.py +0 -0
  1086. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_retrieve_any_near_duplicates.py +0 -0
  1087. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_roadmap_fresh.py +0 -0
  1088. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_rules.py +0 -0
  1089. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_sandbox_fixture_cwd.py +0 -0
  1090. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_scale_corpus.py +0 -0
  1091. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_schedule_plist.py +0 -0
  1092. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_sdist_contents.py +0 -0
  1093. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_secretscan.py +0 -0
  1094. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_selfupdate.py +0 -0
  1095. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_serve.py +0 -0
  1096. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_serve_docs.py +0 -0
  1097. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shard_plan.py +0 -0
  1098. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shards.py +0 -0
  1099. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shards_carry_forward.py +0 -0
  1100. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shards_incremental.py +0 -0
  1101. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shards_ingest.py +0 -0
  1102. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_shards_matrix.py +0 -0
  1103. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_smoke_covers_every_command.py +0 -0
  1104. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_spdx_headers.py +0 -0
  1105. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_spin.py +0 -0
  1106. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_stackprobe.py +0 -0
  1107. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_staleness.py +0 -0
  1108. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_store_materialize.py +0 -0
  1109. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_sync_blocked_links.py +0 -0
  1110. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_sync_lost_lock.py +0 -0
  1111. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_sync_repairs_gutted_skill.py +0 -0
  1112. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_tap_pins.py +0 -0
  1113. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_text_io_names_its_encoding.py +0 -0
  1114. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_token_parity.py +0 -0
  1115. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_toolchain_lock.py +0 -0
  1116. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_trustaudit.py +0 -0
  1117. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_typedvalue.py +0 -0
  1118. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_typosquat.py +0 -0
  1119. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_updatediff.py +0 -0
  1120. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_upstream_path.py +0 -0
  1121. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_util.py +0 -0
  1122. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_version.py +0 -0
  1123. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_version_tags.py +0 -0
  1124. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_vex.py +0 -0
  1125. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_visual_harness_capture.py +0 -0
  1126. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_visual_harness_flags.py +0 -0
  1127. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_workflow_concurrency.py +0 -0
  1128. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_workflow_concurrency_groups.py +0 -0
  1129. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_workflow_push_has_credentials.py +0 -0
  1130. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_workflow_timeouts.py +0 -0
  1131. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_workflows.py +0 -0
  1132. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/unit/test_zizmor_ignores_still_anchor.py +0 -0
  1133. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/visual/a11y_check.mjs +0 -0
  1134. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/tests/visual/console_check.mjs +0 -0
  1135. {boost_skill_cli-1.2.170 → boost_skill_cli-1.2.172}/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.170
3
+ Version: 1.2.172
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.170'
22
- __version_tuple__ = version_tuple = (1, 2, 170)
21
+ __version__ = version = '1.2.172'
22
+ __version_tuple__ = version_tuple = (1, 2, 172)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -146,8 +146,40 @@ def owned_by(entries: dict, base) -> dict:
146
146
  if base is None:
147
147
  return {}
148
148
  want = os.path.realpath(base)
149
- return {n: e for n, e in entries.items()
150
- if e.get("scope") == SCOPE_PROJECT and _claims(e.get("base"), want)}
149
+ return {n: e for n, e in entries.items() if _owns(e, want)}
150
+
151
+
152
+ def owns(entry: dict, base) -> bool:
153
+ """Does one user-lock entry belong to the project rooted at ``base``?
154
+
155
+ The single-entry form of :func:`owned_by`, and the same predicate rather
156
+ than a second opinion about it — ``list --local`` decides what a repo has
157
+ with the filter, and ``uninstall --local`` decides what it may remove with
158
+ this, so the two cannot disagree about one row.
159
+
160
+ **Both halves are load bearing, and the ``scope`` half defends a shape
161
+ boost's own install path does not write.** ``_install_rule`` and
162
+ ``_install_workflow`` emit ``scope`` and ``base`` in one dict, so the two
163
+ agree on every row an install produces. Two things read a row back and do
164
+ not: a hand-edited lock — the project lock is a *committed* file — and
165
+ ``update``/``reinstall``, which rebuild the install from
166
+ ``lk.get("scope", "user")`` and ``lk.get("base")`` *independently*
167
+ (``commands/pkg.py``), so a row carrying a ``base`` and no ``scope`` comes
168
+ back as user scope with the base intact. Dropping the ``scope`` test would
169
+ hand ``--local`` that row, which lives in the user's own config.
170
+
171
+ ``False`` for ``base is None`` — a caller standing outside any project
172
+ owns nothing — which is answered before ``realpath``, since resolving
173
+ ``None`` is a TypeError rather than an answer.
174
+ """
175
+ if base is None:
176
+ return False
177
+ return _owns(entry, os.path.realpath(base))
178
+
179
+
180
+ def _owns(entry: dict, want: str) -> bool:
181
+ """:func:`owns` over an already-resolved ``want``, for the bulk filter."""
182
+ return entry.get("scope") == SCOPE_PROJECT and _claims(entry.get("base"), want)
151
183
 
152
184
 
153
185
  def _claims(recorded, want: str) -> bool:
@@ -160,13 +192,38 @@ def _claims(recorded, want: str) -> bool:
160
192
  against whatever directory the user happens to be standing in, so `"."`
161
193
  would make one entry belong to every repo at once.
162
194
  """
163
- if not recorded or not isinstance(recorded, str | os.PathLike):
164
- return False
165
- if not os.path.isabs(recorded):
195
+ if not names_a_directory(recorded):
166
196
  return False
167
197
  return os.path.realpath(recorded) == want
168
198
 
169
199
 
200
+ def names_a_directory(recorded) -> bool:
201
+ """Is a recorded ``base`` a claim on *some* directory at all?
202
+
203
+ The half of :func:`_claims` that needs no directory to compare against,
204
+ split out because one caller has none to offer: ``store`` decides whether
205
+ a removal result may *name* the repo it came from, where the question is
206
+ only whether the lock recorded a directory. Sharing the predicate is the
207
+ point — a base this rejects is one no project claims, so a result that
208
+ named it would print a repo that owns nothing.
209
+
210
+ The three clauses are **ordered, not independent**. ``isabs`` raises
211
+ ``TypeError: expected str, bytes or os.PathLike object, not dict`` on a
212
+ hand-edited lock's ``{"base": {}}``, so the ``isinstance`` test has to
213
+ come first and is what makes the last one safe to call at all. ``bool``
214
+ first is for reading, not for filtering: ``isabs("")`` is already False,
215
+ so the empty case would be caught anyway, and saying so up front is
216
+ cheaper than making the reader work it out.
217
+
218
+ What it rejects that a plain truthiness check does not is therefore two
219
+ things: a *truthy* non-string, and a *relative* path — which ``realpath``
220
+ would resolve against wherever the user happens to be standing, making
221
+ one entry belong to whichever repo is read from.
222
+ """
223
+ return (bool(recorded) and isinstance(recorded, str | os.PathLike)
224
+ and os.path.isabs(recorded))
225
+
226
+
170
227
  def check_scope(scope: str) -> str:
171
228
  """Return ``scope`` if it is one boost knows, else raise BoostError."""
172
229
  if scope not in SCOPES:
@@ -1327,6 +1327,83 @@ def _install_project_skill(entry: dict, force: bool = False,
1327
1327
  return res
1328
1328
 
1329
1329
 
1330
+ def project_materialized(name: str, base) -> tuple[str, dict] | None:
1331
+ """The user-lock rule or workflow row ``base``'s project owns — or None.
1332
+
1333
+ The two kinds a project lock cannot hold, looked up where they actually
1334
+ live. Ownership is :func:`scopes.owns`, the same predicate ``list --local``
1335
+ filters with, so the command that shows a row and the command that removes
1336
+ it cannot disagree about whose it is.
1337
+
1338
+ **Ownership is tested before the name is resolved anywhere else.**
1339
+ ``lockfile.find_any`` would be the obvious lookup and is the wrong one
1340
+ here: it answers with the first *section* that holds the name, so a
1341
+ user-scope skill called ``x`` outranks a project rule called ``x`` that
1342
+ this repo owns, and ``--local`` would refuse to remove the row it can see
1343
+ in ``list --local``. Rules before workflows only to fix an order; a name
1344
+ in both sections is already ambiguous for bare ``uninstall``, which
1345
+ resolves it the same way.
1346
+
1347
+ No ``base is None`` short-circuit, deliberately: :func:`scopes.owns`
1348
+ answers ``False`` for it, so a guard here would be a branch no input can
1349
+ reach — a falsification pass deleted one and every test still passed,
1350
+ which is the definition of a line that is not doing anything. The cost of
1351
+ leaving it out is two dict lookups on a path that then returns None.
1352
+ """
1353
+ for kind, get in (("rule", lockfile.get_rule),
1354
+ ("workflow", lockfile.get_workflow)):
1355
+ row = get(name)
1356
+ if row and scopes.owns(row, base):
1357
+ return kind, row
1358
+ return None
1359
+
1360
+
1361
+ def _not_in_this_project(name: str) -> BoostError:
1362
+ """``uninstall --local``'s refusal, worded from where the item really is.
1363
+
1364
+ One sentence covered three states. It is **true** in all three — a rule
1365
+ in the user's own config really is not installed in this project — and
1366
+ useless in two, because it reports the one fact the reader already has
1367
+ and withholds the one they need. Its hint sends them to ``boost list
1368
+ --local``, which correctly shows nothing, so the message and the remedy
1369
+ agree with each other and not with the machine. Each branch now names the
1370
+ scope it found and the command that removes it from there, because the
1371
+ item *is* removable and only the flag naming where it lives was not.
1372
+
1373
+ **No ``base`` parameter**, though the caller has one resolved. Every
1374
+ branch is decided by :func:`lockfile.find_any`, which searches the user
1375
+ lock as a whole and answers with the first *section* holding the name.
1376
+ That is wider than what ``--local`` just rejected:
1377
+ :func:`project_materialized` put ``scopes.owns`` only to the rules and
1378
+ workflows sections, so a row this reports can be a **skill** no ownership
1379
+ test has seen. Which is right for a message whose whole job is to say
1380
+ where the item is *instead* — the row's own ``scope`` decides the wording,
1381
+ and a user-scope skill is named as one. A parameter nothing reads is one
1382
+ no test can pin — a mutation of it is unkillable by construction — so it
1383
+ is not taken.
1384
+ """
1385
+ found = lockfile.find_any(name)
1386
+ if found is not None:
1387
+ kind, row = found
1388
+ if row.get("scope") == scopes.SCOPE_PROJECT:
1389
+ # Owned by some other checkout — `owns` already said not this one.
1390
+ # The recorded base is named: it is the user's own lock, and a
1391
+ # reader who cannot see which repo has it cannot act on this.
1392
+ return BoostError(
1393
+ "%s is a %s installed in %s, not in this project"
1394
+ % (name, kind, row.get("base") or "another project"),
1395
+ hint="remove it from there, or with `boost uninstall %s`"
1396
+ % name)
1397
+ return BoostError(
1398
+ "%s is a %s installed at user scope, not in this project" % (name, kind),
1399
+ hint="remove it with `boost uninstall %s` (no --local)" % name)
1400
+ # Genuinely absent. Byte-identical to what this raised before — the one
1401
+ # state where naming where the item is instead is no help, because it is
1402
+ # nowhere.
1403
+ return BoostError("%s is not installed in this project" % name,
1404
+ hint="see what is with `boost list --local`")
1405
+
1406
+
1330
1407
  def project_skill_targets(base, name: str) -> set[Path]:
1331
1408
  """Every path a project install of ``name`` could legally have written.
1332
1409
 
@@ -1427,12 +1504,35 @@ def uninstall_project(name: str, base=None) -> dict:
1427
1504
  redirect as easily as a doctored path, so keeping it would be the same
1428
1505
  denial of service by another route. ``uninstall`` has no ``--json``, so
1429
1506
  the warning lines are the whole signal a caller gets.
1507
+
1508
+ **A rule or workflow gets none of those guards, and that is correct.**
1509
+ A project lock holds a ``skills`` key and nothing else, so an
1510
+ ``install --local`` of the other two kinds materializes into the repo but
1511
+ records itself in the *user* lock tagged ``scope``/``base``. Everything
1512
+ above exists because the project lock is a **committed** file that anyone
1513
+ with merge rights can edit — a path out of it is input. The user lock is
1514
+ not committed; it is the same file bare ``boost uninstall`` has always
1515
+ read, and :func:`_uninstall_rule` / :func:`_uninstall_workflow` are the
1516
+ same functions it has always called. So the fall-through adds no path
1517
+ boost could not already be asked to delete, and re-deriving a legal set
1518
+ for it would be ceremony over a threat that is not there.
1519
+
1520
+ What ``--local`` does is **narrow** eligibility, never widen it:
1521
+ :func:`scopes.owns` admits only a row this repo claims, so a user-scope
1522
+ rule and another checkout's rule both stay put. Before this,
1523
+ ``list --local`` printed the rule and ``uninstall --local`` answered "not
1524
+ installed in this project" — so the flag that performed the install could
1525
+ not undo it, and said something false while refusing.
1430
1526
  """
1431
1527
  resolved_base = _resolve_base(scopes.SCOPE_PROJECT, base)
1432
1528
  entry = projectlock.get_skill(resolved_base, name) if resolved_base else None
1433
1529
  if not entry:
1434
- raise BoostError("%s is not installed in this project" % name,
1435
- hint="see what is with `boost list --local`")
1530
+ owned = project_materialized(name, resolved_base)
1531
+ if owned is not None:
1532
+ owned_kind, owned_entry = owned
1533
+ return (_uninstall_rule if owned_kind == "rule"
1534
+ else _uninstall_workflow)(name, owned_entry)
1535
+ raise _not_in_this_project(name)
1436
1536
  removed: list[str] = []
1437
1537
  refused: list[str] = []
1438
1538
  redirected: list[str] = []
@@ -1912,8 +2012,8 @@ def _refused_removal(name: str, path: Path):
1912
2012
  raise _removal_refused(name, path) from None
1913
2013
 
1914
2014
 
1915
- def _remove_all_or_nothing(name: str, plan: list[tuple[Path, str]]) -> None:
1916
- """Apply an uninstall's removals, or none of them.
2015
+ def _remove_all_or_nothing(name: str, plan: list[tuple[Path, str]]) -> int:
2016
+ """Apply an uninstall's removals, or none of them. Returns how many files.
1917
2017
 
1918
2018
  ``plan`` holds ``(path, new_text)`` for each file to change: ``""`` to
1919
2019
  delete it, other text to rewrite it. Every dir is checked before the
@@ -1924,6 +2024,18 @@ def _remove_all_or_nothing(name: str, plan: list[tuple[Path, str]]) -> None:
1924
2024
  Two rows can name one file (two enabled agents whose dirs resolve to one
1925
2025
  path), so the plan is de-duplicated on the resolved dir, not the resolved
1926
2026
  file, and a file already gone counts as removed.
2027
+
2028
+ The count is **files**, after that de-duplication, and never ``len(plan)``.
2029
+ On the default agent table the two agree — a project rule measures five
2030
+ rows at five distinct paths, because ``rules.CONTEXT_FILES`` gives each
2031
+ context-file agent its own name there (``CLAUDE.local.md``,
2032
+ ``GEMINI.md``, ``AGENTS.md``) and Cursor and Windsurf take a rules dir
2033
+ each. They diverge on exactly what the de-duplication is for: two agents
2034
+ configured at one dir, or a dotdir that is a symlink to another, which
2035
+ ``path.parent.resolve()`` collapses. ``len(plan)`` would then tell the
2036
+ user boost removed a file it removed once. The caller reports "removed
2037
+ from <repo>" off this, the way :func:`uninstall_project` reports it off
2038
+ paths that came off disk rather than off the agent list.
1927
2039
  """
1928
2040
  once: dict[Path, tuple[Path, str]] = {}
1929
2041
  for path, text in plan:
@@ -1937,6 +2049,7 @@ def _remove_all_or_nothing(name: str, plan: list[tuple[Path, str]]) -> None:
1937
2049
  util.atomic_write_text(path, text)
1938
2050
  else:
1939
2051
  path.unlink(missing_ok=True)
2052
+ return len(once)
1940
2053
 
1941
2054
 
1942
2055
  def _present(path: Path) -> bool:
@@ -1977,10 +2090,10 @@ def _uninstall_rule(name: str, rule: dict) -> dict:
1977
2090
  plan.append((path, ""))
1978
2091
  if m.get("agent"):
1979
2092
  removed.append(m["agent"])
1980
- _remove_all_or_nothing(name, plan)
2093
+ gone = _remove_all_or_nothing(name, plan)
1981
2094
  lockfile.remove_rule(name)
1982
2095
  journal.log("uninstall", name)
1983
- return {"name": name, "unlinked": removed, "entry": rule, "kind": "rule"}
2096
+ return _materialized_result(name, removed, rule, "rule", gone)
1984
2097
 
1985
2098
 
1986
2099
  def quarantine_materialized(kind: str, name: str, entry: dict) -> list[str]:
@@ -2234,10 +2347,53 @@ def _uninstall_workflow(name: str, workflow: dict) -> dict:
2234
2347
  plan.append((path, ""))
2235
2348
  if m.get("agent"):
2236
2349
  removed.append(m["agent"])
2237
- _remove_all_or_nothing(name, plan)
2350
+ gone = _remove_all_or_nothing(name, plan)
2238
2351
  lockfile.remove_workflow(name)
2239
2352
  journal.log("uninstall", name)
2240
- return {"name": name, "unlinked": removed, "entry": workflow, "kind": "workflow"}
2353
+ return _materialized_result(name, removed, workflow, "workflow", gone)
2354
+
2355
+
2356
+ def _materialized_result(name: str, removed: list[str], entry: dict,
2357
+ kind: str, gone: int) -> dict:
2358
+ """The uninstall result for a rule or workflow, scope carried through.
2359
+
2360
+ ``scope`` and ``base`` come off the lock entry rather than off how the
2361
+ caller got here, because both callers reach the same row: bare
2362
+ ``boost uninstall`` and ``boost uninstall --local`` remove one
2363
+ ``--local`` rule by the same two functions. Reporting the repo only on
2364
+ the flagged path would make the same removal describe itself two ways.
2365
+
2366
+ A user-scope entry has neither key and gets neither, so ``cmd_uninstall``
2367
+ reads ``scope`` as absent and prints exactly what it printed before.
2368
+
2369
+ **Both keys or neither**, and a ``base`` that names a directory is
2370
+ required for it. A lock is a file on disk, so a row can say
2371
+ ``scope: project`` and record no usable directory —
2372
+ :func:`scopes.owned_by` already treats that shape as real and drops it,
2373
+ because a row that claims no directory is claimed by none. Carrying
2374
+ ``scope`` without one would put the key in the dict with that value,
2375
+ where the caller's ``info.get("base", "this repo")`` default can never
2376
+ fire: ``paths.tilde`` is ``str(p)``, so ``None`` prints as *removed from
2377
+ None* and a hand-edited ``{"base": {}}`` prints as *removed from {}* —
2378
+ over a removal that worked.
2379
+
2380
+ The test is :func:`scopes.names_a_directory`, the same one ownership is
2381
+ decided with, rather than a truthiness check beside it. Measured, the two
2382
+ agree on every *falsy* base — ``None``, ``""``, ``{}``, ``0`` are dropped
2383
+ either way — and differ on exactly two things, both of which a lock can
2384
+ hold and an install cannot write: a **truthy** non-string, which would
2385
+ print *removed from 17*, and a **relative** path, which names a different
2386
+ repo depending on where the reader is standing. The relative case is the
2387
+ one that carries the difference in practice, so it is the one the test
2388
+ turns on.
2389
+ """
2390
+ res = {"name": name, "unlinked": removed, "entry": entry, "kind": kind,
2391
+ "removed_count": gone}
2392
+ if (entry.get("scope") == scopes.SCOPE_PROJECT
2393
+ and scopes.names_a_directory(entry.get("base"))):
2394
+ res["scope"] = scopes.SCOPE_PROJECT
2395
+ res["base"] = entry["base"]
2396
+ return res
2241
2397
 
2242
2398
 
2243
2399
  def install_from_path(src_dir: Path, name: str | None = None,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.2.170
3
+ Version: 1.2.172
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License-Expression: Apache-2.0
@@ -0,0 +1,80 @@
1
+ ---
2
+ id: uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows
3
+ board: code
4
+ section: dx
5
+ status: shipped
6
+ category: CLI · Bug
7
+ complexity: S
8
+ impact: Med
9
+ wow: 3
10
+ note: shipped — the fall-through, plus a refusal that names where the item really is
11
+ order: 355
12
+ owner: loop/uninstall-local-rules
13
+ pr: 1021
14
+ title: "<code>uninstall --local</code> cannot remove a rule or workflow that <code>list --local</code> shows"
15
+ ---
16
+ <code>boost install &lt;rule&gt; --local</code> works, and since PR #998 <code>boost list
17
+ --local</code> prints the rule it installed. <code>boost uninstall &lt;rule&gt; --local</code>
18
+ then exits 1 with &ldquo;<code>&lt;rule&gt; is not installed in this project</code>&rdquo; and the
19
+ hint <code>see what is with `boost list --local`</code> &middot; which is the command that just
20
+ showed it. There is no way to undo the install through the scope flag that performed it.
21
+
22
+ The cause is one line: <code>store.uninstall_project</code> (store.py:1291) reads
23
+ <code>projectlock.get_skill</code> and nothing else, because a project lock holds a
24
+ <code>skills</code> key alone. A rule or workflow installed <code>--local</code> is recorded in
25
+ the <em>user</em> lock tagged <code>scope: project</code> with a <code>base</code>, so the
26
+ project lock genuinely has no row &middot; but the user lock does, and bare <code>boost
27
+ uninstall &lt;rule&gt;</code> finds it and works. So the item is removable; only the flag that
28
+ names where it lives is not.
29
+
30
+ Two candidate fixes, and the choice is a design decision rather than a typo. Either
31
+ <code>uninstall_project</code> falls through to the user lock for a row whose <code>scope</code>
32
+ is project and whose <code>base</code> is this repo (<code>scopes.owned_by</code> already answers
33
+ exactly that question, and is what <code>list --local</code> now uses), or <code>--local</code>
34
+ refuses a non-skill with a message that says <em>use bare <code>uninstall</code></em> rather
35
+ than claiming the thing is not installed. The first is what a reader expects; the second is one
36
+ line. Either way the current message is wrong on its facts, which is the part that must not
37
+ survive. Found while verifying
38
+ <code>audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis</code>.
39
+
40
+ <b>Shipped: the fall-through, and the message fixed anyway.</b> Reproduced first — a real
41
+ <code>install house-style --local</code> materializes five rows (<code>CLAUDE.local.md</code>,
42
+ <code>GEMINI.md</code>, <code>AGENTS.md</code>, <code>.cursor/rules/*.mdc</code>,
43
+ <code>.windsurf/rules/*.md</code>), <code>list --local --kind rule</code> prints it, and
44
+ <code>uninstall --local</code> exited 1 saying it was not installed.
45
+ <code>store.project_materialized</code> now looks the name up in the rule and workflow sections
46
+ of the user lock and admits a row only when <code>scopes.owns</code> says this repo claims it;
47
+ <code>uninstall_project</code> hands that row to the same
48
+ <code>_uninstall_rule</code>/<code>_uninstall_workflow</code> bare <code>uninstall</code> has
49
+ always called.
50
+
51
+ <b>Why those functions get none of the guards the skill path has.</b> Everything in
52
+ <code>uninstall_project</code>'s derived-legal-set machinery exists because the <em>project</em>
53
+ lock is a committed file — a path out of it is input. The user lock is not committed, and is the
54
+ same file bare <code>boost uninstall</code> already reads, so the fall-through adds no path boost
55
+ could not already be asked to delete. What <code>--local</code> does is <b>narrow</b>
56
+ eligibility, never widen it.
57
+
58
+ <b>Three details that were not free.</b>
59
+ <code>scopes.owns</code> is the single-entry form of the filter <code>list --local</code> uses,
60
+ not a second opinion about it — the two commands disagreeing about whose a row is <em>is</em> this
61
+ bug.
62
+ Ownership is asked of the rule and workflow sections <em>directly</em>, never through
63
+ <code>lockfile.find_any</code>, which answers with the first section holding the name: a
64
+ user-scope skill called <code>x</code> would outrank a project rule called <code>x</code> this
65
+ repo owns, and <code>--local</code> would go on refusing the row <code>list --local</code> shows.
66
+ And <code>_remove_all_or_nothing</code> now returns a count of <em>files</em> after its
67
+ de-duplication rather than rows. The two agree on the default agent table &mdash; five rows at
68
+ five distinct paths, since <code>rules.CONTEXT_FILES</code> gives each context-file agent its
69
+ own name at project scope &mdash; and diverge on what the de-duplication exists for: two agents
70
+ configured at one dir, or a dotdir symlinked to another. Counting rows there would report a file
71
+ removed twice.
72
+
73
+ <b>The message was useless in two of its three states</b>, which is not the same as wrong: a rule
74
+ in the user&rsquo;s own config really is not installed in this project. It reported the one fact
75
+ the reader already had and withheld the one they needed, and its hint sent them to
76
+ <code>list --local</code>, which correctly shows nothing. Both branches now name where the item
77
+ really is: a user-scope rule says so and points at bare <code>uninstall</code>; a row owned by
78
+ another checkout names that checkout, and both carry the command that removes it from there. The
79
+ genuinely-absent branch is kept byte-identical &mdash; it is the one state where naming where the
80
+ item is instead is no help, because it is nowhere.
@@ -6551,38 +6551,14 @@ its own pass rather than a bolt-on inside this PR. Left <code>inflight</code> ra
6551
6551
  </article>
6552
6552
 
6553
6553
  <article class="cap rcard" id="uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows">
6554
- <div class="head"><span class="pill planned">Planned</span><span class="cat">CLI · Bug</span></div>
6554
+ <div class="head"><span class="pill shipped">Shipped</span><span class="cat">CLI · Bug</span></div>
6555
6555
  <h3><code>uninstall --local</code> cannot remove a rule or workflow that <code>list --local</code> shows</h3>
6556
- <p><code>boost install &lt;rule&gt; --local</code> works, and since PR #998 <code>boost list
6557
- --local</code> prints the rule it installed. <code>boost uninstall &lt;rule&gt; --local</code>
6558
- then exits 1 with &ldquo;<code>&lt;rule&gt; is not installed in this project</code>&rdquo; and the
6559
- hint <code>see what is with `boost list --local`</code> &middot; which is the command that just
6560
- showed it. There is no way to undo the install through the scope flag that performed it.
6561
-
6562
- The cause is one line: <code>store.uninstall_project</code> (store.py:1291) reads
6563
- <code>projectlock.get_skill</code> and nothing else, because a project lock holds a
6564
- <code>skills</code> key alone. A rule or workflow installed <code>--local</code> is recorded in
6565
- the <em>user</em> lock tagged <code>scope: project</code> with a <code>base</code>, so the
6566
- project lock genuinely has no row &middot; but the user lock does, and bare <code>boost
6567
- uninstall &lt;rule&gt;</code> finds it and works. So the item is removable; only the flag that
6568
- names where it lives is not.
6569
-
6570
- Two candidate fixes, and the choice is a design decision rather than a typo. Either
6571
- <code>uninstall_project</code> falls through to the user lock for a row whose <code>scope</code>
6572
- is project and whose <code>base</code> is this repo (<code>scopes.owned_by</code> already answers
6573
- exactly that question, and is what <code>list --local</code> now uses), or <code>--local</code>
6574
- refuses a non-skill with a message that says <em>use bare <code>uninstall</code></em> rather
6575
- than claiming the thing is not installed. The first is what a reader expects; the second is one
6576
- line. Either way the current message is wrong on its facts, which is the part that must not
6577
- survive. A test wants a rule installed <code>--local</code>, asserted present in <code>list
6578
- --local</code>, then removed by <code>uninstall --local</code> with the context file checked for
6579
- the stripped block. Found while verifying
6580
- <code>audit-project-scope-seams-uninstall-verify-list-info-reinstall-dis</code>.</p>
6581
- <div class="meta">
6582
- <span class="m">Complexity <b>S</b></span>
6583
- <span class="m">Impact <b>Med</b></span>
6584
- <span class="m">Wow <b class="wow">★★★</b></span>
6585
- <span class="m">list --local prints the repo's rule; uninstall --local says it is not installed</span>
6556
+ <p class="cardbody"><a class="writeup" href="https://github.com/jonnyeclectic/boost/blob/main/docs/roadmap/items/uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows.md">Write-up &middot; uninstall-local-cannot-remove-a-rule-or-workflow-list-local-shows.md</a></p>
6557
+ <div class="meta">
6558
+ <span class="m">Complexity <b>S</b></span>
6559
+ <span class="m">Impact <b>Med</b></span>
6560
+ <span class="m">Wow <b class="wow">★★★</b></span>
6561
+ <span class="m">shipped — the fall-through, plus a refusal that names where the item really is</span>
6586
6562
  </div>
6587
6563
  </article>
6588
6564
  <!-- /ROADMAP:cards -->