{"slug":"trailofbits-substrate-vulnerability-scanner","name":"substrate-vulnerability-scanner","description":"Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.","long_description":"---\nname: substrate-vulnerability-scanner\ndescription: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.\n---\n\n# Substrate Vulnerability Scanner\n\n## 1. Purpose\n\nSystematically scan Substrate runtime modules (pallets) for platform-specific security vulnerabilities that can cause node crashes, DoS attacks, or unauthorized access. This skill encodes 7 critical vulnerability patterns unique to Substrate/FRAME-based chains.\n\n## 2. When to Use This Skill\n\n- Auditing custom Substrate pallets\n- Reviewing FRAME runtime code\n- Pre-launch security assessment of Substrate chains (Polkadot parachains, standalone chains)\n- Validating dispatchable extrinsic functions\n- Reviewing weight calculation functions\n- Assessing unsigned transaction validation logic\n\n## 3. Platform Detection\n\n### File Extensions & Indicators\n- **Rust files**: `.rs`\n\n### Language/Framework Markers\n```rust\n// Substrate/FRAME indicators\n#[pallet]\npub mod pallet {\n    use frame_support::pallet_prelude::*;\n    use frame_system::pallet_prelude::*;\n\n    #[pallet::config]\n    pub trait Config: frame_system::Config { }\n\n    #[pallet::call]\n    impl<T: Config> Pallet<T> {\n        #[pallet::weight(10_000)]\n        pub fn example_function(origin: OriginFor<T>) -> DispatchResult { }\n    }\n}\n\n// Common patterns\nDispatchResult, DispatchError\nensure!, ensure_signed, ensure_root\nStorageValue, StorageMap, StorageDoubleMap\n#[pallet::storage]\n#[pallet::call]\n#[pallet::weight]\n#[pallet::validate_unsigned]\n```\n\n### Project Structure\n- `pallets/*/lib.rs` - Pallet implementations\n- `runtime/lib.rs` - Runtime configuration\n- `benchmarking.rs` - Weight benchmarks\n- `Cargo.toml` with `frame-*` dependencies\n\n### Tool Support\n- **cargo-fuzz**: Fuzz testing for Rust\n- **test-fuzz**: Property-based testing framework\n- **benchmarking framework**: Built-in weight calculation\n- **try-runtime**: Runtime migration testing\n\n---\n\n## 4. How This Skill Works\n\nWhen invoked, I will:\n\n1. **Search your codebase** for Substrate pallets\n2. **Analyze each pallet** for the 7 vulnerability patterns\n3. **Report findings** with file references and severity\n4. **Provide fixes** for each identified issue\n5. **Check weight calculations** and origin validation\n\n---\n\n## 5. Vulnerability Patterns (7 Critical Patterns)\n\nI check for 7 critical vulnerability patterns unique to Substrate/FRAME. For detailed detection patterns, code examples, mitigations, and testing strategies, see [VULNERABILITY_PATTERNS.md](resources/VULNERABILITY_PATTERNS.md).\n\n### Pattern Summary:\n\n1. **Arithmetic Overflow** ⚠️ CRITICAL\n   - Direct `+`, `-`, `*`, `/` operators wrap in release mode\n   - Must use `checked_*` or `saturating_*` methods\n   - Affects balance/token calculations, reward/fee math\n\n2. **Don't Panic** ⚠️ CRITICAL - DoS\n   - Panics cause node to stop processing blocks\n   - No `unwrap()`, `expect()`, array indexing without bounds check\n   - All user input must be validated with `ensure!`\n\n3. **Weights and Fees** ⚠️ CRITICAL - DoS\n   - Incorrect weights allow spam attacks\n   - Fixed weights for variable-cost operations enable DoS\n   - Must use benchmarking framework, bound all input parameters\n\n4. **Verify First, Write Last** ⚠️ HIGH (Pre-v0.9.25)\n   - Storage writes before validation persist on error (pre-v0.9.25)\n   - Pattern: validate → write → emit event\n   - Upgrade to v0.9.25+ or use manual `#[transactional]`\n\n5. **Unsigned Transaction Validation** ⚠️ HIGH\n   - Insufficient validation allows spam/replay attacks\n   - Prefer signed transactions\n   - If unsigned: validate parameters, replay protection, authenticate source\n\n6. **Bad Randomness** ⚠️ MEDIUM\n   - `pallet_randomness_collective_flip` vulnerable to collusion\n   - Must use BABE randomness (`pallet_babe::RandomnessFromOneEpochAgo`)\n   - Use `random(subject)` not `random_seed()`\n\n7. **Bad Origin** ⚠️ CRITICAL\n   - `ensure_signed` allows any user for privileged operations\n   - Must use `ensure_root` or custom origins (ForceOrigin, AdminOrigin)\n   - Origin types must be properly configured in runtime\n\nFor complete vulnerability patterns with code examples, see [VULNERABILITY_PATTERNS.md](resources/VULNERABILITY_PATTERNS.md).\n\n---\n\n## 6. Scanning Workflow\n\n### Step 1: Platform Identification\n1. Verify Substrate/FRAME framework usage\n2. Check Substrate version (v0.9.25+ has transactional storage)\n3. Locate pallet implementations (`pallets/*/lib.rs`)\n4. Identify runtime configuration (`runtime/lib.rs`)\n\n### Step 2: Dispatchable Analysis\nFor each `#[pallet::call]` function:\n- [ ] Arithmetic: Uses checked/saturating operations?\n- [ ] Panics: No unwrap/expect/indexing?\n- [ ] Weights: Proportional to cost, bounded inputs?\n- [ ] Origin: Appropriate validation level?\n- [ ] Validation: All checks before storage writes?\n\n### Step 3: Panic Sweep\n```bash\n# Search for panic-prone patterns\nrg \"unwrap\\(\\)\" pallets/\nrg \"expect\\(\" pallets/\nrg \"\\[.*\\]\" pallets/  # Array indexing\nrg \" as u\\d+\" pallets/  # Type casts\nrg \"\\.unwrap_or\" pallets/\n```\n\n### Step 4: Arithmetic Safety Check\n```bash\n# Find direct arithmetic\nrg \" \\+ |\\+=| - |-=| \\* |\\*=| / |/=\" pallets/\n\n# Should find checked/saturating alternatives instead\nrg \"checked_add|checked_sub|checked_mul|checked_div\" pallets/\nrg \"saturating_add|saturating_sub|saturating_mul\" pallets/\n```\n\n### Step 5: Weight Analysis\n- [ ] Run benchmarking: `cargo test --features runtime-benchmarks`\n- [ ] Verify weights match computational cost\n- [ ] Check for bounded input parameters\n- [ ] Review weight calculation functions\n\n### Step 6: Origin & Privilege Review\n```bash\n# Find privileged operations\nrg \"ensure_signed\" pallets/ | grep -E \"pause|emergency|admin|force|sudo\"\n\n# Should use ensure_root or custom origins\nrg \"ensure_root|ForceOrigin|AdminOrigin\" pallets/\n```\n\n### Step 7: Testing Review\n- [ ] Unit tests cover all dispatchables\n- [ ] Fuzz tests for panic conditions\n- [ ] Benchmarks for weight calculation\n- [ ] try-runtime tests for migrations\n\n---\n\n## 7. Priority Guidelines\n\n### Critical (Immediate Fix Required)\n- Arithmetic overflow (token creation, balance manipulation)\n- Panic DoS (node crash risk)\n- Bad origin (unauthorized privileged operations)\n\n### High (Fix Before Launch)\n- Incorrect weights (DoS via spam)\n- Verify-first violations (state corruption, pre-v0.9.25)\n- Unsigned validation issues (spam, replay attacks)\n\n### Medium (Address in Audit)\n- Bad randomness (manipulation possible but limited impact)\n\n---\n\n## 8. Testing Recommendations\n\n### Fuzz Testing\n```rust\n// Use test-fuzz for property-based testing\n#[cfg(test)]\nmod tests {\n    use test_fuzz::test_fuzz;\n\n    #[test_fuzz]\n    fn fuzz_transfer(from: AccountId, to: AccountId, amount: u128) {\n        // Should never panic\n        let _ = Pallet::transfer(from, to, amount);\n    }\n\n    #[test_fuzz]\n    fn fuzz_no_panics(call: Call) {\n        // No dispatchable should panic\n        let _ = call.dispatch(origin);\n    }\n}\n```\n\n### Benchmarking\n```bash\n# Run benchmarks to generate weights\ncargo build --release --features runtime-benchmarks\n./target/release/node benchmark pallet \\\n    --chain dev \\\n    --pallet pallet_example \\\n    --extrinsic \"*\" \\\n    --steps 50 \\\n    --repeat 20\n```\n\n### try-runtime\n```bash\n# Test runtime upgrades\ncargo build --release --features try-runtime\ntry-runtime --runtime ./target/release/wbuild/runtime.wasm \\\n    on-runtime-upgrade live --uri wss://rpc.polkadot.io\n```\n\n---\n\n## 9. Additional Resources\n\n- **Building Secure Contracts**: `building-secure-contracts/not-so-smart-contracts/substrate/`\n- **Substrate Documentation**: https://docs.substrate.io/\n- **FRAME Documentation**: https://paritytech.github.io/substrate/master/frame_support/\n- **test-fuzz**: https://github.com/trailofbits/test-fuzz\n- **Substrate StackExchange**: https://substrate.stackexchange.com/\n\n---\n\n## 10. Quick Reference Checklist\n\nBefore completing Substrate pallet audit:\n\n**Arithmetic Safety (CRITICAL)**:\n- [ ] No direct `+`, `-`, `*`, `/` operators in dispatchables\n- [ ] All arithmetic uses `checked_*` or `saturating_*`\n- [ ] Type conversions use `try_into()` with error handling\n\n**Panic Prevention (CRITICAL)**:\n- [ ] No `unwrap()` or `expect()` in dispatchables\n- [ ] No direct array/slice indexing without bounds check\n- [ ] All user inputs validated with `ensure!`\n- [ ] Division operations check for zero divisor\n\n**Weights & DoS (CRITICAL)**:\n- [ ] Weights proportional to computational cost\n- [ ] Input parameters have maximum bounds\n- [ ] Benchmarking used to determine weights\n- [ ] No free (zero-weight) expensive operations\n\n**Access Control (CRITICAL)**:\n- [ ] Privileged operations use `ensure_root` or custom origins\n- [ ] `ensure_signed` only for user-level operations\n- [ ] Origin types properly configured in runtime\n- [ ] Sudo pallet removed before production\n\n**Storage Safety (HIGH)**:\n- [ ] Using Substrate v0.9.25+ OR manual `#[transactional]`\n- [ ] Validation before storage writes\n- [ ] Events emitted after successful operations\n\n**Other (MEDIUM)**:\n- [ ] Unsigned transactions use signed alternative if possible\n- [ ] If unsigned: proper validation, replay protection, authentication\n- [ ] BABE randomness used (not RandomnessCollectiveFlip)\n- [ ] Randomness uses `random(subject)` not `random_seed()`\n\n**Testing**:\n- [ ] Unit tests for all dispatchables\n- [ ] Fuzz tests to find panics\n- [ ] Benchmarks generated and verified\n- [ ] try-runtime tests for migrations\n","tagline":"Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.","category":"security","tags":["agent-skill"],"author":"trailofbits","verified":false,"attribution":{"status":"registry_indexed","statusLabel":"Registry indexed","shortLabel":"REGISTRY INDEXED","sourceLabel":"recursive skill source sync","sourceDetail":"trailofbits/skills","creatorName":"trailofbits","creatorUrl":"https://github.com/trailofbits","sourceUrl":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","indexedBy":"OpenAgentSkill community index","claimUrl":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner#claim-this-skill","claimCta":"Claim this skill","trustNote":"This listing was indexed from public sources and is not marked official until a maintainer claim is approved.","publicNote":"Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals."},"stats":{"stars":6844,"forks":586,"verified_installs":0,"successful_runs":0,"total_outcomes":0,"rating":0,"review_count":0,"quality_score":49.95},"quality":{"score":85,"tier":"excellent","label":"Excellent","summary":"High-confidence pick with strong adoption and healthy maintenance signals.","signals":[{"label":"GitHub stars","value":"6.8K","tone":"positive"},{"label":"Freshness","value":"13d ago","tone":"positive"},{"label":"Install ready","value":"Yes","tone":"positive"},{"label":"License","value":"CC-BY-SA-4.0","tone":"neutral"}],"warnings":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review)."]},"trust":{"version":"trust-score-v5","score":62,"base_score":70,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["62/100 Trust Score v5","70/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":94,"weight":0.13,"status":"pass","detail":"6.8K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":88,"weight":0.08,"status":"pass","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"13d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"CC-BY-SA-4.0"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":46,"weight":0.12,"status":"warn","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":24,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"6.8K GitHub stars"},{"status":"pass","label":"Stars/forks activity","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"13d since push"},{"status":"pass","label":"License clarity","detail":"CC-BY-SA-4.0"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"pass","label":"OpenAgentSkill usage","detail":"8 views, 0 install copies"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Large GitHub adoption signal","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"6.8K GitHub stars","repoActivity":"6.8K stars, 586 forks","lastPushed":"13d since push","license":"CC-BY-SA-4.0","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","13d since push","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v4","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms","source_version"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["security","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","trust_score":62,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["security","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":70,"tier":"review","label":"Manual review","summary":"Potentially useful, but at least one trust signal needs human inspection."}}},"trust_score_v5":{"version":"trust-score-v5","score":62,"base_score":70,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["62/100 Trust Score v5","70/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":94,"weight":0.13,"status":"pass","detail":"6.8K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":88,"weight":0.08,"status":"pass","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"13d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"CC-BY-SA-4.0"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":46,"weight":0.12,"status":"warn","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":24,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"6.8K GitHub stars"},{"status":"pass","label":"Stars/forks activity","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"13d since push"},{"status":"pass","label":"License clarity","detail":"CC-BY-SA-4.0"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"pass","label":"OpenAgentSkill usage","detail":"8 views, 0 install copies"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Large GitHub adoption signal","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"6.8K GitHub stars","repoActivity":"6.8K stars, 586 forks","lastPushed":"13d since push","license":"CC-BY-SA-4.0","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","13d since push","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v4","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms","source_version"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["security","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","trust_score":62,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["security","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":70,"tier":"review","label":"Manual review","summary":"Potentially useful, but at least one trust signal needs human inspection."}}},"trust_score_v4":{"version":"trust-score-v4","score":70,"tier":"review","label":"Manual review","summary":"Potentially useful, but at least one trust signal needs human inspection.","recommendedAction":"Inspect the repository, license, and recent activity before connecting it to agent workflows.","dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":94,"weight":0.13,"status":"pass","detail":"6.8K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":88,"weight":0.08,"status":"pass","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"13d since push"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"CC-BY-SA-4.0"},{"id":"documentation","label":"README/SKILL.md completeness","score":86,"weight":0.14,"status":"pass","detail":"Metadata includes enough usage and workflow context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":46,"weight":0.12,"status":"warn","detail":"command execution surface, credential or environment access"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":24,"weight":0.07,"status":"fail","detail":"secrets or environment access, shell or command execution"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"id":"review_status","label":"Review status","score":66,"weight":0.05,"status":"info","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"6.8K GitHub stars"},{"status":"pass","label":"Stars/forks activity","detail":"6.8K stars, 586 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"13d since push"},{"status":"pass","label":"License clarity","detail":"CC-BY-SA-4.0"},{"status":"pass","label":"README/SKILL.md completeness","detail":"Metadata includes enough usage and workflow context"},{"status":"warn","label":"Dependency/runtime risk","detail":"command execution surface, credential or environment access"},{"status":"pass","label":"Install availability","detail":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"fail","label":"Permission surface","detail":"secrets or environment access, shell or command execution"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner"},{"status":"info","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"pass","label":"OpenAgentSkill usage","detail":"8 views, 0 install copies"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Large GitHub adoption signal","Install command has no obvious high-risk pattern"],"warnings":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"],"evidence":{"stars":"6.8K GitHub stars","repoActivity":"6.8K stars, 586 forks","lastPushed":"13d since push","license":"CC-BY-SA-4.0","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"installReadiness":{"ready":true,"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","13d since push"]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Human review or sandbox validation is required before automatic installation."},"bestFor":["security","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"outcome_stats":null,"safety":{"score":37,"level":"avoid_auto_install","label":"Avoid automatic install","safety_tier":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","summary":"This skill should not be selected by an agent without explicit human security review.","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","auto_install_policy":"block","reasons":["Metadata combines secrets access with shell or command execution","High-risk permission hints: Shell or command execution, Secrets or environment access"]},"auto_install_allowed":false,"human_review_required":true,"blocked":true,"audit_risk":"needs_review","permission_hints":[{"id":"shell","label":"Shell or command execution","reason":"Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.","severity":"high"},{"id":"network","label":"Network access","reason":"Skill likely fetches remote pages, APIs, repositories, or external services.","severity":"medium"},{"id":"filesystem","label":"Filesystem access","reason":"Skill may read or write project files, documents, generated artifacts, or local workspace state.","severity":"medium"},{"id":"secrets","label":"Secrets or environment access","reason":"Skill metadata references credentials, tokens, environment variables, or secret-bearing workflows.","severity":"high"},{"id":"database","label":"Database access","reason":"Skill may inspect schemas, query databases, or work with persistent stores.","severity":"medium"}],"policy_warnings":["High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review"],"constraints_applied":{"max_risk":"medium","needs_install_command":true,"min_stars":0}},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","badge":"BLOCKED","auto_install_policy":"block","auto_install_allowed":false,"blocked":true,"human_review_required":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","reasons":["Metadata combines secrets access with shell or command execution","High-risk permission hints: Shell or command execution, Secrets or environment access"]},"eval":{"version":"openagentskill-skill-eval-v1","status":"failed","score":70,"risk_level":"high","decision":{"recommendation":"do_not_auto_install","reason":"Agent safety gate: This skill should not be selected by an agent without explicit human security review.","auto_install_allowed":false,"policy":"block","human_review_required":true},"blockers":["Agent safety gate: This skill should not be selected by an agent without explicit human security review.","Permission surface: secrets or environment access, shell or command execution"],"warnings":["Trust score: Potentially useful, but at least one trust signal needs human inspection.","Audit score: Needs review","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"],"validation_plan":["Inspect repository, README/SKILL.md, license, and recent commits before production use.","Install in an isolated workspace or sandbox with no production secrets available.","Run the smallest representative task and record files touched, commands run, network access, and outputs.","Compare the selected skill against at least one alternative when the eval status is review or failed.","Promote only after the agent reports a successful verification result and unresolved warnings are accepted."],"checks":[{"id":"task_fit","label":"Task fit","status":"pass","score":84,"required_for_auto_install":true,"detail":"Task wording matches this skill metadata.","evidence":["Evaluate substrate-vulnerability-scanner before installing it in an agent workflow","security","GitHub automation workflows; Claude Code teams; teams that value GitHub adoption signals"]},{"id":"install_path","label":"Install path","status":"pass","score":92,"required_for_auto_install":true,"detail":"Install handoff is available.","evidence":["npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"]},{"id":"install_safety","label":"Install command safety","status":"pass","score":92,"required_for_auto_install":true,"detail":"standard package or runtime install path","evidence":["npx skills add trailofbits/skills --skill substrate-vulnerability-scanner"]},{"id":"trust_score","label":"Trust score","status":"warn","score":70,"required_for_auto_install":true,"detail":"Potentially useful, but at least one trust signal needs human inspection.","evidence":["Manual review","6.8K GitHub stars","CC-BY-SA-4.0"]},{"id":"audit_score","label":"Audit score","status":"warn","score":81,"required_for_auto_install":true,"detail":"Needs review","evidence":["Dependency or permission surface needs review"]},{"id":"agent_safety_gate","label":"Agent safety gate","status":"fail","score":37,"required_for_auto_install":true,"detail":"This skill should not be selected by an agent without explicit human security review.","evidence":["Do not auto-install. Inspect the source, dependencies, and permission surface first.","Metadata combines secrets access with shell or command execution"]},{"id":"readme_skillmd_completeness","label":"README/SKILL.md completeness","status":"pass","score":86,"required_for_auto_install":false,"detail":"Metadata includes enough usage and workflow context","evidence":["Strong README/SKILL.md context"]},{"id":"license_clarity","label":"License clarity","status":"pass","score":86,"required_for_auto_install":true,"detail":"CC-BY-SA-4.0","evidence":["CC-BY-SA-4.0"]},{"id":"recent_maintenance","label":"Recent maintenance","status":"pass","score":100,"required_for_auto_install":false,"detail":"13d since push","evidence":["13d since push"]},{"id":"permission_surface","label":"Permission surface","status":"fail","score":24,"required_for_auto_install":true,"detail":"secrets or environment access, shell or command execution","evidence":["Shell or command execution: high","Network access: medium","Filesystem access: medium"]},{"id":"alternatives","label":"Alternatives available","status":"info","score":55,"required_for_auto_install":false,"detail":"No close alternatives were found in the current shortlist.","evidence":[]}],"endpoints":{"web":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner/evals","api":"/api/agent/evals?slug=trailofbits-substrate-vulnerability-scanner","text":"/api/agent/evals?slug=trailofbits-substrate-vulnerability-scanner&format=text"}},"agent_readable_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"trailofbits-substrate-vulnerability-scanner","name":"substrate-vulnerability-scanner","description":"Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.","category":"security","url":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","github_repo":"trailofbits/skills"},"suited_tasks":["GitHub automation workflows","Claude Code teams","teams that value GitHub adoption signals","Inspect repository metadata","Compare code changes","Write concise engineering summaries","Search sources","Extract claims"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","CLI"],"install":{"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add trailofbits-substrate-vulnerability-scanner"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"substrate-vulnerability-scanner\" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"substrate-vulnerability-scanner\" as a Claude Code skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"substrate-vulnerability-scanner\" from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/trailofbits-substrate-vulnerability-scanner/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/trailofbits-substrate-vulnerability-scanner"},"trust":{"score":70,"label":"Manual review","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"6.8K GitHub stars","repoActivity":"6.8K stars, 586 forks","lastPushed":"13d since push","license":"CC-BY-SA-4.0","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["security","agent-skill"],"known_risks":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":81,"risk_level":"needs_review","risk_label":"Needs review","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":85,"label":"Excellent"},"supply":{"track":"Coding and developer agents","scenario":"GitHub automation","maintenance":"13d since push","risk":"Needs review"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","production agents without a repository review","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints."],"agent_contract":{"task_input":"Use substrate-vulnerability-scanner in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 70/100 Manual review","Audit: 81/100 Needs review","Safety: 37/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"trailofbits-substrate-vulnerability-scanner (substrate-vulnerability-scanner)","install_command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","risk_summary":"Needs review; Blocked for auto-install; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"trailofbits-substrate-vulnerability-scanner","task":"Use substrate-vulnerability-scanner in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner","api":"https://www.openagentskill.com/api/agent/skills/trailofbits-substrate-vulnerability-scanner","audit":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=trailofbits-substrate-vulnerability-scanner&task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/trailofbits-substrate-vulnerability-scanner/install","manifest":"https://www.openagentskill.com/api/registry/manifest/trailofbits-substrate-vulnerability-scanner"}},"machine_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"trailofbits-substrate-vulnerability-scanner","name":"substrate-vulnerability-scanner","description":"Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets.","category":"security","url":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","github_repo":"trailofbits/skills"},"suited_tasks":["GitHub automation workflows","Claude Code teams","teams that value GitHub adoption signals","Inspect repository metadata","Compare code changes","Write concise engineering summaries","Search sources","Extract claims"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","CLI"],"install":{"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add trailofbits-substrate-vulnerability-scanner"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"Install the \"substrate-vulnerability-scanner\" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"substrate-vulnerability-scanner\" as a Claude Code skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"substrate-vulnerability-scanner\" from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes."}],"handoff_url":"https://www.openagentskill.com/api/skills/trailofbits-substrate-vulnerability-scanner/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/trailofbits-substrate-vulnerability-scanner"},"trust":{"score":70,"label":"Manual review","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"6.8K GitHub stars","repoActivity":"6.8K stars, 586 forks","lastPushed":"13d since push","license":"CC-BY-SA-4.0","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","installSafety":"standard package or runtime install path","permissionSurface":"secrets or environment access, shell or command execution","documentation":"Strong README/SKILL.md context","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["security","agent-skill"],"known_risks":["SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":81,"risk_level":"needs_review","risk_label":"Needs review","warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access"]},"safety_gate":{"tier":"blocked","label":"Blocked for auto-install","auto_install_policy":"block","auto_install_allowed":false,"human_review_required":true,"blocked":true,"recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first."},"quality":{"score":85,"label":"Excellent"},"supply":{"track":"Coding and developer agents","scenario":"GitHub automation","maintenance":"13d since push","risk":"Needs review"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","production agents without a repository review","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","High-risk permission hints: Shell or command execution, Secrets or environment access","Dependency or permission surface needs review","Permission surface may require sandboxing","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints."],"agent_contract":{"task_input":"Use substrate-vulnerability-scanner in an agent workflow","recommended_action":"Do not auto-install. Inspect the source, dependencies, and permission surface first.","install_policy":"block","minimum_review_before_use":["Trust: 70/100 Manual review","Audit: 81/100 Needs review","Safety: 37/100 Avoid automatic install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"trailofbits-substrate-vulnerability-scanner (substrate-vulnerability-scanner)","install_command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","risk_summary":"Needs review; Blocked for auto-install; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"trailofbits-substrate-vulnerability-scanner","task":"Use substrate-vulnerability-scanner in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner","api":"https://www.openagentskill.com/api/agent/skills/trailofbits-substrate-vulnerability-scanner","audit":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=trailofbits-substrate-vulnerability-scanner&task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20substrate-vulnerability-scanner%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/trailofbits-substrate-vulnerability-scanner/install","manifest":"https://www.openagentskill.com/api/registry/manifest/trailofbits-substrate-vulnerability-scanner"}},"supply_profile":{"track":{"slug":"coding","label":"Coding and developer agents","shortLabel":"Coding","description":"Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills."},"scenario":{"label":"GitHub automation","description":"I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.","useCases":[{"slug":"github-automation","title":"GitHub automation"},{"slug":"research-agents","title":"Research agents"},{"slug":"coding-agents","title":"Coding agents"}]},"applicableAgents":["Claude Code","CLI","Codex","Cursor"],"install":{"ready":true,"command":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","primaryTarget":"CLI","targetCount":4},"githubQuality":{"stars":6844,"starsLabel":"6.8K","forks":586,"license":"CC-BY-SA-4.0","qualityScore":85,"trustScore":70,"auditScore":81},"maintenance":{"status":"fresh","label":"13d since push","daysSincePush":13,"lastPushedAt":"2026-08-25T13:19:32+00:00"},"risk":{"level":"needs_review","label":"Needs review","requiresReview":true,"notes":["Dependency or permission surface needs review","Permission surface may require sandboxing","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints."]},"coverageTags":["Coding","GitHub automation","security","agent-skill"]},"audit":{"audit_score":81,"risk_level":"needs_review","risk_label":"Needs review","quality_score":85,"trust_score":70,"maintenance_score":100,"security_score":72,"install_score":92,"warnings":["Dependency or permission surface needs review","Permission surface may require sandboxing","SKILL.md does not explicitly state limitations (e.g., static analysis only, potential false positives, need for manual review).","No clear output format specification for findings (e.g., JSON, markdown report).","The skill assumes the agent can search the codebase but does not specify how to handle large codebases or performance constraints.","Quality score needs review","Permission surface needs review: secrets or environment access, shell or command execution","Dependency/runtime risk: command execution surface, credential or environment access","Permission surface: secrets or environment access, shell or command execution"]},"quality_signals":{"model":"v2","star_score":26.85,"usage_score":0,"review_score":5.1,"metadata_score":3,"freshness_score":15},"platforms":["Claude Code"],"use_cases":[{"slug":"github-automation","title":"GitHub automation","url":"https://www.openagentskill.com/use-cases/github-automation"},{"slug":"research-agents","title":"Research agents","url":"https://www.openagentskill.com/use-cases/research-agents"},{"slug":"coding-agents","title":"Coding agents","url":"https://www.openagentskill.com/use-cases/coding-agents"},{"slug":"security-compliance","title":"Security and compliance","url":"https://www.openagentskill.com/use-cases/security-compliance"}],"stacks":[{"slug":"research-report-agent","title":"Research report agent","url":"https://www.openagentskill.com/collections/research-report-agent"},{"slug":"coding-review-agent","title":"Coding review agent","url":"https://www.openagentskill.com/collections/coding-review-agent"},{"slug":"rag-knowledge-base","title":"RAG knowledge base","url":"https://www.openagentskill.com/collections/rag-knowledge-base"}],"install":"npx skills add trailofbits/skills --skill substrate-vulnerability-scanner","install_targets":[{"id":"openagentskill-cli","label":"CLI","title":"OpenAgentSkill CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add trailofbits-substrate-vulnerability-scanner","description":"Resolve policy, run the source installer safely, and report a verified install receipt.","copyLabel":"Copy command"},{"id":"codex","label":"Codex","title":"Codex install prompt","kind":"agent-prompt","value":"Install the \"substrate-vulnerability-scanner\" agent skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"codex\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Give Codex a repo-aware install prompt when the skill is not available through a local CLI.","copyLabel":"Copy prompt"},{"id":"claude-code","label":"Claude Code","title":"Claude Code skill prompt","kind":"agent-prompt","value":"Add \"substrate-vulnerability-scanner\" as a Claude Code skill from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"claude-code\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this prompt to ask Claude Code to add the skill and explain the local activation steps.","copyLabel":"Copy prompt"},{"id":"cursor","label":"Cursor","title":"Cursor rule prompt","kind":"agent-prompt","value":"Turn \"substrate-vulnerability-scanner\" from https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. Skill purpose: Scans Substrate/Polkadot pallets for 7 critical vulnerabilities including arithmetic overflow, panic DoS, incorrect weights, and bad origin checks. Use when auditing Substrate runtimes or FRAME pallets. After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {\"event_id\":\"install_<unique-id>\",\"skill_slug\":\"trailofbits-substrate-vulnerability-scanner\",\"task\":\"Install substrate-vulnerability-scanner\",\"agent\":\"cursor\",\"outcome\":\"success\",\"install_used\":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.","description":"Use this when installing as Cursor project rules or reusable agent instructions.","copyLabel":"Copy prompt"}],"repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","github_repo":"trailofbits/skills","version":"1.0.0","license":"CC-BY-SA-4.0","urls":{"web":"https://www.openagentskill.com/skills/trailofbits-substrate-vulnerability-scanner","repository":"https://github.com/trailofbits/skills/tree/main/plugins/building-secure-contracts/skills/substrate-vulnerability-scanner","api":"/api/agent/skills/trailofbits-substrate-vulnerability-scanner","install_api":"/api/skills/trailofbits-substrate-vulnerability-scanner/install"},"meta":{"created_at":"2026-08-25T13:23:35.766269+00:00","updated_at":"2026-09-01T11:59:28.941454+00:00","agent_friendly":true}}