blockwatch-cli 0.16.0__tar.gz → 0.16.2__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.
- blockwatch_cli-0.16.2/.agents/skills/blockwatch/SKILL.md +14 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/AGENTS.md +5 -4
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/CHANGELOG.md +40 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/CLAUDE.md +5 -4
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/Cargo.lock +1 -1
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/Cargo.toml +1 -1
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/PKG-INFO +1 -1
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/README.md +8 -7
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/blockwatch.toml +3 -3
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/agents.md +11 -12
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/ci.md +2 -2
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/cli.md +6 -11
- blockwatch_cli-0.16.2/docs/symbols.md +600 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/setup.py +1 -1
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/config.rs +5 -3
- blockwatch_cli-0.16.2/src/language_parsers/c.rs +1186 -0
- blockwatch_cli-0.16.2/src/language_parsers/c_sharp.rs +1083 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/cpp.rs +4 -2
- blockwatch_cli-0.16.2/src/language_parsers/go.rs +637 -0
- blockwatch_cli-0.16.2/src/language_parsers/java.rs +872 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/javascript.rs +9 -2
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/json.rs +2 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/markdown.rs +6 -5
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/mdx.rs +5 -4
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/mod.rs +65 -12
- blockwatch_cli-0.16.2/src/language_parsers/python.rs +636 -0
- blockwatch_cli-0.16.2/src/language_parsers/rust.rs +518 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/starlark.rs +9 -2
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/toml.rs +6 -4
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/tsx.rs +9 -2
- blockwatch_cli-0.16.2/src/language_parsers/typescript.rs +679 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/yaml.rs +115 -46
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/lib.rs +3 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/scan.rs +6 -5
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/skill.md +133 -5
- blockwatch_cli-0.16.2/src/symbols/code.rs +883 -0
- blockwatch_cli-0.16.0/src/symbols.rs → blockwatch_cli-0.16.2/src/symbols/mod.rs +236 -117
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/mod.rs +31 -10
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/virtual_blocks.rs +11 -6
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/general.rs +2 -2
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/skill.rs +10 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/symbol_references.rs +84 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/pattern.py +2 -2
- blockwatch_cli-0.16.2/tests/testdata/check_lua/pattern_many_matches.py +6 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/pattern_no_match.py +1 -1
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/custom_file_extension.python +1 -1
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/bzl_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/bzl_target.bzl +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/c_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/c_target.c +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/cpp_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/cpp_target.cpp +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/cs_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/cs_target.cs +6 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/escapes_source.rs +4 -4
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/filter_source.rs +2 -2
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/go_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/go_target.go +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/h_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/h_target.h +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/java_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/java_target.java +5 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/js_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/js_target.js +1 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/json_source.rs +2 -2
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/jsonc_source.rs +2 -2
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/markdown_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/md_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/mdx_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/mixed_list_source.rs +6 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/py_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/py_target.py +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/rs_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/rs_target.rs +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/toml_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/ts_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/ts_target.ts +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/tsx_source.rs +3 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/tsx_target.tsx +1 -0
- blockwatch_cli-0.16.2/tests/testdata/symbol_references/yaml_source.rs +3 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/yml_source.rs +2 -2
- blockwatch_cli-0.16.0/.agents/skills/blockwatch/SKILL.md +0 -14
- blockwatch_cli-0.16.0/docs/symbols.md +0 -238
- blockwatch_cli-0.16.0/src/language_parsers/c.rs +0 -85
- blockwatch_cli-0.16.0/src/language_parsers/c_sharp.rs +0 -91
- blockwatch_cli-0.16.0/src/language_parsers/go.rs +0 -239
- blockwatch_cli-0.16.0/src/language_parsers/java.rs +0 -152
- blockwatch_cli-0.16.0/src/language_parsers/python.rs +0 -79
- blockwatch_cli-0.16.0/src/language_parsers/rust.rs +0 -126
- blockwatch_cli-0.16.0/src/language_parsers/typescript.rs +0 -117
- blockwatch_cli-0.16.0/tests/testdata/check_lua/pattern_many_matches.py +0 -6
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/markdown_source.rs +0 -3
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/md_source.rs +0 -3
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/mdx_source.rs +0 -3
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/mixed_list_source.rs +0 -6
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/toml_source.rs +0 -3
- blockwatch_cli-0.16.0/tests/testdata/symbol_references/yaml_source.rs +0 -3
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.agents/.claude-plugin/plugin.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.claude-plugin/marketplace.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/dependabot.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/blockwatch.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/codeql.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/markdownlint.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/pypi.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/release.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/rust.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.github/workflows/trusted-checks.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.gitignore +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.markdownlint-cli2.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.pre-commit-config.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/.pre-commit-hooks.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/LICENSE +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/SECURITY.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/clippy.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/codecov.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/demo.gif +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/dist-workspace.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/README.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/affects.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/check-ai.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/check-lua.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/keep-sorted.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/keep-unique.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/line-count.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/line-pattern.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/docs/validators/same-as.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/pypi/pyproject.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/pyproject.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/release.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/scripts/check_language_count.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/scripts/check_latest_gpt_nano_model.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/block_parser.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/blocks.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/cli.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/diff_parser.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/explain.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/flags.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/fs.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/bash.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/cmake.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/css.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/dart.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/dockerfile.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/elixir.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/graphql.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/groovy.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/hcl.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/html.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/json.scm +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/kotlin.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/lean.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/lua.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/makefile.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/nix.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/ocaml.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/php.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/proto.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/ruby.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/scala.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/sql.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/swift.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/language_parsers/xml.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/main.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/path_arguments.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/paths_glob.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/repo_path.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/report.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/sarif.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/settings.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/symbol_path.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/tag_parser.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/target_reference.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/affects.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/check_ai.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/check_lua.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/keep_sorted.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/keep_unique.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/line_count.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/line_pattern.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/validators/same_as.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/src/violation_address.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/affects.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/check_ai.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/check_lua.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/common/empty.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/common/mod.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/config.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/encoding.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/explain.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/keep_sorted.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/keep_unique.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/line_count.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/line_pattern.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/list.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/path_arguments.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/repository_root.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/same_as.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/sarif.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/suppressions.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/cross_file_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/cross_file_target.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/dangling.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/missing_symbol.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/more_added_than_deleted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/multiline_tag_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/multiline_tag_target.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/nested_mapping_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/nested_mapping_target.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/sibling.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/symbol_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/symbol_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/table_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/table_target.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/tag_and_content_source.ts +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/tag_and_content_target.ts +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/whole_file_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/affects/whole_file_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_ai/two_blocks.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/affects.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/affects.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/affects_drift.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/blocking_io.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/blocking_io.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/echo.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/fail.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/mode.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/os.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/pathfmt/report_path.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/pathfmt/source.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/success.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/check_lua/success_and_failure.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/config/glob_target/config.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/config/glob_target/package.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/config/glob_target/plugins/blue/package.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/config/glob_target/plugins/green/package.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/config/glob_target/plugins/red/package.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/explain/a.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/explain/check.lua +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/block_selection.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/custom_file_extension.javascript +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/disable_enable.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/paths/invalid.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/paths/subdir/nested_invalid.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/paths/valid.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/general/severity.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/hidden/.github/workflows/ci.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/keep_sorted/orderings.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/keep_unique/basic_and_pattern.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/line_count/equality_and_greater_than.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/line_pattern/forbidden_text.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/line_pattern/hex_and_word_patterns.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/list/.hg/.gitkeep +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/list/a.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/list/b.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/positions/unicode_columns.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/package.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/paths/alpha/item.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/paths/beta/item.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/paths_and_block_source.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/paths_source.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/sibling.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/split_table_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/split_table_target.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/symbol_mismatch_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/symbol_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/target.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/whole_file_mismatch_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/whole_file_source.rs +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/same_as/whole_file_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/sarif/advisory.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/sarif/clean.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/sarif/sorted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/sarif/unnamed.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg_gone_a.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg_gone_b.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg_lowercase_trailer.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg_malformed.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/commit_msg_with_noise.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/dangling.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/sorted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/symbol.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/symbol_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/two_rules.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/suppressions/unnamed.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/escapes_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/filter_target.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/json_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/jsonc_target.jsonc +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/markdown_target.markdown +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/md_target.md +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/mdx_target.mdx +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/mixed_list_target.json +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/toml_target.toml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/yaml_target.yaml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/symbol_references/yml_target.yml +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/affects/pair.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/clean/counted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/clean/noop.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/clean/notes.txt +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/clean/sorted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/diff/two_blocks.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/failing/unsorted.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/tests/testdata/verbosity/mixed/both_kinds.py +0 -0
- {blockwatch_cli-0.16.0 → blockwatch_cli-0.16.2}/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
|
|
283
|
-
their projects.
|
|
284
|
-
|
|
285
|
-
|
|
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,46 @@ 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.2] - 2026-10-30
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Symbols in Java files. `Config.java#/Config/MAX_RETRIES` points at a field of the class `Config`, and
|
|
20
|
+
`#/Config/Mode/RED` at an enum constant. Each type is a symbol, and so is each field, method, enum constant and
|
|
21
|
+
nested type in it. A text block counts as the text Java reads, without the indentation its lines share. See
|
|
22
|
+
[Java](docs/symbols.md#java).
|
|
23
|
+
- Symbols in C# files. `Config.cs#/Acme/Billing/Config/MaxRetries` points at a constant of the class `Config` in the
|
|
24
|
+
namespace `Acme.Billing`. Each type is a symbol, and so is each field, property, method, event, enum member and
|
|
25
|
+
nested type in it. A raw string counts as the text C# reads, without the white space before its closing quotes. See
|
|
26
|
+
[C#](docs/symbols.md#c).
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Projects now install the agent skill as a short stub that runs `blockwatch skill` each time an agent loads it. So the
|
|
31
|
+
skill always matches the installed version. Before, projects saved the whole skill, which went stale until an agent
|
|
32
|
+
saved it again after an upgrade. A saved copy now tells the agent to replace it with the stub. See
|
|
33
|
+
[Annotating Codebases with AI Agents](docs/agents.md).
|
|
34
|
+
- The agent skill now loads when a change touches something that another place must match, such as an enum and its
|
|
35
|
+
docs, or a list that must stay sorted. It also loads for files with block tags, or that `blockwatch.toml` points at.
|
|
36
|
+
Before, it loaded for every code change. This applies to the Claude Code plugin too.
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
- A path into a YAML file with lists or mappings nested hundreds of levels deep, such as `a: [[[...]]]`, no longer
|
|
41
|
+
crashes blockwatch with a stack overflow.
|
|
42
|
+
|
|
43
|
+
## [0.16.1] - 2026-10-28
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Symbols in Go, C, C++, Python, Starlark, Rust, TypeScript and JavaScript files. `consts.go#/MaxPorts` points at a
|
|
48
|
+
top-level constant, variable, type or function, and `limits.h#/MAX_PORTS` at a macro. A value is the initializer as
|
|
49
|
+
written, such as `20 * 1024 * 1024`, so `same-as` can compare it with a constant in another file without a
|
|
50
|
+
`target-pattern`. A syntax error stops the run only for the names near it. See [Code files](docs/symbols.md#code-files),
|
|
51
|
+
[Go](docs/symbols.md#go), [C and C++](docs/symbols.md#c-and-c),
|
|
52
|
+
[Python and Starlark](docs/symbols.md#python-and-starlark), [Rust](docs/symbols.md#rust) and
|
|
53
|
+
[TypeScript and JavaScript](docs/symbols.md#typescript-and-javascript).
|
|
54
|
+
|
|
15
55
|
## [0.16.0] - 2026-10-24
|
|
16
56
|
|
|
17
57
|
### Changed
|
|
@@ -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
|
|
283
|
-
their projects.
|
|
284
|
-
|
|
285
|
-
|
|
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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blockwatch-cli
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.2
|
|
4
4
|
Summary: Language agnostic linter that keeps your code and documentation in sync and valid
|
|
5
5
|
Keywords: linter,sync,drift,comments,agents
|
|
6
6
|
Home-Page: https://github.com/mennanov/blockwatch
|
|
@@ -29,7 +29,7 @@ Then paste this prompt into your AI coding agent:
|
|
|
29
29
|
<!-- <block name="agent-prompt"> -->
|
|
30
30
|
|
|
31
31
|
```text
|
|
32
|
-
Run `blockwatch skill` and
|
|
32
|
+
Run `blockwatch skill` and install the skill in this project as its "Installing this skill" section says. Then use the
|
|
33
33
|
skill to annotate the project and add `blockwatch.toml` if needed. List each block you added and the mistake it
|
|
34
34
|
catches.
|
|
35
35
|
```
|
|
@@ -37,8 +37,8 @@ catches.
|
|
|
37
37
|
<!-- </block> -->
|
|
38
38
|
|
|
39
39
|
Review the suggested blocks and commit them. The skill stays in the project, so agents working on it later know
|
|
40
|
-
the rules too.
|
|
41
|
-
add blockwatch to your [pre-commit hook or CI](#ci-integration).
|
|
40
|
+
the rules too. It runs `blockwatch skill` each time it loads, so it always matches the installed version. To check every
|
|
41
|
+
future change, add blockwatch to your [pre-commit hook or CI](#ci-integration).
|
|
42
42
|
|
|
43
43
|
## How it works
|
|
44
44
|
|
|
@@ -88,9 +88,10 @@ Two validators work across files:
|
|
|
88
88
|
- `affects` fails when a diff touches a block without also changing what it points to.
|
|
89
89
|
- `same-as` fails when a block and its target hold different values. It needs no diff.
|
|
90
90
|
|
|
91
|
-
Both can point to a block, a whole file, a specific value in a file like `package.json#/version`,
|
|
92
|
-
Markdown file
|
|
93
|
-
you'd otherwise have to
|
|
91
|
+
Both can point to a block, a whole file, a specific value in a file like `package.json#/version`, a section of a
|
|
92
|
+
Markdown file, or a constant in a Go, C, C++, Python, Rust, TypeScript, JavaScript, Java or C# file (see
|
|
93
|
+
[Symbols](docs/symbols.md)). The other validators check a single block on their own: the things you'd otherwise have to
|
|
94
|
+
nitpick in code review.
|
|
94
95
|
|
|
95
96
|
<!-- <block name="available-validators"
|
|
96
97
|
same-as="src/validators/mod.rs:validator-registry, docs/validators/README.md:validators-index"
|
|
@@ -218,7 +219,7 @@ exclusions, and custom extension mappings.
|
|
|
218
219
|
|
|
219
220
|
```yaml
|
|
220
221
|
- repo: https://github.com/mennanov/blockwatch
|
|
221
|
-
rev: v0.16.
|
|
222
|
+
rev: v0.16.2 # Use latest release
|
|
222
223
|
hooks:
|
|
223
224
|
- id: blockwatch
|
|
224
225
|
```
|
|
@@ -39,8 +39,8 @@ same-as = '''.github/workflows/codeql.yml,
|
|
|
39
39
|
.github/workflows/rust.yml'''
|
|
40
40
|
same-as-pattern = '(?:actions/checkout@|^)(?P<value>v\d+)$'
|
|
41
41
|
|
|
42
|
-
# `blockwatch skill` prints src/skill.md, and projects
|
|
43
|
-
# every one of those projects. So blocks point at its sections by their headings, and these entries hold the pattern
|
|
42
|
+
# `blockwatch skill` prints src/skill.md, and some projects hold a saved copy of that output. A tag in that file would
|
|
43
|
+
# become a block in every one of those projects. So blocks point at its sections by their headings, and these entries hold the pattern
|
|
44
44
|
# that reads a section, which the section can't hold itself.
|
|
45
45
|
[[block]]
|
|
46
46
|
target = 'src/skill.md#/blockwatch/Validator reference'
|
|
@@ -50,4 +50,4 @@ same-as-pattern = '^\|\s*`(?P<value>[a-z-]+)`'
|
|
|
50
50
|
[[block]]
|
|
51
51
|
target = 'src/skill.md#/blockwatch/Symbols/Files with symbols'
|
|
52
52
|
name = 'extensions-with-symbols'
|
|
53
|
-
same-as-pattern = '`\.?(?P<value>[A-Za-z]+)`'
|
|
53
|
+
same-as-pattern = '`\.?(?P<value>[A-Za-z.]+)`'
|
|
@@ -20,16 +20,16 @@ Paste this prompt into your agent. The agent installs the skill in your project
|
|
|
20
20
|
<!-- <block same-as="README.md:agent-prompt"> -->
|
|
21
21
|
|
|
22
22
|
```text
|
|
23
|
-
Run `blockwatch skill` and
|
|
23
|
+
Run `blockwatch skill` and install the skill in this project as its "Installing this skill" section says. Then use the
|
|
24
24
|
skill to annotate the project and add `blockwatch.toml` if needed. List each block you added and the mistake it
|
|
25
25
|
catches.
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
<!-- </block> -->
|
|
29
29
|
|
|
30
|
-
The
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
The agent saves a short stub, not the whole skill. The stub runs `blockwatch skill` each time it loads, so it always
|
|
31
|
+
matches the installed version. It stays in the project, so agents that work on it later know the rules too. Always
|
|
32
|
+
inspect the generated diff before committing to ensure the added blocks are necessary and accurate.
|
|
33
33
|
|
|
34
34
|
## 3. Enable Automated Checks
|
|
35
35
|
|
|
@@ -52,21 +52,20 @@ The plugin's skill runs `blockwatch skill` each time it loads, so it always matc
|
|
|
52
52
|
|
|
53
53
|
### Other AI Tools
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
To set up a project by hand, save the stub from
|
|
56
|
+
[Installing this skill](../src/skill.md#installing-this-skill) where your agent reads it:
|
|
56
57
|
|
|
57
58
|
| Agent | Location |
|
|
58
59
|
|---------------------|--------------------------------------------------------|
|
|
59
60
|
| **Claude Code** | Plugin (above) or `.claude/skills/blockwatch/SKILL.md` |
|
|
60
61
|
| **Cursor** | `.cursor/rules/blockwatch.mdc` |
|
|
61
|
-
| **GitHub Copilot** |
|
|
62
|
-
| **Codex / generic** |
|
|
62
|
+
| **GitHub Copilot** | `.github/copilot-instructions.md` |
|
|
63
|
+
| **Codex / generic** | `AGENTS.md` |
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
`.github/copilot-instructions.md` and `AGENTS.md` hold other instructions too. Add only the stub's description there,
|
|
66
|
+
and the sentence "Then run `blockwatch skill` and follow what it prints."
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
mkdir -p .claude/skills/blockwatch
|
|
68
|
-
blockwatch skill > .claude/skills/blockwatch/SKILL.md
|
|
69
|
-
```
|
|
68
|
+
Don't save the output of `blockwatch skill` itself. A saved copy goes stale when blockwatch is upgraded.
|
|
70
69
|
|
|
71
70
|
---
|
|
72
71
|
|
|
@@ -19,7 +19,7 @@ To use [pre-commit](https://pre-commit.com), add the hook to `.pre-commit-config
|
|
|
19
19
|
|
|
20
20
|
```yaml
|
|
21
21
|
- repo: https://github.com/mennanov/blockwatch
|
|
22
|
-
rev: v0.16.
|
|
22
|
+
rev: v0.16.2 # Use latest release
|
|
23
23
|
hooks:
|
|
24
24
|
- id: blockwatch
|
|
25
25
|
```
|
|
@@ -59,7 +59,7 @@ The `blockwatch` hook runs before the commit message exists, so it cannot see a
|
|
|
59
59
|
|
|
60
60
|
```yaml
|
|
61
61
|
- repo: https://github.com/mennanov/blockwatch
|
|
62
|
-
rev: v0.16.
|
|
62
|
+
rev: v0.16.2 # Use latest release
|
|
63
63
|
hooks:
|
|
64
64
|
- id: blockwatch-commit-msg
|
|
65
65
|
```
|
|
@@ -557,15 +557,15 @@ Nothing else about the run changes: the same violations are found, and the exit
|
|
|
557
557
|
"tool": {
|
|
558
558
|
"driver": {
|
|
559
559
|
"name": "blockwatch",
|
|
560
|
-
"version": "0.16.
|
|
561
|
-
"semanticVersion": "0.16.
|
|
560
|
+
"version": "0.16.2",
|
|
561
|
+
"semanticVersion": "0.16.2",
|
|
562
562
|
"informationUri": "https://github.com/mennanov/blockwatch",
|
|
563
563
|
"rules": [
|
|
564
564
|
{
|
|
565
565
|
"id": "keep-sorted",
|
|
566
566
|
"name": "keep-sorted",
|
|
567
567
|
"shortDescription": { "text": "Requires the lines of a block to stay in order." },
|
|
568
|
-
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.16.
|
|
568
|
+
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.16.2/docs/validators/keep-sorted.md"
|
|
569
569
|
}
|
|
570
570
|
]
|
|
571
571
|
}
|
|
@@ -980,14 +980,9 @@ stay on stderr, under the same file paths and line numbers.
|
|
|
980
980
|
add value, how to write them, and how to check its work. The text is built into the binary, so it always matches the
|
|
981
981
|
installed version. The command works in any directory, even outside a repository.
|
|
982
982
|
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
blockwatch skill > .claude/skills/blockwatch/SKILL.md
|
|
987
|
-
```
|
|
988
|
-
|
|
989
|
-
The saved skill records the version that wrote it. When `blockwatch --version` prints a newer one, the skill tells the
|
|
990
|
-
agent to save it again. See [Annotating Codebases with AI Agents](agents.md).
|
|
983
|
+
Don't save the output itself, because a saved copy goes stale when blockwatch is upgraded. Save the stub from the
|
|
984
|
+
[Installing this skill](../src/skill.md#installing-this-skill) section instead. The stub runs `blockwatch skill` each
|
|
985
|
+
time an agent loads it. See [Annotating Codebases with AI Agents](agents.md).
|
|
991
986
|
|
|
992
987
|
## Exit Codes
|
|
993
988
|
|