@elizaos/skills 2.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +126 -0
- package/package.json +53 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +96 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/bird/SKILL.md +224 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +203 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +284 -0
- package/skills/discord/SKILL.md +578 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/food-order/SKILL.md +48 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +77 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +74 -0
- package/skills/local-places/SERVER_README.md +101 -0
- package/skills/local-places/SKILL.md +102 -0
- package/skills/local-places/pyproject.toml +21 -0
- package/skills/local-places/src/local_places/__init__.py +2 -0
- package/skills/local-places/src/local_places/google_places.py +314 -0
- package/skills/local-places/src/local_places/main.py +65 -0
- package/skills/local-places/src/local_places/schemas.py +107 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +310 -0
- package/skills/nano-banana-pro/SKILL.md +58 -0
- package/skills/nano-banana-pro/scripts/generate_image.py +184 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/notion/SKILL.md +172 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +89 -0
- package/skills/openai-image-gen/scripts/gen.py +240 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +51 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/security-ask-questions-if-underspecified/.claude-plugin/plugin.json +10 -0
- package/skills/security-ask-questions-if-underspecified/README.md +24 -0
- package/skills/security-ask-questions-if-underspecified/skills/ask-questions-if-underspecified/SKILL.md +85 -0
- package/skills/security-audit-context-building/.claude-plugin/plugin.json +10 -0
- package/skills/security-audit-context-building/README.md +58 -0
- package/skills/security-audit-context-building/commands/audit-context.md +21 -0
- package/skills/security-audit-context-building/skills/audit-context-building/SKILL.md +297 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/COMPLETENESS_CHECKLIST.md +47 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/FUNCTION_MICRO_ANALYSIS_EXAMPLE.md +355 -0
- package/skills/security-audit-context-building/skills/audit-context-building/resources/OUTPUT_REQUIREMENTS.md +71 -0
- package/skills/security-building-secure-contracts/.claude-plugin/plugin.json +10 -0
- package/skills/security-building-secure-contracts/README.md +241 -0
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/SKILL.md +284 -0
- package/skills/security-building-secure-contracts/skills/algorand-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +405 -0
- package/skills/security-building-secure-contracts/skills/audit-prep-assistant/SKILL.md +409 -0
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/SKILL.md +329 -0
- package/skills/security-building-secure-contracts/skills/cairo-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +722 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/SKILL.md +218 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/ASSESSMENT_CRITERIA.md +355 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/EXAMPLE_REPORT.md +248 -0
- package/skills/security-building-secure-contracts/skills/code-maturity-assessor/resources/REPORT_FORMAT.md +33 -0
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md +334 -0
- package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +740 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/SKILL.md +252 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/ASSESSMENT_AREAS.md +329 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/DELIVERABLES.md +118 -0
- package/skills/security-building-secure-contracts/skills/guidelines-advisor/resources/EXAMPLE_REPORT.md +298 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/SKILL.md +161 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/EXAMPLE_REPORT.md +279 -0
- package/skills/security-building-secure-contracts/skills/secure-workflow-guide/resources/WORKFLOW_STEPS.md +132 -0
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/SKILL.md +389 -0
- package/skills/security-building-secure-contracts/skills/solana-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +669 -0
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/SKILL.md +298 -0
- package/skills/security-building-secure-contracts/skills/substrate-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +791 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/SKILL.md +362 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/ASSESSMENT_CATEGORIES.md +571 -0
- package/skills/security-building-secure-contracts/skills/token-integration-analyzer/resources/REPORT_TEMPLATES.md +141 -0
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/SKILL.md +388 -0
- package/skills/security-building-secure-contracts/skills/ton-vulnerability-scanner/resources/VULNERABILITY_PATTERNS.md +595 -0
- package/skills/security-burpsuite-project-parser/.claude-plugin/plugin.json +10 -0
- package/skills/security-burpsuite-project-parser/README.md +103 -0
- package/skills/security-burpsuite-project-parser/commands/burp-search.md +18 -0
- package/skills/security-burpsuite-project-parser/skills/SKILL.md +358 -0
- package/skills/security-burpsuite-project-parser/skills/scripts/burp-search.sh +99 -0
- package/skills/security-claude-in-chrome-troubleshooting/.claude-plugin/plugin.json +8 -0
- package/skills/security-claude-in-chrome-troubleshooting/README.md +31 -0
- package/skills/security-claude-in-chrome-troubleshooting/skills/claude-in-chrome-troubleshooting/SKILL.md +251 -0
- package/skills/security-constant-time-analysis/.claude-plugin/plugin.json +9 -0
- package/skills/security-constant-time-analysis/README.md +381 -0
- package/skills/security-constant-time-analysis/commands/ct-check.md +20 -0
- package/skills/security-constant-time-analysis/ct_analyzer/__init__.py +49 -0
- package/skills/security-constant-time-analysis/ct_analyzer/analyzer.py +1284 -0
- package/skills/security-constant-time-analysis/ct_analyzer/script_analyzers.py +3081 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/__init__.py +1 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_analyzer.py +1397 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/bn_excerpt.js +205 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_constant_time.c +181 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.c +74 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.go +78 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/decompose_vulnerable.rs +92 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.cs +174 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.java +161 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.kt +181 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.php +140 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.py +252 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.rb +188 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.swift +199 -0
- package/skills/security-constant-time-analysis/ct_analyzer/tests/test_samples/vulnerable.ts +154 -0
- package/skills/security-constant-time-analysis/pyproject.toml +52 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/README.md +90 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/SKILL.md +219 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/compiled.md +129 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/javascript.md +136 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/kotlin.md +252 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/php.md +172 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/python.md +179 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/ruby.md +198 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/swift.md +288 -0
- package/skills/security-constant-time-analysis/skills/constant-time-analysis/references/vm-compiled.md +354 -0
- package/skills/security-constant-time-analysis/uv.lock +8 -0
- package/skills/security-culture-index/.claude-plugin/plugin.json +8 -0
- package/skills/security-culture-index/README.md +79 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/SKILL.md +293 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/anti-patterns.md +255 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/conversation-starters.md +408 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/interview-trait-signals.md +253 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/motivators.md +158 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/patterns-archetypes.md +147 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/primary-traits.md +307 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/secondary-traits.md +228 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/references/team-composition.md +148 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/check_deps.py +108 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/__init__.py +20 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/constants.py +122 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/extract.py +187 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/models.py +16 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/culture_index/opencv_extractor.py +520 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/extract_pdf.py +237 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/scripts/pyproject.toml +18 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/burnout-report.md +113 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/comparison-report.md +103 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/hiring-profile.md +127 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/individual-report.md +85 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/predicted-profile.md +165 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/templates/team-report.md +109 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/analyze-team.md +188 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/coach-manager.md +267 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/compare-profiles.md +188 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/define-hiring-profile.md +220 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/detect-burnout.md +206 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/extract-from-pdf.md +121 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interpret-individual.md +183 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/interview-debrief.md +234 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/mediate-conflict.md +306 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/plan-onboarding.md +322 -0
- package/skills/security-culture-index/skills/interpreting-culture-index/workflows/predict-from-interview.md +250 -0
- package/skills/security-differential-review/.claude-plugin/plugin.json +10 -0
- package/skills/security-differential-review/README.md +109 -0
- package/skills/security-differential-review/commands/diff-review.md +21 -0
- package/skills/security-differential-review/skills/differential-review/SKILL.md +220 -0
- package/skills/security-differential-review/skills/differential-review/adversarial.md +203 -0
- package/skills/security-differential-review/skills/differential-review/methodology.md +234 -0
- package/skills/security-differential-review/skills/differential-review/patterns.md +300 -0
- package/skills/security-differential-review/skills/differential-review/reporting.md +369 -0
- package/skills/security-dwarf-expert/.claude-plugin/plugin.json +10 -0
- package/skills/security-dwarf-expert/README.md +38 -0
- package/skills/security-dwarf-expert/skills/dwarf-expert/SKILL.md +93 -0
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/coding.md +31 -0
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/dwarfdump.md +50 -0
- package/skills/security-dwarf-expert/skills/dwarf-expert/reference/readelf.md +8 -0
- package/skills/security-entry-point-analyzer/.claude-plugin/plugin.json +10 -0
- package/skills/security-entry-point-analyzer/README.md +74 -0
- package/skills/security-entry-point-analyzer/commands/entry-points.md +18 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/SKILL.md +251 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/cosmwasm.md +182 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-aptos.md +107 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/move-sui.md +87 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solana.md +155 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/solidity.md +135 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/ton.md +185 -0
- package/skills/security-entry-point-analyzer/skills/entry-point-analyzer/references/vyper.md +141 -0
- package/skills/security-firebase-apk-scanner/.claude-plugin/plugin.json +10 -0
- package/skills/security-firebase-apk-scanner/README.md +85 -0
- package/skills/security-firebase-apk-scanner/commands/scan-apk.md +18 -0
- package/skills/security-firebase-apk-scanner/scanner.sh +1408 -0
- package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/SKILL.md +197 -0
- package/skills/security-firebase-apk-scanner/skills/firebase-apk-scanner/references/vulnerabilities.md +803 -0
- package/skills/security-fix-review/.claude-plugin/plugin.json +13 -0
- package/skills/security-fix-review/README.md +118 -0
- package/skills/security-fix-review/commands/fix-review.md +24 -0
- package/skills/security-fix-review/skills/fix-review/SKILL.md +264 -0
- package/skills/security-fix-review/skills/fix-review/references/bug-detection.md +408 -0
- package/skills/security-fix-review/skills/fix-review/references/finding-matching.md +298 -0
- package/skills/security-fix-review/skills/fix-review/references/report-parsing.md +398 -0
- package/skills/security-insecure-defaults/.claude-plugin/plugin.json +10 -0
- package/skills/security-insecure-defaults/README.md +45 -0
- package/skills/security-insecure-defaults/skills/insecure-defaults/SKILL.md +117 -0
- package/skills/security-insecure-defaults/skills/insecure-defaults/references/examples.md +409 -0
- package/skills/security-modern-python/.claude-plugin/plugin.json +10 -0
- package/skills/security-modern-python/README.md +58 -0
- package/skills/security-modern-python/hooks/hooks.json +16 -0
- package/skills/security-modern-python/hooks/intercept-legacy-python.bats +388 -0
- package/skills/security-modern-python/hooks/intercept-legacy-python.sh +109 -0
- package/skills/security-modern-python/hooks/test_helper.bash +75 -0
- package/skills/security-modern-python/skills/modern-python/SKILL.md +333 -0
- package/skills/security-modern-python/skills/modern-python/references/dependabot.md +43 -0
- package/skills/security-modern-python/skills/modern-python/references/migration-checklist.md +141 -0
- package/skills/security-modern-python/skills/modern-python/references/pep723-scripts.md +259 -0
- package/skills/security-modern-python/skills/modern-python/references/prek.md +211 -0
- package/skills/security-modern-python/skills/modern-python/references/pyproject.md +254 -0
- package/skills/security-modern-python/skills/modern-python/references/ruff-config.md +240 -0
- package/skills/security-modern-python/skills/modern-python/references/security-setup.md +255 -0
- package/skills/security-modern-python/skills/modern-python/references/testing.md +284 -0
- package/skills/security-modern-python/skills/modern-python/references/uv-commands.md +200 -0
- package/skills/security-modern-python/skills/modern-python/templates/dependabot.yml +36 -0
- package/skills/security-modern-python/skills/modern-python/templates/pre-commit-config.yaml +66 -0
- package/skills/security-property-based-testing/.claude-plugin/plugin.json +9 -0
- package/skills/security-property-based-testing/README.md +47 -0
- package/skills/security-property-based-testing/skills/property-based-testing/README.md +88 -0
- package/skills/security-property-based-testing/skills/property-based-testing/SKILL.md +109 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/design.md +191 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/generating.md +200 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/libraries.md +130 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/refactoring.md +181 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/reviewing.md +209 -0
- package/skills/security-property-based-testing/skills/property-based-testing/references/strategies.md +124 -0
- package/skills/semgrep-rule-creator/.claude-plugin/plugin.json +8 -0
- package/skills/semgrep-rule-creator/README.md +43 -0
- package/skills/semgrep-rule-creator/commands/semgrep-rule.md +26 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/SKILL.md +168 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/quick-reference.md +203 -0
- package/skills/semgrep-rule-creator/skills/semgrep-rule-creator/references/workflow.md +240 -0
- package/skills/semgrep-rule-variant-creator/.claude-plugin/plugin.json +9 -0
- package/skills/semgrep-rule-variant-creator/README.md +86 -0
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/SKILL.md +205 -0
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/applicability-analysis.md +250 -0
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/language-syntax-guide.md +324 -0
- package/skills/semgrep-rule-variant-creator/skills/semgrep-rule-variant-creator/references/workflow.md +518 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sharp-edges/.claude-plugin/plugin.json +10 -0
- package/skills/sharp-edges/README.md +48 -0
- package/skills/sharp-edges/skills/sharp-edges/SKILL.md +292 -0
- package/skills/sharp-edges/skills/sharp-edges/references/auth-patterns.md +252 -0
- package/skills/sharp-edges/skills/sharp-edges/references/case-studies.md +274 -0
- package/skills/sharp-edges/skills/sharp-edges/references/config-patterns.md +333 -0
- package/skills/sharp-edges/skills/sharp-edges/references/crypto-apis.md +190 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-c.md +205 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-csharp.md +285 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-go.md +270 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-java.md +263 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-javascript.md +269 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-kotlin.md +265 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-php.md +245 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-python.md +274 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-ruby.md +273 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-rust.md +272 -0
- package/skills/sharp-edges/skills/sharp-edges/references/lang-swift.md +287 -0
- package/skills/sharp-edges/skills/sharp-edges/references/language-specific.md +588 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +370 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +111 -0
- package/skills/skill-creator/scripts/quick_validate.py +101 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +46 -0
- package/skills/spec-to-code-compliance/.claude-plugin/plugin.json +10 -0
- package/skills/spec-to-code-compliance/README.md +67 -0
- package/skills/spec-to-code-compliance/commands/spec-compliance.md +22 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/SKILL.md +349 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/COMPLETENESS_CHECKLIST.md +69 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/IR_EXAMPLES.md +417 -0
- package/skills/spec-to-code-compliance/skills/spec-to-code-compliance/resources/OUTPUT_REQUIREMENTS.md +105 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/static-analysis/.claude-plugin/plugin.json +8 -0
- package/skills/static-analysis/README.md +59 -0
- package/skills/static-analysis/skills/codeql/SKILL.md +315 -0
- package/skills/static-analysis/skills/sarif-parsing/SKILL.md +479 -0
- package/skills/static-analysis/skills/sarif-parsing/resources/jq-queries.md +162 -0
- package/skills/static-analysis/skills/sarif-parsing/resources/sarif_helpers.py +331 -0
- package/skills/static-analysis/skills/semgrep/SKILL.md +337 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/testing-handbook-skills/.claude-plugin/plugin.json +8 -0
- package/skills/testing-handbook-skills/README.md +241 -0
- package/skills/testing-handbook-skills/scripts/pyproject.toml +8 -0
- package/skills/testing-handbook-skills/scripts/validate-skills.py +657 -0
- package/skills/testing-handbook-skills/skills/address-sanitizer/SKILL.md +341 -0
- package/skills/testing-handbook-skills/skills/aflpp/SKILL.md +640 -0
- package/skills/testing-handbook-skills/skills/atheris/SKILL.md +515 -0
- package/skills/testing-handbook-skills/skills/cargo-fuzz/SKILL.md +454 -0
- package/skills/testing-handbook-skills/skills/codeql/SKILL.md +549 -0
- package/skills/testing-handbook-skills/skills/constant-time-testing/SKILL.md +507 -0
- package/skills/testing-handbook-skills/skills/coverage-analysis/SKILL.md +607 -0
- package/skills/testing-handbook-skills/skills/fuzzing-dictionary/SKILL.md +297 -0
- package/skills/testing-handbook-skills/skills/fuzzing-obstacles/SKILL.md +426 -0
- package/skills/testing-handbook-skills/skills/harness-writing/SKILL.md +614 -0
- package/skills/testing-handbook-skills/skills/libafl/SKILL.md +625 -0
- package/skills/testing-handbook-skills/skills/libfuzzer/SKILL.md +795 -0
- package/skills/testing-handbook-skills/skills/ossfuzz/SKILL.md +426 -0
- package/skills/testing-handbook-skills/skills/ruzzy/SKILL.md +443 -0
- package/skills/testing-handbook-skills/skills/semgrep/SKILL.md +601 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/SKILL.md +372 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/agent-prompt.md +280 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/discovery.md +452 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/domain-skill.md +504 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/fuzzer-skill.md +454 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/technique-skill.md +527 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/templates/tool-skill.md +366 -0
- package/skills/testing-handbook-skills/skills/testing-handbook-generator/testing.md +482 -0
- package/skills/testing-handbook-skills/skills/wycheproof/SKILL.md +533 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +135 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/variant-analysis/.claude-plugin/plugin.json +8 -0
- package/skills/variant-analysis/README.md +41 -0
- package/skills/variant-analysis/commands/variants.md +23 -0
- package/skills/variant-analysis/skills/variant-analysis/METHODOLOGY.md +327 -0
- package/skills/variant-analysis/skills/variant-analysis/SKILL.md +142 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/cpp.ql +119 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/go.ql +69 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/java.ql +71 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/javascript.ql +63 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/codeql/python.ql +80 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/cpp.yaml +98 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/go.yaml +63 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/java.yaml +61 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/javascript.yaml +60 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/semgrep/python.yaml +72 -0
- package/skills/variant-analysis/skills/variant-analysis/resources/variant-report-template.md +75 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +54 -0
- package/skills/yara-authoring/.claude-plugin/plugin.json +9 -0
- package/skills/yara-authoring/README.md +131 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/SKILL.md +645 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Mac_ProtonRAT_Jan25.yar +99 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_NPM_SupplyChain_Jan25.yar +170 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/MAL_Win_Remcos_Jan25.yar +103 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_CRX_SuspiciousPermissions.yar +134 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/examples/SUSP_JS_Obfuscation_Jan25.yar +185 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/crx-module.md +214 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/dex-module.md +383 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/performance.md +333 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/strings.md +433 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/style-guide.md +257 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/references/testing.md +399 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/atom_analyzer.py +526 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/pyproject.toml +25 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/scripts/yara_lint.py +631 -0
- package/skills/yara-authoring/skills/yara-rule-authoring/workflows/rule-development.md +493 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Common Vulnerability Patterns
|
|
2
|
+
|
|
3
|
+
Quick reference for detecting common security issues in code changes.
|
|
4
|
+
|
|
5
|
+
**Specialized Pattern Resources:**
|
|
6
|
+
For specific contexts, reference these additional pattern databases:
|
|
7
|
+
|
|
8
|
+
**Domain-Specific:**
|
|
9
|
+
- `domain-specific-audits/defi-bridges/resources/` - 127 bridge-specific findings
|
|
10
|
+
- `domain-specific-audits/tick-math/resources/` - 81 tick math findings
|
|
11
|
+
- `domain-specific-audits/merkle-trees/resources/` - 67 merkle tree findings
|
|
12
|
+
- [Check `domain-specific-audits/skills/` for additional domains]
|
|
13
|
+
|
|
14
|
+
**Solidity-Specific:**
|
|
15
|
+
- `not-so-smart-contracts` - Automated Solidity vulnerability detectors
|
|
16
|
+
- `token-integration-analyzer` - Token integration safety patterns
|
|
17
|
+
- `building-secure-contracts/development-guidelines` - Solidity best practices
|
|
18
|
+
|
|
19
|
+
These complement the generic patterns below.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Security Regressions
|
|
24
|
+
|
|
25
|
+
**Pattern:** Previously removed code is re-added
|
|
26
|
+
|
|
27
|
+
**Detection:**
|
|
28
|
+
```bash
|
|
29
|
+
# Code previously removed for security
|
|
30
|
+
git log -S "pattern" --all --grep="security\|fix\|CVE"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Red flags:**
|
|
34
|
+
- Commit message contains "security", "fix", "CVE", "vulnerability"
|
|
35
|
+
- Code removed <6 months ago
|
|
36
|
+
- No explanation in current PR for re-addition
|
|
37
|
+
|
|
38
|
+
**Example:**
|
|
39
|
+
```solidity
|
|
40
|
+
// Removed in commit abc123 "Fix reentrancy CVE-2024-1234"
|
|
41
|
+
// Re-added in current PR
|
|
42
|
+
function emergencyWithdraw() {
|
|
43
|
+
// REGRESSION: Reentrancy vulnerability re-introduced
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Double Decrease/Increase Bugs
|
|
50
|
+
|
|
51
|
+
**Pattern:** Same accounting operation twice for same event
|
|
52
|
+
|
|
53
|
+
**Detection:** Look for two state updates in related functions for same logical action
|
|
54
|
+
|
|
55
|
+
**Example:**
|
|
56
|
+
```solidity
|
|
57
|
+
// Request exit
|
|
58
|
+
function requestExit() {
|
|
59
|
+
balance[user] -= amount; // First decrease
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Process exit
|
|
63
|
+
function processExit() {
|
|
64
|
+
balance[user] -= amount; // Second decrease - BUG!
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Impact:** User balance decremented twice, protocol loses funds
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Missing Validation
|
|
73
|
+
|
|
74
|
+
**Pattern:** Removed `require`/`assert`/`check` without replacement
|
|
75
|
+
|
|
76
|
+
**Detection:**
|
|
77
|
+
```bash
|
|
78
|
+
git diff <range> | grep "^-.*require"
|
|
79
|
+
git diff <range> | grep "^-.*assert"
|
|
80
|
+
git diff <range> | grep "^-.*revert"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Questions to ask:**
|
|
84
|
+
- Was validation moved elsewhere?
|
|
85
|
+
- Is it redundant (defensive programming)?
|
|
86
|
+
- Does removal expose vulnerability?
|
|
87
|
+
|
|
88
|
+
**Example:**
|
|
89
|
+
```diff
|
|
90
|
+
function withdraw(uint256 amount) {
|
|
91
|
+
- require(amount > 0, "Zero amount");
|
|
92
|
+
- require(amount <= balance[msg.sender], "Insufficient");
|
|
93
|
+
balance[msg.sender] -= amount;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Risk:** Zero-amount withdrawals, underflow attacks now possible
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Underflow/Overflow
|
|
102
|
+
|
|
103
|
+
**Pattern:** Arithmetic without SafeMath or checks
|
|
104
|
+
|
|
105
|
+
**Detection:**
|
|
106
|
+
- Look for `+`, `-`, `*`, `/` in Solidity <0.8.0
|
|
107
|
+
- Check if SafeMath removed
|
|
108
|
+
- Look for unchecked blocks in Solidity >=0.8.0
|
|
109
|
+
|
|
110
|
+
**Example:**
|
|
111
|
+
```solidity
|
|
112
|
+
// Solidity 0.7 without SafeMath
|
|
113
|
+
balance[user] -= amount; // Can underflow if amount > balance
|
|
114
|
+
|
|
115
|
+
// Solidity 0.8+ with unchecked
|
|
116
|
+
unchecked {
|
|
117
|
+
balance[user] -= amount; // Deliberately bypasses overflow check
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Risk:** Integer wrap-around leads to incorrect balances
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Reentrancy
|
|
126
|
+
|
|
127
|
+
**Pattern:** External call before state update
|
|
128
|
+
|
|
129
|
+
**Detection:** Look for CEI (Checks-Effects-Interactions) pattern violations
|
|
130
|
+
|
|
131
|
+
**Example:**
|
|
132
|
+
```solidity
|
|
133
|
+
// VULNERABLE: External call before state update
|
|
134
|
+
function withdraw() {
|
|
135
|
+
uint amount = balances[msg.sender];
|
|
136
|
+
(bool success,) = msg.sender.call{value: amount}(""); // External call FIRST
|
|
137
|
+
require(success);
|
|
138
|
+
balances[msg.sender] = 0; // State update AFTER
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// SAFE: State update before external call
|
|
142
|
+
function withdraw() {
|
|
143
|
+
uint amount = balances[msg.sender];
|
|
144
|
+
balances[msg.sender] = 0; // State update FIRST
|
|
145
|
+
(bool success,) = msg.sender.call{value: amount}(""); // External call AFTER
|
|
146
|
+
require(success);
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Impact:** Attacker can recursively call withdraw() before balance is zeroed
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Access Control Bypass
|
|
155
|
+
|
|
156
|
+
**Pattern:** Removed or relaxed permission checks
|
|
157
|
+
|
|
158
|
+
**Detection:**
|
|
159
|
+
```bash
|
|
160
|
+
git diff <range> | grep "^-.*onlyOwner"
|
|
161
|
+
git diff <range> | grep "^-.*onlyAdmin"
|
|
162
|
+
git diff <range> | grep "^-.*require.*msg.sender"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Questions:**
|
|
166
|
+
- Who can now call this function?
|
|
167
|
+
- What's the new trust model?
|
|
168
|
+
- Was check moved to caller?
|
|
169
|
+
|
|
170
|
+
**Example:**
|
|
171
|
+
```diff
|
|
172
|
+
- function setConfig(uint value) external onlyOwner {
|
|
173
|
+
+ function setConfig(uint value) external {
|
|
174
|
+
config = value;
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Risk:** Any user can now modify critical configuration
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Race Conditions / Front-Running
|
|
183
|
+
|
|
184
|
+
**Pattern:** State-dependent logic without protection
|
|
185
|
+
|
|
186
|
+
**Detection:** Look for two-step processes without commit-reveal or timelocks
|
|
187
|
+
|
|
188
|
+
**Example:**
|
|
189
|
+
```solidity
|
|
190
|
+
// Step 1: Approve
|
|
191
|
+
function approve(address spender, uint amount) {
|
|
192
|
+
allowance[msg.sender][spender] = amount;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Step 2: User can front-run between approval changes
|
|
196
|
+
// Attacker sees tx changing approval from 100 to 50
|
|
197
|
+
// Front-runs to spend 100, then spends 50 after = 150 total
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Risk:** MEV/front-running exploits state transitions
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Timestamp Manipulation
|
|
205
|
+
|
|
206
|
+
**Pattern:** Security logic depending on `block.timestamp`
|
|
207
|
+
|
|
208
|
+
**Detection:**
|
|
209
|
+
```bash
|
|
210
|
+
grep -r "block.timestamp" --include="*.sol"
|
|
211
|
+
grep -r "now\b" --include="*.sol" # Solidity <0.7
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Example:**
|
|
215
|
+
```solidity
|
|
216
|
+
// VULNERABLE
|
|
217
|
+
require(block.timestamp > deadline, "Too early");
|
|
218
|
+
// Miner can manipulate timestamp by ~15 seconds
|
|
219
|
+
|
|
220
|
+
// SAFER
|
|
221
|
+
require(block.number > deadlineBlock, "Too early");
|
|
222
|
+
// Block numbers are harder to manipulate
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Risk:** Miners can manipulate timestamps within tolerance
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Unchecked Return Values
|
|
230
|
+
|
|
231
|
+
**Pattern:** External call without checking success
|
|
232
|
+
|
|
233
|
+
**Detection:**
|
|
234
|
+
```bash
|
|
235
|
+
git diff <range> | grep "\.call\|\.send\|\.transfer"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Example:**
|
|
239
|
+
```solidity
|
|
240
|
+
// VULNERABLE
|
|
241
|
+
token.transfer(user, amount); // Ignores return value
|
|
242
|
+
|
|
243
|
+
// SAFE
|
|
244
|
+
require(token.transfer(user, amount), "Transfer failed");
|
|
245
|
+
// Or use SafeERC20 wrapper
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Risk:** Silent failures lead to inconsistent state
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Denial of Service
|
|
253
|
+
|
|
254
|
+
**Pattern:** Unbounded loops, external call reverts blocking execution
|
|
255
|
+
|
|
256
|
+
**Detection:**
|
|
257
|
+
- Arrays that grow without limit
|
|
258
|
+
- Loops over user-controlled array
|
|
259
|
+
- Critical function depends on external call success
|
|
260
|
+
|
|
261
|
+
**Example:**
|
|
262
|
+
```solidity
|
|
263
|
+
// DOS: Attacker adds many users, making loop too expensive
|
|
264
|
+
function distributeRewards() {
|
|
265
|
+
for (uint i = 0; i < users.length; i++) {
|
|
266
|
+
users[i].transfer(reward); // Runs out of gas
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Risk:** Function becomes unusable due to gas limits
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Quick Detection Commands
|
|
276
|
+
|
|
277
|
+
**Find removed security checks:**
|
|
278
|
+
```bash
|
|
279
|
+
git diff <range> | grep "^-" | grep -E "require|assert|revert"
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Find new external calls:**
|
|
283
|
+
```bash
|
|
284
|
+
git diff <range> | grep "^+" | grep -E "\.call|\.delegatecall|\.staticcall"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Find changed access modifiers:**
|
|
288
|
+
```bash
|
|
289
|
+
git diff <range> | grep -E "onlyOwner|onlyAdmin|internal|private|public|external"
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Find arithmetic changes:**
|
|
293
|
+
```bash
|
|
294
|
+
git diff <range> | grep -E "\+|\-|\*|/"
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
**For detailed analysis workflow, see [methodology.md](methodology.md)**
|
|
300
|
+
**For building exploit scenarios, see [adversarial.md](adversarial.md)**
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
# Report Generation (Phase 6)
|
|
2
|
+
|
|
3
|
+
Comprehensive markdown report structure and formatting guidelines.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Report Structure
|
|
8
|
+
|
|
9
|
+
Generate markdown report with these mandatory sections:
|
|
10
|
+
|
|
11
|
+
### 1. Executive Summary
|
|
12
|
+
|
|
13
|
+
- Severity distribution table
|
|
14
|
+
- Risk assessment (CRITICAL/HIGH/MEDIUM/LOW)
|
|
15
|
+
- Final recommendation (APPROVE/REJECT/CONDITIONAL)
|
|
16
|
+
- Key metrics (test gaps, blast radius, red flags)
|
|
17
|
+
|
|
18
|
+
**Template:**
|
|
19
|
+
```markdown
|
|
20
|
+
# Executive Summary
|
|
21
|
+
|
|
22
|
+
| Severity | Count |
|
|
23
|
+
|----------|-------|
|
|
24
|
+
| 🔴 CRITICAL | X |
|
|
25
|
+
| 🟠 HIGH | Y |
|
|
26
|
+
| 🟡 MEDIUM | Z |
|
|
27
|
+
| 🟢 LOW | W |
|
|
28
|
+
|
|
29
|
+
**Overall Risk:** CRITICAL/HIGH/MEDIUM/LOW
|
|
30
|
+
**Recommendation:** APPROVE/REJECT/CONDITIONAL
|
|
31
|
+
|
|
32
|
+
**Key Metrics:**
|
|
33
|
+
- Files analyzed: X/Y (Z%)
|
|
34
|
+
- Test coverage gaps: N functions
|
|
35
|
+
- High blast radius changes: M functions
|
|
36
|
+
- Security regressions detected: P
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
### 2. What Changed
|
|
42
|
+
|
|
43
|
+
- Commit timeline with visual
|
|
44
|
+
- File summary table
|
|
45
|
+
- Lines changed stats
|
|
46
|
+
|
|
47
|
+
**Template:**
|
|
48
|
+
```markdown
|
|
49
|
+
## What Changed
|
|
50
|
+
|
|
51
|
+
**Commit Range:** `base..head`
|
|
52
|
+
**Commits:** X
|
|
53
|
+
**Timeline:** YYYY-MM-DD to YYYY-MM-DD
|
|
54
|
+
|
|
55
|
+
| File | +Lines | -Lines | Risk | Blast Radius |
|
|
56
|
+
|------|--------|--------|------|--------------|
|
|
57
|
+
| file1.sol | +50 | -20 | HIGH | CRITICAL |
|
|
58
|
+
| file2.sol | +10 | -5 | MEDIUM | LOW |
|
|
59
|
+
|
|
60
|
+
**Total:** +N, -M lines across K files
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### 3. Critical Findings
|
|
66
|
+
|
|
67
|
+
For each HIGH/CRITICAL issue:
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
### [SEVERITY] Title
|
|
71
|
+
|
|
72
|
+
**File**: path/to/file.ext:lineNumber
|
|
73
|
+
**Commit**: hash
|
|
74
|
+
**Blast Radius**: N callers (HIGH/MEDIUM/LOW)
|
|
75
|
+
**Test Coverage**: YES/NO/PARTIAL
|
|
76
|
+
|
|
77
|
+
**Description**: [clear explanation]
|
|
78
|
+
|
|
79
|
+
**Historical Context**:
|
|
80
|
+
- Git blame: Added in commit X (date)
|
|
81
|
+
- Message: "[original commit message]"
|
|
82
|
+
- [Why this code existed]
|
|
83
|
+
|
|
84
|
+
**Attack Scenario**:
|
|
85
|
+
[Concrete exploitation steps from adversarial.md]
|
|
86
|
+
|
|
87
|
+
**Proof of Concept**:
|
|
88
|
+
```code demonstrating issue```
|
|
89
|
+
|
|
90
|
+
**Recommendation**:
|
|
91
|
+
[Specific fix with code]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Example:**
|
|
95
|
+
```markdown
|
|
96
|
+
### 🔴 CRITICAL: Authorization Bypass in Withdraw
|
|
97
|
+
|
|
98
|
+
**File**: TokenVault.sol:156
|
|
99
|
+
**Commit**: abc123def
|
|
100
|
+
**Blast Radius**: 23 callers (HIGH)
|
|
101
|
+
**Test Coverage**: NO
|
|
102
|
+
|
|
103
|
+
**Description**:
|
|
104
|
+
Removed `require(msg.sender == owner)` check allows any user to withdraw funds.
|
|
105
|
+
|
|
106
|
+
**Historical Context**:
|
|
107
|
+
- Git blame: Added 2024-06-15 (commit def456)
|
|
108
|
+
- Message: "Add owner check per audit finding #45"
|
|
109
|
+
- Code existed to prevent unauthorized withdrawals
|
|
110
|
+
|
|
111
|
+
**Attack Scenario**:
|
|
112
|
+
1. Attacker calls `withdraw(1000 ether)`
|
|
113
|
+
2. No authorization check (removed)
|
|
114
|
+
3. 1000 ETH transferred to attacker
|
|
115
|
+
4. Protocol funds drained
|
|
116
|
+
|
|
117
|
+
**Proof of Concept**:
|
|
118
|
+
```solidity
|
|
119
|
+
// As any address
|
|
120
|
+
vault.withdraw(vault.balance());
|
|
121
|
+
// Success - funds stolen
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Recommendation**:
|
|
125
|
+
```solidity
|
|
126
|
+
function withdraw(uint256 amount) external {
|
|
127
|
+
+ require(msg.sender == owner, "Unauthorized");
|
|
128
|
+
// ... rest of function
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
### 4. Test Coverage Analysis
|
|
136
|
+
|
|
137
|
+
- Coverage statistics
|
|
138
|
+
- Untested changes list
|
|
139
|
+
- Risk assessment
|
|
140
|
+
|
|
141
|
+
**Template:**
|
|
142
|
+
```markdown
|
|
143
|
+
## Test Coverage Analysis
|
|
144
|
+
|
|
145
|
+
**Coverage:** X% of changed code
|
|
146
|
+
|
|
147
|
+
**Untested Changes:**
|
|
148
|
+
| Function | Risk | Impact |
|
|
149
|
+
|----------|------|--------|
|
|
150
|
+
| functionA() | HIGH | No validation tests |
|
|
151
|
+
| functionB() | MEDIUM | Logic untested |
|
|
152
|
+
|
|
153
|
+
**Risk Assessment:**
|
|
154
|
+
N HIGH-risk functions without tests → Recommend blocking merge
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### 5. Blast Radius Analysis
|
|
160
|
+
|
|
161
|
+
- High-impact functions table
|
|
162
|
+
- Dependency graph
|
|
163
|
+
- Impact quantification
|
|
164
|
+
|
|
165
|
+
**Template:**
|
|
166
|
+
```markdown
|
|
167
|
+
## Blast Radius Analysis
|
|
168
|
+
|
|
169
|
+
**High-Impact Changes:**
|
|
170
|
+
| Function | Callers | Risk | Priority |
|
|
171
|
+
|----------|---------|------|----------|
|
|
172
|
+
| transfer() | 89 | HIGH | P0 |
|
|
173
|
+
| validate() | 45 | MEDIUM | P1 |
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### 6. Historical Context
|
|
179
|
+
|
|
180
|
+
- Security-related removals
|
|
181
|
+
- Regression risks
|
|
182
|
+
- Commit message red flags
|
|
183
|
+
|
|
184
|
+
**Template:**
|
|
185
|
+
```markdown
|
|
186
|
+
## Historical Context
|
|
187
|
+
|
|
188
|
+
**Security-Related Removals:**
|
|
189
|
+
- Line 45: `require` removed (added 2024-03 for CVE-2024-1234)
|
|
190
|
+
- Line 78: Validation removed (added 2023-12 "security hardening")
|
|
191
|
+
|
|
192
|
+
**Regression Risks:**
|
|
193
|
+
- Code pattern removed in commit X, re-added in commit Y
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### 7. Recommendations
|
|
199
|
+
|
|
200
|
+
- Immediate actions (blocking)
|
|
201
|
+
- Before production (tracking)
|
|
202
|
+
- Technical debt (future)
|
|
203
|
+
|
|
204
|
+
**Template:**
|
|
205
|
+
```markdown
|
|
206
|
+
## Recommendations
|
|
207
|
+
|
|
208
|
+
### Immediate (Blocking)
|
|
209
|
+
- [ ] Fix CRITICAL issue in TokenVault.sol:156
|
|
210
|
+
- [ ] Add tests for withdraw() function
|
|
211
|
+
|
|
212
|
+
### Before Production
|
|
213
|
+
- [ ] Security audit of auth changes
|
|
214
|
+
- [ ] Load test blast radius functions
|
|
215
|
+
|
|
216
|
+
### Technical Debt
|
|
217
|
+
- [ ] Refactor validation pattern consistency
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
### 8. Analysis Methodology
|
|
223
|
+
|
|
224
|
+
- Strategy used (DEEP/FOCUSED/SURGICAL)
|
|
225
|
+
- Files analyzed
|
|
226
|
+
- Coverage estimate
|
|
227
|
+
- Techniques applied
|
|
228
|
+
- Limitations
|
|
229
|
+
- Confidence level
|
|
230
|
+
|
|
231
|
+
**Template:**
|
|
232
|
+
```markdown
|
|
233
|
+
## Analysis Methodology
|
|
234
|
+
|
|
235
|
+
**Strategy:** FOCUSED (80 files, medium codebase)
|
|
236
|
+
|
|
237
|
+
**Analysis Scope:**
|
|
238
|
+
- Files reviewed: 45/80 (56%)
|
|
239
|
+
- HIGH RISK: 100% coverage
|
|
240
|
+
- MEDIUM RISK: 60% coverage
|
|
241
|
+
- LOW RISK: Excluded
|
|
242
|
+
|
|
243
|
+
**Techniques:**
|
|
244
|
+
- Git blame on all removals
|
|
245
|
+
- Blast radius calculation
|
|
246
|
+
- Test coverage analysis
|
|
247
|
+
- Adversarial modeling for HIGH RISK
|
|
248
|
+
|
|
249
|
+
**Limitations:**
|
|
250
|
+
- Did not analyze external dependencies
|
|
251
|
+
- Limited to 1-hop caller analysis
|
|
252
|
+
|
|
253
|
+
**Confidence:** HIGH for analyzed scope, MEDIUM overall
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### 9. Appendices
|
|
259
|
+
|
|
260
|
+
- Commit reference table
|
|
261
|
+
- Key definitions
|
|
262
|
+
- Contact info
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## Formatting Guidelines
|
|
267
|
+
|
|
268
|
+
**Tables:** Use markdown tables for structured data
|
|
269
|
+
|
|
270
|
+
**Code blocks:** Always include syntax highlighting
|
|
271
|
+
```solidity
|
|
272
|
+
// Solidity code
|
|
273
|
+
```
|
|
274
|
+
```rust
|
|
275
|
+
// Rust code
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
**Status indicators:**
|
|
279
|
+
- ✅ Complete
|
|
280
|
+
- ⚠️ Warning
|
|
281
|
+
- ❌ Failed/Blocked
|
|
282
|
+
|
|
283
|
+
**Severity:**
|
|
284
|
+
- 🔴 CRITICAL
|
|
285
|
+
- 🟠 HIGH
|
|
286
|
+
- 🟡 MEDIUM
|
|
287
|
+
- 🟢 LOW
|
|
288
|
+
|
|
289
|
+
**Before/After comparisons:**
|
|
290
|
+
```markdown
|
|
291
|
+
**BEFORE:**
|
|
292
|
+
```code
|
|
293
|
+
old code
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**AFTER:**
|
|
297
|
+
```code
|
|
298
|
+
new code
|
|
299
|
+
```
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Line number references:** Always include
|
|
303
|
+
- Format: `file.sol:L123`
|
|
304
|
+
- Link to commit: `file.sol:L123 (commit abc123)`
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## File Naming and Location
|
|
309
|
+
|
|
310
|
+
**Priority order for output:**
|
|
311
|
+
1. Current working directory (if project repo)
|
|
312
|
+
2. User's Desktop
|
|
313
|
+
3. `~/.claude/skills/differential-review/output/`
|
|
314
|
+
|
|
315
|
+
**Filename format:**
|
|
316
|
+
```
|
|
317
|
+
<PROJECT>_DIFFERENTIAL_REVIEW_<DATE>.md
|
|
318
|
+
|
|
319
|
+
Example: VeChain_Stargate_DIFFERENTIAL_REVIEW_2025-12-26.md
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
## User Notification Template
|
|
325
|
+
|
|
326
|
+
After generating report:
|
|
327
|
+
|
|
328
|
+
```markdown
|
|
329
|
+
Report generated successfully!
|
|
330
|
+
|
|
331
|
+
📄 File: [filename]
|
|
332
|
+
📁 Location: [path]
|
|
333
|
+
📏 Size: XX KB
|
|
334
|
+
⏱️ Review Time: ~X hours
|
|
335
|
+
|
|
336
|
+
Summary:
|
|
337
|
+
- X findings (Y critical, Z high)
|
|
338
|
+
- Final recommendation: APPROVE/REJECT/CONDITIONAL
|
|
339
|
+
- Confidence: HIGH/MEDIUM/LOW
|
|
340
|
+
|
|
341
|
+
Next steps:
|
|
342
|
+
- Review findings in detail
|
|
343
|
+
- Address CRITICAL/HIGH issues before merge
|
|
344
|
+
- Consider chaining with issue-writer for stakeholder report
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Integration with issue-writer
|
|
350
|
+
|
|
351
|
+
After generating differential review, transform into audit report:
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
issue-writer --input DIFFERENTIAL_REVIEW_REPORT.md --format audit-report
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
This creates polished documentation for non-technical stakeholders.
|
|
358
|
+
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
## Error Handling
|
|
362
|
+
|
|
363
|
+
If file write fails:
|
|
364
|
+
1. Try Desktop location
|
|
365
|
+
2. Try temp directory
|
|
366
|
+
3. As last resort, output full report to chat
|
|
367
|
+
4. Notify user to save manually
|
|
368
|
+
|
|
369
|
+
**Always prioritize persistent artifact generation over ephemeral chat output.**
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# DWARF Expert
|
|
2
|
+
|
|
3
|
+
Interact with and analyze DWARF debug files, understand the DWARF debug format/standard, and write code that parses DWARF data.
|
|
4
|
+
|
|
5
|
+
**Author:** Evan Hellman
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Use this skill when you need to:
|
|
10
|
+
- Understand or parse DWARF debug information from compiled binaries
|
|
11
|
+
- Answer questions about the DWARF standard (v3, v4, v5)
|
|
12
|
+
- Write or review code that interacts with DWARF data
|
|
13
|
+
- Use `dwarfdump` or `readelf` to extract debug information
|
|
14
|
+
- Verify DWARF data integrity using `llvm-dwarfdump --verify`
|
|
15
|
+
- Work with DWARF parsing libraries (libdwarf, pyelftools, gimli, etc.)
|
|
16
|
+
|
|
17
|
+
## What It Does
|
|
18
|
+
|
|
19
|
+
This skill provides expertise on:
|
|
20
|
+
- DWARF standards (v3-v5) via web search and authoritative source references
|
|
21
|
+
- Parsing DWARF files using `dwarfdump` and `readelf` commands
|
|
22
|
+
- Verification workflows using `llvm-dwarfdump --verify` and `--statistics`
|
|
23
|
+
- Library recommendations for DWARF parsing in C/C++, Python, Rust, Go, and .NET
|
|
24
|
+
- DIE (Debug Information Entry) analysis and searching
|
|
25
|
+
- Understanding DWARF sections, attributes, and forms
|
|
26
|
+
|
|
27
|
+
## Authoritative Sources
|
|
28
|
+
|
|
29
|
+
This skill uses the following authoritative sources for DWARF standard information:
|
|
30
|
+
- **dwarfstd.org**: Official DWARF specification (via web search)
|
|
31
|
+
- **LLVM source**: `llvm/lib/DebugInfo/DWARF/` for reference implementations
|
|
32
|
+
- **libdwarf source**: github.com/davea42/libdwarf-code for C implementations
|
|
33
|
+
|
|
34
|
+
## Installation
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
/plugin install trailofbits/skills/plugins/dwarf-expert
|
|
38
|
+
```
|