{"data":{"skill":{"slug":"delexw-oxlint","name":"oxlint","icon":"📦","repo":"https://github.com/delexw/claude-code-misc/tree/c729be07588f3b64a3878cc9f5e99c362388554c/skills/oxlint","status":"approved","author":"delexw","authorVersion":null,"skillstoreRevision":1,"license":null},"licenseCorrection":null,"audit":{"id":"bf380f0b-6901-49de-9c9d-b7050229c2a3","skill_id":"407f0d9e-df24-4120-aa19-1a0c26280dc1","version":1,"content_hash":"v3:9938f91a9ab0f5763a54332b129295339bf829dd:2bb36d27249b172283e96ec4a877fb11230d7f73293a666da3adaeca65df9b31:611b08a811ed81db69c0e020567f00bdc846db40c59113ad68ee0cc2dea925d6:736b696c6c732f64656c6578772f6f786c696e74:1c072681c006415fe74889ffab824d1d","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 75 static findings are false positives: Markdown backticks were classified as execution, and linting flags were classified as reconnaissance. The documented commands support ordinary linting and migration workflows; unsafe transformations require an explicit user request. No evidence found of prompt injection, credential theft, or data exfiltration in the reviewed file.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":3,"line_start":3},{"file":"SKILL.md","line_end":13,"line_start":13},{"file":"SKILL.md","line_end":14,"line_start":14},{"file":"SKILL.md","line_end":15,"line_start":15},{"file":"SKILL.md","line_end":16,"line_start":16},{"file":"SKILL.md","line_end":31,"line_start":25},{"file":"SKILL.md","line_end":34,"line_start":31},{"file":"SKILL.md","line_end":36,"line_start":34},{"file":"SKILL.md","line_end":38,"line_start":36},{"file":"SKILL.md","line_end":38,"line_start":38},{"file":"SKILL.md","line_end":44,"line_start":42},{"file":"SKILL.md","line_end":47,"line_start":44},{"file":"SKILL.md","line_end":50,"line_start":47},{"file":"SKILL.md","line_end":54,"line_start":50},{"file":"SKILL.md","line_end":58,"line_start":54},{"file":"SKILL.md","line_end":63,"line_start":58},{"file":"SKILL.md","line_end":65,"line_start":63},{"file":"SKILL.md","line_end":66,"line_start":65},{"file":"SKILL.md","line_end":71,"line_start":66},{"file":"SKILL.md","line_end":127,"line_start":71},{"file":"SKILL.md","line_end":130,"line_start":127},{"file":"SKILL.md","line_end":130,"line_start":130},{"file":"SKILL.md","line_end":132,"line_start":131},{"file":"SKILL.md","line_end":132,"line_start":132},{"file":"SKILL.md","line_end":134,"line_start":134},{"file":"SKILL.md","line_end":139,"line_start":138},{"file":"SKILL.md","line_end":143,"line_start":139},{"file":"SKILL.md","line_end":143,"line_start":143},{"file":"SKILL.md","line_end":149,"line_start":148},{"file":"SKILL.md","line_end":150,"line_start":149},{"file":"SKILL.md","line_end":151,"line_start":150},{"file":"SKILL.md","line_end":152,"line_start":151},{"file":"SKILL.md","line_end":153,"line_start":152},{"file":"SKILL.md","line_end":154,"line_start":153},{"file":"SKILL.md","line_end":155,"line_start":154},{"file":"SKILL.md","line_end":156,"line_start":155},{"file":"SKILL.md","line_end":157,"line_start":156},{"file":"SKILL.md","line_end":158,"line_start":157},{"file":"SKILL.md","line_end":160,"line_start":158},{"file":"SKILL.md","line_end":160,"line_start":160},{"file":"SKILL.md","line_end":167,"line_start":163},{"file":"SKILL.md","line_end":171,"line_start":167},{"file":"SKILL.md","line_end":171,"line_start":171},{"file":"SKILL.md","line_end":178,"line_start":177},{"file":"SKILL.md","line_end":179,"line_start":178},{"file":"SKILL.md","line_end":180,"line_start":179},{"file":"SKILL.md","line_end":181,"line_start":180},{"file":"SKILL.md","line_end":181,"line_start":181},{"file":"SKILL.md","line_end":183,"line_start":182},{"file":"SKILL.md","line_end":184,"line_start":183}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":231,"audit_model":"codex","audited_at":"2026-11-08T14:42:34.443+00:00","created_at":"2026-11-09T16:00:45.348822+00:00","static_findings":[{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"description: \"Run and configure oxlint — the high-performance JavaScript/TypeScript linter built on ","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `oxlint` in `package.json` devDependencies/dependencies","category":"external_commands","line_end":13,"severity":"medium","line_start":13},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- An `.oxlintrc.json` file in the project root","category":"external_commands","line_end":14,"severity":"medium","line_start":14},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- An `oxlint.config.ts` file in the project root","category":"external_commands","line_end":15,"severity":"medium","line_start":15},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- An `oxlint` or `lint` script in `package.json` that references `oxlint`","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":31,"severity":"medium","line_start":25},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":34,"severity":"medium","line_start":31},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":36,"severity":"medium","line_start":34},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":38,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `--fix` for safe automatic fixes. Avoid `--fix-dangerously` unless the user explicitly asks for ","category":"external_commands","line_end":38,"severity":"medium","line_start":38},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":44,"severity":"medium","line_start":42},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":47,"severity":"medium","line_start":44},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Oxlint prints diagnostics with rule names in parentheses, e.g. `(no-unused-vars)`. When fixing:","category":"external_commands","line_end":50,"severity":"medium","line_start":47},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. Only add `// oxlint-ignore` comments as a last resort when the diagnostic is a genuine false posi","category":"external_commands","line_end":54,"severity":"medium","line_start":50},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":58,"severity":"medium","line_start":54},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":63,"severity":"medium","line_start":58},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":65,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":66,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"This generates an `.oxlintrc.json` starter config.","category":"external_commands","line_end":71,"severity":"medium","line_start":66},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```jsonc","category":"external_commands","line_end":127,"severity":"medium","line_start":71},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":130,"severity":"medium","line_start":127},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `\"off\"` / `\"allow\"` — Disable the rule","category":"external_commands","line_end":130,"severity":"medium","line_start":130},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `\"warn\"` — Report but don't fail the build","category":"external_commands","line_end":132,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `\"error\"` / `\"deny\"` — Report and exit non-zero","category":"external_commands","line_end":132,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Unique rule names can omit plugin prefix: `\"no-console\"` = `\"eslint/no-console\"`.","category":"external_commands","line_end":134,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `correctness: \"error\"` — Always on. Catches real bugs.","category":"external_commands","line_end":139,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `suspicious: \"warn\"` — Good signal, occasionally noisy.","category":"external_commands","line_end":143,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Enabled by default:** `typescript`, `unicorn`, `oxc`","category":"external_commands","line_end":143,"severity":"medium","line_start":143},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| react | `--react-plugin` | React-specific rules |","category":"external_commands","line_end":149,"severity":"medium","line_start":148},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| jsx-a11y | `--jsx-a11y-plugin` | Accessibility rules for JSX |","category":"external_commands","line_end":150,"severity":"medium","line_start":149},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| nextjs | `--nextjs-plugin` | Next.js best practices |","category":"external_commands","line_end":151,"severity":"medium","line_start":150},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| import | `--import-plugin` | Import/export validation |","category":"external_commands","line_end":152,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| jest | `--jest-plugin` | Jest testing rules |","category":"external_commands","line_end":153,"severity":"medium","line_start":152},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| vitest | `--vitest-plugin` | Vitest testing rules |","category":"external_commands","line_end":154,"severity":"medium","line_start":153},{"id":"external_commands:SKILL.md:154:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| jsdoc | `--jsdoc-plugin` | JSDoc documentation rules |","category":"external_commands","line_end":155,"severity":"medium","line_start":154},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| node | `--node-plugin` | Node.js-specific rules |","category":"external_commands","line_end":156,"severity":"medium","line_start":155},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| promise | `--promise-plugin` | Promise best practices |","category":"external_commands","line_end":157,"severity":"medium","line_start":156},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| react-perf | `--react-perf-plugin` | React performance rules |","category":"external_commands","line_end":158,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| vue | `--vue-plugin` | Vue.js rules |","category":"external_commands","line_end":160,"severity":"medium","line_start":158},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"To disable a default plugin: `--disable-typescript-plugin`, `--disable-unicorn-plugin`, `--disable-o","category":"external_commands","line_end":160,"severity":"medium","line_start":160},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```jsonc","category":"external_commands","line_end":167,"severity":"medium","line_start":163},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":171,"severity":"medium","line_start":167},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Oxlint supports nested configs. Each directory can have its own `.oxlintrc.json` that overrides pare","category":"external_commands","line_end":171,"severity":"medium","line_start":171},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `-c, --config=PATH` | Use a specific config file |","category":"external_commands","line_end":178,"severity":"medium","line_start":177},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--tsconfig=PATH` | TypeScript config for path aliases |","category":"external_commands","line_end":179,"severity":"medium","line_start":178},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--fix` | Auto-fix safe issues |","category":"external_commands","line_end":180,"severity":"medium","line_start":179},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--fix-suggestions` | Also apply suggested fixes |","category":"external_commands","line_end":181,"severity":"medium","line_start":180},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `-A, --allow=RULE` | Suppress a rule (e.g., `-A no-console`) |","category":"external_commands","line_end":181,"severity":"medium","line_start":181},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `-W, --warn=RULE` | Warn on a rule |","category":"external_commands","line_end":183,"severity":"medium","line_start":182},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `-D, --deny=RULE` | Error on a rule |","category":"external_commands","line_end":184,"severity":"medium","line_start":183},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--quiet` | Suppress warnings, show only errors |","category":"external_commands","line_end":185,"severity":"medium","line_start":184},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--deny-warnings` | Treat warnings as errors (exit non-zero) |","category":"external_commands","line_end":186,"severity":"medium","line_start":185},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--max-warnings=N` | Fail if more than N warnings |","category":"external_commands","line_end":187,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `-f, --format=FMT` | Output format: default, json, github, unix, etc. |","category":"external_commands","line_end":188,"severity":"medium","line_start":187},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--ignore-pattern=PAT` | Exclude files matching pattern |","category":"external_commands","line_end":189,"severity":"medium","line_start":188},{"id":"external_commands:SKILL.md:189:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--type-aware` | Enable type-informed rules (needs tsconfig) |","category":"external_commands","line_end":190,"severity":"medium","line_start":189},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--print-config` | Show resolved config (useful for debugging) |","category":"external_commands","line_end":191,"severity":"medium","line_start":190},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `--rules` | List all available rules |","category":"external_commands","line_end":193,"severity":"medium","line_start":191},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Categories can also be used with `-A`/`-W`/`-D`:","category":"external_commands","line_end":193,"severity":"medium","line_start":193},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":196,"severity":"medium","line_start":194},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":200,"severity":"medium","line_start":196},{"id":"external_commands:SKILL.md:200:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```js","category":"external_commands","line_end":206,"severity":"medium","line_start":200},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":208,"severity":"medium","line_start":206},{"id":"external_commands:SKILL.md:208:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Use `oxlint-ignore` (not `eslint-disable`) — oxlint recognizes both, but prefer its native syntax.","category":"external_commands","line_end":208,"severity":"medium","line_start":208},{"id":"external_commands:SKILL.md:214:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Side-by-side approach** — Run both linters, with `eslint-plugin-oxlint` disabling rules that ox","category":"external_commands","line_end":215,"severity":"medium","line_start":214},{"id":"external_commands:SKILL.md:215:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":217,"severity":"medium","line_start":215},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":220,"severity":"medium","line_start":217},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Full replacement** — Use `@oxlint/migrate` to convert your ESLint config:","category":"external_commands","line_end":221,"severity":"medium","line_start":220},{"id":"external_commands:SKILL.md:221:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":223,"severity":"medium","line_start":221},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":224,"severity":"medium","line_start":223},{"id":"external_commands:SKILL.md:224:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"This generates an `.oxlintrc.json` from your existing ESLint configuration.","category":"external_commands","line_end":228,"severity":"medium","line_start":224},{"id":"external_commands:SKILL.md:228:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"`.js`, `.mjs`, `.cjs`, `.ts`, `.mts`, `.cts`, `.jsx`, `.tsx`, `.vue`, `.svelte`, `.astro`","category":"external_commands","line_end":228,"severity":"medium","line_start":228},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"For `.vue`, `.svelte`, and `.astro` files, oxlint lints only the `<script>` blocks.","category":"external_commands","line_end":230,"severity":"medium","line_start":230},{"id":"blocker:SKILL.md:38:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"Use `--fix` for safe automatic fixes. Avoid `--fix-dangerously` unless the user explicitly asks for ","category":"blocker","line_end":38,"severity":"low","line_start":38},{"id":"blocker:SKILL.md:195:network-reconnaissance","file":"SKILL.md","pattern":"Network reconnaissance","snippet":"npx oxlint -D correctness -W suspicious -A pedantic","category":"blocker","line_end":195,"severity":"low","line_start":195}],"finding_verdicts":[{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","reason":"Backticks delimit tool and configuration names inside the YAML description. They do not execute shell or Ruby code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:13:ruby-shell-backtick-execution","reason":"Inline Markdown identifies the Oxlint dependency and package manifest. This is project detection guidance, not command execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:14:ruby-shell-backtick-execution","reason":"Backticks format a configuration filename. No executable expression appears in this detection checklist item.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:15:ruby-shell-backtick-execution","reason":"Backticks format a TypeScript configuration filename. The text only describes checking whether the project uses Oxlint.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"Inline code names package scripts and the Oxlint tool. These Markdown spans are not shell substitutions.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:25:ruby-shell-backtick-execution","reason":"The Markdown fence contains ordinary npm and npx lint commands after project detection. No Ruby execution, injected arguments, or data transmission appears.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:31:ruby-shell-backtick-execution","reason":"The match crosses Markdown fence boundaries around linting examples. The backticks are document syntax, not executable substitutions.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:34:ruby-shell-backtick-execution","reason":"The fenced command invokes the documented Oxlint automatic fix mode. This is expected project maintenance, not Ruby or shell backtick execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"A closing Markdown fence precedes prose about fix options. These delimiters do not execute commands.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:38:ruby-shell-backtick-execution","reason":"Inline backticks name fix flags. The prose explicitly restricts unsafe transformations to an explicit user request.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:42:ruby-shell-backtick-execution","reason":"The fenced example lints two explicit project files with Oxlint. It contains no command substitution or unrelated shell operation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:44:ruby-shell-backtick-execution","reason":"The match starts at a closing Markdown fence before diagnostic guidance. It does not represent executable shell syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:47:ruby-shell-backtick-execution","reason":"Inline formatting identifies a diagnostic rule and suppression syntax. The surrounding text asks for underlying code fixes, not shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:50:ruby-shell-backtick-execution","reason":"The backticks format a lint suppression comment before the next example. Suppression is limited to genuine false positives.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:54:ruby-shell-backtick-execution","reason":"The Markdown block shows local diagnostic output formats. The github format produces annotations; it does not send data to a remote service.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:58:ruby-shell-backtick-execution","reason":"The match spans Markdown fences separating output examples and configuration instructions. There is no backtick-based execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The fenced command initializes an Oxlint configuration as documented. Creating a project configuration is expected behavior for this skill.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"A closing Markdown fence and inline filename triggered the pattern. Neither is executable shell or Ruby syntax in this document.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:66:ruby-shell-backtick-execution","reason":"The text names the generated configuration file before a JSONC example. Its backticks serve only as Markdown formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:71:ruby-shell-backtick-execution","reason":"This is a fenced JSONC configuration example containing rules, plugins, overrides, and settings. No shell or Ruby code is executed.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:127:ruby-shell-backtick-execution","reason":"The closing JSONC fence precedes a rule severity reference. The pattern mistakes document delimiters for execution syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","reason":"Inline code quotes the allowed configuration values off and allow. It does not execute any command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The text explains warning and error severity values. Backticks are Markdown formatting around configuration strings.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"Inline code quotes error and deny configuration values. This is a reference entry, not executable code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"The backticks format equivalent lint rule names. No command or substitution is present.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"Inline code shows recommended category severity settings. This configuration guidance contains no shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"The span covers a category recommendation and default plugin names. Backticks identify configuration terms, not executable expressions.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:143:ruby-shell-backtick-execution","reason":"Inline Markdown lists default plugin identifiers. It does not load plugins or execute shell code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","reason":"The table documents React and accessibility plugin flags. Backticks format CLI option names without executing them.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","reason":"The table lists accessibility and Next.js lint plugin options. This is static CLI documentation.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","reason":"The span contains documented Next.js and import plugin flags. Inline formatting is not shell substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The table describes import and Jest lint options. No executable backtick expression appears.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","reason":"Inline code formats Jest and Vitest plugin flags. The text only describes lint rule selection.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","reason":"The table documents Vitest and JSDoc plugin options. Its backticks are Markdown, not execution syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:154:ruby-shell-backtick-execution","reason":"The span names JSDoc and Node.js lint plugins. It contains no shell command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","reason":"Inline formatting marks Node.js and Promise plugin flags. These are ordinary lint configuration options.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","reason":"The table lists Promise and React performance plugin flags. No executable expression is present.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"The span covers React performance and Vue plugin references. Backticks format option names only.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","reason":"The Vue table entry precedes plugin disabling documentation. These are static Markdown option references.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","reason":"Inline code names supported flags for disabling default lint plugins. It does not execute commands or disable security tooling.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","reason":"The fenced JSONC example extends two relative project configurations. It contains no shell execution or remote destination.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","reason":"A closing configuration fence precedes local configuration resolution guidance. The backticks are document syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"Inline formatting identifies nested configuration files and their control flag. The text describes normal monorepo lint configuration.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:177:ruby-shell-backtick-execution","reason":"The CLI reference lists explicit configuration path flags. Markdown delimiters do not execute these options.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:178:ruby-shell-backtick-execution","reason":"The table documents TypeScript configuration and automatic fix flags. There is no executable backtick expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:179:ruby-shell-backtick-execution","reason":"The table describes safe and suggested fix modes. This is expected linting documentation, not shell substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:180:ruby-shell-backtick-execution","reason":"Inline code marks suggestion and rule allowance options. The reference does not instruct unauthorized modifications.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:181:ruby-shell-backtick-execution","reason":"The table explains suppressing a named lint rule using a CLI option. Backticks format the flag and example only.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:182:ruby-shell-backtick-execution","reason":"The span lists warning and error severity options. No command substitution or unrelated action appears.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:183:ruby-shell-backtick-execution","reason":"The reference documents error enforcement and diagnostic filtering flags. Inline Markdown is not executable code.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:184:ruby-shell-backtick-execution","reason":"The table explains warning filtering and warning enforcement. These are ordinary lint output and exit status controls.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","reason":"Inline code names warning failure thresholds. The text documents CI behavior without shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"The reference lists maximum warning and output format options. The delimiters are Markdown formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:187:ruby-shell-backtick-execution","reason":"The table covers diagnostic output formats and file exclusions. It contains no remote transmission or command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:188:ruby-shell-backtick-execution","reason":"Inline Markdown formats file ignore and type-aware lint flags. These are normal Oxlint options.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:189:ruby-shell-backtick-execution","reason":"The span documents type-aware analysis and resolved configuration display. No shell substitution appears.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:190:ruby-shell-backtick-execution","reason":"The table lists configuration display and available rule listing. These inspect linter settings, not system secrets.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:191:ruby-shell-backtick-execution","reason":"The match spans a rule listing flag and category severity references. Its backticks are Markdown inline code delimiters.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:193:ruby-shell-backtick-execution","reason":"Inline code names allow, warn, and deny severity flags. This is lint category documentation, not shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:194:ruby-shell-backtick-execution","reason":"The fenced command applies Oxlint category severities. It performs ordinary linting and contains no network scanning arguments.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","reason":"The match crosses fences between a lint command and a JavaScript example. These are Markdown delimiters, not executable backticks.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:200:ruby-shell-backtick-execution","reason":"The JavaScript block demonstrates inline lint suppressions. It contains no shell or Ruby backtick execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","reason":"A closing example fence precedes suppression syntax guidance. The backticks have only a formatting role.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:208:ruby-shell-backtick-execution","reason":"Inline code contrasts Oxlint and ESLint suppression comment names. It does not execute either string.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:214:ruby-shell-backtick-execution","reason":"The migration guidance names a plugin that avoids duplicate lint rules. Backticks format the package identifier.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:215:ruby-shell-backtick-execution","reason":"The fenced command installs the named ESLint integration dependency during migration. It is ordinary package management, not backtick execution or concealed payload delivery.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:217:ruby-shell-backtick-execution","reason":"The closing package installation fence precedes migration instructions. Its backticks are Markdown syntax.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:220:ruby-shell-backtick-execution","reason":"Inline code identifies the Oxlint migration package before a command example. The text describes configuration conversion, not command substitution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:221:ruby-shell-backtick-execution","reason":"The fenced command invokes the named migration utility for ESLint conversion. No obfuscated arguments, credential access, or unrelated destination appears.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:223:ruby-shell-backtick-execution","reason":"The match spans a closing Markdown fence and the generated configuration filename. Neither is shell execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:224:ruby-shell-backtick-execution","reason":"The text names the migration output file and supported extensions. Backticks are inline documentation formatting.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:228:ruby-shell-backtick-execution","reason":"This line lists supported source file extensions in Markdown. It contains no executable command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","reason":"Inline code formats component file extensions and script tags. The sentence describes lint coverage, not execution.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:38:system-reconnaissance","reason":"The line restricts unsafe automatic fixes unless explicitly requested. It contains no system inspection command or reconnaissance instruction.","verdict":"false_positive","confidence":1},{"id":"blocker:SKILL.md:195:network-reconnaissance","reason":"The command sets Oxlint rule category severities using deny, warn, and allow flags. It contains no host targets, ports, or network discovery operation.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"9938f91a9ab0f5763a54332b129295339bf829dd","subject_content_hash":"2bb36d27249b172283e96ec4a877fb11230d7f73293a666da3adaeca65df9b31","subject_tree_hash":"611b08a811ed81db69c0e020567f00bdc846db40c59113ad68ee0cc2dea925d6","subject_plugin_path":"skills/delexw/oxlint","audit_payload_hash":"1c072681c006415fe74889ffab824d1d","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"9938f91a9ab0f5763a54332b129295339bf829dd","contentHash":"2bb36d27249b172283e96ec4a877fb11230d7f73293a666da3adaeca65df9b31","treeHash":"611b08a811ed81db69c0e020567f00bdc846db40c59113ad68ee0cc2dea925d6","pluginPath":"skills/delexw/oxlint","auditPayloadHash":"1c072681c006415fe74889ffab824d1d"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/delexw-oxlint/audits/1/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}