xiaohongshu
xiaohongshu
Security audit with automatic fixes: $ARGUMENTS (package names or '.')
Full skill instructions
I'll perform a comprehensive security audit and automatically fix vulnerabilities for: $ARGUMENTS
This advanced workflow includes:
npm audit to identify all vulnerabilitiesThis is a complex skill demonstrating parallel execution, conditional logic, and comprehensive error handling.
Let's begin!
Create an isolated environment for safe dependency updates:
# Generate unique timestamp
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
WORKTREE_PATH="../audit-fix-worktree-$TIMESTAMP"
BRANCH_NAME="security-audit-$TIMESTAMP"
echo "🔒 Creating isolated worktree for security audit"
echo "📁 Worktree path: $WORKTREE_PATH"
echo "🌿 Branch name: $BRANCH_NAME"
echo ""
# Create worktree
git worktree add "$WORKTREE_PATH" -b "$BRANCH_NAME"
# Navigate into worktree
cd "$WORKTREE_PATH/expense-tracker-ai"
echo "✅ Worktree created and ready"
echo "📍 Working in: $(pwd)"
echo ""
Why isolated worktree is critical:
Scan for vulnerabilities using npm audit:
echo "🔍 Running security audit..."
echo ""
# Run npm audit and save results
npm audit --json > audit-report.json 2>&1
# Check if audit found any issues
AUDIT_EXIT_CODE=$?
if [ $AUDIT_EXIT_CODE -eq 0 ]; then
echo "✅ No vulnerabilities found!"
echo ""
echo "Your dependencies are secure."
echo "No updates needed."
# Clean up worktree
cd /Users/greg/code/claude-code-coursera
git worktree remove "$WORKTREE_PATH"
git branch -d "$BRANCH_NAME"
exit 0
fi
echo "⚠️ Vulnerabilities detected. Analyzing..."
echo ""
Parse audit results and categorize by severity:
echo "📊 Vulnerability Analysis"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Extract vulnerability counts by severity
if command -v jq >/dev/null 2>&1; then
# Use jq if available
CRITICAL=$(jq -r '.metadata.vulnerabilities.critical // 0' audit-report.json)
HIGH=$(jq -r '.metadata.vulnerabilities.high // 0' audit-report.json)
MODERATE=$(jq -r '.metadata.vulnerabilities.moderate // 0' audit-report.json)
LOW=$(jq -r '.metadata.vulnerabilities.low // 0' audit-report.json)
INFO=$(jq -r '.metadata.vulnerabilities.info // 0' audit-report.json)
else
# Fallback: parse npm audit output directly
npm audit | grep -E "Critical|High|Moderate|Low|Info" | while read -r line; do
case "$line" in
*Critical*) echo "$line" | awk '{print $2}' > /tmp/critical_count ;;
*High*) echo "$line" | awk '{print $2}' > /tmp/high_count ;;
*Moderate*) echo "$line" | awk '{print $2}' > /tmp/moderate_count ;;
*Low*) echo "$line" | awk '{print $2}' > /tmp/low_count ;;
esac
done
CRITICAL=$(cat /tmp/critical_count 2>/dev/null || echo 0)
HIGH=$(cat /tmp/high_count 2>/dev/null || echo 0)
MODERATE=$(cat /tmp/moderate_count 2>/dev/null || echo 0)
LOW=$(cat /tmp/low_count 2>/dev/null || echo 0)
fi
TOTAL=$((CRITICAL + HIGH + MODERATE + LOW))
echo "🔴 Critical: $CRITICAL"
echo "🟠 High: $HIGH"
echo "🟡 Moderate: $MODERATE"
echo "🟢 Low: $LOW"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📋 Total vulnerabilities: $TOTAL"
echo ""
Severity definitions:
Extract the list of packages that need updating:
echo "📦 Identifying vulnerable packages..."
echo ""
# Get list of vulnerable packages
if command -v jq >/dev/null 2>&1; then
# Extract unique package names from audit report
VULNERABLE_PACKAGES=$(jq -r '.vulnerabilities | keys[]' audit-report.json 2>/dev/null || echo "")
else
# Fallback: parse npm audit output
VULNERABLE_PACKAGES=$(npm audit | grep -E "^[a-z]" | awk '{print $1}' | sort -u)
fi
if [ -z "$VULNERABLE_PACKAGES" ]; then
echo "❌ Could not parse vulnerable packages"
echo "Running npm audit fix instead..."
npm audit fix
if [ $? -eq 0 ]; then
echo "✅ npm audit fix completed"
else
echo "❌ npm audit fix failed"
echo "Manual intervention required"
fi
exit 0
fi
# Count packages
PACKAGE_COUNT=$(echo "$VULNERABLE_PACKAGES" | wc -l | tr -d ' ')
echo "Found $PACKAGE_COUNT vulnerable packages:"
echo "$VULNERABLE_PACKAGES" | while read -r pkg; do
echo " • $pkg"
done
echo ""
Based on the number of packages, choose sequential or parallel execution:
echo "🎯 Determining execution strategy..."
echo ""
if [ "$ARGUMENTS" = "." ] || [ "$ARGUMENTS" = "all" ]; then
# Process all vulnerable packages
PACKAGES_TO_UPDATE="$VULNERABLE_PACKAGES"
UPDATE_MODE="all"
elif echo "$ARGUMENTS" | grep -q '\*'; then
# Glob pattern matching
PACKAGES_TO_UPDATE=$(echo "$VULNERABLE_PACKAGES" | grep "$ARGUMENTS")
UPDATE_MODE="pattern"
else
# Specific packages
PACKAGES_TO_UPDATE="$ARGUMENTS"
UPDATE_MODE="specific"
fi
UPDATE_COUNT=$(echo "$PACKAGES_TO_UPDATE" | wc -l | tr -d ' ')
echo "Update mode: $UPDATE_MODE"
echo "Packages to update: $UPDATE_COUNT"
echo ""
# Choose execution strategy
if [ $UPDATE_COUNT -gt 3 ]; then
echo "📊 Multiple packages detected ($UPDATE_COUNT packages)"
echo "🚀 Using parallel execution for efficiency"
echo ""
echo "Strategy:"
echo " • Split into groups of 2 packages per agent"
echo " • Launch parallel Task agents"
echo " • Each agent updates and validates independently"
echo " • Collect and merge results"
echo ""
EXECUTION_MODE="parallel"
else
echo "📝 Processing $UPDATE_COUNT packages sequentially"
echo ""
EXECUTION_MODE="sequential"
fi
Execution strategies:
For ≤3 packages, update one by one:
if [ "$EXECUTION_MODE" = "sequential" ]; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Starting sequential updates..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
SUCCESS_COUNT=0
FAILURE_COUNT=0
FAILED_PACKAGES=""
echo "$PACKAGES_TO_UPDATE" | while read -r package; do
if [ -z "$package" ]; then
continue
fi
echo "📦 Updating: $package"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Get current version
CURRENT_VERSION=$(npm list "$package" --depth=0 2>/dev/null | grep "$package" | awk -F@ '{print $NF}')
echo "Current version: $CURRENT_VERSION"
# Update package
npm install "$package@latest" --save
if [ $? -ne 0 ]; then
echo "❌ Failed to install $package@latest"
FAILURE_COUNT=$((FAILURE_COUNT + 1))
FAILED_PACKAGES="$FAILED_PACKAGES\n • $package"
continue
fi
# Get new version
NEW_VERSION=$(npm list "$package" --depth=0 2>/dev/null | grep "$package" | awk -F@ '{print $NF}')
echo "New version: $NEW_VERSION"
# Validate the update
echo ""
echo "Running validation..."
# Build
echo " 1/4 Build..."
npm run build >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo " ❌ Build failed after updating $package"
FAILURE_COUNT=$((FAILURE_COUNT + 1))
FAILED_PACKAGES="$FAILED_PACKAGES\n • $package (build failed)"
# Revert
npm install "$package@$CURRENT_VERSION" --save
continue
fi
echo " ✅ Build passed"
# Lint
echo " 2/4 Lint..."
npm run lint >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo " ❌ Lint failed after updating $package"
FAILURE_COUNT=$((FAILURE_COUNT + 1))
FAILED_PACKAGES="$FAILED_PACKAGES\n • $package (lint failed)"
npm install "$package@$CURRENT_VERSION" --save
continue
fi
echo " ✅ Lint passed"
# Unit tests
echo " 3/4 Unit tests..."
npm test >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo " ❌ Tests failed after updating $package"
FAILURE_COUNT=$((FAILURE_COUNT + 1))
FAILED_PACKAGES="$FAILED_PACKAGES\n • $package (tests failed)"
npm install "$package@$CURRENT_VERSION" --save
continue
fi
echo " ✅ Tests passed"
# E2E tests
echo " 4/4 E2E tests..."
npm run test:e2e >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo " ❌ E2E tests failed after updating $package"
FAILURE_COUNT=$((FAILURE_COUNT + 1))
FAILED_PACKAGES="$FAILED_PACKAGES\n • $package (e2e failed)"
npm install "$package@$CURRENT_VERSION" --save
continue
fi
echo " ✅ E2E tests passed"
echo ""
echo "✅ Successfully updated: $package ($CURRENT_VERSION → $NEW_VERSION)"
echo ""
SUCCESS_COUNT=$((SUCCESS_COUNT + 1))
done
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Sequential Update Summary"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "✅ Successful: $SUCCESS_COUNT"
echo "❌ Failed: $FAILURE_COUNT"
if [ $FAILURE_COUNT -gt 0 ]; then
echo ""
echo "Failed packages:"
echo -e "$FAILED_PACKAGES"
fi
echo ""
fi
For >3 packages, use parallel agents:
if [ "$EXECUTION_MODE" = "parallel" ]; then
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Starting parallel updates..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Split packages into groups
# Group size: 2 packages per agent
GROUP_SIZE=2
# Calculate number of groups needed
NUM_GROUPS=$(( (UPDATE_COUNT + GROUP_SIZE - 1) / GROUP_SIZE ))
echo "Parallel execution plan:"
echo " • Total packages: $UPDATE_COUNT"
echo " • Packages per agent: $GROUP_SIZE"
echo " • Number of agents: $NUM_GROUPS"
echo ""
# Claude will use Task tool with general-purpose subagents
# Each subagent will receive a subset of packages to update
#
# Conceptual breakdown:
# - Agent 1: packages 1-2
# - Agent 2: packages 3-4
# - Agent 3: packages 5-6
# ...
#
# Each agent independently:
# 1. Updates its assigned packages
# 2. Runs full validation suite for each
# 3. Reports success/failure
# 4. Reverts on failure
#
# Main process waits for all agents to complete,
# then collects and merges results
echo "⏳ Launching parallel agents..."
echo ""
# The actual Task tool usage will be handled by Claude
# This is a placeholder showing the conceptual approach
#
# For each group:
# Task({
# subagent_type: 'general-purpose',
# description: `Update packages: ${group.join(', ')}`,
# prompt: `Update these packages with full validation: ${packages}
# For each package:
# 1. npm install package@latest
# 2. Run build, lint, test, e2e
# 3. Revert if any validation fails
# 4. Report results`,
# run_in_background: true
# })
#
# Wait for all agents
# Collect results
# Generate summary
echo "✅ All agents completed"
echo ""
fi
Parallel execution benefits:
Parallel execution challenges:
After updates, verify vulnerabilities are fixed:
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Running post-update security audit..."
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
npm audit --json > audit-report-after.json 2>&1
AUDIT_EXIT_CODE=$?
if [ $AUDIT_EXIT_CODE -eq 0 ]; then
echo "✅ No vulnerabilities remaining!"
echo ""
REMAINING_VULNS=0
else
# Count remaining vulnerabilities
if command -v jq >/dev/null 2>&1; then
CRITICAL_AFTER=$(jq -r '.metadata.vulnerabilities.critical // 0' audit-report-after.json)
HIGH_AFTER=$(jq -r '.metadata.vulnerabilities.high // 0' audit-report-after.json)
MODERATE_AFTER=$(jq -r '.metadata.vulnerabilities.moderate // 0' audit-report-after.json)
LOW_AFTER=$(jq -r '.metadata.vulnerabilities.low // 0' audit-report-after.json)
else
CRITICAL_AFTER=0
HIGH_AFTER=0
MODERATE_AFTER=0
LOW_AFTER=0
fi
REMAINING_VULNS=$((CRITICAL_AFTER + HIGH_AFTER + MODERATE_AFTER + LOW_AFTER))
echo "⚠️ Remaining vulnerabilities: $REMAINING_VULNS"
echo ""
echo "🔴 Critical: $CRITICAL_AFTER (was: $CRITICAL)"
echo "🟠 High: $HIGH_AFTER (was: $HIGH)"
echo "🟡 Moderate: $MODERATE_AFTER (was: $MODERATE)"
echo "🟢 Low: $LOW_AFTER (was: $LOW)"
echo ""
fi
# Calculate fixed count
FIXED_COUNT=$((TOTAL - REMAINING_VULNS))
echo "📊 Fix Summary:"
echo " • Vulnerabilities fixed: $FIXED_COUNT"
echo " • Vulnerabilities remaining: $REMAINING_VULNS"
echo ""
Create detailed report with all findings:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔒 SECURITY AUDIT REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📅 Date: $(date '+%Y-%m-%d %H:%M:%S')
📁 Worktree: $WORKTREE_PATH
🌿 Branch: $BRANCH_NAME
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 VULNERABILITY SUMMARY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Initial Scan:
🔴 Critical: $CRITICAL
🟠 High: $HIGH
🟡 Moderate: $MODERATE
🟢 Low: $LOW
━━━━━━━━━━━━━━━━━━━━━━
📋 Total: $TOTAL
After Updates:
🔴 Critical: $CRITICAL_AFTER
🟠 High: $HIGH_AFTER
🟡 Moderate: $MODERATE_AFTER
🟢 Low: $LOW_AFTER
━━━━━━━━━━━━━━━━━━━━━━
📋 Total: $REMAINING_VULNS
Result:
✅ Fixed: $FIXED_COUNT vulnerabilities
⚠️ Remaining: $REMAINING_VULNS vulnerabilities
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 PACKAGE UPDATES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Successful Updates ($SUCCESS_COUNT):
[List each successful package update]
• webpack: 5.88.0 → 5.89.0 (fixed CVE-2023-XXXX)
• react-dom: 18.2.0 → 18.3.1 (fixed CVE-2023-YYYY)
• express: 4.18.0 → 4.19.2 (fixed CVE-2024-ZZZZ)
Failed Updates ($FAILURE_COUNT):
[List each failed package with reason]
• typescript: 5.1.0 → 5.3.0 (build errors)
• jest: 29.5.0 → 30.0.0 (breaking changes)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ VALIDATION RESULTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Build: ✓ Passed
Lint: ✓ Passed
Unit Tests: ✓ Passed (24/24)
E2E Tests: ✓ Passed (12/12)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 RECOMMENDATIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[If remaining vulnerabilities]
🔴 Critical Priority:
• Review remaining critical vulnerabilities
• Consider manual updates for failed packages
• Check for security patches or workarounds
🟠 High Priority:
• Address high severity issues within 7 days
• Monitor security advisories
🟡 Medium Priority:
• Plan updates for moderate severity issues
• Include in next maintenance cycle
[If all fixed]
✅ All Clear:
• No vulnerabilities detected
• All dependencies up to date
• Maintain regular audit schedule
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 NEXT STEPS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[If successful]
✅ Review changes in worktree
✅ Test application manually
✅ Merge to main branch
✅ Deploy updated dependencies
[If failures]
⚠️ Review failed package updates
⚠️ Check breaking change documentation
⚠️ Consider manual migration
⚠️ Address remaining vulnerabilities
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ask user whether to merge the updates:
if [ $SUCCESS_COUNT -gt 0 ] && [ $FAILURE_COUNT -eq 0 ] && [ $REMAINING_VULNS -eq 0 ]; then
# Perfect case: all updates successful, no remaining vulnerabilities
echo "✅ Security audit complete!"
echo "✅ All vulnerabilities fixed"
echo "✅ All validations passed"
echo ""
echo "Merge changes to main branch? (yes/no)"
echo ""
echo "Options:"
echo " yes - Merge updates and clean up worktree"
echo " no - Keep worktree for manual review"
elif [ $SUCCESS_COUNT -gt 0 ] && [ $REMAINING_VULNS -gt 0 ]; then
# Partial success: some fixed, some remaining
echo "⚠️ Partial success"
echo "✅ Fixed: $FIXED_COUNT vulnerabilities"
echo "⚠️ Remaining: $REMAINING_VULNS vulnerabilities"
echo ""
echo "Merge partial fixes to main branch? (yes/no/review)"
echo ""
echo "Options:"
echo " yes - Merge successful updates (progress made)"
echo " no - Discard all changes (address all issues first)"
echo " review - Keep worktree for manual inspection"
else
# Failure: no progress or major issues
echo "❌ Security audit completed with issues"
echo "❌ Failed updates: $FAILURE_COUNT"
echo "⚠️ Remaining vulnerabilities: $REMAINING_VULNS"
echo ""
echo "What would you like to do? (keep/cleanup/retry)"
echo ""
echo "Options:"
echo " keep - Preserve worktree for debugging"
echo " cleanup - Discard changes and remove worktree"
echo " retry - Try npm audit fix --force (may break)"
fi
If user chooses to merge successful updates:
echo "Merging security updates to main branch..."
echo ""
# Navigate back to original repo
cd /Users/greg/code/claude-code-coursera
# Show what will be merged
echo "Changes to merge:"
git diff main..$BRANCH_NAME --stat
echo ""
echo "Proceed with merge? (yes/no)"
# Wait for confirmation
# Merge
git merge "$BRANCH_NAME"
if [ $? -ne 0 ]; then
echo "❌ Merge conflict detected"
echo ""
echo "This is unusual for dependency updates."
echo "Likely causes:"
echo " • package.json modified in main"
echo " • package-lock.json conflicts"
echo ""
echo "Resolve manually:"
echo " 1. git status"
echo " 2. Edit conflicting files"
echo " 3. git add <files>"
echo " 4. git merge --continue"
exit 1
fi
echo "✅ Merge successful"
echo ""
# Offer to push
echo "Push to remote? (yes/no)"
# Wait for response
# Clean up
git worktree remove "$WORKTREE_PATH"
git branch -d "$BRANCH_NAME"
echo ""
echo "✅ Security updates merged successfully"
echo "✅ Worktree cleaned up"
echo ""
echo "Don't forget to:"
echo " • Test application in production environment"
echo " • Monitor for any runtime issues"
echo " • Update deployment pipelines if needed"
If user wants to review manually:
echo "Worktree preserved for review"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📁 Worktree Location"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Path: $WORKTREE_PATH"
echo "Branch: $BRANCH_NAME"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🔍 Review Changes"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Review package updates:"
echo " cd $WORKTREE_PATH/expense-tracker-ai"
echo " git diff HEAD package.json"
echo " git diff HEAD package-lock.json"
echo ""
echo "Test application:"
echo " npm run dev"
echo " # Test functionality in browser"
echo ""
echo "Check dependencies:"
echo " npm list --depth=0"
echo " npm audit"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "🔄 Merge When Ready"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Merge to main:"
echo " cd /Users/greg/code/claude-code-coursera"
echo " git merge $BRANCH_NAME"
echo " git push origin main"
echo ""
echo "Clean up:"
echo " git worktree remove $WORKTREE_PATH"
echo " git branch -d $BRANCH_NAME"
echo ""
❌ Build failed after updating webpack
Error: Module not found: '@types/webpack'
Resolution:
1. Install missing types: npm install --save-dev @types/webpack
2. Re-run build: npm run build
3. If still failing, check breaking changes in webpack docs
❌ npm ERR! ERESOLVE unable to resolve dependency tree
Conflict:
[email protected] requires webpack@^5.90.0
Current webpack: 5.88.0
Resolution:
1. Update react first: npm install react@latest
2. Then update webpack: npm install webpack@latest
3. Or use --force (may cause issues):
npm install webpack@latest --force
❌ Tests failed after updating jest
Error: Unknown option 'testEnvironment'
Cause: Breaking change in jest 30.x
Resolution:
1. Review migration guide:
https://jestjs.io/docs/upgrading-to-jest30
2. Update jest.config.js
3. Update test files if needed
⚠️ Vulnerability in transitive dependency
Package: some-deep-dependency
Severity: High
Fixable: No
Your package → intermediate-package → some-deep-dependency
Resolution:
1. Check if intermediate-package has update
2. Contact maintainer of intermediate-package
3. Consider alternative package
4. Monitor for security patch
# Audit and fix only React-related packages
audit-and-fix react*
# Audit and fix webpack and babel
audit-and-fix webpack babel
# Audit and fix all testing libraries
audit-and-fix @testing-library/*
# Fix only critical vulnerabilities
# (requires custom filtering logic)
audit-and-fix . --severity=critical
# Fix critical and high severity
audit-and-fix . --severity=critical,high
# Show what would be updated without actually updating
audit-and-fix . --dry-run
# Expected output:
# Would update:
# • webpack: 5.88.0 → 5.89.0
# • react-dom: 18.2.0 → 18.3.1
# • express: 4.18.0 → 4.19.2
Sequential (3 packages):
Parallel (12 packages):
Recommendation:
This skill demonstrates:
✅ Complex conditional logic - Different strategies based on package count ✅ Parallel execution - Using Task tool with subagents for scale ✅ Comprehensive validation - Build, lint, unit tests, e2e tests ✅ Error categorization - Grouping failures by type ✅ Rollback on failure - Reverting packages that break validation ✅ Detailed reporting - Security report with before/after comparison ✅ User decision points - Multiple prompts for user control ✅ Cleanup handling - Proper worktree and branch cleanup
This is the most complex skill example, showcasing advanced patterns for production-grade automation.
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience