{"data":{"skill":{"slug":"firebase-firebase-ai-logic-basics","name":"firebase-ai-logic-basics","icon":"📦","repo":"https://github.com/firebase/agent-skills/tree/main/skills/firebase-ai-logic-basics/","status":"approved","author":"firebase","authorVersion":null,"skillstoreRevision":null},"audit":{"id":"18d88933-43dd-41f5-a722-0859ba01d9c3","skill_id":"7d860da7-9dbb-4e78-865f-6ab6ba6c77ad","version":1,"content_hash":"1ab00866af4b381e3beb1f23fed0b07a","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":null,"manual_install_policy":null,"summary":"This skill contains official Firebase documentation for integrating AI Logic (Gemini API) into mobile and web apps. All 99 static findings are false positives: external_commands are CLI commands shown in documentation code blocks, network URLs link to Firebase docs, and weak cryptography/system reconnaissance flags are false matches on markdown content. The skill is from the official firebase/agent-skills repository with no malicious code, no data exfiltration, and no prompt injection attempts.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"references/flutter_setup.md","line_end":7,"line_start":7},{"file":"references/flutter_setup.md","line_end":8,"line_start":8},{"file":"references/flutter_setup.md","line_end":9,"line_start":9},{"file":"references/flutter_setup.md","line_end":12,"line_start":12},{"file":"references/flutter_setup.md","line_end":16,"line_start":16},{"file":"references/flutter_setup.md","line_end":18,"line_start":18},{"file":"references/flutter_setup.md","line_end":25,"line_start":25},{"file":"references/flutter_setup.md","line_end":27,"line_start":27},{"file":"references/flutter_setup.md","line_end":33,"line_start":33},{"file":"references/flutter_setup.md","line_end":44,"line_start":44},{"file":"references/flutter_setup.md","line_end":48,"line_start":48},{"file":"references/flutter_setup.md","line_end":51,"line_start":51},{"file":"references/flutter_setup.md","line_end":54,"line_start":54},{"file":"references/flutter_setup.md","line_end":58,"line_start":58},{"file":"references/flutter_setup.md","line_end":71,"line_start":71},{"file":"references/flutter_setup.md","line_end":75,"line_start":75},{"file":"references/ios_setup.md","line_end":4,"line_start":4},{"file":"references/ios_setup.md","line_end":6,"line_start":6},{"file":"references/ios_setup.md","line_end":14,"line_start":14},{"file":"references/ios_setup.md","line_end":17,"line_start":17},{"file":"references/ios_setup.md","line_end":19,"line_start":19},{"file":"references/ios_setup.md","line_end":22,"line_start":22},{"file":"references/ios_setup.md","line_end":76,"line_start":76},{"file":"references/ios_setup.md","line_end":81,"line_start":81},{"file":"references/ios_setup.md","line_end":91,"line_start":91},{"file":"references/ios_setup.md","line_end":98,"line_start":98},{"file":"references/ios_setup.md","line_end":112,"line_start":112},{"file":"references/ios_setup.md","line_end":117,"line_start":117},{"file":"references/usage_patterns_android.md","line_end":3,"line_start":3},{"file":"references/usage_patterns_android.md","line_end":9,"line_start":9},{"file":"references/usage_patterns_android.md","line_end":12,"line_start":12},{"file":"references/usage_patterns_android.md","line_end":18,"line_start":18},{"file":"references/usage_patterns_android.md","line_end":20,"line_start":20},{"file":"references/usage_patterns_android.md","line_end":28,"line_start":28},{"file":"references/usage_patterns_android.md","line_end":34,"line_start":34},{"file":"references/usage_patterns_android.md","line_end":36,"line_start":36},{"file":"references/usage_patterns_android.md","line_end":64,"line_start":64},{"file":"references/usage_patterns_android.md","line_end":68,"line_start":68},{"file":"references/usage_patterns_android.md","line_end":70,"line_start":70},{"file":"references/usage_patterns_android.md","line_end":97,"line_start":97},{"file":"references/usage_patterns_android.md","line_end":105,"line_start":105},{"file":"references/usage_patterns_android.md","line_end":117,"line_start":117},{"file":"references/usage_patterns_android.md","line_end":125,"line_start":125},{"file":"references/usage_patterns_android.md","line_end":137,"line_start":137},{"file":"references/usage_patterns_android.md","line_end":145,"line_start":145},{"file":"references/usage_patterns_web.md","line_end":5,"line_start":5},{"file":"references/usage_patterns_web.md","line_end":32,"line_start":32},{"file":"references/usage_patterns_web.md","line_end":34,"line_start":34},{"file":"references/usage_patterns_web.md","line_end":38,"line_start":38},{"file":"references/usage_patterns_web.md","line_end":44,"line_start":44},{"file":"references/usage_patterns_web.md","line_end":48,"line_start":48},{"file":"references/usage_patterns_web.md","line_end":70,"line_start":70},{"file":"references/usage_patterns_web.md","line_end":74,"line_start":74},{"file":"references/usage_patterns_web.md","line_end":92,"line_start":92},{"file":"references/usage_patterns_web.md","line_end":96,"line_start":96},{"file":"references/usage_patterns_web.md","line_end":105,"line_start":105},{"file":"references/usage_patterns_web.md","line_end":109,"line_start":109},{"file":"references/usage_patterns_web.md","line_end":120,"line_start":120},{"file":"references/usage_patterns_web.md","line_end":132,"line_start":132},{"file":"references/usage_patterns_web.md","line_end":145,"line_start":145},{"file":"references/usage_patterns_web.md","line_end":150,"line_start":150},{"file":"references/usage_patterns_web.md","line_end":165,"line_start":165},{"file":"references/usage_patterns_web.md","line_end":169,"line_start":169},{"file":"SKILL.md","line_end":31,"line_start":31},{"file":"SKILL.md","line_end":35,"line_start":35},{"file":"SKILL.md","line_end":39,"line_start":39},{"file":"SKILL.md","line_end":43,"line_start":43},{"file":"SKILL.md","line_end":59,"line_start":59},{"file":"SKILL.md","line_end":63,"line_start":63},{"file":"SKILL.md","line_end":97,"line_start":97},{"file":"SKILL.md","line_end":102,"line_start":102}]},{"factor":"network","evidence":[{"file":"references/usage_patterns_android.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":25,"line_start":25},{"file":"SKILL.md","line_end":47,"line_start":47},{"file":"SKILL.md","line_end":84,"line_start":84},{"file":"SKILL.md","line_end":93,"line_start":93},{"file":"SKILL.md","line_end":97,"line_start":97}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":5,"total_lines":679,"audit_model":"claude","audited_at":"2026-05-21T09:19:21.637+00:00","created_at":"2026-05-21T09:59:12.532673+00:00","static_findings":[],"finding_verdicts":[],"semantic_findings":[],"subject_marketplace_commit_sha":null,"subject_content_hash":null,"subject_tree_hash":null,"subject_plugin_path":null,"audit_payload_hash":null,"confirmed_risk_level":null,"scanner_version":null,"policy_version":null,"subject":{"marketplaceCommitSha":null,"contentHash":null,"treeHash":null,"pluginPath":null,"auditPayloadHash":null},"scannerVersion":null,"policyVersion":null},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"not_attestable","url":null,"status":null,"reason":"canonical install advisories are incomplete"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":null,"manualInstallPolicy":null,"artifactSignatureState":"available","attestationState":"not_attestable","verificationState":"not_verified"},"isLatest":false}}