ruling
SkillDev toolsRun ruling integration tests and update expected results for SonarJS rules. Use when running ruling tests or syncing expected ruling output.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the ruling skill
What this skill tells your AI
The instructions your AI receives, as published by sonarsource/sonarjs in .claude/skills/ruling/SKILL.md and read by ahel’s review.
Overview
Ruling tests analyze large third-party codebases (JS/TS and CSS) and compare issues against expected output. Run them when adding or modifying rules to verify real-world behavior.
Warning: Running ruling tests removes
node_modulesfrom the project root. Runnpm ciafterward.
Running Ruling
# Prerequisites: init submodules, install dependencies, build JS/TS, then rebuild the jar
git submodule update --init --recursive
npm install
npm run bbf
mvn install -DskipTests
# Run ruling (JS/TS and CSS)
npm run ruling
# Sync actual → expected (after reviewing output)
npm run ruling-sync
# Debug differences
sh tools/ruling-debug-script.sh
Results:
- Actual:
packages/ruling/actual/ - Expected:
its/ruling/src/test/expected/
Java Ruling (Old Way)
cd its/ruling
mvn verify -Dtest=RulingTest -Dmaven.test.redirectTestOutputToFile=false
Copy actual to expected:
cp -R target/actual/ src/test/expected/
Review diff:
diff -rq src/test/expected target/actual
Custom Source Files for New Rules
If a new rule raises no issues on existing sources, add test code:
its/sources/custom/jsts/S1234.js— regular codeits/sources/custom/jsts/tests/S1234.js— test code
Copy from RSPEC HTML description (compliant/non-compliant examples).
Debugging with Node Process
To debug the Node.js bridge during ruling:
- Start your Node.js process manually
- Set
SONARJS_EXISTING_NODE_PROCESS_PORT=<port> - Remove
@Execution(ExecutionMode.CONCURRENT)from the ruling test class (for serial execution)
Submodule Setup
If submodules aren't checked out:
git submodule init
git submodule update
Signals
- GitHub stars
- 1k
- Forks
- 192
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Catalog kind
- skill
- Gateway key
ruling- Source
- github.com/sonarsource/sonarjs