Skip to content

check-cli-verbs.py validates nothing: a frontmatter parse error makes it report zero findings for a verb that does not exist #3473

Description

@addyGarg

What

scripts/check-cli-verbs.py cannot validate any SKILL.md. It reports zero findings for a verb that does not exist.

Reproduced with a positive control. I copied skills/uipath-test/SKILL.md to /tmp, replaced a real verb with a fabricated one, and ran the script on both:

$ python3 scripts/check-cli-verbs.py skills/uipath-test/SKILL.md
[Info] skills/uipath-test/SKILL.md: YAML parse error: expected a single document in the stream
0 High, 0 Medium, 1 Info (catalog: uip 1.203.0-dev.8733)

$ python3 scripts/check-cli-verbs.py /tmp/SKILL.md      # contains `uip tm executions zzzbogusverb`
0 High, 0 Medium, 1 Info (catalog: uip 1.203.0-dev.8733)

The parse error is the cause: the script reads the whole file as YAML rather than extracting the frontmatter, so the --- that closes the frontmatter reads as a second document. Every SKILL.md in the repo hits it — I checked uipath-admin too, and the version on main.

Scope

Nothing depends on it today: grep -rn "check-cli-verbs" .github/ returns nothing, so it is not wired into any workflow. scripts/check-skill-verbs.py, which is wired in, works correctly — it flagged six deliberately-unreleased verbs in a branch of mine and cleared the rest.

So this is a broken helper rather than a broken gate. It is worth either fixing or deleting, because its name suggests it validates what check-skill-verbs.py actually validates, and a zero-finding run reads as a pass.

How to fix

Split the frontmatter before parsing, or use the same loader check-skill-verbs.py uses.

How it was found

Validating a skill change that adds six new uip tm executions verbs. The working checker flagged them as stale against the published catalog, which is correct and expected until the CLI ships. This one said nothing, which is what prompted the control.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions