@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,354 @@
|
|
|
1
|
+
# Constant-Time Analysis: VM-Compiled Languages
|
|
2
|
+
|
|
3
|
+
Analysis guidance for Java and C#. These languages compile to bytecode (JVM bytecode / CIL) that runs on a virtual machine with Just-In-Time (JIT) compilation to native code.
|
|
4
|
+
|
|
5
|
+
## Understanding VM-Compiled Languages
|
|
6
|
+
|
|
7
|
+
Unlike native-compiled languages (C, Rust, Go), Java and C# add an intermediate layer:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
Source Code (.java/.cs)
|
|
11
|
+
|
|
|
12
|
+
v
|
|
13
|
+
Compiler (javac/csc)
|
|
14
|
+
|
|
|
15
|
+
v
|
|
16
|
+
Bytecode (.class/.dll)
|
|
17
|
+
|
|
|
18
|
+
v
|
|
19
|
+
JIT Compiler (HotSpot/RyuJIT)
|
|
20
|
+
|
|
|
21
|
+
v
|
|
22
|
+
Native Code (at runtime)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Security implications:**
|
|
26
|
+
|
|
27
|
+
1. **Bytecode is deterministic** - Same source always produces same bytecode
|
|
28
|
+
2. **JIT is non-deterministic** - Native code varies by runtime, version, and warmup state
|
|
29
|
+
3. **Analysis target** - We analyze bytecode since JIT output is impractical to capture
|
|
30
|
+
|
|
31
|
+
**Limitations:**
|
|
32
|
+
|
|
33
|
+
- JIT may introduce timing variations not visible in bytecode
|
|
34
|
+
- Runtime optimizations can convert safe bytecode to unsafe native code
|
|
35
|
+
- Different JVM/CLR implementations may behave differently
|
|
36
|
+
|
|
37
|
+
## Running the Analyzer
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Java
|
|
41
|
+
uv run {baseDir}/ct_analyzer/analyzer.py CryptoUtils.java
|
|
42
|
+
|
|
43
|
+
# C#
|
|
44
|
+
uv run {baseDir}/ct_analyzer/analyzer.py CryptoUtils.cs
|
|
45
|
+
|
|
46
|
+
# Include conditional branch warnings
|
|
47
|
+
uv run {baseDir}/ct_analyzer/analyzer.py --warnings CryptoUtils.java
|
|
48
|
+
|
|
49
|
+
# Filter to specific methods
|
|
50
|
+
uv run {baseDir}/ct_analyzer/analyzer.py --func 'sign|verify' CryptoUtils.java
|
|
51
|
+
|
|
52
|
+
# CI-friendly JSON output
|
|
53
|
+
uv run {baseDir}/ct_analyzer/analyzer.py --json CryptoUtils.java
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Note: The `--arch` and `--opt-level` flags do not apply to VM-compiled languages.
|
|
57
|
+
|
|
58
|
+
## Dangerous Bytecode Instructions
|
|
59
|
+
|
|
60
|
+
### JVM Bytecode
|
|
61
|
+
|
|
62
|
+
| Category | Instructions | Risk |
|
|
63
|
+
|----------|--------------|------|
|
|
64
|
+
| Integer Division | `idiv`, `ldiv`, `irem`, `lrem` | Variable-time based on operand values |
|
|
65
|
+
| Floating Division | `fdiv`, `ddiv`, `frem`, `drem` | Variable latency |
|
|
66
|
+
| Conditional Branches | `ifeq`, `ifne`, `iflt`, `ifge`, `ifgt`, `ifle`, `if_icmp*`, `if_acmp*` | Timing leak if condition depends on secrets |
|
|
67
|
+
| Table Lookups | `*aload`, `*astore`, `tableswitch`, `lookupswitch` | Cache timing if index depends on secrets |
|
|
68
|
+
|
|
69
|
+
### CIL (C# / .NET)
|
|
70
|
+
|
|
71
|
+
| Category | Instructions | Risk |
|
|
72
|
+
|----------|--------------|------|
|
|
73
|
+
| Integer Division | `div`, `div.un`, `rem`, `rem.un` | Variable-time based on operand values |
|
|
74
|
+
| Floating Division | (uses same `div`/`rem` opcodes) | Variable latency |
|
|
75
|
+
| Conditional Branches | `beq`, `bne`, `blt`, `bgt`, `ble`, `bge`, `brfalse`, `brtrue` | Timing leak if condition depends on secrets |
|
|
76
|
+
| Table Lookups | `ldelem.*`, `stelem.*`, `switch` | Cache timing if index depends on secrets |
|
|
77
|
+
|
|
78
|
+
## Constant-Time Patterns
|
|
79
|
+
|
|
80
|
+
### Java
|
|
81
|
+
|
|
82
|
+
#### Replace Division
|
|
83
|
+
|
|
84
|
+
```java
|
|
85
|
+
// VULNERABLE: Division instruction emitted
|
|
86
|
+
int q = secretValue / divisor;
|
|
87
|
+
|
|
88
|
+
// SAFE: Barrett reduction (for fixed divisor)
|
|
89
|
+
// Precompute: mu = (1L << 32) / divisor
|
|
90
|
+
long mu = 0x100000000L / divisor;
|
|
91
|
+
int q = (int) ((secretValue * mu) >>> 32);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### Replace Branches
|
|
95
|
+
|
|
96
|
+
```java
|
|
97
|
+
// VULNERABLE: Branch timing reveals secret
|
|
98
|
+
int result;
|
|
99
|
+
if (secret != 0) {
|
|
100
|
+
result = a;
|
|
101
|
+
} else {
|
|
102
|
+
result = b;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// SAFE: Constant-time selection using bitwise ops
|
|
106
|
+
int mask = -(secret != 0 ? 1 : 0); // All 1s if true, all 0s if false
|
|
107
|
+
// Better: compute mask without branch
|
|
108
|
+
int mask = (secret | -secret) >> 31; // -1 if secret != 0, else 0
|
|
109
|
+
int result = (a & mask) | (b & ~mask);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### Replace Comparisons
|
|
113
|
+
|
|
114
|
+
```java
|
|
115
|
+
// VULNERABLE: Arrays.equals() may early-terminate
|
|
116
|
+
if (Arrays.equals(computed, expected)) { ... }
|
|
117
|
+
|
|
118
|
+
// SAFE: Use MessageDigest.isEqual() for constant-time comparison
|
|
119
|
+
import java.security.MessageDigest;
|
|
120
|
+
if (MessageDigest.isEqual(computed, expected)) { ... }
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
#### Secure Random
|
|
124
|
+
|
|
125
|
+
```java
|
|
126
|
+
// VULNERABLE: Predictable PRNG
|
|
127
|
+
Random rand = new Random();
|
|
128
|
+
int value = rand.nextInt();
|
|
129
|
+
|
|
130
|
+
// SAFE: Cryptographically secure
|
|
131
|
+
SecureRandom secureRand = new SecureRandom();
|
|
132
|
+
int value = secureRand.nextInt();
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### C# / .NET
|
|
136
|
+
|
|
137
|
+
#### Replace Division
|
|
138
|
+
|
|
139
|
+
```csharp
|
|
140
|
+
// VULNERABLE: Division instruction emitted
|
|
141
|
+
int q = secretValue / divisor;
|
|
142
|
+
|
|
143
|
+
// SAFE: Barrett reduction (for fixed divisor)
|
|
144
|
+
// Precompute: mu = (1UL << 32) / divisor
|
|
145
|
+
ulong mu = 0x100000000UL / (ulong)divisor;
|
|
146
|
+
int q = (int)((secretValue * mu) >> 32);
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
#### Replace Branches
|
|
150
|
+
|
|
151
|
+
```csharp
|
|
152
|
+
// VULNERABLE: Branch timing reveals secret
|
|
153
|
+
int result = secret != 0 ? a : b;
|
|
154
|
+
|
|
155
|
+
// SAFE: Constant-time selection
|
|
156
|
+
int mask = -(secret != 0 ? 1 : 0);
|
|
157
|
+
int result = (a & mask) | (b & ~mask);
|
|
158
|
+
|
|
159
|
+
// Or use Vector<T> for SIMD constant-time ops (.NET 7+)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### Replace Comparisons
|
|
163
|
+
|
|
164
|
+
```csharp
|
|
165
|
+
// VULNERABLE: SequenceEqual may early-terminate
|
|
166
|
+
if (computed.SequenceEqual(expected)) { ... }
|
|
167
|
+
|
|
168
|
+
// SAFE: Use CryptographicOperations.FixedTimeEquals (.NET Core 2.1+)
|
|
169
|
+
using System.Security.Cryptography;
|
|
170
|
+
if (CryptographicOperations.FixedTimeEquals(computed, expected)) { ... }
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### Secure Random
|
|
174
|
+
|
|
175
|
+
```csharp
|
|
176
|
+
// VULNERABLE: Predictable PRNG
|
|
177
|
+
Random rand = new Random();
|
|
178
|
+
int value = rand.Next();
|
|
179
|
+
|
|
180
|
+
// SAFE: Cryptographically secure
|
|
181
|
+
using System.Security.Cryptography;
|
|
182
|
+
int value = RandomNumberGenerator.GetInt32(int.MaxValue);
|
|
183
|
+
// Or for bytes:
|
|
184
|
+
byte[] bytes = RandomNumberGenerator.GetBytes(32);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Platform-Specific Considerations
|
|
188
|
+
|
|
189
|
+
### Java
|
|
190
|
+
|
|
191
|
+
- **Bouncy Castle**: Use `org.bouncycastle.util.Arrays.constantTimeAreEqual()` for constant-time comparison
|
|
192
|
+
- **JEP 329 (Java 12+)**: ChaCha20 and Poly1305 implementations are designed to be constant-time
|
|
193
|
+
- **BigInteger**: Operations like `modPow()` may have timing leaks; consider using Bouncy Castle's constant-time implementations
|
|
194
|
+
|
|
195
|
+
### C# / .NET
|
|
196
|
+
|
|
197
|
+
- **Span<T>**: Use `CryptographicOperations.FixedTimeEquals(ReadOnlySpan<byte>, ReadOnlySpan<byte>)` for best performance
|
|
198
|
+
- **NSec**: Consider using NSec library for constant-time cryptographic primitives
|
|
199
|
+
- **BigInteger**: .NET's BigInteger has potential timing leaks; use specialized crypto libraries
|
|
200
|
+
|
|
201
|
+
## JIT Compiler Caveats
|
|
202
|
+
|
|
203
|
+
Even if bytecode appears safe, JIT compilers can introduce timing vulnerabilities:
|
|
204
|
+
|
|
205
|
+
1. **Speculative optimization** - JIT may convert constant-time bytecode to branching native code
|
|
206
|
+
2. **Escape analysis** - May inline and optimize in ways that introduce timing
|
|
207
|
+
3. **Tiered compilation** - Code behavior may change as it "warms up"
|
|
208
|
+
|
|
209
|
+
**Mitigations:**
|
|
210
|
+
|
|
211
|
+
- Test with production JVM/CLR versions
|
|
212
|
+
- Consider ahead-of-time (AOT) compilation (GraalVM Native Image, .NET Native AOT)
|
|
213
|
+
- For critical code, verify native code output with JIT logging:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
# Java: Print JIT compilation
|
|
217
|
+
java -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly MyClass
|
|
218
|
+
|
|
219
|
+
# .NET: Enable tiered compilation diagnostics
|
|
220
|
+
DOTNET_TieredCompilation=0 dotnet run # Disable tiered compilation for consistent behavior
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Setup Requirements
|
|
224
|
+
|
|
225
|
+
### Java
|
|
226
|
+
|
|
227
|
+
**Required:** JDK 8+ with `javac` and `javap` available.
|
|
228
|
+
|
|
229
|
+
**Installation:**
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# macOS (Homebrew)
|
|
233
|
+
brew install openjdk@21
|
|
234
|
+
|
|
235
|
+
# Ubuntu/Debian
|
|
236
|
+
sudo apt install openjdk-21-jdk
|
|
237
|
+
|
|
238
|
+
# Windows (via winget)
|
|
239
|
+
winget install Microsoft.OpenJDK.21
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**PATH Configuration (macOS):**
|
|
243
|
+
|
|
244
|
+
On macOS, Homebrew installs OpenJDK as "keg-only" (not linked to `/usr/local/bin`). You must add it to your PATH:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
# Add to ~/.zshrc or ~/.bashrc
|
|
248
|
+
export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH" # Apple Silicon
|
|
249
|
+
# or
|
|
250
|
+
export PATH="/usr/local/opt/openjdk@21/bin:$PATH" # Intel Mac
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Verification:**
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
javac --version # Should show: javac 21.x.x
|
|
257
|
+
javap -version # Should show version info
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Common Issues:**
|
|
261
|
+
|
|
262
|
+
- **"Unable to locate a Java Runtime"** on macOS: The system `/usr/bin/javac` is a stub that requires a real JDK. Install OpenJDK via Homebrew.
|
|
263
|
+
- **Wrong Java version**: If you have multiple JDKs, use `JAVA_HOME` or ensure the correct one is first in PATH.
|
|
264
|
+
|
|
265
|
+
### C#
|
|
266
|
+
|
|
267
|
+
**Required:** .NET SDK 8.0+ with `dotnet` available, plus `ilspycmd` for IL disassembly.
|
|
268
|
+
|
|
269
|
+
**Installation:**
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
# macOS (Homebrew)
|
|
273
|
+
brew install dotnet-sdk
|
|
274
|
+
|
|
275
|
+
# Ubuntu/Debian
|
|
276
|
+
sudo apt install dotnet-sdk-8.0
|
|
277
|
+
|
|
278
|
+
# Windows
|
|
279
|
+
winget install Microsoft.DotNet.SDK.8
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Install IL Disassembler:**
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
dotnet tool install -g ilspycmd
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**PATH Configuration:**
|
|
289
|
+
|
|
290
|
+
Ensure the .NET tools directory is in your PATH:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
# Add to ~/.zshrc or ~/.bashrc
|
|
294
|
+
export PATH="$HOME/.dotnet/tools:$PATH"
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Verification:**
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
dotnet --version # Should show: 8.x.x or higher
|
|
301
|
+
ilspycmd --version # Should show: ilspycmd: 9.x.x
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
**Common Issues:**
|
|
305
|
+
|
|
306
|
+
- **"ilspycmd requires .NET 8.0 but you have .NET 10.0"**: This happens when ilspycmd targets an older .NET version than your installed SDK. The analyzer automatically handles this on macOS by detecting Homebrew's dotnet@8 installation. Install the compatible runtime:
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
# macOS
|
|
310
|
+
brew install dotnet@8
|
|
311
|
+
|
|
312
|
+
# Other platforms: install .NET 8.0 runtime alongside your SDK
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
- **"IL disassembly tools not found"**: Ensure `ilspycmd` is installed globally and `~/.dotnet/tools` is in your PATH.
|
|
316
|
+
|
|
317
|
+
- **Source-only fallback**: If IL disassembly fails, the analyzer falls back to source-level analysis. This still detects division operators and dangerous function calls but misses bytecode-level issues.
|
|
318
|
+
|
|
319
|
+
### Alternative: Mono (Linux/macOS)
|
|
320
|
+
|
|
321
|
+
For environments without .NET SDK, you can use Mono:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# macOS
|
|
325
|
+
brew install mono
|
|
326
|
+
|
|
327
|
+
# Ubuntu/Debian
|
|
328
|
+
sudo apt install mono-complete
|
|
329
|
+
|
|
330
|
+
# Verify
|
|
331
|
+
mcs --version
|
|
332
|
+
monodis --help
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
Note: Mono's `monodis` produces different IL output than `ilspycmd`. The analyzer supports both formats.
|
|
336
|
+
|
|
337
|
+
## Common Mistakes
|
|
338
|
+
|
|
339
|
+
1. **Trusting high-level APIs** - `Arrays.equals()` in Java and `SequenceEqual()` in C# are NOT constant-time
|
|
340
|
+
|
|
341
|
+
2. **Ignoring JIT behavior** - Bytecode analysis is necessary but not sufficient; JIT can introduce leaks
|
|
342
|
+
|
|
343
|
+
3. **BigInteger operations** - Both platforms' BigInteger implementations may leak timing; use crypto libraries
|
|
344
|
+
|
|
345
|
+
4. **String comparisons** - Never compare secrets as strings; use byte arrays with constant-time comparison
|
|
346
|
+
|
|
347
|
+
5. **Exception timing** - Try/catch blocks around secret operations may leak timing through exception handling
|
|
348
|
+
|
|
349
|
+
## Further Reading
|
|
350
|
+
|
|
351
|
+
- [Java Cryptography Architecture Guide](https://docs.oracle.com/en/java/javase/17/security/java-cryptography-architecture-jca-reference-guide.html)
|
|
352
|
+
- [.NET Cryptography Model](https://docs.microsoft.com/en-us/dotnet/standard/security/cryptography-model)
|
|
353
|
+
- [Bouncy Castle Java](https://www.bouncycastle.org/java.html) - Constant-time crypto primitives
|
|
354
|
+
- [NSec](https://nsec.rocks/) - Modern cryptographic library for .NET
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Culture Index
|
|
2
|
+
|
|
3
|
+
Interprets Culture Index survey results for individuals and teams.
|
|
4
|
+
|
|
5
|
+
**Author:** Dan Guido
|
|
6
|
+
|
|
7
|
+
## When to Use
|
|
8
|
+
|
|
9
|
+
Use this skill when you need to:
|
|
10
|
+
- Interpret an individual's Culture Index profile
|
|
11
|
+
- Analyze team composition for gas/brake/glue balance
|
|
12
|
+
- Detect burnout signals by comparing Survey vs Job traits
|
|
13
|
+
- Compare multiple profiles for compatibility
|
|
14
|
+
- Get motivator recommendations for specific trait types
|
|
15
|
+
|
|
16
|
+
## What It Does
|
|
17
|
+
|
|
18
|
+
This skill provides expert interpretation of Culture Index behavioral assessments:
|
|
19
|
+
|
|
20
|
+
- **Relative Interpretation** - Always uses distance from arrow, never absolute values
|
|
21
|
+
- **Survey vs Job Analysis** - Identifies behavior modification and energy drain
|
|
22
|
+
- **Pattern Recognition** - Maps profiles to 19 archetypes
|
|
23
|
+
- **Team Analysis** - Assesses gas/brake/glue balance and gaps
|
|
24
|
+
- **Burnout Detection** - Calculates energy utilization and flags risk
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
/plugin install trailofbits/skills/plugins/culture-index
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Key Concepts
|
|
33
|
+
|
|
34
|
+
### Trait Colors
|
|
35
|
+
| Trait | Color | Measures |
|
|
36
|
+
|-------|-------|----------|
|
|
37
|
+
| A | Maroon | Autonomy, initiative |
|
|
38
|
+
| B | Yellow | Social ability |
|
|
39
|
+
| C | Blue | Pace/Patience |
|
|
40
|
+
| D | Green | Conformity, detail |
|
|
41
|
+
| L | Purple | Logic |
|
|
42
|
+
| I | Cyan | Ingenuity |
|
|
43
|
+
|
|
44
|
+
### Energy Utilization
|
|
45
|
+
```
|
|
46
|
+
Utilization = (Job EU / Survey EU) x 100
|
|
47
|
+
|
|
48
|
+
70-130% = Healthy
|
|
49
|
+
>130% = STRESS (burnout risk)
|
|
50
|
+
<70% = FRUSTRATION (flight risk)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Gas/Brake/Glue Framework
|
|
54
|
+
| Role | Trait | Function |
|
|
55
|
+
|------|-------|----------|
|
|
56
|
+
| Gas | High A | Growth, risk-taking |
|
|
57
|
+
| Brake | High D | Quality control |
|
|
58
|
+
| Glue | High B | Relationships, morale |
|
|
59
|
+
|
|
60
|
+
## Input Formats
|
|
61
|
+
|
|
62
|
+
- **JSON** - Extracted profiles from culture-index tool (recommended)
|
|
63
|
+
- **PDF** - Direct PDF analysis using Claude's vision
|
|
64
|
+
|
|
65
|
+
## Workflows
|
|
66
|
+
|
|
67
|
+
- `interpret-individual.md` - Single profile analysis
|
|
68
|
+
- `analyze-team.md` - Team composition assessment
|
|
69
|
+
- `detect-burnout.md` - Stress/frustration detection
|
|
70
|
+
- `compare-profiles.md` - Multi-profile compatibility
|
|
71
|
+
|
|
72
|
+
## Reference Documents
|
|
73
|
+
|
|
74
|
+
- `primary-traits.md` - A, B, C, D trait details
|
|
75
|
+
- `secondary-traits.md` - EU, L, I trait details
|
|
76
|
+
- `patterns-archetypes.md` - 19 patterns and archetypes
|
|
77
|
+
- `motivators.md` - Engagement strategies by trait
|
|
78
|
+
- `team-composition.md` - Gas/brake/glue framework
|
|
79
|
+
- `anti-patterns.md` - Common interpretation mistakes
|