boost-skill-cli 1.0.143__tar.gz → 1.0.145__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 (296) hide show
  1. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/PKG-INFO +1 -1
  2. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/_version.py +2 -2
  3. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/serve.py +7 -3
  4. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/PKG-INFO +1 -1
  5. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/SOURCES.txt +3 -0
  6. boost_skill_cli-1.0.145/docs/roadmap/items/golden-set-statistical-power.md +25 -0
  7. boost_skill_cli-1.0.145/docs/roadmap/items/ranx-significance-monitor.md +24 -0
  8. boost_skill_cli-1.0.145/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +25 -0
  9. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap.html +63 -1
  10. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/.gitattributes +0 -0
  11. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/.gitignore +0 -0
  12. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/CLAUDE.md +0 -0
  13. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/CONTRIBUTING.md +0 -0
  14. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/LICENSE +0 -0
  15. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/MANIFEST.in +0 -0
  16. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/Makefile +0 -0
  17. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/README.md +0 -0
  18. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/SECURITY.md +0 -0
  19. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost +0 -0
  20. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/__init__.py +0 -0
  21. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/__main__.py +0 -0
  22. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/cli.py +0 -0
  23. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/cliparse.py +0 -0
  24. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/__init__.py +0 -0
  25. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/bmad.py +0 -0
  26. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/configuration.py +0 -0
  27. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/discovery.py +0 -0
  28. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/hooks.py +0 -0
  29. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/info.py +0 -0
  30. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/intelligence.py +0 -0
  31. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/pkg.py +0 -0
  32. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/quality.py +0 -0
  33. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/taps.py +0 -0
  34. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/commands/team.py +0 -0
  35. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/__init__.py +0 -0
  36. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/adapters.py +0 -0
  37. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/agents.py +0 -0
  38. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/ai.py +0 -0
  39. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/catalog.py +0 -0
  40. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/claude_settings.py +0 -0
  41. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/config.py +0 -0
  42. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/dense.py +0 -0
  43. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/embed.py +0 -0
  44. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/frontmatter.py +0 -0
  45. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/gitutil.py +0 -0
  46. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/imperative.py +0 -0
  47. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/injectscan.py +0 -0
  48. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/journal.py +0 -0
  49. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/lockfile.py +0 -0
  50. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/logs.py +0 -0
  51. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/mcp.py +0 -0
  52. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/nethttp.py +0 -0
  53. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/output.py +0 -0
  54. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/paths.py +0 -0
  55. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/policy.py +0 -0
  56. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/rag.py +0 -0
  57. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/registry.py +0 -0
  58. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/rules.py +0 -0
  59. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/secretscan.py +0 -0
  60. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/stackprobe.py +0 -0
  61. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/staleness.py +0 -0
  62. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/store.py +0 -0
  63. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/typosquat.py +0 -0
  64. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/updatediff.py +0 -0
  65. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/util.py +0 -0
  66. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/core/workflows.py +0 -0
  67. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/data/registries.json +0 -0
  68. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/errors.py +0 -0
  69. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_cli/spin.py +0 -0
  70. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
  71. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/entry_points.txt +0 -0
  72. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/requires.txt +0 -0
  73. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/boost_skill_cli.egg-info/top_level.txt +0 -0
  74. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/.claude/settings.local.json +0 -0
  75. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/DEBUGGING.md +0 -0
  76. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/adapters.html +0 -0
  77. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/demo.gif +0 -0
  78. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/demo.tape +0 -0
  79. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/design-roadmap.html +0 -0
  80. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/eval.html +0 -0
  81. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/index.html +0 -0
  82. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/mcp-hub.html +0 -0
  83. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/rag-architecture.md +0 -0
  84. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D01.md +0 -0
  85. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D02.md +0 -0
  86. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D03.md +0 -0
  87. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D04.md +0 -0
  88. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D05.md +0 -0
  89. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D06.md +0 -0
  90. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D07.md +0 -0
  91. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D08.md +0 -0
  92. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D09.md +0 -0
  93. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D10.md +0 -0
  94. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D11.md +0 -0
  95. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D12.md +0 -0
  96. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D13.md +0 -0
  97. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D14.md +0 -0
  98. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D15.md +0 -0
  99. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D16.md +0 -0
  100. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D17.md +0 -0
  101. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D18.md +0 -0
  102. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D19.md +0 -0
  103. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D20.md +0 -0
  104. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D21.md +0 -0
  105. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D22.md +0 -0
  106. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D23.md +0 -0
  107. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D24.md +0 -0
  108. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D25.md +0 -0
  109. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/BOOST-D26.md +0 -0
  110. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
  111. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
  112. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
  113. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
  114. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/boost-run-live-agents.md +0 -0
  115. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
  116. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
  117. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
  118. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
  119. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
  120. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
  121. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
  122. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/command-reference-docs-site.md +0 -0
  123. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
  124. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
  125. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
  126. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
  127. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
  128. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
  129. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
  130. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
  131. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
  132. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
  133. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
  134. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
  135. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
  136. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
  137. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
  138. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
  139. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
  140. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
  141. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
  142. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
  143. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/html-validation-html-validate.md +0 -0
  144. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
  145. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
  146. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
  147. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
  148. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
  149. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
  150. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
  151. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
  152. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
  153. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
  154. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
  155. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
  156. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
  157. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
  158. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
  159. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
  160. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
  161. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
  162. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
  163. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
  164. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
  165. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
  166. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
  167. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
  168. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
  169. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
  170. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
  171. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
  172. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
  173. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
  174. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
  175. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
  176. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
  177. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
  178. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
  179. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
  180. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
  181. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
  182. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
  183. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
  184. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
  185. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
  186. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
  187. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
  188. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
  189. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
  190. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
  191. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
  192. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
  193. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
  194. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
  195. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
  196. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
  197. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
  198. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
  199. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
  200. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
  201. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/typo-detection-codespell.md +0 -0
  202. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
  203. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
  204. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
  205. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/update-diff-before-apply.md +0 -0
  206. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
  207. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
  208. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
  209. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
  210. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
  211. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
  212. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
  213. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/docs/roadmap/items/workspace-scope-install.md +0 -0
  214. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/examples/README.md +0 -0
  215. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/examples/adapt-demo.sh +0 -0
  216. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/examples/boost-run-prototype.sh +0 -0
  217. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/index.html +0 -0
  218. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/pyproject.toml +0 -0
  219. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/build_registries.py +0 -0
  220. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/build_roadmap.py +0 -0
  221. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/ensure_eval_corpus.sh +0 -0
  222. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/eval_explain.py +0 -0
  223. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/eval_recommend.py +0 -0
  224. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/eval_retrieval.py +0 -0
  225. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/scripts/mutation_gate.py +0 -0
  226. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/setup.cfg +0 -0
  227. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/style/README.md +0 -0
  228. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/style/boost.css +0 -0
  229. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/style/boost.js +0 -0
  230. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/style/demo.html +0 -0
  231. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/conftest.py +0 -0
  232. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/eval/baseline.json +0 -0
  233. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/eval/explain.jsonl +0 -0
  234. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/eval/golden.jsonl +0 -0
  235. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/eval/recommend.jsonl +0 -0
  236. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/eval/taps.txt +0 -0
  237. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_adapt.py +0 -0
  238. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_bmad.py +0 -0
  239. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_configuration.py +0 -0
  240. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_discovery.py +0 -0
  241. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_hooks.py +0 -0
  242. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_info.py +0 -0
  243. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_intelligence.py +0 -0
  244. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_pkg.py +0 -0
  245. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_quality.py +0 -0
  246. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_taps.py +0 -0
  247. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_cli_team.py +0 -0
  248. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_everyday_loop.py +0 -0
  249. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/functional/test_property_parsers.py +0 -0
  250. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/make_fixture.py +0 -0
  251. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/smoke.sh +0 -0
  252. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_adapters.py +0 -0
  253. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_agents.py +0 -0
  254. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_ai.py +0 -0
  255. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_catalog.py +0 -0
  256. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_claude_settings.py +0 -0
  257. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_cliparse.py +0 -0
  258. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_config.py +0 -0
  259. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_dense.py +0 -0
  260. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_dense_fallback.py +0 -0
  261. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_docs_pages_linked.py +0 -0
  262. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_embed.py +0 -0
  263. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_errors_and_cli_table.py +0 -0
  264. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_frontmatter.py +0 -0
  265. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_gitutil.py +0 -0
  266. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_imperative.py +0 -0
  267. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_injectscan.py +0 -0
  268. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_journal.py +0 -0
  269. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_lockfile.py +0 -0
  270. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_logs.py +0 -0
  271. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_mcp.py +0 -0
  272. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_mutation_hardening.py +0 -0
  273. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_nethttp.py +0 -0
  274. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_output.py +0 -0
  275. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_paths.py +0 -0
  276. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_pkg_confusions.py +0 -0
  277. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_pkg_injection.py +0 -0
  278. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_pkg_secrets.py +0 -0
  279. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_policy.py +0 -0
  280. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_rag.py +0 -0
  281. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_registries_fresh.py +0 -0
  282. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_registry.py +0 -0
  283. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_roadmap_fresh.py +0 -0
  284. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_rules.py +0 -0
  285. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_secretscan.py +0 -0
  286. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_serve.py +0 -0
  287. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_spin.py +0 -0
  288. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_stackprobe.py +0 -0
  289. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_staleness.py +0 -0
  290. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_store.py +0 -0
  291. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_token_parity.py +0 -0
  292. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_typosquat.py +0 -0
  293. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_updatediff.py +0 -0
  294. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_util.py +0 -0
  295. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_version.py +0 -0
  296. {boost_skill_cli-1.0.143 → boost_skill_cli-1.0.145}/tests/unit/test_workflows.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.143
