$npx -y skills add flutter/agent-plugins --skill invalidA deliberately broken fixture used by example/README.md to show what each rule's error output looks like.
| 1 | # Invalid example skill |
| 2 | |
| 3 | This skill deliberately trips three rules so the CLI's diagnostic output |
| 4 | can be inspected end-to-end. One fires under defaults; two need to be |
| 5 | enabled to surface as errors (the spec ships them at lower severities). |
| 6 | |
| 7 | 1. `invalid-skill-name` *(error by default)* — the frontmatter `name:` |
| 8 | is `NotInvalid`, which is not lowercase **and** does not match the |
| 9 | parent directory `invalid`. |
| 10 | 2. `disallowed-field` *(disabled by default; enable via |
| 11 | `--disallowed-field` or YAML config)* — `secret_field:` is not in |
| 12 | the spec's allowed field list. |
| 13 | 3. `check-absolute-paths` *(warning by default; escalate to error via |
| 14 | `--check-absolute-paths` or YAML config)* — the link below uses an |
| 15 | absolute filesystem path, which is not portable across machines. |
| 16 | |
| 17 | The broken link: [absolute link](/tmp/this/does/not/exist.md) |
| 18 | |
| 19 | Run it with default rules: |
| 20 | |
| 21 | ```bash |
| 22 | dart run dart_skills_lint --skill ./example/skills/invalid |
| 23 | ``` |
| 24 | |
| 25 | …and again with every rule turned up to error: |
| 26 | |
| 27 | ```bash |
| 28 | dart run dart_skills_lint --skill ./example/skills/invalid \ |
| 29 | --disallowed-field --check-absolute-paths |
| 30 | ``` |
| 31 | |
| 32 | Expected: non-zero exit, error messages naming each rule that is enabled. |