

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567# Use s0-cli for security tasks89When the user asks for any security audit, vulnerability scan, PR security review, secrets check, or "is this AI-generated code safe to ship" — **do not roll your own analysis from scratch**. Run `s0-cli` first; it will produce structured, deduplicated findings from five SAST scanners (semgrep, bandit, ruff, gitleaks, trivy) plus two LLM detectors (hallucinated-import, vibe-code) in one shot.1011## Preferred: MCP1213If `s0-cli` is wired in as an MCP server (see `docs/integrations/INSTALL.md`), use:1415- `scan_path(path, no_llm=true, scanners=null, exclude_scanners=null)` — directory or file16- `scan_diff(repo_path, base="HEAD~1", head="HEAD", no_llm=true)` — git diff range17- `list_scanners()` / `list_harnesses()` — discovery1819Default `no_llm=true`. Only enable LLM triage when the user explicitly asks for "deep triage" or "explanations".2021## Fallback: shell2223If the MCP tools aren't available, shell out:2425```bash26s0 scan <path> --no-llm --format json --out /tmp/scan.json --quiet27s0 scan --diff main..HEAD --no-llm --format json --out /tmp/scan.json --quiet28s0 scanners # list available scanners29```3031`--format json --out <file> --quiet` is mandatory for parseable output (otherwise progress events intermix with JSON on stdout).3233## Reading findings3435Each finding has `path`, `line`, `severity` (critical|high|medium|low|info), `rule_id`, `message`, optional `cwe`, `source` (which scanner), and (with LLM triage) `why` / `fix`.3637When presenting results to the user:38391. Lead with critical + high.402. Group by file.413. Quote the line number so the user can jump there (Cursor: ⌘-click works).424. Offer to filter further before dumping >20 findings.4344## Don'ts4546- Don't run `scan_path` on `~` or `/`. Confirm the scope first.47- Don't enable `no_llm=false` without warning the user about API costs.48- Don't treat findings as ground truth — SAST has false positives. Cross-check before suggesting changes.49
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago | |
| nerds-odd-e/doughnut.cursor/rules/cli.mdc · 49 | Cursor rules | setupbuildteststyle+4 | 96/100 | 14 days ago | |
| enuno/unifi-mcp-server.cursor/rules/common-mistakes.mdc · 226 | Cursor rules | testlint-formatgitdo-not | 93/100 | today | |
| iloveitaly/llm-ide-rules.cursor/rules/general.mdc · 13 | Cursor rules | teststyledo-notagent-behaviour+1 | 92/100 | 14 days ago | |
| dotCMS/core.cursor/rules/e2e-rules.mdc · 949 | Cursor rules | setupteststylearch+5 | 89/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/guard-git.mdc · 139 | Cursor rules | stylearchgitsecurity+2 | 89/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/antonellof-s0-cli-cursor-rules-s0-cli)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.