3
+ Version: 1.0.145
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -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.0.143'
22
- __version_tuple__ = version_tuple = (1, 0, 143)
21
+ __version__ = version = '1.0.145'
22
+ __version_tuple__ = version_tuple = (1, 0, 145)
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -14,6 +14,7 @@ import json
14
14
  import re
15
15
  import urllib.parse
16
16
  from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
17
+ from pathlib import Path
17
18
  from typing import Optional, Tuple
18
19
 
19
20
  from .. import __version__
@@ -68,7 +69,10 @@ def _safe_join_within(base, rel):
68
69
  """Resolve base/rel and return it only when contained within base."""
69
70
  try:
70
71
  base_r = base.resolve(strict=False)
71
- candidate = (base_r / rel).resolve(strict=False)
72
+ rel_p = rel if hasattr(rel, "is_absolute") else __import__("pathlib").Path(rel)
73
+ if rel_p.is_absolute():
74
+ return None
75
+ candidate = (base_r / rel_p).resolve(strict=False)
72
76
  candidate.relative_to(base_r)
73
77
  except (OSError, ValueError, TypeError):
74
78
  return None
@@ -80,8 +84,8 @@ def skill_text(name: str) -> Optional[str]:
80
84
  if not SKILL_NAME_RE.fullmatch(name):
