{"data":{"skill":{"slug":"sickn33-database-design","name":"database-design","icon":"📦","repo":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/database-design","status":"approved","author":"sickn33","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"727fc689-ba50-4e5e-84cd-f6208694b896","skill_id":"c00806fd-e65e-44ae-a42c-4e6c632f400e","version":5,"content_hash":"v3:f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526:ad1918b9daa821388c6b9838bd739126f52cc9236ac7a7a1b14bcab055d38160:ea0b6a9d05ad675bd965360247da698876a6f10956e9552377bddb9203831677:736b696c6c732f7369636b6e33332f64617461626173652d64657369676e:9710342822cf708bec36837d8f54cacd","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All nine static findings are false positives. Backticks in SKILL.md format filenames, while flagged lines elsewhere contain ordinary database guidance and validation logic. No prompt injection or malicious intent was found.","remediation":[],"risk_factor_evidence":[{"factor":"external_commands","evidence":[{"file":"SKILL.md","line_end":19,"line_start":19},{"file":"SKILL.md","line_end":20,"line_start":20},{"file":"SKILL.md","line_end":21,"line_start":21},{"file":"SKILL.md","line_end":22,"line_start":22},{"file":"SKILL.md","line_end":23,"line_start":23},{"file":"SKILL.md","line_end":24,"line_start":24}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":8,"total_lines":494,"audit_model":"codex","audited_at":"2026-07-23T22:33:27.575+00:00","created_at":"2026-07-26T08:22:33.134759+00:00","static_findings":[{"id":"blocker:optimization.md:34:system-reconnaissance","file":"optimization.md","pattern":"System reconnaissance","snippet":"3. **Use proper JOINs** (avoid subqueries when possible)","category":"blocker","line_end":34,"severity":"low","line_start":34},{"id":"blocker:scripts/schema_validator.py:62:system-reconnaissance","file":"scripts/schema_validator.py","pattern":"System reconnaissance","snippet":"# Check for id field","category":"blocker","line_end":62,"severity":"low","line_start":62},{"id":"blocker:scripts/schema_validator.py:64:system-reconnaissance","file":"scripts/schema_validator.py","pattern":"System reconnaissance","snippet":"issues.append(f\"Model '{model_name}' might be missing @id field\")","category":"blocker","line_end":64,"severity":"low","line_start":64},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `database-selection.md` | PostgreSQL vs Neon vs Turso vs SQLite | Choosing database |","category":"external_commands","line_end":19,"severity":"medium","line_start":19},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `orm-selection.md` | Drizzle vs Prisma vs Kysely | Choosing ORM |","category":"external_commands","line_end":20,"severity":"medium","line_start":20},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `schema-design.md` | Normalization, PKs, relationships | Designing schema |","category":"external_commands","line_end":21,"severity":"medium","line_start":21},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `indexing.md` | Index types, composite indexes | Performance tuning |","category":"external_commands","line_end":22,"severity":"medium","line_start":22},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `optimization.md` | N+1, EXPLAIN ANALYZE | Query optimization |","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| `migrations.md` | Safe migrations, serverless DBs | Schema changes |","category":"external_commands","line_end":24,"severity":"medium","line_start":24}],"finding_verdicts":[{"id":"blocker:optimization.md:34:system-reconnaissance","reason":"The line is documentation recommending JOINs during query optimization. It does not inspect the host system or collect system information.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/schema_validator.py:62:system-reconnaissance","reason":"The line is a comment introducing a Prisma model identifier check. It contains no reconnaissance operation or executable behavior.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/schema_validator.py:64:system-reconnaissance","reason":"The line appends a local validation warning when a Prisma model may lack an identifier. It does not inspect system configuration or transmit data.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:19:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the database-selection.md filename in a documentation table. No command is executed.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:20:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the orm-selection.md filename in a documentation table. No shell or Ruby context exists.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:21:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the schema-design.md filename in a documentation table. They do not invoke an external command.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:22:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the indexing.md filename in a documentation table. The line contains no executable syntax.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:23:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the optimization.md filename in a documentation table. No process creation or command execution occurs.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"The backticks are Markdown formatting around the migrations.md filename in a documentation table. They are not shell substitution operators.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526","subject_content_hash":"ad1918b9daa821388c6b9838bd739126f52cc9236ac7a7a1b14bcab055d38160","subject_tree_hash":"ea0b6a9d05ad675bd965360247da698876a6f10956e9552377bddb9203831677","subject_plugin_path":"skills/sickn33/database-design","audit_payload_hash":"9710342822cf708bec36837d8f54cacd","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"f9e2c34b4f19c7f3e6b0a1e93227b5f77cc12526","contentHash":"ad1918b9daa821388c6b9838bd739126f52cc9236ac7a7a1b14bcab055d38160","treeHash":"ea0b6a9d05ad675bd965360247da698876a6f10956e9552377bddb9203831677","pluginPath":"skills/sickn33/database-design","auditPayloadHash":"9710342822cf708bec36837d8f54cacd"},"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-database-design/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}}