@elizaos/skills 2.0.0-alpha.10
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/dist/formatter.d.ts +44 -0
- package/dist/formatter.d.ts.map +1 -0
- package/dist/formatter.js +182 -0
- package/dist/frontmatter.d.ts +39 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +105 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/loader.d.ts +33 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +362 -0
- package/dist/resolver.d.ts +18 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +90 -0
- package/dist/types.d.ts +201 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/package.json +57 -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/SKILL.md +85 -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/SKILL.md +297 -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/SKILL.md +67 -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-differential-review/.claude-plugin/plugin.json +10 -0
- package/skills/security-differential-review/README.md +109 -0
- package/skills/security-differential-review/SKILL.md +220 -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-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/SKILL.md +251 -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-fix-review/.claude-plugin/plugin.json +13 -0
- package/skills/security-fix-review/README.md +118 -0
- package/skills/security-fix-review/SKILL.md +264 -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/SKILL.md +117 -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/SKILL.md +333 -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/SKILL.md +109 -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/SKILL.md +168 -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/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/SKILL.md +292 -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/SKILL.md +349 -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/SKILL.md +91 -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/SKILL.md +104 -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/SKILL.md +142 -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
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Differential Review Methodology
|
|
2
|
+
|
|
3
|
+
Detailed phase-by-phase workflow for security-focused code review.
|
|
4
|
+
|
|
5
|
+
## Pre-Analysis: Baseline Context Building
|
|
6
|
+
|
|
7
|
+
**FIRST ACTION - Build complete baseline understanding:**
|
|
8
|
+
|
|
9
|
+
If `audit-context-building` skill is available:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Checkout baseline commit
|
|
13
|
+
git checkout <baseline_commit>
|
|
14
|
+
|
|
15
|
+
# Invoke audit-context-building skill on baseline codebase
|
|
16
|
+
# Scope = entire relevant project (e.g., packages/contracts/contracts/ for Solidity, src/ for Rust, etc.)
|
|
17
|
+
audit-context-building --scope [entire project or main contract directory] --focus invariants,trust-boundaries,validation-patterns,call-graphs,state-flows
|
|
18
|
+
|
|
19
|
+
# Examples:
|
|
20
|
+
# For Solidity: audit-context-building --scope packages/contracts/contracts
|
|
21
|
+
# For Rust: audit-context-building --scope src
|
|
22
|
+
# For full repo: audit-context-building --scope .
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Capture from baseline analysis:**
|
|
26
|
+
- System-wide invariants (what must ALWAYS be true across all code)
|
|
27
|
+
- Trust boundaries and privilege levels (who can do what)
|
|
28
|
+
- Validation patterns (what gets checked where - defense-in-depth)
|
|
29
|
+
- Complete call graphs for critical functions (who calls what)
|
|
30
|
+
- State flow diagrams (how state changes)
|
|
31
|
+
- External dependencies and trust assumptions
|
|
32
|
+
|
|
33
|
+
**Why this matters:**
|
|
34
|
+
- Understand what the code was SUPPOSED to do before changes
|
|
35
|
+
- Identify implicit security assumptions in baseline
|
|
36
|
+
- Detect when changes violate baseline invariants
|
|
37
|
+
- Know which patterns are system-wide vs local
|
|
38
|
+
- Catch when changes break defense-in-depth
|
|
39
|
+
|
|
40
|
+
**Store baseline context for reference during differential analysis.**
|
|
41
|
+
|
|
42
|
+
After baseline analysis, checkout back to head commit to analyze changes.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Phase 0: Intake & Triage
|
|
47
|
+
|
|
48
|
+
**Extract changes:**
|
|
49
|
+
```bash
|
|
50
|
+
# For commit range
|
|
51
|
+
git diff <base>..<head> --stat
|
|
52
|
+
git log <base>..<head> --oneline
|
|
53
|
+
|
|
54
|
+
# For PR
|
|
55
|
+
gh pr view <number> --json files,additions,deletions
|
|
56
|
+
|
|
57
|
+
# Get all changed files
|
|
58
|
+
git diff <base>..<head> --name-only
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**Assess codebase size:**
|
|
62
|
+
```bash
|
|
63
|
+
find . -name "*.sol" -o -name "*.rs" -o -name "*.go" -o -name "*.ts" | wc -l
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Classify complexity:**
|
|
67
|
+
- **SMALL**: <20 files → Deep analysis (read all deps)
|
|
68
|
+
- **MEDIUM**: 20-200 files → Focused analysis (1-hop deps)
|
|
69
|
+
- **LARGE**: 200+ files → Surgical (critical paths only)
|
|
70
|
+
|
|
71
|
+
**Risk score each file:**
|
|
72
|
+
- **HIGH**: Auth, crypto, external calls, value transfer, validation removal
|
|
73
|
+
- **MEDIUM**: Business logic, state changes, new public APIs
|
|
74
|
+
- **LOW**: Comments, tests, UI, logging
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Phase 1: Changed Code Analysis
|
|
79
|
+
|
|
80
|
+
For each changed file:
|
|
81
|
+
|
|
82
|
+
1. **Read both versions** (baseline and changed)
|
|
83
|
+
|
|
84
|
+
2. **Analyze each diff region:**
|
|
85
|
+
```
|
|
86
|
+
BEFORE: [exact code]
|
|
87
|
+
AFTER: [exact code]
|
|
88
|
+
CHANGE: [behavioral impact]
|
|
89
|
+
SECURITY: [implications]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
3. **Git blame removed code:**
|
|
93
|
+
```bash
|
|
94
|
+
# When was it added? Why?
|
|
95
|
+
git log -S "removed_code" --all --oneline
|
|
96
|
+
git blame <baseline> -- file.sol | grep "pattern"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Red flags:**
|
|
100
|
+
- Removed code from "fix", "security", "CVE" commits → CRITICAL
|
|
101
|
+
- Recently added (<1 month) then removed → HIGH
|
|
102
|
+
|
|
103
|
+
4. **Check for regressions (re-added code):**
|
|
104
|
+
```bash
|
|
105
|
+
git log -S "added_code" --all -p
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Pattern: Code added → removed for security → re-added now = REGRESSION
|
|
109
|
+
|
|
110
|
+
5. **Micro-adversarial analysis** for each change:
|
|
111
|
+
- What attack did removed code prevent?
|
|
112
|
+
- What new surface does new code expose?
|
|
113
|
+
- Can modified logic be bypassed?
|
|
114
|
+
- Are checks weaker? Edge cases covered?
|
|
115
|
+
|
|
116
|
+
6. **Generate concrete attack scenarios:**
|
|
117
|
+
```
|
|
118
|
+
SCENARIO: [attack goal]
|
|
119
|
+
PRECONDITIONS: [required state]
|
|
120
|
+
STEPS:
|
|
121
|
+
1. [specific action]
|
|
122
|
+
2. [expected outcome]
|
|
123
|
+
3. [exploitation]
|
|
124
|
+
WHY IT WORKS: [reference code change]
|
|
125
|
+
IMPACT: [severity + scope]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Phase 2: Test Coverage Analysis
|
|
131
|
+
|
|
132
|
+
**Identify coverage gaps:**
|
|
133
|
+
```bash
|
|
134
|
+
# Production code changes (exclude tests)
|
|
135
|
+
git diff <range> --name-only | grep -v "test"
|
|
136
|
+
|
|
137
|
+
# Test changes
|
|
138
|
+
git diff <range> --name-only | grep "test"
|
|
139
|
+
|
|
140
|
+
# For each changed function, search for tests
|
|
141
|
+
grep -r "test.*functionName" test/ --include="*.sol" --include="*.js"
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Risk elevation rules:**
|
|
145
|
+
- NEW function + NO tests → Elevate risk MEDIUM→HIGH
|
|
146
|
+
- MODIFIED validation + UNCHANGED tests → HIGH RISK
|
|
147
|
+
- Complex logic (>20 lines) + NO tests → HIGH RISK
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Phase 3: Blast Radius Analysis
|
|
152
|
+
|
|
153
|
+
**Calculate impact:**
|
|
154
|
+
```bash
|
|
155
|
+
# Count callers for each modified function
|
|
156
|
+
grep -r "functionName(" --include="*.sol" . | wc -l
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Classify blast radius:**
|
|
160
|
+
- 1-5 calls: LOW
|
|
161
|
+
- 6-20 calls: MEDIUM
|
|
162
|
+
- 21-50 calls: HIGH
|
|
163
|
+
- 50+ calls: CRITICAL
|
|
164
|
+
|
|
165
|
+
**Priority matrix:**
|
|
166
|
+
|
|
167
|
+
| Change Risk | Blast Radius | Priority | Analysis Depth |
|
|
168
|
+
|-------------|--------------|----------|----------------|
|
|
169
|
+
| HIGH | CRITICAL | P0 | Deep + all deps |
|
|
170
|
+
| HIGH | HIGH/MEDIUM | P1 | Deep |
|
|
171
|
+
| HIGH | LOW | P2 | Standard |
|
|
172
|
+
| MEDIUM | CRITICAL/HIGH | P1 | Standard + callers |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Phase 4: Deep Context Analysis
|
|
177
|
+
|
|
178
|
+
**If `audit-context-building` skill is available**, invoke it to help answer all the questions below for each HIGH RISK changed function:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# Run audit-context-building on the changed function and its dependencies
|
|
182
|
+
audit-context-building --scope [file containing changed function] --focus flow-analysis,call-graphs,invariants,root-cause
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**The audit-context-building skill will help you answer:**
|
|
186
|
+
|
|
187
|
+
1. **Map complete function flow:**
|
|
188
|
+
- Entry conditions (preconditions, requires, modifiers)
|
|
189
|
+
- State reads (which variables accessed)
|
|
190
|
+
- State writes (which variables modified)
|
|
191
|
+
- External calls (to contracts, APIs, system)
|
|
192
|
+
- Return values and side effects
|
|
193
|
+
|
|
194
|
+
2. **Trace internal calls:**
|
|
195
|
+
- List all functions called
|
|
196
|
+
- Recursively map their flows
|
|
197
|
+
- Build complete call graph
|
|
198
|
+
|
|
199
|
+
3. **Trace external calls:**
|
|
200
|
+
- Identify trust boundaries crossed
|
|
201
|
+
- List assumptions about external behavior
|
|
202
|
+
- Check for reentrancy risks
|
|
203
|
+
|
|
204
|
+
4. **Identify invariants:**
|
|
205
|
+
- What must ALWAYS be true?
|
|
206
|
+
- What must NEVER happen?
|
|
207
|
+
- Are invariants maintained after changes?
|
|
208
|
+
|
|
209
|
+
5. **Five Whys root cause:**
|
|
210
|
+
- WHY was this code changed?
|
|
211
|
+
- WHY did the original code exist?
|
|
212
|
+
- WHY might this break?
|
|
213
|
+
- WHY is this approach chosen?
|
|
214
|
+
- WHY could this fail in production?
|
|
215
|
+
|
|
216
|
+
**If `audit-context-building` skill is NOT available**, manually perform the line-by-line analysis above using Read, Grep, and code tracing.
|
|
217
|
+
|
|
218
|
+
**Cross-cutting pattern detection:**
|
|
219
|
+
```bash
|
|
220
|
+
# Find repeated validation patterns
|
|
221
|
+
grep -r "require.*amount > 0" --include="*.sol" .
|
|
222
|
+
grep -r "onlyOwner" --include="*.sol" .
|
|
223
|
+
|
|
224
|
+
# Check if any removed in diff
|
|
225
|
+
git diff <range> | grep "^-.*require.*amount > 0"
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Flag if removal breaks defense-in-depth.**
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
**Next steps:**
|
|
233
|
+
- For HIGH RISK changes, proceed to [adversarial.md](adversarial.md)
|
|
234
|
+
- For report generation, see [reporting.md](reporting.md)
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Common Vulnerability Patterns
|
|
2
|
+
|
|
3
|
+
Quick reference for detecting common security issues in code changes.
|
|
4
|
+
|
|
5
|
+
**Specialized Pattern Resources:**
|
|
6
|
+
For specific contexts, reference these additional pattern databases:
|
|
7
|
+
|
|
8
|
+
**Domain-Specific:**
|
|
9
|
+
- `domain-specific-audits/defi-bridges/resources/` - 127 bridge-specific findings
|
|
10
|
+
- `domain-specific-audits/tick-math/resources/` - 81 tick math findings
|
|
11
|
+
- `domain-specific-audits/merkle-trees/resources/` - 67 merkle tree findings
|
|
12
|
+
- [Check `domain-specific-audits/skills/` for additional domains]
|
|
13
|
+
|
|
14
|
+
**Solidity-Specific:**
|
|
15
|
+
- `not-so-smart-contracts` - Automated Solidity vulnerability detectors
|
|
16
|
+
- `token-integration-analyzer` - Token integration safety patterns
|
|
17
|
+
- `building-secure-contracts/development-guidelines` - Solidity best practices
|
|
18
|
+
|
|
19
|
+
These complement the generic patterns below.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Security Regressions
|
|
24
|
+
|
|
25
|
+
**Pattern:** Previously removed code is re-added
|
|
26
|
+
|
|
27
|
+
**Detection:**
|
|
28
|
+
```bash
|
|
29
|
+
# Code previously removed for security
|
|
30
|
+
git log -S "pattern" --all --grep="security\|fix\|CVE"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Red flags:**
|
|
34
|
+
- Commit message contains "security", "fix", "CVE", "vulnerability"
|
|
35
|
+
- Code removed <6 months ago
|
|
36
|
+
- No explanation in current PR for re-addition
|
|
37
|
+
|
|
38
|
+
**Example:**
|
|
39
|
+
```solidity
|
|
40
|
+
// Removed in commit abc123 "Fix reentrancy CVE-2024-1234"
|
|
41
|
+
// Re-added in current PR
|
|
42
|
+
function emergencyWithdraw() {
|
|
43
|
+
// REGRESSION: Reentrancy vulnerability re-introduced
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Double Decrease/Increase Bugs
|
|
50
|
+
|
|
51
|
+
**Pattern:** Same accounting operation twice for same event
|
|
52
|
+
|
|
53
|
+
**Detection:** Look for two state updates in related functions for same logical action
|
|
54
|
+
|
|
55
|
+
**Example:**
|
|
56
|
+
```solidity
|
|
57
|
+
// Request exit
|
|
58
|
+
function requestExit() {
|
|
59
|
+
balance[user] -= amount; // First decrease
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Process exit
|
|
63
|
+
function processExit() {
|
|
64
|
+
balance[user] -= amount; // Second decrease - BUG!
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Impact:** User balance decremented twice, protocol loses funds
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Missing Validation
|
|
73
|
+
|
|
74
|
+
**Pattern:** Removed `require`/`assert`/`check` without replacement
|
|
75
|
+
|
|
76
|
+
**Detection:**
|
|
77
|
+
```bash
|
|
78
|
+
git diff <range> | grep "^-.*require"
|
|
79
|
+
git diff <range> | grep "^-.*assert"
|
|
80
|
+
git diff <range> | grep "^-.*revert"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Questions to ask:**
|
|
84
|
+
- Was validation moved elsewhere?
|
|
85
|
+
- Is it redundant (defensive programming)?
|
|
86
|
+
- Does removal expose vulnerability?
|
|
87
|
+
|
|
88
|
+
**Example:**
|
|
89
|
+
```diff
|
|
90
|
+
function withdraw(uint256 amount) {
|
|
91
|
+
- require(amount > 0, "Zero amount");
|
|
92
|
+
- require(amount <= balance[msg.sender], "Insufficient");
|
|
93
|
+
balance[msg.sender] -= amount;
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Risk:** Zero-amount withdrawals, underflow attacks now possible
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Underflow/Overflow
|
|
102
|
+
|
|
103
|
+
**Pattern:** Arithmetic without SafeMath or checks
|
|
104
|
+
|
|
105
|
+
**Detection:**
|
|
106
|
+
- Look for `+`, `-`, `*`, `/` in Solidity <0.8.0
|
|
107
|
+
- Check if SafeMath removed
|
|
108
|
+
- Look for unchecked blocks in Solidity >=0.8.0
|
|
109
|
+
|
|
110
|
+
**Example:**
|
|
111
|
+
```solidity
|
|
112
|
+
// Solidity 0.7 without SafeMath
|
|
113
|
+
balance[user] -= amount; // Can underflow if amount > balance
|
|
114
|
+
|
|
115
|
+
// Solidity 0.8+ with unchecked
|
|
116
|
+
unchecked {
|
|
117
|
+
balance[user] -= amount; // Deliberately bypasses overflow check
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Risk:** Integer wrap-around leads to incorrect balances
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Reentrancy
|
|
126
|
+
|
|
127
|
+
**Pattern:** External call before state update
|
|
128
|
+
|
|
129
|
+
**Detection:** Look for CEI (Checks-Effects-Interactions) pattern violations
|
|
130
|
+
|
|
131
|
+
**Example:**
|
|
132
|
+
```solidity
|
|
133
|
+
// VULNERABLE: External call before state update
|
|
134
|
+
function withdraw() {
|
|
135
|
+
uint amount = balances[msg.sender];
|
|
136
|
+
(bool success,) = msg.sender.call{value: amount}(""); // External call FIRST
|
|
137
|
+
require(success);
|
|
138
|
+
balances[msg.sender] = 0; // State update AFTER
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// SAFE: State update before external call
|
|
142
|
+
function withdraw() {
|
|
143
|
+
uint amount = balances[msg.sender];
|
|
144
|
+
balances[msg.sender] = 0; // State update FIRST
|
|
145
|
+
(bool success,) = msg.sender.call{value: amount}(""); // External call AFTER
|
|
146
|
+
require(success);
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Impact:** Attacker can recursively call withdraw() before balance is zeroed
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Access Control Bypass
|
|
155
|
+
|
|
156
|
+
**Pattern:** Removed or relaxed permission checks
|
|
157
|
+
|
|
158
|
+
**Detection:**
|
|
159
|
+
```bash
|
|
160
|
+
git diff <range> | grep "^-.*onlyOwner"
|
|
161
|
+
git diff <range> | grep "^-.*onlyAdmin"
|
|
162
|
+
git diff <range> | grep "^-.*require.*msg.sender"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Questions:**
|
|
166
|
+
- Who can now call this function?
|
|
167
|
+
- What's the new trust model?
|
|
168
|
+
- Was check moved to caller?
|
|
169
|
+
|
|
170
|
+
**Example:**
|
|
171
|
+
```diff
|
|
172
|
+
- function setConfig(uint value) external onlyOwner {
|
|
173
|
+
+ function setConfig(uint value) external {
|
|
174
|
+
config = value;
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Risk:** Any user can now modify critical configuration
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Race Conditions / Front-Running
|
|
183
|
+
|
|
184
|
+
**Pattern:** State-dependent logic without protection
|
|
185
|
+
|
|
186
|
+
**Detection:** Look for two-step processes without commit-reveal or timelocks
|
|
187
|
+
|
|
188
|
+
**Example:**
|
|
189
|
+
```solidity
|
|
190
|
+
// Step 1: Approve
|
|
191
|
+
function approve(address spender, uint amount) {
|
|
192
|
+
allowance[msg.sender][spender] = amount;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Step 2: User can front-run between approval changes
|
|
196
|
+
// Attacker sees tx changing approval from 100 to 50
|
|
197
|
+
// Front-runs to spend 100, then spends 50 after = 150 total
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
**Risk:** MEV/front-running exploits state transitions
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Timestamp Manipulation
|
|
205
|
+
|
|
206
|
+
**Pattern:** Security logic depending on `block.timestamp`
|
|
207
|
+
|
|
208
|
+
**Detection:**
|
|
209
|
+
```bash
|
|
210
|
+
grep -r "block.timestamp" --include="*.sol"
|
|
211
|
+
grep -r "now\b" --include="*.sol" # Solidity <0.7
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Example:**
|
|
215
|
+
```solidity
|
|
216
|
+
// VULNERABLE
|
|
217
|
+
require(block.timestamp > deadline, "Too early");
|
|
218
|
+
// Miner can manipulate timestamp by ~15 seconds
|
|
219
|
+
|
|
220
|
+
// SAFER
|
|
221
|
+
require(block.number > deadlineBlock, "Too early");
|
|
222
|
+
// Block numbers are harder to manipulate
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Risk:** Miners can manipulate timestamps within tolerance
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Unchecked Return Values
|
|
230
|
+
|
|
231
|
+
**Pattern:** External call without checking success
|
|
232
|
+
|
|
233
|
+
**Detection:**
|
|
234
|
+
```bash
|
|
235
|
+
git diff <range> | grep "\.call\|\.send\|\.transfer"
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Example:**
|
|
239
|
+
```solidity
|
|
240
|
+
// VULNERABLE
|
|
241
|
+
token.transfer(user, amount); // Ignores return value
|
|
242
|
+
|
|
243
|
+
// SAFE
|
|
244
|
+
require(token.transfer(user, amount), "Transfer failed");
|
|
245
|
+
// Or use SafeERC20 wrapper
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Risk:** Silent failures lead to inconsistent state
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Denial of Service
|
|
253
|
+
|
|
254
|
+
**Pattern:** Unbounded loops, external call reverts blocking execution
|
|
255
|
+
|
|
256
|
+
**Detection:**
|
|
257
|
+
- Arrays that grow without limit
|
|
258
|
+
- Loops over user-controlled array
|
|
259
|
+
- Critical function depends on external call success
|
|
260
|
+
|
|
261
|
+
**Example:**
|
|
262
|
+
```solidity
|
|
263
|
+
// DOS: Attacker adds many users, making loop too expensive
|
|
264
|
+
function distributeRewards() {
|
|
265
|
+
for (uint i = 0; i < users.length; i++) {
|
|
266
|
+
users[i].transfer(reward); // Runs out of gas
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Risk:** Function becomes unusable due to gas limits
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Quick Detection Commands
|
|
276
|
+
|
|
277
|
+
**Find removed security checks:**
|
|
278
|
+
```bash
|
|
279
|
+
git diff <range> | grep "^-" | grep -E "require|assert|revert"
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
**Find new external calls:**
|
|
283
|
+
```bash
|
|
284
|
+
git diff <range> | grep "^+" | grep -E "\.call|\.delegatecall|\.staticcall"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
**Find changed access modifiers:**
|
|
288
|
+
```bash
|
|
289
|
+
git diff <range> | grep -E "onlyOwner|onlyAdmin|internal|private|public|external"
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Find arithmetic changes:**
|
|
293
|
+
```bash
|
|
294
|
+
git diff <range> | grep -E "\+|\-|\*|/"
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
**For detailed analysis workflow, see [methodology.md](methodology.md)**
|
|
300
|
+
**For building exploit scenarios, see [adversarial.md](adversarial.md)**
|