blockwatch-cli 0.16.1__tar.gz → 0.16.3__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 (297) hide show
  1. blockwatch_cli-0.16.3/.agents/skills/blockwatch/SKILL.md +14 -0
  2. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/AGENTS.md +5 -4
  3. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/CHANGELOG.md +30 -0
  4. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/CLAUDE.md +5 -4
  5. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/Cargo.lock +182 -197
  6. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/Cargo.toml +3 -3
  7. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/PKG-INFO +1 -1
  8. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/README.md +5 -5
  9. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/blockwatch.toml +2 -2
  10. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/agents.md +11 -12
  11. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/ci.md +2 -2
  12. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/cli.md +6 -11
  13. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/symbols.md +127 -9
  14. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/setup.py +1 -1
  15. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/c.rs +7 -0
  16. blockwatch_cli-0.16.3/src/language_parsers/c_sharp.rs +1083 -0
  17. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/dart.rs +11 -1
  18. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/go.rs +2 -0
  19. blockwatch_cli-0.16.3/src/language_parsers/java.rs +872 -0
  20. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/mod.rs +6 -3
  21. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/python.rs +1 -0
  22. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/rust.rs +1 -0
  23. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/typescript.rs +3 -10
  24. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/yaml.rs +109 -42
  25. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/skill.md +67 -13
  26. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/symbols/code.rs +214 -47
  27. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/symbols/mod.rs +67 -23
  28. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/skill.rs +10 -0
  29. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/symbol_references.rs +14 -0
  30. blockwatch_cli-0.16.3/tests/testdata/symbol_references/cs_source.rs +3 -0
  31. blockwatch_cli-0.16.3/tests/testdata/symbol_references/cs_target.cs +6 -0
  32. blockwatch_cli-0.16.3/tests/testdata/symbol_references/java_source.rs +3 -0
  33. blockwatch_cli-0.16.3/tests/testdata/symbol_references/java_target.java +5 -0
  34. blockwatch_cli-0.16.1/.agents/skills/blockwatch/SKILL.md +0 -14
  35. blockwatch_cli-0.16.1/src/language_parsers/c_sharp.rs +0 -91
  36. blockwatch_cli-0.16.1/src/language_parsers/java.rs +0 -152
  37. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.agents/.claude-plugin/plugin.json +0 -0
  38. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.claude-plugin/marketplace.json +0 -0
  39. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/dependabot.yml +0 -0
  40. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/blockwatch.yml +0 -0
  41. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/codeql.yml +0 -0
  42. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/markdownlint.yml +0 -0
  43. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/pypi.yml +0 -0
  44. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/release.yml +0 -0
  45. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/rust.yml +0 -0
  46. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.github/workflows/trusted-checks.yml +0 -0
  47. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.gitignore +0 -0
  48. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.markdownlint-cli2.yaml +0 -0
  49. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.pre-commit-config.yaml +0 -0
  50. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/.pre-commit-hooks.yaml +0 -0
  51. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/LICENSE +0 -0
  52. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/SECURITY.md +0 -0
  53. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/clippy.toml +0 -0
  54. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/codecov.yml +0 -0
  55. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/demo.gif +0 -0
  56. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/dist-workspace.toml +0 -0
  57. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/README.md +0 -0
  58. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/affects.md +0 -0
  59. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/check-ai.md +0 -0
  60. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/check-lua.md +0 -0
  61. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/keep-sorted.md +0 -0
  62. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/keep-unique.md +0 -0
  63. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/line-count.md +0 -0
  64. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/line-pattern.md +0 -0
  65. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/docs/validators/same-as.md +0 -0
  66. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/pypi/pyproject.toml +0 -0
  67. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/pyproject.toml +0 -0
  68. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/release.toml +0 -0
  69. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/scripts/check_language_count.lua +0 -0
  70. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/scripts/check_latest_gpt_nano_model.lua +0 -0
  71. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/block_parser.rs +0 -0
  72. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/blocks.rs +0 -0
  73. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/cli.rs +0 -0
  74. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/config.rs +0 -0
  75. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/diff_parser.rs +0 -0
  76. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/explain.rs +0 -0
  77. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/flags.rs +0 -0
  78. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/fs.rs +0 -0
  79. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/bash.rs +0 -0
  80. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/cmake.rs +0 -0
  81. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/cpp.rs +0 -0
  82. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/css.rs +0 -0
  83. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/dockerfile.rs +0 -0
  84. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/elixir.rs +0 -0
  85. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/graphql.rs +0 -0
  86. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/groovy.rs +0 -0
  87. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/hcl.rs +0 -0
  88. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/html.rs +0 -0
  89. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/javascript.rs +0 -0
  90. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/json.rs +0 -0
  91. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/json.scm +0 -0
  92. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/kotlin.rs +0 -0
  93. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/lean.rs +0 -0
  94. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/lua.rs +0 -0
  95. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/makefile.rs +0 -0
  96. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/markdown.rs +0 -0
  97. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/mdx.rs +0 -0
  98. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/nix.rs +0 -0
  99. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/ocaml.rs +0 -0
  100. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/php.rs +0 -0
  101. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/proto.rs +0 -0
  102. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/ruby.rs +0 -0
  103. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/scala.rs +0 -0
  104. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/sql.rs +0 -0
  105. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/starlark.rs +0 -0
  106. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/swift.rs +0 -0
  107. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/toml.rs +0 -0
  108. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/tsx.rs +0 -0
  109. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/language_parsers/xml.rs +0 -0
  110. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/lib.rs +0 -0
  111. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/main.rs +0 -0
  112. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/path_arguments.rs +0 -0
  113. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/paths_glob.rs +0 -0
  114. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/repo_path.rs +0 -0
  115. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/report.rs +0 -0
  116. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/sarif.rs +0 -0
  117. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/scan.rs +0 -0
  118. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/settings.rs +0 -0
  119. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/symbol_path.rs +0 -0
  120. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/tag_parser.rs +0 -0
  121. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/target_reference.rs +0 -0
  122. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/affects.rs +0 -0
  123. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/check_ai.rs +0 -0
  124. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/check_lua.rs +0 -0
  125. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/keep_sorted.rs +0 -0
  126. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/keep_unique.rs +0 -0
  127. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/line_count.rs +0 -0
  128. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/line_pattern.rs +0 -0
  129. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/mod.rs +0 -0
  130. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/validators/same_as.rs +0 -0
  131. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/violation_address.rs +0 -0
  132. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/src/virtual_blocks.rs +0 -0
  133. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/affects.rs +0 -0
  134. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/check_ai.rs +0 -0
  135. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/check_lua.rs +0 -0
  136. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/common/empty.toml +0 -0
  137. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/common/mod.rs +0 -0
  138. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/config.rs +0 -0
  139. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/encoding.rs +0 -0
  140. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/explain.rs +0 -0
  141. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/general.rs +0 -0
  142. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/keep_sorted.rs +0 -0
  143. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/keep_unique.rs +0 -0
  144. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/line_count.rs +0 -0
  145. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/line_pattern.rs +0 -0
  146. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/list.rs +0 -0
  147. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/path_arguments.rs +0 -0
  148. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/repository_root.rs +0 -0
  149. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/same_as.rs +0 -0
  150. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/sarif.rs +0 -0
  151. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/suppressions.rs +0 -0
  152. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/cross_file_source.rs +0 -0
  153. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/cross_file_target.md +0 -0
  154. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/custom_ext_source.javascript +0 -0
  155. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/custom_ext_target.javascript +0 -0
  156. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/dangling.md +0 -0
  157. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/missing_symbol.rs +0 -0
  158. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/more_added_than_deleted.py +0 -0
  159. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/multiline_tag_source.rs +0 -0
  160. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/multiline_tag_target.rs +0 -0
  161. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/nested_mapping_source.rs +0 -0
  162. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/nested_mapping_target.yaml +0 -0
  163. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/sibling.md +0 -0
  164. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/symbol_source.rs +0 -0
  165. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/symbol_target.json +0 -0
  166. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/table_source.rs +0 -0
  167. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/table_target.toml +0 -0
  168. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/tag_and_content_source.ts +0 -0
  169. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/tag_and_content_target.ts +0 -0
  170. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/whole_file_source.rs +0 -0
  171. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/affects/whole_file_target.json +0 -0
  172. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_ai/two_blocks.py +0 -0
  173. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/affects.lua +0 -0
  174. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/affects.py +0 -0
  175. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/affects_drift.py +0 -0
  176. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/blocking_io.lua +0 -0
  177. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/blocking_io.py +0 -0
  178. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/echo.lua +0 -0
  179. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/fail.lua +0 -0
  180. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/mode.py +0 -0
  181. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/os.lua +0 -0
  182. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/pathfmt/report_path.lua +0 -0
  183. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/pathfmt/source.py +0 -0
  184. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/pattern.py +0 -0
  185. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/pattern_many_matches.py +0 -0
  186. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/pattern_no_match.py +0 -0
  187. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/success.lua +0 -0
  188. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/check_lua/success_and_failure.py +0 -0
  189. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/config/glob_target/config.toml +0 -0
  190. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/config/glob_target/package.json +0 -0
  191. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/config/glob_target/plugins/blue/package.json +0 -0
  192. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/config/glob_target/plugins/green/package.json +0 -0
  193. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/config/glob_target/plugins/red/package.json +0 -0
  194. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/explain/a.py +0 -0
  195. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/explain/check.lua +0 -0
  196. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/block_selection.py +0 -0
  197. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/custom_file_extension.javascript +0 -0
  198. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/custom_file_extension.python +0 -0
  199. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/disable_enable.py +0 -0
  200. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/paths/invalid.py +0 -0
  201. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/paths/subdir/nested_invalid.py +0 -0
  202. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/paths/valid.py +0 -0
  203. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/general/severity.py +0 -0
  204. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/hidden/.github/workflows/ci.yml +0 -0
  205. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/keep_sorted/orderings.py +0 -0
  206. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/keep_unique/basic_and_pattern.py +0 -0
  207. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/line_count/equality_and_greater_than.py +0 -0
  208. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/line_pattern/forbidden_text.py +0 -0
  209. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/line_pattern/hex_and_word_patterns.py +0 -0
  210. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/list/.hg/.gitkeep +0 -0
  211. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/list/a.py +0 -0
  212. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/list/b.py +0 -0
  213. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/positions/unicode_columns.py +0 -0
  214. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/custom_ext_source.javascript +0 -0
  215. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/custom_ext_target.javascript +0 -0
  216. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/package.json +0 -0
  217. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/paths/alpha/item.txt +0 -0
  218. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/paths/beta/item.txt +0 -0
  219. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/paths_and_block_source.md +0 -0
  220. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/paths_source.md +0 -0
  221. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/sibling.rs +0 -0
  222. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/source.rs +0 -0
  223. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/split_table_source.rs +0 -0
  224. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/split_table_target.toml +0 -0
  225. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/symbol_mismatch_source.rs +0 -0
  226. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/symbol_source.rs +0 -0
  227. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/target.md +0 -0
  228. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/whole_file_mismatch_source.rs +0 -0
  229. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/whole_file_source.rs +0 -0
  230. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/same_as/whole_file_target.json +0 -0
  231. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/sarif/advisory.py +0 -0
  232. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/sarif/clean.py +0 -0
  233. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/sarif/sorted.py +0 -0
  234. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/sarif/unnamed.py +0 -0
  235. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg.txt +0 -0
  236. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg_gone_a.txt +0 -0
  237. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg_gone_b.txt +0 -0
  238. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg_lowercase_trailer.txt +0 -0
  239. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg_malformed.txt +0 -0
  240. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/commit_msg_with_noise.txt +0 -0
  241. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/dangling.py +0 -0
  242. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/sorted.py +0 -0
  243. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/symbol.py +0 -0
  244. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/symbol_target.json +0 -0
  245. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/two_rules.py +0 -0
  246. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/suppressions/unnamed.py +0 -0
  247. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/bzl_source.rs +0 -0
  248. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/bzl_target.bzl +0 -0
  249. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/c_source.rs +0 -0
  250. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/c_target.c +0 -0
  251. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/cpp_source.rs +0 -0
  252. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/cpp_target.cpp +0 -0
  253. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/escapes_source.rs +0 -0
  254. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/escapes_target.json +0 -0
  255. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/filter_source.rs +0 -0
  256. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/filter_target.yaml +0 -0
  257. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/go_source.rs +0 -0
  258. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/go_target.go +0 -0
  259. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/h_source.rs +0 -0
  260. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/h_target.h +0 -0
  261. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/js_source.rs +0 -0
  262. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/js_target.js +0 -0
  263. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/json_source.rs +0 -0
  264. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/json_target.json +0 -0
  265. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/jsonc_source.rs +0 -0
  266. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/jsonc_target.jsonc +0 -0
  267. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/markdown_source.rs +0 -0
  268. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/markdown_target.markdown +0 -0
  269. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/md_source.rs +0 -0
  270. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/md_target.md +0 -0
  271. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/mdx_source.rs +0 -0
  272. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/mdx_target.mdx +0 -0
  273. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/mixed_list_source.rs +0 -0
  274. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/mixed_list_target.json +0 -0
  275. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/py_source.rs +0 -0
  276. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/py_target.py +0 -0
  277. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/rs_source.rs +0 -0
  278. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/rs_target.rs +0 -0
  279. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/toml_source.rs +0 -0
  280. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/toml_target.toml +0 -0
  281. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/ts_source.rs +0 -0
  282. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/ts_target.ts +0 -0
  283. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/tsx_source.rs +0 -0
  284. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/tsx_target.tsx +0 -0
  285. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/yaml_source.rs +0 -0
  286. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/yaml_target.yaml +0 -0
  287. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/yml_source.rs +0 -0
  288. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/symbol_references/yml_target.yml +0 -0
  289. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/affects/pair.py +0 -0
  290. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/clean/counted.py +0 -0
  291. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/clean/noop.py +0 -0
  292. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/clean/notes.txt +0 -0
  293. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/clean/sorted.py +0 -0
  294. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/diff/two_blocks.py +0 -0
  295. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/failing/unsorted.py +0 -0
  296. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/testdata/verbosity/mixed/both_kinds.py +0 -0
  297. {blockwatch_cli-0.16.1 → blockwatch_cli-0.16.3}/tests/verbosity.rs +0 -0
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: blockwatch
3
+ description: Use when a change touches something that another place must match, such as an enum and its docs, a constant and its config, a version written in two files, or a list that must stay sorted or unique. Also use it when a file you edit holds `<block ...>` tags, or `blockwatch.toml` points at it.
4
+ allowed-tools: Bash(blockwatch skill)
5
+ ---
6
+
7
+ # blockwatch skill
8
+
9
+ `blockwatch skill` prints the skill for the installed version:
10
+
11
+ !`blockwatch skill`
12
+
13
+ If its output is not shown above, run `blockwatch skill` and follow what it prints. If `blockwatch` is not installed,
14
+ run `uvx --from blockwatch-cli blockwatch skill` instead.
@@ -279,10 +279,11 @@ default), `safe` or `unsafe`.
279
279
  `src/skill.md`, `.agents/skills/blockwatch/SKILL.md` and `.claude-plugin/` are part of the *product*. They make up the
280
280
  skill this project ships, so that agents can add blocks to **other** repositories:
281
281
 
282
- - `src/skill.md` is the skill. `blockwatch skill` prints it with the version filled in, and users save that output in
283
- their projects.
284
- - `.agents/skills/blockwatch/SKILL.md` is a stub for the plugin in `.claude-plugin/`. It runs `blockwatch skill` each
285
- time it loads. It has its own copy of the description, and `tests/skill.rs` checks that the two copies match.
282
+ - `src/skill.md` is the skill. `blockwatch skill` prints it with the version filled in. Its section "Installing this
283
+ skill" holds the stub that users save in their projects. The stub runs `blockwatch skill` each time an agent loads
284
+ it.
285
+ - `.agents/skills/blockwatch/SKILL.md` is that stub, for the plugin in `.claude-plugin/`. `tests/skill.rs` checks that
286
+ it is the stub in `src/skill.md`, and that its description matches the one at the top of `src/skill.md`.
286
287
 
287
288
  They are not instructions for working on blockwatch, and changing them changes what users get. This file is the
288
289
  guidance for working on blockwatch.
@@ -12,6 +12,36 @@ Releases up to and including v0.3.11 predate this file. Their notes live on the
12
12
 
13
13
  ## [Unreleased] - ReleaseDate