81
85
  return None
82
86
  base = store.skill_store_dir(name)
83
- fp = base / "SKILL.md"
84
- if _is_within(base, fp) and fp.is_file():
87
+ fp = _safe_join_within(base, Path("SKILL.md"))
88
+ if fp is not None and fp.is_file():
85
89
  return fp.read_text(encoding="utf-8", errors="replace")
86
90
  for e in catalog.find(name):
87
91
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boost-skill-cli
3
- Version: 1.0.143
3
+ Version: 1.0.145
4
4
  Summary: boost — Homebrew for AI coding skills
5
5
  Author: Jonathan Reyes
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -138,6 +138,7 @@ docs/roadmap/items/framework-adapter-multi-agent.md
138
138
  docs/roadmap/items/framework-adapters-boost-adapt.md
139
139
  docs/roadmap/items/frontmatter-scalar-over-coercion.md
140
140
  docs/roadmap/items/github-pages-deploy-is-broken-every-push.md
141
+ docs/roadmap/items/golden-set-statistical-power.md
141
142
  docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md
142
143
  docs/roadmap/items/html-validation-html-validate.md
143
144
  docs/roadmap/items/integrity-verification-boost-verify.md
@@ -173,6 +174,7 @@ docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md
173
174
  docs/roadmap/items/prose-and-terminology-linting-vale.md
174
175
  docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md
175
176
  docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md
177
+ docs/roadmap/items/ranx-significance-monitor.md
176
178
  docs/roadmap/items/reconcile-the-theme-drift.md
177
179
  docs/roadmap/items/refresh-the-marketing-surface.md
178
180
  docs/roadmap/items/retrieval-quality-eval-harness.md
@@ -180,6 +182,7 @@ docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md
180
182
  docs/roadmap/items/robust-tag-argument-parsing.md
181
183
  docs/roadmap/items/rule-install-native-materialization.md
182
184
  docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md
185
+ docs/roadmap/items/runtime-explain-faithfulness-guardrail.md
183
186
  docs/roadmap/items/sbom-aware-scanning-osv-scanner.md
184
187
  docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md
185
188
  docs/roadmap/items/scan-and-sync-rules-and-workflows.md
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: golden-set-statistical-power
3
+ board: code
4
+ section: health
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: M
8
+ impact: High
9
+ wow: 4
10
+ note: 43 → deeper, per-kind
11
+ order: 4
12
+ owner:
13
+ pr:
14
+ title: Grow & diversify the golden set for statistical power
15
+ ---
16
+ The golden set (<b>43</b> queries / 8 stacks / 7 skills) is small enough that
17
+ engine comparisons don't yet reach significance — the paired t-test lands at
18
+ <code>p≈0.11–0.26</code> on the pinned corpus, so BM25's numeric lead over the
19
+ heuristic can't be called statistically real. Expand and diversify it: many more
20
+ labelled queries with balanced per-kind coverage (skill / rule / workflow),
21
+ harder near-miss distractors, and judgments for the still-unevaluated surfaces
22
+ (<code>search --smart</code>, <code>detect_stack</code>). Tighter confidence
23
+ intervals mean comparisons that actually reach significance and a gate that
24
+ catches subtler regressions. The single highest-leverage extension of the eval
25
+ harness.
@@ -0,0 +1,24 @@
1
+ ---
2
+ id: ranx-significance-monitor
3
+ board: code
4
+ section: health
5
+ status: planned
6
+ category: Quality · Retrieval eval
7
+ complexity: S
8
+ impact: Med
9
+ wow: 3
10
+ note: p-value, not point delta
11
+ order: 5
12
+ owner:
13
+ pr:
14
+ title: Significance-tracked engine comparison (ranx monitor)
15
+ ---
16
+ Tier 1b (the <code>ranx</code> paired t-test, <code>--stats</code>) only runs on
17
+ demand today. Wire it into a scheduled CI monitor — like the
18
+ <code>eval-explain</code> workflow — that tracks whether BM25's lead over the
19
+ heuristic, and any new engine's lead over BM25, is <em>statistically
20
+ significant</em> rather than merely numerically higher, and flags when a change
21
+ erases a previously-significant win. Stays out of the required stdlib gate (ranx
22
+ is an opt-in <code>[eval]</code> dependency); it's a non-blocking monitor, so a
23
+ noisy p-value can never block a merge. Turns "recall went up 0.02" into "the
24
+ improvement is real (or isn't)."
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: runtime-explain-faithfulness-guardrail
3
+ board: code
4
+ section: trust
5
+ status: planned
6
+ category: Trust · Hallucination guard
7
+ complexity: M
8
+ impact: Med
9
+ wow: 4
10
+ note: faithfulness → extractive fallback
11
+ order: 4
12
+ owner:
13
+ pr:
14
+ title: Runtime hallucination guardrail for <code>boost explain</code>
15
+ ---
16
+ Today the ragas <b>faithfulness</b> check (Tier 2c, <code>scripts/eval_explain.py</code>)
17
+ is <em>eval-time only</em> — an offline monitor that flags when generated
18
+ explanations drift from their <code>SKILL.md</code>, but never intercepts a live
19
+ response. Promote it to a <b>runtime guardrail</b>: score the generated summary
20
+ against the source and, when it falls below a faithfulness threshold, fall back
21
+ to the deterministic extractive summary <code>cmd_explain</code> already ships
22
+ for the no-AI case (description + outline + key rules) — or append a
23
+ low-confidence caveat. Turns "a human notices the drift next week" into "the
24
+ tool refuses to show an ungrounded explanation," closing the gap between
25
+ detecting hallucinations and preventing them.
@@ -118,7 +118,7 @@
118
118
  <div class="stat"><b>16</b><span>Shipped</span></div>
119
119
  <div class="stat"><b>1</b><span>Next up</span></div>
120
120
  <div class="stat"><b>4</b><span>Planned</span></div>
121
- <div class="stat"><b>104</b><span>Loop finds</span></div>
121
+ <div class="stat"><b>107</b><span>Loop finds</span></div>
122
122
  <!-- /ROADMAP:stats -->
123
123
  </div>
124
124
  </section>
@@ -942,6 +942,27 @@ explanations and safety, not better ranking.</p>
942
942
  </div>
943
943
  </article>
944
944
 
945
+ <article class="cap rcard">
946
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
947
+ <h3>Grow &amp; diversify the golden set for statistical power</h3>
948
+ <p>The golden set (<b>43</b> queries / 8 stacks / 7 skills) is small enough that
949
+ engine comparisons don't yet reach significance — the paired t-test lands at
950
+ <code>p≈0.11–0.26</code> on the pinned corpus, so BM25's numeric lead over the
951
+ heuristic can't be called statistically real. Expand and diversify it: many more
952
+ labelled queries with balanced per-kind coverage (skill / rule / workflow),
953
+ harder near-miss distractors, and judgments for the still-unevaluated surfaces
954
+ (<code>search --smart</code>, <code>detect_stack</code>). Tighter confidence
955
+ intervals mean comparisons that actually reach significance and a gate that
956
+ catches subtler regressions. The single highest-leverage extension of the eval
957
+ harness.</p>
958
+ <div class="meta">
959
+ <span class="m">Complexity <b>M</b></span>
960
+ <span class="m hi">Impact <b>High</b></span>
961
+ <span class="m">Wow <b class="wow">★★★★</b></span>
962
+ <span class="m">43 → deeper, per-kind</span>
963
+ </div>
964
+ </article>
965
+
945
966
  <article class="cap rcard">
946
967
  <div class="head"><span class="pill planned">Planned</span><span class="cat">Security · Secrets</span></div>
947
968
  <h3>Secret scanning — <code>gitleaks</code> + push protection</h3>
@@ -974,6 +995,26 @@ explanations and safety, not better ranking.</p>
974
995
  </div>
975
996
  </article>
976
997
 
998
+ <article class="cap rcard">
999
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Retrieval eval</span></div>
1000
+ <h3>Significance-tracked engine comparison (ranx monitor)</h3>
1001
+ <p>Tier 1b (the <code>ranx</code> paired t-test, <code>--stats</code>) only runs on
1002
+ demand today. Wire it into a scheduled CI monitor — like the
1003
+ <code>eval-explain</code> workflow — that tracks whether BM25's lead over the
1004
+ heuristic, and any new engine's lead over BM25, is <em>statistically
1005
+ significant</em> rather than merely numerically higher, and flags when a change
1006
+ erases a previously-significant win. Stays out of the required stdlib gate (ranx
1007
+ is an opt-in <code>[eval]</code> dependency); it's a non-blocking monitor, so a
1008
+ noisy p-value can never block a merge. Turns "recall went up 0.02" into "the
1009
+ improvement is real (or isn't)."</p>
1010
+ <div class="meta">
1011
+ <span class="m">Complexity <b>S</b></span>
1012
+ <span class="m">Impact <b>Med</b></span>
1013
+ <span class="m">Wow <b class="wow">★★★</b></span>
1014
+ <span class="m">p-value, not point delta</span>
1015
+ </div>
1016
+ </article>
1017
+
977
1018
  <article class="cap rcard">
978
1019
  <div class="head"><span class="pill planned">Planned</span><span class="cat">Quality · Platform</span></div>
979
1020
  <h3>Quality dashboard — SonarCloud (free for OSS)</h3>
@@ -1919,6 +1960,27 @@ re-break it.</p>
1919
1960
  </div>
1920
1961
  </article>
1921
1962
 
1963
+ <article class="cap rcard">
1964
+ <div class="head"><span class="pill planned">Planned</span><span class="cat">Trust · Hallucination guard</span></div>
1965
+ <h3>Runtime hallucination guardrail for <code>boost explain</code></h3>
1966
+ <p>Today the ragas <b>faithfulness</b> check (Tier 2c, <code>scripts/eval_explain.py</code>)
1967
+ is <em>eval-time only</em> — an offline monitor that flags when generated
1968
+ explanations drift from their <code>SKILL.md</code>, but never intercepts a live
1969
+ response. Promote it to a <b>runtime guardrail</b>: score the generated summary
1970
+ against the source and, when it falls below a faithfulness threshold, fall back
1971
+ to the deterministic extractive summary <code>cmd_explain</code> already ships
1972
+ for the no-AI case (description + outline + key rules) — or append a
1973
+ low-confidence caveat. Turns "a human notices the drift next week" into "the
1974
+ tool refuses to show an ungrounded explanation," closing the gap between
1975
+ detecting hallucinations and preventing them.</p>
1976
+ <div class="meta">
1977
+ <span class="m">Complexity <b>M</b></span>
1978
+ <span class="m">Impact <b>Med</b></span>
1979
+ <span class="m">Wow <b class="wow">★★★★</b></span>
1980
+ <span class="m">faithfulness → extractive fallback</span>
1981
+ </div>
1982
+ </article>
1983
+
1922
1984
  <article class="cap rcard">
1923
1985
  <div class="head"><span class="pill shipped">Shipped</span><span class="cat">Security · Registry</span></div>
1924
1986
  <h3>Typosquat &amp; name-confusion detection</h3>