{"data":{"skill":{"slug":"babakbar-react-native-mobile-development","name":"React Native Mobile Development","icon":"📦","repo":"https://github.com/BabakBar/VibeKeeper/tree/main/.claude/skills/react-native-mobile","status":"approved","author":"BabakBar","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"d2f87ff6-709b-4d29-8f90-ecabb67a92bc","skill_id":"25dc175f-2cbd-4ecb-bc48-ae75469bbaf0","version":9,"content_hash":"v3:bdc4c7c6e1e64de0e81902bd9656da84164bdaf7:686ac527aa18fbda7608cc1b0fa5fafadc833aa05f8f050e069781a787e7c7c5:a280c62646df61d7e73caa834bada9ed32d2300903e34bafbe91f30989365aee:736b696c6c732f626162616b6261722f72656163742d6e61746976652d6d6f62696c652d646576656c6f706d656e74:b15916498deec786a36a3272d8d05841","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 20 static findings are false positives. The command-like matches are Markdown fences, API names, or optional local React Native and Expo commands; the URLs link only to official documentation. No prompt injection, data exfiltration, or malicious intent was found in SKILL.md.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":32,"line_start":22},{"file":"SKILL.md","line_end":36,"line_start":32},{"file":"SKILL.md","line_end":65,"line_start":36},{"file":"SKILL.md","line_end":69,"line_start":65},{"file":"SKILL.md","line_end":92,"line_start":69},{"file":"SKILL.md","line_end":96,"line_start":92},{"file":"SKILL.md","line_end":97,"line_start":96},{"file":"SKILL.md","line_end":97,"line_start":97},{"file":"SKILL.md","line_end":113,"line_start":105},{"file":"SKILL.md","line_end":116,"line_start":113},{"file":"SKILL.md","line_end":126,"line_start":116},{"file":"SKILL.md","line_end":129,"line_start":126},{"file":"SKILL.md","line_end":133,"line_start":129},{"file":"SKILL.md","line_end":137,"line_start":133},{"file":"SKILL.md","line_end":138,"line_start":137},{"file":"SKILL.md","line_end":139,"line_start":138}]},{"factor":"network","evidence":[{"file":"SKILL.md","line_end":144,"line_start":144},{"file":"SKILL.md","line_end":145,"line_start":145}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":1,"total_lines":146,"audit_model":"claude","audited_at":"2026-07-17T10:31:48.201+00:00","created_at":"2026-07-17T15:42:50.069522+00:00","static_findings":[{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":32,"severity":"medium","line_start":22},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":36,"severity":"medium","line_start":32},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":65,"severity":"medium","line_start":36},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":69,"severity":"medium","line_start":65},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":92,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":96,"severity":"medium","line_start":92},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"1. **Performance**: Use `StyleSheet.create()`, avoid inline styles, optimize images","category":"external_commands","line_end":97,"severity":"medium","line_start":96},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Accessibility**: Add `accessibilityLabel` and `accessibilityRole`","category":"external_commands","line_end":97,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":113,"severity":"medium","line_start":105},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":116,"severity":"medium","line_start":113},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":126,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":129,"severity":"medium","line_start":126},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```typescript","category":"external_commands","line_end":133,"severity":"medium","line_start":129},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":137,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Metro won't start**: Clear cache with `npx expo start --clear`","category":"external_commands","line_end":138,"severity":"medium","line_start":137},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- **Native module error**: Run `npx expo prebuild --clean`","category":"external_commands","line_end":139,"severity":"medium","line_start":138},{"id":"network:SKILL.md:144:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [React Native Docs](https://reactnative.dev)","category":"network","line_end":144,"severity":"low","line_start":144},{"id":"network:SKILL.md:145:hardcoded-url","file":"SKILL.md","pattern":"Hardcoded URL","snippet":"- [Expo Docs](https://docs.expo.dev)","category":"network","line_end":145,"severity":"low","line_start":145},{"id":"blocker:SKILL.md:26:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"npm run android        # Run on Android Emulator","category":"blocker","line_end":26,"severity":"low","line_start":26},{"id":"blocker:SKILL.md:96:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"1. **Performance**: Use `StyleSheet.create()`, avoid inline styles, optimize images","category":"blocker","line_end":96,"severity":"low","line_start":96}],"finding_verdicts":[{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"The opening Bash fence documents standard local development commands; it is not Ruby backtick execution or an executable script.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:32:ruby-shell-backtick-execution","reason":"The closing Markdown fence is not executable content. No command execution mechanism is present.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:36:ruby-shell-backtick-execution","reason":"This is a TypeScript code fence containing a React Native component example, not shell or Ruby execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:65:ruby-shell-backtick-execution","reason":"The closing TypeScript fence is Markdown syntax and cannot execute commands.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"This TypeScript fence introduces a platform-specific React Native example and contains no command execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:92:ruby-shell-backtick-execution","reason":"The closing Markdown fence is non-executable formatting, not a shell backtick.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:96:ruby-shell-backtick-execution","reason":"Inline Markdown code marks a StyleSheet API reference. It does not invoke a shell or execute code.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"Inline Markdown code marks accessibility API names only. It contains no executable command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","reason":"This TypeScript fence introduces a FlatList example. It is not shell or Ruby execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","reason":"The closing TypeScript fence is non-executable Markdown syntax.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"This TypeScript fence contains a controlled TextInput example, not an external command.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:126:ruby-shell-backtick-execution","reason":"The closing TypeScript fence is Markdown formatting and has no execution behavior.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"This TypeScript fence contains a React Native loading-state example, not shell execution.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"The closing TypeScript fence is non-executable Markdown syntax.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","reason":"The line documents an optional Expo cache-clearing command for troubleshooting. It is not automatically executed by the skill.","verdict":"false_positive","confidence":0.98},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The line documents an optional Expo prebuild command for troubleshooting. It is not automatically executed by the skill.","verdict":"false_positive","confidence":0.98},{"id":"network:SKILL.md:144:hardcoded-url","reason":"The URL is a visible link to the official React Native documentation and no request is initiated by the skill.","verdict":"false_positive","confidence":0.99},{"id":"network:SKILL.md:145:hardcoded-url","reason":"The URL is a visible link to the official Expo documentation and no request is initiated by the skill.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:26:system-reconnaissance","reason":"The command launches an Android application in an emulator; it does not enumerate system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:96:system-reconnaissance","reason":"The line is a performance recommendation for mobile UI styling and does not perform reconnaissance.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"bdc4c7c6e1e64de0e81902bd9656da84164bdaf7","subject_content_hash":"686ac527aa18fbda7608cc1b0fa5fafadc833aa05f8f050e069781a787e7c7c5","subject_tree_hash":"a280c62646df61d7e73caa834bada9ed32d2300903e34bafbe91f30989365aee","subject_plugin_path":"skills/babakbar/react-native-mobile-development","audit_payload_hash":"b15916498deec786a36a3272d8d05841","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"bdc4c7c6e1e64de0e81902bd9656da84164bdaf7","contentHash":"686ac527aa18fbda7608cc1b0fa5fafadc833aa05f8f050e069781a787e7c7c5","treeHash":"a280c62646df61d7e73caa834bada9ed32d2300903e34bafbe91f30989365aee","pluginPath":"skills/babakbar/react-native-mobile-development","auditPayloadHash":"b15916498deec786a36a3272d8d05841"},"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/babakbar-react-native-mobile-development/audits/9/attestation","status":"superseded"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"superseded","verificationState":"not_verified"},"isLatest":false}}