@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,248 @@
|
|
|
1
|
+
## Example Output
|
|
2
|
+
|
|
3
|
+
When the assessment is complete, you'll receive a comprehensive maturity report:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
=== CODE MATURITY ASSESSMENT REPORT ===
|
|
7
|
+
|
|
8
|
+
Project: DeFi DEX Protocol
|
|
9
|
+
Platform: Solidity (Ethereum)
|
|
10
|
+
Assessment Date: March 15, 2024
|
|
11
|
+
Assessor: Trail of Bits Code Maturity Framework v0.1.0
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## EXECUTIVE SUMMARY
|
|
16
|
+
|
|
17
|
+
Overall Maturity Score: 2.7 / 4.0 (MODERATE-SATISFACTORY)
|
|
18
|
+
|
|
19
|
+
Top 3 Strengths:
|
|
20
|
+
✓ Comprehensive testing with 96% coverage and fuzzing
|
|
21
|
+
✓ Well-documented access controls with multi-sig governance
|
|
22
|
+
✓ Clear architectural documentation with diagrams
|
|
23
|
+
|
|
24
|
+
Top 3 Critical Gaps:
|
|
25
|
+
⚠ Arithmetic operations lack formal specification
|
|
26
|
+
⚠ No event monitoring infrastructure deployed
|
|
27
|
+
⚠ Centralized upgrade mechanism without timelock
|
|
28
|
+
|
|
29
|
+
Priority Recommendation:
|
|
30
|
+
Implement arithmetic specification document and add 48-hour timelock
|
|
31
|
+
to all governance operations before mainnet launch.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## MATURITY SCORECARD
|
|
36
|
+
|
|
37
|
+
| Category | Rating | Score | Notes |
|
|
38
|
+
|-----------------------------|---------------|-------|---------------------------------|
|
|
39
|
+
| 1. Arithmetic | WEAK | 1/4 | Missing specification |
|
|
40
|
+
| 2. Auditing | MODERATE | 2/4 | Events present, no monitoring |
|
|
41
|
+
| 3. Authentication/Access | SATISFACTORY | 3/4 | Multi-sig, well-documented |
|
|
42
|
+
| 4. Complexity Management | MODERATE | 2/4 | Some functions too complex |
|
|
43
|
+
| 5. Decentralization | WEAK | 1/4 | Centralized upgrades |
|
|
44
|
+
| 6. Documentation | SATISFACTORY | 3/4 | Comprehensive, minor gaps |
|
|
45
|
+
| 7. Transaction Ordering | MODERATE | 2/4 | Some MEV risks documented |
|
|
46
|
+
| 8. Low-Level Manipulation | SATISFACTORY | 3/4 | Minimal assembly, justified |
|
|
47
|
+
| 9. Testing & Verification | STRONG | 4/4 | Excellent coverage & techniques |
|
|
48
|
+
|
|
49
|
+
**OVERALL: 2.7 / 4.0** (Moderate-Satisfactory)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## DETAILED ANALYSIS
|
|
54
|
+
|
|
55
|
+
### 1. ARITHMETIC - WEAK (1/4)
|
|
56
|
+
|
|
57
|
+
**Evidence:**
|
|
58
|
+
✗ No arithmetic specification document found
|
|
59
|
+
✗ AMM pricing formula not documented (src/SwapRouter.sol:89-156)
|
|
60
|
+
✗ Slippage calculation lacks precision analysis
|
|
61
|
+
✓ Using Solidity 0.8+ for overflow protection
|
|
62
|
+
✓ Critical functions tested for edge cases
|
|
63
|
+
|
|
64
|
+
**Critical Gap:**
|
|
65
|
+
File: src/SwapRouter.sol:127
|
|
66
|
+
```solidity
|
|
67
|
+
uint256 amountOut = (reserveOut * amountIn * 997) / (reserveIn * 1000 + amountIn * 997);
|
|
68
|
+
```
|
|
69
|
+
No specification for:
|
|
70
|
+
- Expected liquidity depth ranges
|
|
71
|
+
- Precision loss analysis
|
|
72
|
+
- Rounding direction justification
|
|
73
|
+
|
|
74
|
+
**To Reach Moderate (2/4):**
|
|
75
|
+
- Create arithmetic specification document
|
|
76
|
+
- Document all formulas and their precision requirements
|
|
77
|
+
- Add explicit rounding direction comments
|
|
78
|
+
- Test arithmetic edge cases with fuzzing
|
|
79
|
+
|
|
80
|
+
**Files Referenced:**
|
|
81
|
+
- src/SwapRouter.sol:89-156
|
|
82
|
+
- src/LiquidityPool.sol:234-267
|
|
83
|
+
- src/PriceCalculator.sol:178-195
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 2. AUDITING - MODERATE (2/4)
|
|
88
|
+
|
|
89
|
+
**Evidence:**
|
|
90
|
+
✓ Events emitted for all critical operations
|
|
91
|
+
✓ Consistent event naming (Action + noun)
|
|
92
|
+
✓ Indexed parameters for filtering
|
|
93
|
+
✗ No off-chain monitoring infrastructure
|
|
94
|
+
✗ No monitoring plan documented
|
|
95
|
+
✗ No incident response plan
|
|
96
|
+
|
|
97
|
+
**Events Found:** 23 events across 8 contracts
|
|
98
|
+
- Swap, AddLiquidity, RemoveLiquidity ✓
|
|
99
|
+
- PairCreated, LiquidityProvided ✓
|
|
100
|
+
- OwnershipTransferred, GovernanceProposed ✓
|
|
101
|
+
|
|
102
|
+
**Critical Gap:**
|
|
103
|
+
No monitoring alerts for:
|
|
104
|
+
- Large swaps causing significant price impact
|
|
105
|
+
- Oracle price deviations
|
|
106
|
+
- Unusual liquidity withdrawal patterns
|
|
107
|
+
|
|
108
|
+
**To Reach Satisfactory (3/4):**
|
|
109
|
+
- Deploy off-chain monitoring (Tenderly/Defender)
|
|
110
|
+
- Create monitoring playbook document
|
|
111
|
+
- Set up alerts for critical events
|
|
112
|
+
- Test incident response plan quarterly
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### 3. AUTHENTICATION/ACCESS CONTROLS - SATISFACTORY (3/4)
|
|
117
|
+
|
|
118
|
+
**Evidence:**
|
|
119
|
+
✓ All privileged functions have access controls
|
|
120
|
+
✓ Multi-sig (3/5) controls governance
|
|
121
|
+
✓ Role separation (Admin, Operator, Pauser)
|
|
122
|
+
✓ Roles documented in ROLES.md
|
|
123
|
+
✓ Two-step ownership transfer
|
|
124
|
+
✓ All access patterns tested
|
|
125
|
+
✓ Emergency pause by separate role
|
|
126
|
+
|
|
127
|
+
**Access Control Implementation:**
|
|
128
|
+
- OpenZeppelin AccessControl used consistently
|
|
129
|
+
- 4 roles defined with non-overlapping privileges
|
|
130
|
+
- Emergency functions require multi-sig
|
|
131
|
+
|
|
132
|
+
**Minor Gap:**
|
|
133
|
+
Multi-sig is EOA-based (should upgrade to Governor contract)
|
|
134
|
+
|
|
135
|
+
**To Reach Strong (4/4):**
|
|
136
|
+
- Replace multi-sig EOAs with on-chain Governor
|
|
137
|
+
- Add timelock to all parameter changes
|
|
138
|
+
- Document key compromise scenarios
|
|
139
|
+
- Test governor upgrade path
|
|
140
|
+
|
|
141
|
+
**Files Referenced:**
|
|
142
|
+
- All contracts use consistent access patterns
|
|
143
|
+
- ROLES.md comprehensive
|
|
144
|
+
- test/access/* covers all scenarios
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### 9. TESTING & VERIFICATION - STRONG (4/4)
|
|
149
|
+
|
|
150
|
+
**Evidence:**
|
|
151
|
+
✓ 96% line coverage, 94% branch coverage
|
|
152
|
+
✓ 287 unit tests, all passing
|
|
153
|
+
✓ Echidna fuzzing for 12 invariants
|
|
154
|
+
✓ Integration tests for all workflows
|
|
155
|
+
✓ Mutation testing implemented
|
|
156
|
+
✓ Tests run in CI/CD
|
|
157
|
+
✓ Fork tests against mainnet state
|
|
158
|
+
|
|
159
|
+
**Testing Breakdown:**
|
|
160
|
+
- Unit: 287 tests (forge test)
|
|
161
|
+
- Integration: 45 scenarios (end-to-end flows)
|
|
162
|
+
- Fuzzing: 12 invariants (Echidna, 10k runs each)
|
|
163
|
+
- Formal: 3 key properties (Certora)
|
|
164
|
+
- Fork: Tested against live Uniswap/SushiSwap
|
|
165
|
+
|
|
166
|
+
**Uncovered Code:**
|
|
167
|
+
- Emergency migration (tested manually)
|
|
168
|
+
- Governance upgrade path (one-time)
|
|
169
|
+
|
|
170
|
+
**Why Strong:**
|
|
171
|
+
Exceeds all satisfactory criteria with formal verification and
|
|
172
|
+
extensive fuzzing. Test quality is exceptional.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## IMPROVEMENT ROADMAP
|
|
177
|
+
|
|
178
|
+
### CRITICAL (Fix Before Mainnet - Week 1-2)
|
|
179
|
+
|
|
180
|
+
**1. Create Arithmetic Specification [HIGH IMPACT]**
|
|
181
|
+
- Effort: 3-5 days
|
|
182
|
+
- Document all formulas with ground-truth models
|
|
183
|
+
- Analyze precision loss for each operation
|
|
184
|
+
- Justify rounding directions
|
|
185
|
+
- Impact: Moves Arithmetic from WEAK → MODERATE
|
|
186
|
+
|
|
187
|
+
**2. Add Governance Timelock [HIGH IMPACT]**
|
|
188
|
+
- Effort: 2-3 days
|
|
189
|
+
- Deploy TimelockController (48-hour delay)
|
|
190
|
+
- Update all governance functions
|
|
191
|
+
- Document emergency override procedure
|
|
192
|
+
- Impact: Moves Decentralization from WEAK → MODERATE
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### HIGH PRIORITY (Fix Before Launch - Week 3-4)
|
|
197
|
+
|
|
198
|
+
**3. Deploy Monitoring Infrastructure [MEDIUM IMPACT]**
|
|
199
|
+
- Effort: 3-4 days
|
|
200
|
+
- Set up Tenderly/OpenZeppelin Defender
|
|
201
|
+
- Create alert rules for critical events
|
|
202
|
+
- Document monitoring playbook
|
|
203
|
+
- Impact: Moves Auditing from MODERATE → SATISFACTORY
|
|
204
|
+
|
|
205
|
+
**4. Simplify Complex Functions [MEDIUM IMPACT]**
|
|
206
|
+
- Effort: 5-7 days
|
|
207
|
+
- Split SwapRouter.getAmountOut() (cyclomatic complexity: 15)
|
|
208
|
+
- Extract PriceCalculator._validateSlippage() logic
|
|
209
|
+
- Impact: Moves Complexity from MODERATE → SATISFACTORY
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
### MEDIUM PRIORITY (Improve for V2 - Month 2-3)
|
|
214
|
+
|
|
215
|
+
**5. Document MEV Risks**
|
|
216
|
+
- Effort: 2-3 days
|
|
217
|
+
- Create MEV analysis document
|
|
218
|
+
- Add slippage protection where missing
|
|
219
|
+
- Impact: Moves Transaction Ordering from MODERATE → SATISFACTORY
|
|
220
|
+
|
|
221
|
+
**6. Upgrade to On-Chain Governance**
|
|
222
|
+
- Effort: 1-2 weeks
|
|
223
|
+
- Replace multi-sig with Governor contract
|
|
224
|
+
- Add voting period and quorum
|
|
225
|
+
- Impact: Moves Authentication from SATISFACTORY → STRONG
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## CONCLUSION
|
|
230
|
+
|
|
231
|
+
The codebase demonstrates **MODERATE-SATISFACTORY maturity** (2.7/4.0),
|
|
232
|
+
with excellent testing practices and good documentation. Primary concerns
|
|
233
|
+
are arithmetic specification gaps and centralized upgrade control.
|
|
234
|
+
|
|
235
|
+
**Recommended Path to Mainnet:**
|
|
236
|
+
1. Complete CRITICAL items (arithmetic spec, timelock)
|
|
237
|
+
2. Address HIGH priority items (monitoring, complexity)
|
|
238
|
+
3. Conduct external audit
|
|
239
|
+
4. Launch with documented limitations
|
|
240
|
+
5. Implement MEDIUM priority items in V2
|
|
241
|
+
|
|
242
|
+
**Timeline:** 3-4 weeks to address critical/high items before audit.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
Assessment completed using Trail of Bits Building Secure Contracts
|
|
247
|
+
Code Maturity Evaluation Framework v0.1.0
|
|
248
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
## Report Format
|
|
3
|
+
|
|
4
|
+
### Executive Summary
|
|
5
|
+
- Project name and platform
|
|
6
|
+
- Overall maturity (average rating)
|
|
7
|
+
- Top 3 strengths
|
|
8
|
+
- Top 3 critical gaps
|
|
9
|
+
- Priority recommendations
|
|
10
|
+
|
|
11
|
+
### Maturity Scorecard
|
|
12
|
+
| Category | Rating | Notes |
|
|
13
|
+
|----------|--------|-------|
|
|
14
|
+
| Arithmetic | [Rating] | [Key findings] |
|
|
15
|
+
| Auditing | [Rating] | [Key findings] |
|
|
16
|
+
| ... | ... | ... |
|
|
17
|
+
|
|
18
|
+
**Overall**: [X.X / 4.0]
|
|
19
|
+
|
|
20
|
+
### Detailed Analysis
|
|
21
|
+
For each category:
|
|
22
|
+
- Rating with justification
|
|
23
|
+
- Evidence from codebase (file:line references)
|
|
24
|
+
- Gaps identified
|
|
25
|
+
- Actions to reach next level
|
|
26
|
+
|
|
27
|
+
### Improvement Roadmap
|
|
28
|
+
Priority-ordered recommendations:
|
|
29
|
+
- **CRITICAL** (immediate)
|
|
30
|
+
- **HIGH** (1-2 months)
|
|
31
|
+
- **MEDIUM** (2-4 months)
|
|
32
|
+
|
|
33
|
+
Each with effort estimate and impact
|
package/skills/security-building-secure-contracts/skills/cosmos-vulnerability-scanner/SKILL.md
ADDED
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cosmos-vulnerability-scanner
|
|
3
|
+
description: Scans Cosmos SDK blockchains for 9 consensus-critical vulnerabilities including non-determinism, incorrect signers, ABCI panics, and rounding errors. Use when auditing Cosmos chains or CosmWasm contracts.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cosmos Vulnerability Scanner
|
|
7
|
+
|
|
8
|
+
## 1. Purpose
|
|
9
|
+
|
|
10
|
+
Systematically scan Cosmos SDK blockchain modules and CosmWasm smart contracts for platform-specific security vulnerabilities that can cause chain halts, consensus failures, or fund loss. This skill encodes 9 critical vulnerability patterns unique to Cosmos-based chains.
|
|
11
|
+
|
|
12
|
+
## 2. When to Use This Skill
|
|
13
|
+
|
|
14
|
+
- Auditing Cosmos SDK modules (custom x/ modules)
|
|
15
|
+
- Reviewing CosmWasm smart contracts (Rust)
|
|
16
|
+
- Pre-launch security assessment of Cosmos chains
|
|
17
|
+
- Investigating chain halt incidents
|
|
18
|
+
- Validating consensus-critical code changes
|
|
19
|
+
- Reviewing ABCI method implementations
|
|
20
|
+
|
|
21
|
+
## 3. Platform Detection
|
|
22
|
+
|
|
23
|
+
### File Extensions & Indicators
|
|
24
|
+
- **Go files**: `.go`, `.proto`
|
|
25
|
+
- **CosmWasm**: `.rs` (Rust with cosmwasm imports)
|
|
26
|
+
|
|
27
|
+
### Language/Framework Markers
|
|
28
|
+
```go
|
|
29
|
+
// Cosmos SDK indicators
|
|
30
|
+
import (
|
|
31
|
+
"github.com/cosmos/cosmos-sdk/types"
|
|
32
|
+
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
33
|
+
"github.com/cosmos/cosmos-sdk/x/..."
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
// Common patterns
|
|
37
|
+
keeper.Keeper
|
|
38
|
+
sdk.Msg, GetSigners()
|
|
39
|
+
BeginBlocker, EndBlocker
|
|
40
|
+
CheckTx, DeliverTx
|
|
41
|
+
protobuf service definitions
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```rust
|
|
45
|
+
// CosmWasm indicators
|
|
46
|
+
use cosmwasm_std::*;
|
|
47
|
+
#[entry_point]
|
|
48
|
+
pub fn execute(deps: DepsMut, env: Env, info: MessageInfo, msg: ExecuteMsg)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Project Structure
|
|
52
|
+
- `x/modulename/` - Custom modules
|
|
53
|
+
- `keeper/keeper.go` - State management
|
|
54
|
+
- `types/msgs.go` - Message definitions
|
|
55
|
+
- `abci.go` - BeginBlocker/EndBlocker
|
|
56
|
+
- `handler.go` - Message handlers (legacy)
|
|
57
|
+
|
|
58
|
+
### Tool Support
|
|
59
|
+
- **CodeQL**: Custom rules for non-determinism and panics
|
|
60
|
+
- **go vet**, **golangci-lint**: Basic Go static analysis
|
|
61
|
+
- **Manual review**: Critical for consensus issues
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## 4. How This Skill Works
|
|
66
|
+
|
|
67
|
+
When invoked, I will:
|
|
68
|
+
|
|
69
|
+
1. **Search your codebase** for Cosmos SDK modules
|
|
70
|
+
2. **Analyze each module** for the 9 vulnerability patterns
|
|
71
|
+
3. **Report findings** with file references and severity
|
|
72
|
+
4. **Provide fixes** for each identified issue
|
|
73
|
+
5. **Check message handlers** for validation issues
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 5. Example Output
|
|
78
|
+
|
|
79
|
+
When vulnerabilities are found, you'll get a report like this:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
=== COSMOS SDK VULNERABILITY SCAN RESULTS ===
|
|
83
|
+
|
|
84
|
+
Project: my-cosmos-chain
|
|
85
|
+
Files Scanned: 6 (.go)
|
|
86
|
+
Vulnerabilities Found: 2
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
[CRITICAL] Incorrect GetSigners()
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 5. Vulnerability Patterns (9 Patterns)
|
|
95
|
+
|
|
96
|
+
I check for 9 critical vulnerability patterns unique to CosmWasm. For detailed detection patterns, code examples, mitigations, and testing strategies, see [VULNERABILITY_PATTERNS.md](resources/VULNERABILITY_PATTERNS.md).
|
|
97
|
+
|
|
98
|
+
### Pattern Summary:
|
|
99
|
+
|
|
100
|
+
1. **Missing Denom Validation** ⚠️ CRITICAL - Accepting arbitrary token denoms
|
|
101
|
+
2. **Insufficient Authorization** ⚠️ CRITICAL - Missing sender/admin validation
|
|
102
|
+
3. **Missing Balance Check** ⚠️ HIGH - Not verifying sufficient balances
|
|
103
|
+
4. **Improper Reply Handling** ⚠️ HIGH - Unsafe submessage reply processing
|
|
104
|
+
5. **Missing Reply ID Check** ⚠️ MEDIUM - Not validating reply IDs
|
|
105
|
+
6. **Improper IBC Packet Validation** ⚠️ CRITICAL - Unvalidated IBC packets
|
|
106
|
+
7. **Unvalidated Execute Message** ⚠️ HIGH - Missing message validation
|
|
107
|
+
8. **Integer Overflow** ⚠️ HIGH - Unchecked arithmetic operations
|
|
108
|
+
9. **Reentrancy via Submessages** ⚠️ MEDIUM - State changes before submessages
|
|
109
|
+
|
|
110
|
+
For complete vulnerability patterns with code examples, see [VULNERABILITY_PATTERNS.md](resources/VULNERABILITY_PATTERNS.md).
|
|
111
|
+
## 5. Scanning Workflow
|
|
112
|
+
|
|
113
|
+
### Step 1: Platform Identification
|
|
114
|
+
1. Identify Cosmos SDK version (`go.mod`)
|
|
115
|
+
2. Locate custom modules (`x/*/`)
|
|
116
|
+
3. Find ABCI methods (`abci.go`, BeginBlocker, EndBlocker)
|
|
117
|
+
4. Identify message types (`types/msgs.go`, `.proto`)
|
|
118
|
+
|
|
119
|
+
### Step 2: Critical Path Analysis
|
|
120
|
+
Focus on consensus-critical code:
|
|
121
|
+
- BeginBlocker / EndBlocker implementations
|
|
122
|
+
- Message handlers (execute, DeliverTx)
|
|
123
|
+
- Keeper methods that modify state
|
|
124
|
+
- CheckTx priority logic
|
|
125
|
+
|
|
126
|
+
### Step 3: Non-Determinism Sweep
|
|
127
|
+
**This is the highest priority check for Cosmos chains.**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Search for non-deterministic patterns
|
|
131
|
+
grep -r "range.*map\[" x/
|
|
132
|
+
grep -r "\bint\b\|\buint\b" x/ | grep -v "int32\|int64\|uint32\|uint64"
|
|
133
|
+
grep -r "float32\|float64" x/
|
|
134
|
+
grep -r "go func\|go routine" x/
|
|
135
|
+
grep -r "select {" x/
|
|
136
|
+
grep -r "time.Now()" x/
|
|
137
|
+
grep -r "rand\." x/
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
For each finding:
|
|
141
|
+
1. Verify it's in consensus-critical path
|
|
142
|
+
2. Confirm it causes non-determinism
|
|
143
|
+
3. Assess severity (chain halt vs data inconsistency)
|
|
144
|
+
|
|
145
|
+
### Step 4: ABCI Method Analysis
|
|
146
|
+
Review BeginBlocker and EndBlocker:
|
|
147
|
+
- [ ] Computational complexity bounded?
|
|
148
|
+
- [ ] No unbounded iterations?
|
|
149
|
+
- [ ] No nested loops over large collections?
|
|
150
|
+
- [ ] Panic-prone operations validated?
|
|
151
|
+
- [ ] Benchmarked with maximum state?
|
|
152
|
+
|
|
153
|
+
### Step 5: Message Validation
|
|
154
|
+
For each message type:
|
|
155
|
+
- [ ] GetSigners() address matches handler usage?
|
|
156
|
+
- [ ] All error returns checked?
|
|
157
|
+
- [ ] Priority set in CheckTx if critical?
|
|
158
|
+
- [ ] Handler registered (or using v0.47+ auto-registration)?
|
|
159
|
+
|
|
160
|
+
### Step 6: Arithmetic & Bookkeeping
|
|
161
|
+
- [ ] sdk.Dec operations use multiply-before-divide?
|
|
162
|
+
- [ ] Rounding favors protocol over users?
|
|
163
|
+
- [ ] Custom bookkeeping synchronized with x/bank?
|
|
164
|
+
- [ ] Invariant checks in place?
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 6. Reporting Format
|
|
169
|
+
|
|
170
|
+
### Finding Template
|
|
171
|
+
```markdown
|
|
172
|
+
## [CRITICAL] Non-Deterministic Map Iteration in EndBlocker
|
|
173
|
+
|
|
174
|
+
**Location**: `x/dex/abci.go:45-52`
|
|
175
|
+
|
|
176
|
+
**Description**:
|
|
177
|
+
The EndBlocker iterates over an unordered map to distribute rewards, causing different validators to process users in different orders and produce different state roots. This will halt the chain when validators fail to reach consensus.
|
|
178
|
+
|
|
179
|
+
**Vulnerable Code**:
|
|
180
|
+
```go
|
|
181
|
+
// abci.go, line 45
|
|
182
|
+
func EndBlocker(ctx sdk.Context, k keeper.Keeper) {
|
|
183
|
+
rewards := k.GetPendingRewards(ctx) // Returns map[string]sdk.Coins
|
|
184
|
+
for user, amount := range rewards { // NON-DETERMINISTIC ORDER
|
|
185
|
+
k.bankKeeper.SendCoins(ctx, moduleAcc, user, amount)
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Attack Scenario**:
|
|
191
|
+
1. Multiple users have pending rewards
|
|
192
|
+
2. Different validators iterate in different orders due to map randomization
|
|
193
|
+
3. If any reward distribution fails mid-iteration, state diverges
|
|
194
|
+
4. Validators produce different app hashes
|
|
195
|
+
5. Chain halts - cannot reach consensus
|
|
196
|
+
|
|
197
|
+
**Recommendation**:
|
|
198
|
+
Sort map keys before iteration:
|
|
199
|
+
```go
|
|
200
|
+
func EndBlocker(ctx sdk.Context, k keeper.Keeper) {
|
|
201
|
+
rewards := k.GetPendingRewards(ctx)
|
|
202
|
+
|
|
203
|
+
// Collect and sort keys for deterministic iteration
|
|
204
|
+
users := make([]string, 0, len(rewards))
|
|
205
|
+
for user := range rewards {
|
|
206
|
+
users = append(users, user)
|
|
207
|
+
}
|
|
208
|
+
sort.Strings(users) // Deterministic order
|
|
209
|
+
|
|
210
|
+
// Process in sorted order
|
|
211
|
+
for _, user := range users {
|
|
212
|
+
k.bankKeeper.SendCoins(ctx, moduleAcc, user, rewards[user])
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
**References**:
|
|
218
|
+
- building-secure-contracts/not-so-smart-contracts/cosmos/non_determinism
|
|
219
|
+
- Cosmos SDK docs: Determinism
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 7. Priority Guidelines
|
|
225
|
+
|
|
226
|
+
### Critical - CHAIN HALT Risk
|
|
227
|
+
- Non-determinism (any form)
|
|
228
|
+
- ABCI method panics
|
|
229
|
+
- Slow ABCI methods
|
|
230
|
+
- Incorrect GetSigners (allows unauthorized actions)
|
|
231
|
+
|
|
232
|
+
### High - Fund Loss Risk
|
|
233
|
+
- Missing error handling (bankKeeper.SendCoins)
|
|
234
|
+
- Broken bookkeeping (accounting mismatch)
|
|
235
|
+
- Missing message priority (oracle/emergency messages)
|
|
236
|
+
|
|
237
|
+
### Medium - Logic/DoS Risk
|
|
238
|
+
- Rounding errors (protocol value leakage)
|
|
239
|
+
- Unregistered message handlers (functionality broken)
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 8. Testing Recommendations
|
|
244
|
+
|
|
245
|
+
### Non-Determinism Testing
|
|
246
|
+
```bash
|
|
247
|
+
# Build for different architectures
|
|
248
|
+
GOARCH=amd64 go build
|
|
249
|
+
GOARCH=arm64 go build
|
|
250
|
+
|
|
251
|
+
# Run same operations, compare state roots
|
|
252
|
+
# Must be identical across architectures
|
|
253
|
+
|
|
254
|
+
# Fuzz test with concurrent operations
|
|
255
|
+
go test -fuzz=FuzzEndBlocker -parallel=10
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### ABCI Benchmarking
|
|
259
|
+
```go
|
|
260
|
+
func BenchmarkBeginBlocker(b *testing.B) {
|
|
261
|
+
ctx := setupMaximalState() // Worst-case state
|
|
262
|
+
b.ResetTimer()
|
|
263
|
+
|
|
264
|
+
for i := 0; i < b.N; i++ {
|
|
265
|
+
BeginBlocker(ctx, keeper)
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Must complete in < 1 second
|
|
269
|
+
require.Less(b, b.Elapsed()/time.Duration(b.N), time.Second)
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Invariant Testing
|
|
274
|
+
```go
|
|
275
|
+
// Run invariants in integration tests
|
|
276
|
+
func TestInvariants(t *testing.T) {
|
|
277
|
+
app := setupApp()
|
|
278
|
+
|
|
279
|
+
// Execute operations
|
|
280
|
+
app.DeliverTx(...)
|
|
281
|
+
|
|
282
|
+
// Check invariants
|
|
283
|
+
_, broken := keeper.AllInvariants()(app.Ctx)
|
|
284
|
+
require.False(t, broken, "invariant violation detected")
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 9. Additional Resources
|
|
291
|
+
|
|
292
|
+
- **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/cosmos/`
|
|
293
|
+
- **Cosmos SDK Docs**: https://docs.cosmos.network/
|
|
294
|
+
- **CodeQL for Go**: https://codeql.github.com/docs/codeql-language-guides/codeql-for-go/
|
|
295
|
+
- **Cosmos Security Best Practices**: https://github.com/cosmos/cosmos-sdk/blob/main/docs/docs/learn/advanced/17-determinism.md
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## 10. Quick Reference Checklist
|
|
300
|
+
|
|
301
|
+
Before completing Cosmos chain audit:
|
|
302
|
+
|
|
303
|
+
**Non-Determinism (CRITICAL)**:
|
|
304
|
+
- [ ] No map iteration in consensus code
|
|
305
|
+
- [ ] No platform-dependent types (int, uint, float)
|
|
306
|
+
- [ ] No goroutines in message handlers/ABCI
|
|
307
|
+
- [ ] No select statements with multiple channels
|
|
308
|
+
- [ ] No rand, time.Now(), memory addresses
|
|
309
|
+
- [ ] All serialization is deterministic
|
|
310
|
+
|
|
311
|
+
**ABCI Methods (CRITICAL)**:
|
|
312
|
+
- [ ] BeginBlocker/EndBlocker computationally bounded
|
|
313
|
+
- [ ] No unbounded iterations
|
|
314
|
+
- [ ] No nested loops over large collections
|
|
315
|
+
- [ ] All panic-prone operations validated
|
|
316
|
+
- [ ] Benchmarked with maximum state
|
|
317
|
+
|
|
318
|
+
**Message Handling (HIGH)**:
|
|
319
|
+
- [ ] GetSigners() matches handler address usage
|
|
320
|
+
- [ ] All error returns checked
|
|
321
|
+
- [ ] Critical messages prioritized in CheckTx
|
|
322
|
+
- [ ] All message types registered
|
|
323
|
+
|
|
324
|
+
**Arithmetic & Accounting (MEDIUM)**:
|
|
325
|
+
- [ ] Multiply before divide pattern used
|
|
326
|
+
- [ ] Rounding favors protocol
|
|
327
|
+
- [ ] Custom bookkeeping synced with x/bank
|
|
328
|
+
- [ ] Invariant checks implemented
|
|
329
|
+
|
|
330
|
+
**Testing**:
|
|
331
|
+
- [ ] Cross-architecture builds tested
|
|
332
|
+
- [ ] ABCI methods benchmarked
|
|
333
|
+
- [ ] Invariants checked in CI
|
|
334
|
+
- [ ] Integration tests cover all messages
|