14
14
 
15
+ ## [0.16.3] - 2026-11-02
16
+
17
+ ## [0.16.2] - 2026-10-30
18
+
19
+ ### Added
20
+
21
+ - Symbols in Java files. `Config.java#/Config/MAX_RETRIES` points at a field of the class `Config`, and
22
+ `#/Config/Mode/RED` at an enum constant. Each type is a symbol, and so is each field, method, enum constant and
23
+ nested type in it. A text block counts as the text Java reads, without the indentation its lines share. See
24
+ [Java](docs/symbols.md#java).
25
+ - Symbols in C# files. `Config.cs#/Acme/Billing/Config/MaxRetries` points at a constant of the class `Config` in the
26
+ namespace `Acme.Billing`. Each type is a symbol, and so is each field, property, method, event, enum member and
27
+ nested type in it. A raw string counts as the text C# reads, without the white space before its closing quotes. See
28
+ [C#](docs/symbols.md#c).
29
+
30
+ ### Changed
31
+
32
+ - Projects now install the agent skill as a short stub that runs `blockwatch skill` each time an agent loads it. So the
33
+ skill always matches the installed version. Before, projects saved the whole skill, which went stale until an agent
34
+ saved it again after an upgrade. A saved copy now tells the agent to replace it with the stub. See
35
+ [Annotating Codebases with AI Agents](docs/agents.md).
36
+ - The agent skill now loads when a change touches something that another place must match, such as an enum and its
37
+ docs, or a list that must stay sorted. It also loads for files with block tags, or that `blockwatch.toml` points at.
38
+ Before, it loaded for every code change. This applies to the Claude Code plugin too.
39
+
40
+ ### Fixed
41
+
42
+ - A path into a YAML file with lists or mappings nested hundreds of levels deep, such as `a: [[[...]]]`, no longer
43
+ crashes blockwatch with a stack overflow.
44
+
15
45
  ## [0.16.1] - 2026-10-28
16
46
 
17
47
  ### Added
@@ -279,10 +279,11 @@ default), `safe` or `unsafe`.
279
279
  `src/skill.md`, `.agents/skills/blockwatch/SKILL.md` and `.claude-plugin/` are part of the *product*. They make up the
280
280
  skill this project ships, so that agents can add blocks to **other** repositories:
281
281
 
282
- - `src/skill.md` is the skill. `blockwatch skill` prints it with the version filled in, and users save that output in
283
- their projects.
284
- - `.agents/skills/blockwatch/SKILL.md` is a stub for the plugin in `.claude-plugin/`. It runs `blockwatch skill` each
285
- time it loads. It has its own copy of the description, and `tests/skill.rs` checks that the two copies match.
282
+ - `src/skill.md` is the skill. `blockwatch skill` prints it with the version filled in. Its section "Installing this
283
+ skill" holds the stub that users save in their projects. The stub runs `blockwatch skill` each time an agent loads
284
+ it.
285
+ - `.agents/skills/blockwatch/SKILL.md` is that stub, for the plugin in `.claude-plugin/`. `tests/skill.rs` checks that
286
+ it is the stub in `src/skill.md`, and that its description matches the one at the top of `src/skill.md`.
286
287
 
287
288
  They are not instructions for working on blockwatch, and changing them changes what users get. This file is the
288
289
  guidance for working on blockwatch.