diff --git a/README.md b/README.md index f3a5164..496fb8a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Static analyzer for `SKILL.md` files. Validates frontmatter, body sizing, file references, and cross-agent compatibility against the [agentskills.io specification](https://agentskills.io/specification). No network calls. No LLM API calls. No file mutations. -786 tests cover all rule modules. +787 tests cover all rule modules. ## Install diff --git a/src/skillcheck/config.py b/src/skillcheck/config.py index 125d5b4..3295f14 100644 --- a/src/skillcheck/config.py +++ b/src/skillcheck/config.py @@ -36,6 +36,7 @@ ECOSYSTEM_FIELDS: frozenset[str] = frozenset({ "license", + "metadata", "repository", "homepage", "template", diff --git a/tests/fixtures/metadata_field.md b/tests/fixtures/metadata_field.md new file mode 100644 index 0000000..1cab641 --- /dev/null +++ b/tests/fixtures/metadata_field.md @@ -0,0 +1,15 @@ +--- +name: metadata-field +description: Validates skills that carry nested marketplace metadata. +metadata: + homepage: https://xquik.com + repository: https://github.com/Xquik-dev/tweetclaw + openclaw: + package: "@xquik/tweetclaw" + tags: + - twitter + - tweet-scraper + - openclaw-plugin +--- + +Body. diff --git a/tests/test_v1_2_false_positive_fixes.py b/tests/test_v1_2_false_positive_fixes.py index b0756ad..3ad2349 100644 --- a/tests/test_v1_2_false_positive_fixes.py +++ b/tests/test_v1_2_false_positive_fixes.py @@ -48,6 +48,10 @@ def test_license_field_is_ecosystem_info() -> None: _assert_ecosystem_field(FIXTURES_DIR / "license_field.md", "license") +def test_metadata_field_is_ecosystem_info() -> None: + _assert_ecosystem_field(FIXTURES_DIR / "metadata_field.md", "metadata") + + def test_homepage_field_is_ecosystem_info() -> None: _assert_ecosystem_field(FIXTURES_DIR / "homepage_field.md", "homepage")