@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,398 @@
|
|
|
1
|
+
# Report Parsing Strategies
|
|
2
|
+
|
|
3
|
+
Parsing security audit reports in various formats.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Security reports come in multiple formats. This guide covers parsing strategies for each format and handling special cases like Google Drive URLs.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Trail of Bits Format
|
|
12
|
+
|
|
13
|
+
Trail of Bits reports follow a consistent structure.
|
|
14
|
+
|
|
15
|
+
### Structure
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
1. Executive Summary
|
|
19
|
+
2. Project Dashboard
|
|
20
|
+
3. Engagement Goals
|
|
21
|
+
4. Coverage
|
|
22
|
+
5. Automated Testing
|
|
23
|
+
6. Findings Overview
|
|
24
|
+
7. Detailed Findings
|
|
25
|
+
- Each finding starts on new page
|
|
26
|
+
- Header table with ID, title, severity, type, target
|
|
27
|
+
- Description, Exploit Scenario, Recommendations
|
|
28
|
+
8. Appendices
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Finding Identification
|
|
32
|
+
|
|
33
|
+
Each finding has a header table:
|
|
34
|
+
|
|
35
|
+
| Field | Format |
|
|
36
|
+
|-------|--------|
|
|
37
|
+
| ID | `TOB-[CLIENT]-[NUMBER]` (e.g., TOB-ACME-1) |
|
|
38
|
+
| Title | Descriptive title |
|
|
39
|
+
| Severity | Informational, Low, Medium, High |
|
|
40
|
+
| Difficulty | Low, Medium, High, Undetermined |
|
|
41
|
+
| Type | Access Controls, Cryptography, Data Validation, etc. |
|
|
42
|
+
| Target | File path(s) |
|
|
43
|
+
|
|
44
|
+
### Extraction Pattern
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
1. Locate "Detailed Findings" section
|
|
48
|
+
2. For each finding, extract:
|
|
49
|
+
- ID: Match pattern /TOB-[A-Z]+-[0-9]+/
|
|
50
|
+
- Title: Text following ID in header
|
|
51
|
+
- Severity: From header table
|
|
52
|
+
- Target: File paths from header table
|
|
53
|
+
- Description: Content after "Description" heading
|
|
54
|
+
- Recommendations: Content after "Recommendations" heading
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Example Finding
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## TOB-ACME-1: Missing access control in withdraw function
|
|
61
|
+
|
|
62
|
+
| Field | Value |
|
|
63
|
+
|-------|-------|
|
|
64
|
+
| ID | TOB-ACME-1 |
|
|
65
|
+
| Severity | High |
|
|
66
|
+
| Difficulty | Low |
|
|
67
|
+
| Type | Access Controls |
|
|
68
|
+
| Target | contracts/Vault.sol |
|
|
69
|
+
|
|
70
|
+
### Description
|
|
71
|
+
|
|
72
|
+
The `withdraw` function in `Vault.sol` lacks access control...
|
|
73
|
+
|
|
74
|
+
### Recommendations
|
|
75
|
+
|
|
76
|
+
Short term, add the `onlyOwner` modifier...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Generic Report Formats
|
|
82
|
+
|
|
83
|
+
### Numbered Findings
|
|
84
|
+
|
|
85
|
+
Reports with numbered findings (Finding 1, Finding 2, etc.):
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Pattern: /Finding\s+[0-9]+:?\s+(.+)/
|
|
89
|
+
/[0-9]+\.\s+(.+)/
|
|
90
|
+
/#[0-9]+\s+(.+)/
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Extract:
|
|
94
|
+
- Number as ID
|
|
95
|
+
- Following text as title
|
|
96
|
+
- Look for severity keywords nearby
|
|
97
|
+
|
|
98
|
+
### Severity-Based Sections
|
|
99
|
+
|
|
100
|
+
Reports organized by severity:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
## Critical
|
|
104
|
+
### Finding title
|
|
105
|
+
...
|
|
106
|
+
|
|
107
|
+
## High
|
|
108
|
+
### Another finding
|
|
109
|
+
...
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Extract:
|
|
113
|
+
- Section heading as severity
|
|
114
|
+
- Sub-headings as finding titles
|
|
115
|
+
- Generate IDs (CRITICAL-1, HIGH-1, etc.)
|
|
116
|
+
|
|
117
|
+
### Table-Based Findings
|
|
118
|
+
|
|
119
|
+
Reports with findings in tables:
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
| ID | Title | Severity | Status |
|
|
123
|
+
|----|-------|----------|--------|
|
|
124
|
+
| V-01 | SQL Injection | High | Open |
|
|
125
|
+
| V-02 | XSS in search | Medium | Open |
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Extract by parsing table structure.
|
|
129
|
+
|
|
130
|
+
### JSON Format
|
|
131
|
+
|
|
132
|
+
Reports in JSON structure:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"findings": [
|
|
137
|
+
{
|
|
138
|
+
"id": "VULN-001",
|
|
139
|
+
"title": "SQL Injection",
|
|
140
|
+
"severity": "high",
|
|
141
|
+
"description": "...",
|
|
142
|
+
"files": ["app/db.py"]
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Parse directly from JSON structure.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Format Detection
|
|
153
|
+
|
|
154
|
+
When report format is unknown:
|
|
155
|
+
|
|
156
|
+
### Step 1: Check for TOB Format
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Search for: "TOB-" followed by letters and numbers
|
|
160
|
+
If found: Use TOB parsing
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Step 2: Check for JSON
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
If file extension is .json or content starts with '{':
|
|
167
|
+
Parse as JSON
|
|
168
|
+
Look for "findings" array
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Step 3: Check for Markdown Structure
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Search for: "## Finding" or "### Finding"
|
|
175
|
+
Search for: Severity headings (Critical, High, Medium, Low)
|
|
176
|
+
Search for: Numbered patterns (1., 2., or Finding 1, Finding 2)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Step 4: Fall Back to Keyword Extraction
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
Search for severity keywords: critical, high, medium, low, informational
|
|
183
|
+
Search for vulnerability keywords: vulnerability, issue, bug, flaw
|
|
184
|
+
Extract surrounding context as findings
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Google Drive Handling
|
|
190
|
+
|
|
191
|
+
When a Google Drive URL is provided and WebFetch fails (permissions, redirect):
|
|
192
|
+
|
|
193
|
+
### Step 1: Detect Google Drive URL
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Pattern: https://drive.google.com/file/d/[FILE_ID]/...
|
|
197
|
+
https://docs.google.com/document/d/[DOC_ID]/...
|
|
198
|
+
https://drive.google.com/open?id=[FILE_ID]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Step 2: Extract File ID
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# From /file/d/ URLs
|
|
205
|
+
FILE_ID=$(echo "$URL" | grep -oP 'file/d/\K[^/]+')
|
|
206
|
+
|
|
207
|
+
# From /document/d/ URLs
|
|
208
|
+
FILE_ID=$(echo "$URL" | grep -oP 'document/d/\K[^/]+')
|
|
209
|
+
|
|
210
|
+
# From ?id= URLs
|
|
211
|
+
FILE_ID=$(echo "$URL" | grep -oP 'id=\K[^&]+')
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Step 3: Check for gdrive CLI
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
# Check if gdrive is installed
|
|
218
|
+
if command -v gdrive &> /dev/null; then
|
|
219
|
+
# Check if gdrive is configured (has auth)
|
|
220
|
+
if gdrive about &> /dev/null; then
|
|
221
|
+
echo "gdrive available and configured"
|
|
222
|
+
else
|
|
223
|
+
echo "gdrive installed but not configured"
|
|
224
|
+
fi
|
|
225
|
+
else
|
|
226
|
+
echo "gdrive not installed"
|
|
227
|
+
fi
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Step 4: Download with gdrive
|
|
231
|
+
|
|
232
|
+
If gdrive is available and configured:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Download to temp directory
|
|
236
|
+
gdrive files download "$FILE_ID" --path /tmp/
|
|
237
|
+
|
|
238
|
+
# Find the downloaded file
|
|
239
|
+
DOWNLOADED=$(ls -t /tmp/ | head -1)
|
|
240
|
+
|
|
241
|
+
# Read the file
|
|
242
|
+
cat "/tmp/$DOWNLOADED"
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Step 5: User Instructions (if gdrive unavailable)
|
|
246
|
+
|
|
247
|
+
If gdrive is not available or not configured:
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
Unable to access the Google Drive URL directly. Please:
|
|
251
|
+
|
|
252
|
+
1. Open the URL in your browser
|
|
253
|
+
2. Download the file:
|
|
254
|
+
- For Google Docs: File → Download → Markdown (.md)
|
|
255
|
+
- For PDFs: Click download button
|
|
256
|
+
3. Provide the local file path
|
|
257
|
+
|
|
258
|
+
Alternatively, install and configure gdrive:
|
|
259
|
+
brew install gdrive
|
|
260
|
+
gdrive about # Follow auth prompts
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## File Format Handling
|
|
266
|
+
|
|
267
|
+
### PDF Files
|
|
268
|
+
|
|
269
|
+
Claude can read PDFs directly using the Read tool:
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
Read /path/to/report.pdf
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
For large PDFs, process section by section:
|
|
276
|
+
1. Read table of contents/overview
|
|
277
|
+
2. Locate "Findings" section
|
|
278
|
+
3. Read findings section in detail
|
|
279
|
+
|
|
280
|
+
### Markdown Files
|
|
281
|
+
|
|
282
|
+
Read directly:
|
|
283
|
+
|
|
284
|
+
```
|
|
285
|
+
Read /path/to/report.md
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### HTML Files
|
|
289
|
+
|
|
290
|
+
Read and parse:
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
Read /path/to/report.html
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Extract text content, ignoring HTML tags.
|
|
297
|
+
|
|
298
|
+
### JSON Files
|
|
299
|
+
|
|
300
|
+
Read and parse as structured data:
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
Read /path/to/report.json
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Access fields directly from JSON structure.
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Extraction Output Format
|
|
311
|
+
|
|
312
|
+
Regardless of input format, normalize findings to:
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
"findings": [
|
|
317
|
+
{
|
|
318
|
+
"id": "TOB-ACME-1",
|
|
319
|
+
"title": "Missing access control in withdraw",
|
|
320
|
+
"severity": "High",
|
|
321
|
+
"difficulty": "Low",
|
|
322
|
+
"type": "Access Controls",
|
|
323
|
+
"files": ["contracts/Vault.sol"],
|
|
324
|
+
"description": "The withdraw function lacks...",
|
|
325
|
+
"recommendation": "Add onlyOwner modifier..."
|
|
326
|
+
}
|
|
327
|
+
],
|
|
328
|
+
"metadata": {
|
|
329
|
+
"client": "ACME",
|
|
330
|
+
"date": "2024-01-15",
|
|
331
|
+
"format": "tob"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
This normalized format enables consistent processing regardless of source format.
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Handling Incomplete Reports
|
|
341
|
+
|
|
342
|
+
When report lacks standard structure:
|
|
343
|
+
|
|
344
|
+
### Missing Finding IDs
|
|
345
|
+
|
|
346
|
+
Generate IDs based on:
|
|
347
|
+
- Severity + sequence: `HIGH-1`, `HIGH-2`, `MEDIUM-1`
|
|
348
|
+
- Position: `FINDING-1`, `FINDING-2`
|
|
349
|
+
- File path: `VAULT-1`, `TOKEN-1`
|
|
350
|
+
|
|
351
|
+
### Missing Severity
|
|
352
|
+
|
|
353
|
+
Infer from:
|
|
354
|
+
- Keywords: "critical", "severe", "important" → High
|
|
355
|
+
- Impact description: "attacker can steal" → High
|
|
356
|
+
- Default to "Undetermined" if unclear
|
|
357
|
+
|
|
358
|
+
### Missing File References
|
|
359
|
+
|
|
360
|
+
Search report for:
|
|
361
|
+
- File paths: `/path/to/file`, `src/module/file.py`
|
|
362
|
+
- Function names: `function()`, `method()`
|
|
363
|
+
- Contract names: `Contract.function`
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## Error Handling
|
|
368
|
+
|
|
369
|
+
### File Not Found
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
Unable to read report at [path].
|
|
373
|
+
Please verify the file exists and provide the correct path.
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### Unsupported Format
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
Unable to parse report format.
|
|
380
|
+
Supported formats: PDF, Markdown, JSON, HTML
|
|
381
|
+
Please convert to a supported format or provide as Markdown.
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### Empty Findings
|
|
385
|
+
|
|
386
|
+
```
|
|
387
|
+
No findings detected in the report.
|
|
388
|
+
Please verify this is a security audit report with findings.
|
|
389
|
+
If findings exist but weren't detected, provide them manually.
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### Partial Parse
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
Parsed [N] findings, but some content may have been missed.
|
|
396
|
+
Detected findings: [list IDs]
|
|
397
|
+
Please verify all expected findings are included.
|
|
398
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Insecure Defaults Detection
|
|
2
|
+
|
|
3
|
+
Security skill for detecting insecure default configurations that create vulnerabilities when applications run with missing or incomplete configuration.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The `insecure-defaults` skill helps identify security vulnerabilities caused by:
|
|
8
|
+
|
|
9
|
+
- **Hardcoded fallback secrets** (JWT keys, API keys, session secrets)
|
|
10
|
+
- **Default credentials** (admin/admin, root/password)
|
|
11
|
+
- **Weak cryptographic defaults** (MD5, DES, ECB mode)
|
|
12
|
+
- **Permissive access control** (CORS *, public by default)
|
|
13
|
+
- **Missing security configuration** that causes fail-open behavior
|
|
14
|
+
|
|
15
|
+
**Critical Distinction:** This skill emphasizes **fail-secure vs. fail-open** behavior. Applications that crash without proper configuration are safe; applications that run with insecure defaults are vulnerable.
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cd parent-folder/skills
|
|
21
|
+
/plugin install ./plugins/insecure-defaults
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or from the plugin marketplace:
|
|
25
|
+
```bash
|
|
26
|
+
/plugin install insecure-defaults
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## When to Use
|
|
30
|
+
|
|
31
|
+
Use this skill when:
|
|
32
|
+
|
|
33
|
+
- **Security auditing** production applications or services
|
|
34
|
+
- **Configuration review** of deployment manifests (Docker, Kubernetes, IaC)
|
|
35
|
+
- **Pre-production checks** before deploying new services
|
|
36
|
+
- **Code review** of authentication, authorization, or cryptographic code
|
|
37
|
+
- **Environment variable handling** analysis for secrets management
|
|
38
|
+
- **API security review** checking CORS, rate limiting, authentication
|
|
39
|
+
- **Third-party integration** review for hardcoded test credentials
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Audit this codebase for insecure defaults—focus on environment variable fallbacks and authentication configuration
|
|
45
|
+
```
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: insecure-defaults
|
|
3
|
+
description: "Detects fail-open insecure defaults (hardcoded secrets, weak auth, permissive security) that allow apps to run insecurely in production. Use when auditing security, reviewing config management, or analyzing environment variable handling."
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Grep
|
|
7
|
+
- Glob
|
|
8
|
+
- Bash
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Insecure Defaults Detection
|
|
12
|
+
|
|
13
|
+
Finds **fail-open** vulnerabilities where apps run insecurely with missing configuration. Distinguishes exploitable defaults from fail-secure patterns that crash safely.
|
|
14
|
+
|
|
15
|
+
- **Fail-open (CRITICAL):** `SECRET = env.get('KEY') or 'default'` → App runs with weak secret
|
|
16
|
+
- **Fail-secure (SAFE):** `SECRET = env['KEY']` → App crashes if missing
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- **Security audits** of production applications (auth, crypto, API security)
|
|
21
|
+
- **Configuration review** of deployment files, IaC templates, Docker configs
|
|
22
|
+
- **Code review** of environment variable handling and secrets management
|
|
23
|
+
- **Pre-deployment checks** for hardcoded credentials or weak defaults
|
|
24
|
+
|
|
25
|
+
## When NOT to Use
|
|
26
|
+
|
|
27
|
+
Do not use this skill for:
|
|
28
|
+
- **Test fixtures** explicitly scoped to test environments (files in `test/`, `spec/`, `__tests__/`)
|
|
29
|
+
- **Example/template files** (`.example`, `.template`, `.sample` suffixes)
|
|
30
|
+
- **Development-only tools** (local Docker Compose for dev, debug scripts)
|
|
31
|
+
- **Documentation examples** in README.md or docs/ directories
|
|
32
|
+
- **Build-time configuration** that gets replaced during deployment
|
|
33
|
+
- **Crash-on-missing behavior** where app won't start without proper config (fail-secure)
|
|
34
|
+
|
|
35
|
+
When in doubt: trace the code path to determine if the app runs with the default or crashes.
|
|
36
|
+
|
|
37
|
+
## Rationalizations to Reject
|
|
38
|
+
|
|
39
|
+
- **"It's just a development default"** → If it reaches production code, it's a finding
|
|
40
|
+
- **"The production config overrides it"** → Verify prod config exists; code-level vulnerability remains if not
|
|
41
|
+
- **"This would never run without proper config"** → Prove it with code trace; many apps fail silently
|
|
42
|
+
- **"It's behind authentication"** → Defense in depth; compromised session still exploits weak defaults
|
|
43
|
+
- **"We'll fix it before release"** → Document now; "later" rarely comes
|
|
44
|
+
|
|
45
|
+
## Workflow
|
|
46
|
+
|
|
47
|
+
Follow this workflow for every potential finding:
|
|
48
|
+
|
|
49
|
+
### 1. SEARCH: Perform Project Discovery and Find Insecure Defaults
|
|
50
|
+
|
|
51
|
+
Determine language, framework, and project conventions. Use this information to further discover things like secret storage locations, secret usage patterns, credentialed third-party integrations, cryptography, and any other relevant configuration. Further use information to analyze insecure default configurations.
|
|
52
|
+
|
|
53
|
+
**Example**
|
|
54
|
+
Search for patterns in `**/config/`, `**/auth/`, `**/database/`, and env files:
|
|
55
|
+
- **Fallback secrets:** `getenv.*\) or ['"]`, `process\.env\.[A-Z_]+ \|\| ['"]`, `ENV\.fetch.*default:`
|
|
56
|
+
- **Hardcoded credentials:** `password.*=.*['"][^'"]{8,}['"]`, `api[_-]?key.*=.*['"][^'"]+['"]`
|
|
57
|
+
- **Weak defaults:** `DEBUG.*=.*true`, `AUTH.*=.*false`, `CORS.*=.*\*`
|
|
58
|
+
- **Crypto algorithms:** `MD5|SHA1|DES|RC4|ECB` in security contexts
|
|
59
|
+
|
|
60
|
+
Tailor search approach based on discovery results.
|
|
61
|
+
|
|
62
|
+
Focus on production-reachable code, not test fixtures or example files.
|
|
63
|
+
|
|
64
|
+
### 2. VERIFY: Actual Behavior
|
|
65
|
+
For each match, trace the code path to understand runtime behavior.
|
|
66
|
+
|
|
67
|
+
**Questions to answer:**
|
|
68
|
+
- When is this code executed? (Startup vs. runtime)
|
|
69
|
+
- What happens if a configuration variable is missing?
|
|
70
|
+
- Is there validation that enforces secure configuration?
|
|
71
|
+
|
|
72
|
+
### 3. CONFIRM: Production Impact
|
|
73
|
+
Determine if this issue reaches production:
|
|
74
|
+
|
|
75
|
+
If production config provides the variable → Lower severity (but still a code-level vulnerability)
|
|
76
|
+
If production config missing or uses default → CRITICAL
|
|
77
|
+
|
|
78
|
+
### 4. REPORT: with Evidence
|
|
79
|
+
|
|
80
|
+
**Example report:**
|
|
81
|
+
```
|
|
82
|
+
Finding: Hardcoded JWT Secret Fallback
|
|
83
|
+
Location: src/auth/jwt.ts:15
|
|
84
|
+
Pattern: const secret = process.env.JWT_SECRET || 'default';
|
|
85
|
+
|
|
86
|
+
Verification: App starts without JWT_SECRET; secret used in jwt.sign() at line 42
|
|
87
|
+
Production Impact: Dockerfile missing JWT_SECRET
|
|
88
|
+
Exploitation: Attacker forges JWTs using 'default', gains unauthorized access
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Quick Verification Checklist
|
|
92
|
+
|
|
93
|
+
**Fallback Secrets:** `SECRET = env.get(X) or Y`
|
|
94
|
+
→ Verify: App starts without env var? Secret used in crypto/auth?
|
|
95
|
+
→ Skip: Test fixtures, example files
|
|
96
|
+
|
|
97
|
+
**Default Credentials:** Hardcoded `username`/`password` pairs
|
|
98
|
+
→ Verify: Active in deployed config? No runtime override?
|
|
99
|
+
→ Skip: Disabled accounts, documentation examples
|
|
100
|
+
|
|
101
|
+
**Fail-Open Security:** `AUTH_REQUIRED = env.get(X, 'false')`
|
|
102
|
+
→ Verify: Default is insecure (false/disabled/permissive)?
|
|
103
|
+
→ Safe: App crashes or default is secure (true/enabled/restricted)
|
|
104
|
+
|
|
105
|
+
**Weak Crypto:** MD5/SHA1/DES/RC4/ECB in security contexts
|
|
106
|
+
→ Verify: Used for passwords, encryption, or tokens?
|
|
107
|
+
→ Skip: Checksums, non-security hashing
|
|
108
|
+
|
|
109
|
+
**Permissive Access:** CORS `*`, permissions `0777`, public-by-default
|
|
110
|
+
→ Verify: Default allows unauthorized access?
|
|
111
|
+
→ Skip: Explicitly configured permissiveness with justification
|
|
112
|
+
|
|
113
|
+
**Debug Features:** Stack traces, introspection, verbose errors
|
|
114
|
+
→ Verify: Enabled by default? Exposed in responses?
|
|
115
|
+
→ Skip: Logging-only, not user-facing
|
|
116
|
+
|
|
117
|
+
For detailed examples and counter-examples, see [examples.md](references/examples.md).
|