{"data":{"skill":{"slug":"sickn33-arm-cortex-expert","name":"arm-cortex-expert","icon":"📦","repo":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/arm-cortex-expert","status":"approved","author":"sickn33","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"9cffdb5e-edf9-4abd-a973-7c217015df19","skill_id":"03557438-8ce0-432a-a3d1-6662b0945b8f","version":5,"content_hash":"v3:86d877f219e2131f05dd5b37c5e329c71c7b8ec4:79a748245c6c4006818274dca4ff45c22e4238057839e755c8b86ca776b2d826:732be4974e1e850d79a6d2b1cfdb02ca9c31a9513e2d38831963bb821f06ae9d:736b696c6c732f7369636b6e33332f61726d2d636f727465782d657870657274:0fa40249fd8283a8fa40c8322add3a15","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 34 static alerts are false positives caused by Markdown backticks, code fences, a Rust API named with, and legitimate firmware diagnostics. The skill contains no executable scripts, command execution, reconnaissance intent, prompt injection, or data-exfiltration behavior.","remediation":[],"risk_factor_evidence":[{"factor":"scripts","evidence":[{"file":"SKILL.md","line_end":158,"line_start":158}]},{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":26,"line_start":26},{"file":"SKILL.md","line_end":92,"line_start":92},{"file":"SKILL.md","line_end":94,"line_start":94},{"file":"SKILL.md","line_end":111,"line_start":111},{"file":"SKILL.md","line_end":112,"line_start":112},{"file":"SKILL.md","line_end":117,"line_start":117},{"file":"SKILL.md","line_end":118,"line_start":118},{"file":"SKILL.md","line_end":122,"line_start":122},{"file":"SKILL.md","line_end":131,"line_start":128},{"file":"SKILL.md","line_end":133,"line_start":131},{"file":"SKILL.md","line_end":133,"line_start":133},{"file":"SKILL.md","line_end":155,"line_start":151},{"file":"SKILL.md","line_end":159,"line_start":155},{"file":"SKILL.md","line_end":161,"line_start":159},{"file":"SKILL.md","line_end":163,"line_start":161},{"file":"SKILL.md","line_end":163,"line_start":163},{"file":"SKILL.md","line_end":185,"line_start":185},{"file":"SKILL.md","line_end":196,"line_start":186},{"file":"SKILL.md","line_end":204,"line_start":196},{"file":"SKILL.md","line_end":206,"line_start":204},{"file":"SKILL.md","line_end":229,"line_start":206},{"file":"SKILL.md","line_end":230,"line_start":229},{"file":"SKILL.md","line_end":231,"line_start":230},{"file":"SKILL.md","line_end":231,"line_start":231},{"file":"SKILL.md","line_end":262,"line_start":232},{"file":"SKILL.md","line_end":270,"line_start":262},{"file":"SKILL.md","line_end":294,"line_start":270},{"file":"SKILL.md","line_end":299,"line_start":294},{"file":"SKILL.md","line_end":299,"line_start":299},{"file":"SKILL.md","line_end":300,"line_start":300},{"file":"SKILL.md","line_end":301,"line_start":301}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":308,"audit_model":"codex","audited_at":"2026-07-23T20:17:03.702+00:00","created_at":"2026-07-26T02:28:23.507837+00:00","static_findings":[{"id":"scripts:SKILL.md:158:with-statement-deprecated-scope-confusion","file":"SKILL.md","pattern":"with statement (deprecated, scope confusion)","snippet":"// Access: critical_section::with(|cs| STATE.borrow_ref_mut(cs))","category":"scripts","line_end":158,"severity":"medium","line_start":158},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- If detailed examples are required, open `resources/implementation-playbook.md`.","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**C/C++:** Wrap register access with `__DMB()` (data memory barrier) before/after reads, `__DSB()` (","category":"external_commands","line_end":92,"severity":"medium","line_start":92},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Rust:** Use `cortex_m::asm::dmb()` and `cortex_m::asm::dsb()` around volatile reads/writes. Create","category":"external_commands","line_end":94,"severity":"medium","line_start":94},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- C++: `__attribute__((section(\".dtcm.bss\"))) __attribute__((aligned(32))) static uint8_t buffer[512","category":"external_commands","line_end":111,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Rust: `#[link_section = \".dtcm\"] #[repr(C, align(32))] static mut BUFFER: [u8; 512] = [0; 512];`","category":"external_commands","line_end":112,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Before DMA reads from memory: `arm_dcache_flush_delete()` or `cortex_m::cache::clean_dcache_by_ran","category":"external_commands","line_end":117,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- After DMA writes to memory: `arm_dcache_delete()` or `cortex_m::cache::invalidate_dcache_by_range(","category":"external_commands","line_end":118,"severity":"medium","line_start":118},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Best practice:** Validate MMIO addresses in debug builds using `is_valid_mmio_address(addr)` check","category":"external_commands","line_end":122,"severity":"medium","line_start":122},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```cpp","category":"external_commands","line_end":131,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":133,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Common W1C:** `USBSTS`, `PORTSC`, CCM status. **Wrong:** `status &= ~bit` does nothing on W1C regi","category":"external_commands","line_end":133,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### Modern Rust: Never Use `static mut`","category":"external_commands","line_end":155,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```rust","category":"external_commands","line_end":159,"severity":"medium","line_start":155},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":161,"severity":"medium","line_start":159},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**WRONG:** `static mut` is undefined behavior (data races).","category":"external_commands","line_end":163,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Atomic Ordering:** `Relaxed` (CPU-only) • `Acquire/Release` (shared state) • `AcqRel` (CAS) • `Seq","category":"external_commands","line_end":163,"severity":"medium","line_start":163},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- C/C++: `NVIC_SetPriority(IRQn, priority)` or `HAL_NVIC_SetPriority()`","category":"external_commands","line_end":185,"severity":"medium","line_start":185},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Rust: `NVIC::set_priority()` or use PAC-specific functions","category":"external_commands","line_end":196,"severity":"medium","line_start":186},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```cpp","category":"external_commands","line_end":204,"severity":"medium","line_start":196},{"id":"external_commands:SKILL.md:204:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":206,"severity":"medium","line_start":204},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Rust:** `cortex_m::interrupt::free(|cs| { /* use cs token */ })`","category":"external_commands","line_end":229,"severity":"medium","line_start":206},{"id":"external_commands:SKILL.md:229:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Check `HFSR` (HardFault Status Register) for fault type","category":"external_commands","line_end":230,"severity":"medium","line_start":229},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Check `CFSR` (Configurable Fault Status Register) for detailed cause","category":"external_commands","line_end":231,"severity":"medium","line_start":230},{"id":"external_commands:SKILL.md:231:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Check `MMFAR` / `BFAR` for faulting address (if valid)","category":"external_commands","line_end":231,"severity":"medium","line_start":231},{"id":"external_commands:SKILL.md:232:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Inspect stack frame: `R0-R3, R12, LR, PC, xPSR`","category":"external_commands","line_end":262,"severity":"medium","line_start":232},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Disable for deterministic latency:** Configure `FPU->FPCCR` (clear LSPEN bit) in hard real-time sy","category":"external_commands","line_end":270,"severity":"medium","line_start":262},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"**Canary Values (Portable):** Magic value (e.g., `0xDEADBEEF`) at stack bottom, check periodically.","category":"external_commands","line_end":294,"severity":"medium","line_start":270},{"id":"external_commands:SKILL.md:294:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Example: `sensorReadRegister(0x0F)` for WHO_AM_I","category":"external_commands","line_end":299,"severity":"medium","line_start":294},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Teensy 4.x**: `SPI.beginTransaction(SPISettings(speed, order, mode))` → `SPI.transfer(data)` → `","category":"external_commands","line_end":299,"severity":"medium","line_start":299},{"id":"external_commands:SKILL.md:300:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **STM32**: `HAL_SPI_Transmit()` / `HAL_SPI_Receive()` or LL drivers","category":"external_commands","line_end":300,"severity":"medium","line_start":300},{"id":"external_commands:SKILL.md:301:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **nRF52**: `nrfx_spi_xfer()` or `nrf_drv_spi_transfer()`","category":"external_commands","line_end":301,"severity":"medium","line_start":301},{"id":"blocker:SKILL.md:122:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"**Best practice:** Validate MMIO addresses in debug builds using `is_valid_mmio_address(addr)` check","category":"blocker","line_end":122,"severity":"low","line_start":122},{"id":"blocker:SKILL.md:225:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Writing to read-only memory or invalid peripheral addresses","category":"blocker","line_end":225,"severity":"low","line_start":225}],"finding_verdicts":[{"id":"scripts:SKILL.md:158:with-statement-deprecated-scope-confusion","reason":"The text is a commented Rust example calling critical_section::with, not a deprecated JavaScript with statement or executable script.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"Backticks format a relative documentation path in Markdown; they do not invoke a shell or Ruby runtime.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","reason":"Backticks format C and C++ memory-barrier function names in explanatory prose, with no execution mechanism.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:94:ruby-shell-backtick-execution","reason":"Backticks format Rust API and macro names in documentation, not shell commands.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The inline text is a C++ declaration demonstrating memory placement and alignment, not command execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"The inline text is a Rust static declaration shown as firmware documentation, not a shell or Ruby command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"Backticks identify cache-maintenance APIs for DMA guidance; no command processor receives the text.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","reason":"Backticks identify cache-invalidation APIs for DMA guidance; the Markdown does not execute them.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","reason":"The backticked identifier names a proposed firmware validation helper and has no external-command semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The detected token is the opening fence of a C++ Markdown code block, not Ruby backtick execution.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The detected token is a Markdown code-fence terminator and cannot execute an external command.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"Backticks format register names and a C expression in prose explaining write-one-to-clear behavior.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The backticks format the Rust term static mut in a section heading and do not invoke any command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","reason":"The detected token opens a Rust Markdown code block; it is documentation syntax only.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","reason":"The detected token closes a Markdown code block and has no command-execution behavior.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"Backticks emphasize a Rust language construct in a warning about data races, not an external command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","reason":"Backticks format Rust atomic-ordering names in educational prose, with no runtime execution.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:185:ruby-shell-backtick-execution","reason":"The backticked values are embedded C and C++ API calls presented as documentation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:186:ruby-shell-backtick-execution","reason":"The backticked value is a Rust interrupt-controller API name, not a shell invocation.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:196:ruby-shell-backtick-execution","reason":"The detected token opens a C++ Markdown code block and does not execute its contents.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:204:ruby-shell-backtick-execution","reason":"The detected token closes a Markdown code block and is not an executable backtick expression.","verdict":"false_positive","confidence":1},{"id":"external_commands:SKILL.md:206:ruby-shell-backtick-execution","reason":"Backticks format a Rust critical-section expression as an embedded programming example.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:229:ruby-shell-backtick-execution","reason":"The backticked value is an ARM fault-status register name used in a debugging checklist.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:230:ruby-shell-backtick-execution","reason":"The backticked value is an ARM configurable fault-status register name, not a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:231:ruby-shell-backtick-execution","reason":"The backticks format ARM fault-address register names in a diagnostic checklist.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:232:ruby-shell-backtick-execution","reason":"The backticks format CPU register names for stack-frame inspection and have no execution semantics.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:262:ruby-shell-backtick-execution","reason":"The backticked value names an ARM FPU control register in firmware configuration guidance.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:270:ruby-shell-backtick-execution","reason":"The backticks format a hexadecimal stack-canary example and cannot execute a command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:294:ruby-shell-backtick-execution","reason":"The backticked value is an illustrative embedded C function call for reading a sensor register.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:299:ruby-shell-backtick-execution","reason":"Backticks format Teensy SPI library calls within platform-specific firmware guidance.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:300:ruby-shell-backtick-execution","reason":"Backticks format STM32 HAL function names in documentation and do not invoke them.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:301:ruby-shell-backtick-execution","reason":"Backticks format nRF52 SPI driver function names in documentation and do not invoke them.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:122:system-reconnaissance","reason":"The text recommends validating firmware MMIO addresses against documented MCU ranges; it does not inspect the host system.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:225:system-reconnaissance","reason":"The phrase identifies a common HardFault cause in embedded firmware and does not perform system reconnaissance.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"86d877f219e2131f05dd5b37c5e329c71c7b8ec4","subject_content_hash":"79a748245c6c4006818274dca4ff45c22e4238057839e755c8b86ca776b2d826","subject_tree_hash":"732be4974e1e850d79a6d2b1cfdb02ca9c31a9513e2d38831963bb821f06ae9d","subject_plugin_path":"skills/sickn33/arm-cortex-expert","audit_payload_hash":"0fa40249fd8283a8fa40c8322add3a15","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"86d877f219e2131f05dd5b37c5e329c71c7b8ec4","contentHash":"79a748245c6c4006818274dca4ff45c22e4238057839e755c8b86ca776b2d826","treeHash":"732be4974e1e850d79a6d2b1cfdb02ca9c31a9513e2d38831963bb821f06ae9d","pluginPath":"skills/sickn33/arm-cortex-expert","auditPayloadHash":"0fa40249fd8283a8fa40c8322add3a15"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/sickn33-arm-cortex-expert/audits/5/attestation","status":"active"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"active","verificationState":"not_verified"},"isLatest":true}}