Install command
Provided
Automatically compiles SCSS/Sass files to CSS when they are modified.
Open the source and read safety notes before installing.
Source-backed facts for citing this resource, derived directly from the registry — also available as plain text for AI assistants.
Decision playbook
Signals are present but mixed. Use the checklist below to confirm the source and operational safety for your environment.
0
78
—
No baseline selected
No major trust-signal divergence detected in the current selection.
Confirm ownership and provenance before trusting install instructions.
Source link availableRequired
Open the canonical repository and verify ownership.
Source provenance statusRequired
Marked as source-backed.
Metadata reviewed
Registry metadata indicates a reviewed listing.
Validate risk disclosures before installation or API wiring.
Safety notes presentRequired
Review the listed safety guidance before running commands.
Privacy notes presentRequired
Review data handling notes before connecting accounts or secrets.
Trust level risk gateRequired
Trust level does not block evaluation.
Check package metadata and artifact integrity signals.
Install payload available
Install or copy payload is available for review.
Package verification flag
No package verification flag provided.
Checksum metadata
No checksum provided for downloaded artifact.
Use compare context to validate trade-offs before adoption.
Compare tray has multiple entries
Add at least one more entry to compare trust differences.
Baseline comparison available
No baseline peer selected yet.
Diverging trust signals identified
No major trust-signal divergence found.
Setup at a glance
Copy-ready — paste the snippet to get started.
Install command
Provided
Config snippet
Provided
Copy snippet
Provided
Prerequisites
None
Platforms
1 listed
Difficulty
0/100
Adoption plan
Current risk score 16/100. Use staged verification before broader rollout.
Validate source and review signals before any execution.
Confirm source provenanceRequired
Source URL/provenance metadata is present.
Confirm metadata review state
Listing has review metadata.
Verify install payload
Install/config payload exists and can be inspected.
Confirm safety, privacy, and package integrity signals.
Review safety notesRequired
Safety notes are present.
Review privacy notesRequired
Privacy notes are present.
Verify package integrity metadata
No package verification/checksum metadata.
Adopt in controlled steps based on the selected plan.
Run in isolated sandbox firstRequired
Use a constrained sandbox and observe behavior across multiple tasks.
Roll out graduallyRequired
Roll out to a small cohort before wider usage.
Set monitoring and fallback
Define rollback path and monitor errors after adoption.
Evidence readiness
Required evidence gates are covered (5/6 signals complete).
Source repository/provenance is listed.
Required in this preset
Review metadata is present.
Required in this preset
Safety notes are present.
Required in this preset
Privacy notes are present.
Optional in this preset
Package integrity metadata is missing.
Optional in this preset
Install payload is available.
Required in this preset
Required evidence gates are covered for this preset.
Decision timeline
5/6 steps complete with no blocking gaps for this preset.
triage
Source/provenance metadata is available.
triage
Review metadata is available.
verify
Safety notes are available.
verify
Privacy notes are available.
verify
Package integrity metadata is missing.
rollout
Install payload is available.
No required blockers for this timeline preset.
Safety & privacy surface
1 safety and 1 privacy notes across 2 risk areas. Review closely: credentials & tokens, permissions & scopes.
#!/bin/bash
# Read the tool input from stdin
INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name')
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
if [ -z "$FILE_PATH" ]; then
exit 0
fi
# Check if this is a SCSS or Sass file
if [[ "$FILE_PATH" == *.scss ]] || [[ "$FILE_PATH" == *.sass ]]; then
echo "🎨 SCSS Auto-Compiler - Processing stylesheet..."
echo "📄 File: $FILE_PATH"
# Check if file exists
if [ ! -f "$FILE_PATH" ]; then
echo "⚠️ File not found: $FILE_PATH"
exit 1
fi
# Determine output CSS file path
if [[ "$FILE_PATH" == *.scss ]]; then
CSS_OUTPUT="${FILE_PATH%.scss}.css"
MAP_OUTPUT="${FILE_PATH%.scss}.css.map"
else # .sass file
CSS_OUTPUT="${FILE_PATH%.sass}.css"
MAP_OUTPUT="${FILE_PATH%.sass}.css.map"
fi
echo "📁 Output: $CSS_OUTPUT"
# Check if Sass compiler is available
if command -v sass >/dev/null 2>&1; then
SASS_CMD="sass"
elif command -v npx >/dev/null 2>&1 && npx sass --version >/dev/null 2>&1; then
SASS_CMD="npx sass"
elif command -v node-sass >/dev/null 2>&1; then
SASS_CMD="node-sass"
echo "ℹ️ Using node-sass (consider upgrading to Dart Sass)"
else
echo "⚠️ No Sass compiler found"
echo "💡 Install options:"
echo " • npm install -g sass (Dart Sass - recommended)"
echo " • npm install sass (project-local)"
echo " • brew install sass/sass/sass (macOS)"
exit 1
fi
echo "🔧 Compiling with $SASS_CMD..."
# Compile SCSS/Sass to CSS with source maps
if [[ "$SASS_CMD" == "node-sass" ]]; then
# node-sass syntax
if node-sass "$FILE_PATH" "$CSS_OUTPUT" --source-map true --source-map-contents; then
echo "✅ SCSS compiled successfully with node-sass"
else
echo "❌ SCSS compilation failed"
exit 1
fi
else
# Dart Sass syntax
if $SASS_CMD "$FILE_PATH" "$CSS_OUTPUT" --source-map; then
echo "✅ SCSS compiled successfully"
else
echo "❌ SCSS compilation failed"
exit 1
fi
fi
# Check output file size
if [ -f "$CSS_OUTPUT" ]; then
CSS_SIZE=$(stat -f%z "$CSS_OUTPUT" 2>/dev/null || stat -c%s "$CSS_OUTPUT" 2>/dev/null || echo "unknown")
echo "📊 Generated CSS: ${CSS_SIZE} bytes"
# Check for source map
if [ -f "$MAP_OUTPUT" ]; then
echo "🗺️ Source map: $MAP_OUTPUT"
fi
fi
# Additional analysis
echo ""
echo "🔍 SCSS Analysis:"
# Count SCSS features used
if grep -q '@import\|@use' "$FILE_PATH" 2>/dev/null; then
IMPORT_COUNT=$(grep -c '@import\|@use' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Imports/Uses: $IMPORT_COUNT"
fi
if grep -q '@mixin' "$FILE_PATH" 2>/dev/null; then
MIXIN_COUNT=$(grep -c '@mixin' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Mixins defined: $MIXIN_COUNT"
fi
if grep -q '@include' "$FILE_PATH" 2>/dev/null; then
INCLUDE_COUNT=$(grep -c '@include' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Mixin includes: $INCLUDE_COUNT"
fi
if grep -q '\$[a-zA-Z]' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Variables detected - using SCSS features"
fi
if grep -q '&' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Nested selectors detected"
fi
# Check for common issues
echo ""
echo "🔍 Code Quality Check:"
if grep -q '!important' "$FILE_PATH" 2>/dev/null; then
IMPORTANT_COUNT=$(grep -c '!important' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • ⚠️ !important usage: $IMPORTANT_COUNT (consider refactoring)"
fi
if grep -q 'color: #[0-9a-fA-F]\{3,6\}' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Consider using CSS custom properties for colors"
fi
echo ""
echo "💡 SCSS Development Tips:"
echo " • Use @use instead of @import for better performance"
echo " • Organize styles with partials (_filename.scss)"
echo " • Use mixins for reusable style patterns"
echo " • Leverage SCSS variables for consistent theming"
echo " • Use nested selectors sparingly (max 3-4 levels)"
echo ""
echo "🎯 SCSS compilation complete!"
else
echo "ℹ️ File is not a SCSS/Sass file: $FILE_PATH"
fi
exit 0{
"hooks": {
"postToolUse": {
"script": "./.claude/hooks/scss-auto-compiler.sh",
"matchers": [
"write",
"edit"
]
}
}
}.claude/settings.local.json~/.claude/settings.json.claude/settings.json{
"hooks": {
"postToolUse": {
"script": "./.claude/hooks/scss-auto-compiler.sh",
"matchers": ["write", "edit"]
}
}
}
#!/bin/bash
# Read the tool input from stdin
INPUT=$(cat)
TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name')
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
if [ -z "$FILE_PATH" ]; then
exit 0
fi
# Check if this is a SCSS or Sass file
if [[ "$FILE_PATH" == *.scss ]] || [[ "$FILE_PATH" == *.sass ]]; then
echo "🎨 SCSS Auto-Compiler - Processing stylesheet..."
echo "📄 File: $FILE_PATH"
# Check if file exists
if [ ! -f "$FILE_PATH" ]; then
echo "⚠️ File not found: $FILE_PATH"
exit 1
fi
# Determine output CSS file path
if [[ "$FILE_PATH" == *.scss ]]; then
CSS_OUTPUT="${FILE_PATH%.scss}.css"
MAP_OUTPUT="${FILE_PATH%.scss}.css.map"
else # .sass file
CSS_OUTPUT="${FILE_PATH%.sass}.css"
MAP_OUTPUT="${FILE_PATH%.sass}.css.map"
fi
echo "📁 Output: $CSS_OUTPUT"
# Check if Sass compiler is available
if command -v sass >/dev/null 2>&1; then
SASS_CMD="sass"
elif command -v npx >/dev/null 2>&1 && npx sass --version >/dev/null 2>&1; then
SASS_CMD="npx sass"
elif command -v node-sass >/dev/null 2>&1; then
SASS_CMD="node-sass"
echo "ℹ️ Using node-sass (consider upgrading to Dart Sass)"
else
echo "⚠️ No Sass compiler found"
echo "💡 Install options:"
echo " • npm install -g sass (Dart Sass - recommended)"
echo " • npm install sass (project-local)"
echo " • brew install sass/sass/sass (macOS)"
exit 1
fi
echo "🔧 Compiling with $SASS_CMD..."
# Compile SCSS/Sass to CSS with source maps
if [[ "$SASS_CMD" == "node-sass" ]]; then
# node-sass syntax
if node-sass "$FILE_PATH" "$CSS_OUTPUT" --source-map true --source-map-contents; then
echo "✅ SCSS compiled successfully with node-sass"
else
echo "❌ SCSS compilation failed"
exit 1
fi
else
# Dart Sass syntax
if $SASS_CMD "$FILE_PATH" "$CSS_OUTPUT" --source-map; then
echo "✅ SCSS compiled successfully"
else
echo "❌ SCSS compilation failed"
exit 1
fi
fi
# Check output file size
if [ -f "$CSS_OUTPUT" ]; then
CSS_SIZE=$(stat -f%z "$CSS_OUTPUT" 2>/dev/null || stat -c%s "$CSS_OUTPUT" 2>/dev/null || echo "unknown")
echo "📊 Generated CSS: ${CSS_SIZE} bytes"
# Check for source map
if [ -f "$MAP_OUTPUT" ]; then
echo "🗺️ Source map: $MAP_OUTPUT"
fi
fi
# Additional analysis
echo ""
echo "🔍 SCSS Analysis:"
# Count SCSS features used
if grep -q '@import\|@use' "$FILE_PATH" 2>/dev/null; then
IMPORT_COUNT=$(grep -c '@import\|@use' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Imports/Uses: $IMPORT_COUNT"
fi
if grep -q '@mixin' "$FILE_PATH" 2>/dev/null; then
MIXIN_COUNT=$(grep -c '@mixin' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Mixins defined: $MIXIN_COUNT"
fi
if grep -q '@include' "$FILE_PATH" 2>/dev/null; then
INCLUDE_COUNT=$(grep -c '@include' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • Mixin includes: $INCLUDE_COUNT"
fi
if grep -q '\$[a-zA-Z]' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Variables detected - using SCSS features"
fi
if grep -q '&' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Nested selectors detected"
fi
# Check for common issues
echo ""
echo "🔍 Code Quality Check:"
if grep -q '!important' "$FILE_PATH" 2>/dev/null; then
IMPORTANT_COUNT=$(grep -c '!important' "$FILE_PATH" 2>/dev/null || echo 0)
echo " • ⚠️ !important usage: $IMPORTANT_COUNT (consider refactoring)"
fi
if grep -q 'color: #[0-9a-fA-F]\{3,6\}' "$FILE_PATH" 2>/dev/null; then
echo " • 💡 Consider using CSS custom properties for colors"
fi
echo ""
echo "💡 SCSS Development Tips:"
echo " • Use @use instead of @import for better performance"
echo " • Organize styles with partials (_filename.scss)"
echo " • Use mixins for reusable style patterns"
echo " • Leverage SCSS variables for consistent theming"
echo " • Use nested selectors sparingly (max 3-4 levels)"
echo ""
echo "🎯 SCSS compilation complete!"
else
echo "ℹ️ File is not a SCSS/Sass file: $FILE_PATH"
fi
exit 0
Complete hook script that compiles SCSS/Sass files to CSS with source maps
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
if [ -z "$FILE_PATH" ]; then
exit 0
fi
if [[ "$FILE_PATH" == *.scss ]] || [[ "$FILE_PATH" == *.sass ]]; then
if command -v sass >/dev/null 2>&1 || (command -v npx >/dev/null 2>&1 && npx sass --version >/dev/null 2>&1); then
if [[ "$FILE_PATH" == *.scss ]]; then
CSS_OUTPUT="${FILE_PATH%.scss}.css"
else
CSS_OUTPUT="${FILE_PATH%.sass}.css"
fi
SASS_CMD="sass"
if ! command -v sass >/dev/null 2>&1; then
SASS_CMD="npx sass"
fi
echo "🎨 Compiling SCSS..."
if $SASS_CMD "$FILE_PATH" "$CSS_OUTPUT" --source-map; then
echo "✅ SCSS compiled successfully"
else
echo "❌ SCSS compilation failed"
exit 1
fi
fi
fi
exit 0
Complete hook configuration for .claude/settings.json to enable SCSS auto compilation
{
"hooks": {
"postToolUse": {
"script": "./.claude/hooks/scss-auto-compiler.sh",
"matchers": ["write", "edit"]
}
}
}
Enhanced hook script that skips SCSS partials (files starting with _) and compiles with compressed output
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
if [[ "$FILE_PATH" == *.scss ]]; then
if [[ "$(basename "$FILE_PATH")" == _* ]]; then
echo "ℹ️ Skipping partial: $FILE_PATH"
exit 0
fi
CSS_OUTPUT="${FILE_PATH%.scss}.css"
if command -v sass >/dev/null 2>&1; then
sass "$FILE_PATH" "$CSS_OUTPUT" --source-map --style=compressed
elif command -v npx >/dev/null 2>&1; then
npx sass "$FILE_PATH" "$CSS_OUTPUT" --source-map --style=compressed
fi
fi
exit 0
Enhanced hook script with source map include sources and source map size reporting
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
if [[ "$FILE_PATH" == *.scss ]]; then
CSS_OUTPUT="${FILE_PATH%.scss}.css"
MAP_OUTPUT="${FILE_PATH%.scss}.css.map"
if command -v sass >/dev/null 2>&1; then
sass "$FILE_PATH" "$CSS_OUTPUT" --source-map --source-map-include-sources --style=expanded
if [ -f "$MAP_OUTPUT" ]; then
MAP_SIZE=$(stat -f%z "$MAP_OUTPUT" 2>/dev/null || stat -c%s "$MAP_OUTPUT" 2>/dev/null || echo "unknown")
echo "🗺️ Source map: $MAP_OUTPUT (${MAP_SIZE} bytes)"
fi
fi
fi
exit 0
Example sass configuration for SCSS compilation options
{
"sass": {
"outputStyle": "expanded",
"sourceMap": true,
"sourceMapIncludeSources": true,
"loadPaths": ["node_modules", "src/styles"]
}
}
Install Dart Sass globally with npm install -g sass or locally npm install sass, then restart terminal. For project-specific, hook uses npx sass which auto-detects local installations. Verify installation with sass --version. Check PATH environment variable.
Ensure write permissions on output directory. Hook generates maps automatically: sass "$FILE_PATH" "$CSS_OUTPUT" --source-map. Check if MAP_OUTPUT path is writable and not gitignored. Verify source map generation with --source-map-include-sources option. Test with various output directory configurations.
Add early exit for partials: if [[ "$(basename "$FILE_PATH")" == _* ]]; then exit 0; fi before compilation. SCSS partials (prefixed with _) shouldn't compile to separate CSS files. Verify partial detection. Test with various partial naming conventions.
Migrate to Dart Sass: uninstall npm uninstall node-sass, install npm install sass. Hook automatically prefers Dart Sass over node-sass when both are available and shows migration notice. Verify Dart Sass installation. Test with various Sass compiler configurations.
Hook uses regex grep -q '@import\|@use' to detect both. For separate counts, use: IMPORT=$(grep -c '@import' ...) and USE=$(grep -c '@use' ...) to distinguish modern @use from legacy @import. Verify regex patterns. Test with various SCSS import patterns.
Use incremental compilation with Dart Sass. Consider using --watch mode for development. Optimize SCSS imports and use @use instead of @import. Use loadPaths for faster module resolution. Verify compilation settings. Test with various project sizes.
Ensure source map paths are relative to CSS output location. Use --source-map-embed for embedded source maps. Verify source map configuration. Check file path resolution. Test with various source map configurations.
Configure output style with --style=expanded (default), --style=compressed, or --style=compact. Use sass configuration file for consistent formatting. Verify style options. Test with various output style configurations.
SCSS Auto Compiler - Hooks side by side with 3 alternatives on trust, install, platform support, and disclosed safety notes — all from reviewed registry metadata.
| Field | Automatically compiles SCSS/Sass files to CSS when they are modified. Open dossier | Automatically compiles and validates Svelte components when they are modified. Open dossier | Automatically formats code files after Claude writes or edits them using industry-standard formatters including Prettier 3.6.2+ (JavaScript/TypeScript/Web), Black or Ruff (Python), gofmt (Go), and rustfmt (Rust). Open dossier | Automatically creates timestamped backups of files before modification to prevent data loss. This hook runs before file editing operations (Edit, Write, Multiedit) and creates versioned backups in a centralized .backups directory with ISO 8601-compliant timestamps including nanoseconds for collision prevention. Open dossier |
|---|---|---|---|---|
| Next steps | ||||
| Trust | ||||
| Review status | ReviewedMaintainer reviewed | ReviewedMaintainer reviewed | ReviewedMaintainer reviewed | ReviewedMaintainer reviewed |
| Package trust | Package not verified | Package not verified | Package not verified | Package not verified |
| Source provenance | Source-backed | Source-backed | Source-backed | Source-backed |
| Submitter | — | — | — | — |
| Install risk | Review first | Review first | Review first | Review first |
| Notes | Safety ✓ Privacy ✓ | Safety ✓ Privacy ✓ | Safety ✓ Privacy ✓ | Safety ✓ Privacy ✓ |
| Brand | — | — | — | — |
| Category | hooks | hooks | hooks | hooks |
| Source | source-backed | source-backed | source-backed | source-backed |
| Author | JSONbored | JSONbored | JSONbored | JSONbored |
| Added | 2025-09-19 | 2025-09-19 | 2025-09-19 | 2025-09-19 |
| Platforms | Claude Code | Claude Code | Claude Code | Claude Code |
| Source repo | — | — | — | — |
| Safety notes | ✓Runs automatically on its configured Claude Code hook event and executes shell logic that can read, modify, or delete files in your project (and may run builds, installs, or network calls); review the script and scope it to expected paths before enabling. | ✓Runs automatically after write/edit tool use for .svelte files and may invoke npx svelte-check inside the current project. Uses the local project toolchain and dependencies, so validation can be slow or fail when Svelte dependencies are missing. | ✓Runs automatically on its configured Claude Code hook event and executes shell logic that can read, modify, or delete files in your project (and may run builds, installs, or network calls); review the script and scope it to expected paths before enabling. | ✓Runs automatically on its configured Claude Code hook event and executes shell logic that can read, modify, or delete files in your project (and may run builds, installs, or network calls); review the script and scope it to expected paths before enabling. |
| Privacy notes | ✓Receives Claude Code hook input (session metadata, file paths, and tool output) and reads local project files; review what the script logs or forwards to external services and keep credentials out of its output. | ✓Reads modified .svelte components, package.json, svelte.config.js, and vite.config.js to infer framework, component, accessibility, and performance signals. Prints component statistics and validation output to the local Claude Code hook output stream. | ✓Receives Claude Code hook input (session metadata, file paths, and tool output) and reads local project files; review what the script logs or forwards to external services and keep credentials out of its output. | ✓Receives Claude Code hook input (session metadata, file paths, and tool output) and reads local project files; review what the script logs or forwards to external services and keep credentials out of its output. |
| Prerequisites | — none listed | — none listed | — none listed | — none listed |
| Install | | | | |
| Config | | | | |
| Citations | ||||
| Claim | Unclaimed | Unclaimed | Unclaimed | Unclaimed |
Loading live community signals…
A short, calm digest of reviewed Claude resources. Unsubscribe any time.