[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EPQTSQEZTXQN7W71SCRGWN":3,"skill-same:01M6EPQTSQEZTXQN7W71SCRGWN":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6EPQTSQEZTXQN7W71SCRGWN","security-audit",null,"Detect common security vulnerabilities in code. Covers OWASP patterns, SQL injection, bare excepts, shell injection. Framework-agnostic.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45],"security","audit","security audit","vulnerabilities","sql","code","framework","owasp","injection","shell","common","patterns","common security","detect","2026-11-10 10:12:30",false,"---\nname: security-audit\ndescription: \"Detect common security vulnerabilities in code. Covers OWASP patterns, SQL injection, bare excepts, shell injection. Framework-agnostic.\"\n---\n\n# Security Audit Skill\n\nDetect common security vulnerabilities during code review and development. Based on OWASP guidelines and common vulnerability patterns.\n\n## Design Principle\n\nThis skill is **framework-generic**. It provides universal security patterns:\n- Covers OWASP Top 10 and common CWEs\n- Works with Python, TypeScript, and other languages\n- Project-specific security requirements go in project-specific skills\n\n## Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| SEVERITY_THRESHOLD | medium | Minimum severity to report |\n| SCAN_DEPTH | 3 | Directory depth for scanning |\n| INCLUDE_TESTS | false | Include test files in scan |\n\n## Instructions\n\n**MANDATORY** - Follow the Workflow steps below in order.\n\n1. Identify security-sensitive code areas\n2. Check for common vulnerability patterns\n3. Report findings with severity\n4. Suggest remediation\n\n## Red Flags - STOP and Reconsider\n\nIf you're about to:\n- Write SQL with string concatenation\n- Use bare `except:` blocks\n- Execute shell commands with user input\n- Store secrets in code\n- Disable security features \"temporarily\"\n\n**STOP** -> Use parameterized queries -> Add specific exception handling -> Then proceed\n\n## Cookbook\n\n### SQL Injection Prevention\n- IF: Writing database queries\n- THEN: Read and execute `.\u002Fcookbook\u002Fsql-injection.md`\n\n### Bare Except Handling\n- IF: Writing exception handlers\n- THEN: Read and execute `.\u002Fcookbook\u002Fbare-except.md`\n\n### Shell Injection Prevention\n- IF: Executing shell commands\n- THEN: Read and execute `.\u002Fcookbook\u002Fshell-injection.md`\n\n## Vulnerability Patterns\n\n### SQL Injection (CWE-89)\n\n**BAD - String concatenation:**\n```python\n# VULNERABLE\nquery = f\"SELECT * FROM users WHERE id = {user_id}\"\ncursor.execute(query)\n\nquery = \"SELECT * FROM users WHERE name = '\" + name + \"'\"\n```\n\n**GOOD - Parameterized queries:**\n```python\n# SAFE\ncursor.execute(\"SELECT * FROM users WHERE id = %s\", (user_id,))\n\n# SQLAlchemy\nsession.query(User).filter(User.id == user_id).first()\n\n# Prisma\nawait prisma.user.findUnique({ where: { id: userId } })\n```\n\n### Bare Except (CWE-754)\n\n**BAD - Catches everything:**\n```python\n# VULNERABLE - hides bugs, catches KeyboardInterrupt\ntry:\n    risky_operation()\nexcept:\n    pass\n\n# VULNERABLE - too broad\nexcept Exception:\n    log.error(\"Something failed\")\n```\n\n**GOOD - Specific exceptions:**\n```python\n# SAFE - specific exceptions\ntry:\n    risky_operation()\nexcept ValueError as e:\n    log.warning(f\"Invalid value: {e}\")\nexcept ConnectionError as e:\n    log.error(f\"Connection failed: {e}\")\n    raise\n```\n\n### Shell Injection (CWE-78)\n\n**BAD - User input in shell:**\n```python\n# VULNERABLE\nos.system(f\"grep {user_input} \u002Fvar\u002Flog\u002Fapp.log\")\n\nimport subprocess\nsubprocess.run(f\"ls {directory}\", shell=True)\n```\n\n**GOOD - Avoid shell, use lists:**\n```python\n# SAFE - no shell\nsubprocess.run([\"grep\", user_input, \"\u002Fvar\u002Flog\u002Fapp.log\"])\n\n# SAFE - validated input\nif not re.match(r'^[a-zA-Z0-9_-]+$', directory):\n    raise ValueError(\"Invalid directory name\")\nsubprocess.run([\"ls\", directory])\n```\n\n### Path Traversal (CWE-22)\n\n**BAD - User input in paths:**\n```python\n# VULNERABLE\npath = f\"\u002Fuploads\u002F{user_filename}\"\nwith open(path) as f:\n    return f.read()\n```\n\n**GOOD - Validate and sanitize:**\n```python\n# SAFE\nfrom pathlib import Path\n\nupload_dir = Path(\"\u002Fuploads\").resolve()\nrequested = (upload_dir \u002F user_filename).resolve()\n\nif not requested.is_relative_to(upload_dir):\n    raise ValueError(\"Path traversal attempt\")\n\nwith open(requested) as f:\n    return f.read()\n```\n\n### Hardcoded Secrets (CWE-798)\n\n**BAD - Secrets in code:**\n```python\n# VULNERABLE\nAPI_KEY = \"sk-1234567890abcdef\"\nDB_PASSWORD = \"super_secret_password\"\n```\n\n**GOOD - Environment variables:**\n```python\n# SAFE\nimport os\n\nAPI_KEY = os.environ[\"API_KEY\"]\nDB_PASSWORD = os.environ[\"DB_PASSWORD\"]\n\n# Or with defaults for development\nAPI_KEY = os.getenv(\"API_KEY\", \"dev-key-only\")\n```\n\n### XSS (CWE-79)\n\n**BAD - Unsanitized output:**\n```html\n\u003C!-- VULNERABLE -->\n\u003Cdiv>{{ user_input }}\u003C\u002Fdiv>\n```\n\n**GOOD - Proper escaping:**\n```html\n\u003C!-- SAFE - auto-escaped in most frameworks -->\n\u003Cdiv>{{ user_input | e }}\u003C\u002Fdiv>\n\n\u003C!-- Or use textContent in JS -->\nelement.textContent = userInput;  \u002F\u002F Safe\n```\n\n## Severity Levels\n\n| Severity | Impact | Examples |\n|----------|--------|----------|\n| CRITICAL | Data breach, RCE | SQL injection, shell injection |\n| HIGH | Data exposure, privilege escalation | Path traversal, hardcoded secrets |\n| MEDIUM | Information disclosure | Verbose errors, bare excepts |\n| LOW | Best practice violation | Missing input validation |\n\n## Detection Patterns\n\n### Python Patterns to Search\n\n```python\nVULNERABLE_PATTERNS = {\n    \"sql_injection\": [\n        r'execute\\([\\'\"].*%s.*[\\'\"].*%',  # % formatting in SQL\n        r'execute\\(f[\\'\"]',                 # f-string in SQL\n        r'execute\\([\\'\"].*\\+',              # String concat in SQL\n    ],\n    \"shell_injection\": [\n        r'os\\.system\\(',                    # os.system\n        r'subprocess\\..*shell=True',        # shell=True\n        r'eval\\(',                          # eval\n        r'exec\\(',                          # exec\n    ],\n    \"bare_except\": [\n        r'except\\s*:',                      # bare except\n    ],\n    \"hardcoded_secrets\": [\n        r'password\\s*=\\s*[\\'\"]',            # password = \"...\"\n        r'api_key\\s*=\\s*[\\'\"]',             # api_key = \"...\"\n        r'secret\\s*=\\s*[\\'\"]',              # secret = \"...\"\n    ],\n}\n```\n\n### TypeScript Patterns to Search\n\n```typescript\nconst VULNERABLE_PATTERNS = {\n  sqlInjection: [\n    \u002F`SELECT.*\\$\\{\u002F,        \u002F\u002F Template literal in SQL\n    \u002F\"SELECT.*\" \\+ \u002F,       \u002F\u002F String concat in SQL\n  ],\n  xss: [\n    \u002FinnerHTML\\s*=\u002F,        \u002F\u002F innerHTML assignment\n    \u002FdangerouslySetInnerHTML\u002F, \u002F\u002F React dangerous prop\n  ],\n  shellInjection: [\n    \u002Fexec\\([`'\"]\u002F,          \u002F\u002F child_process.exec\n    \u002Fspawn\\(.*shell:\\s*true\u002F, \u002F\u002F shell: true\n  ],\n};\n```\n\n## Audit Workflow\n\n### Step 1: Identify Sensitive Areas\n\n```markdown\nCheck these high-risk areas first:\n- Authentication\u002Fauthorization code\n- Database queries\n- File operations\n- External API calls\n- User input handling\n- Serialization\u002Fdeserialization\n```\n\n### Step 2: Run Pattern Scan\n\n```markdown\nFor each source file:\n  Match against vulnerability patterns\n  Record file, line, pattern matched\n  Assess severity\n```\n\n### Step 3: Generate Report\n\n```markdown\n# Security Audit Report\n\n## Summary\n- CRITICAL: 2\n- HIGH: 5\n- MEDIUM: 12\n\n## Critical Issues\n\n### 1. SQL Injection in user_service.py:45\nPattern: f-string in execute()\n```python\ncursor.execute(f\"SELECT * FROM users WHERE id = {user_id}\")\n```\n\n**Fix**: Use parameterized query\n```python\ncursor.execute(\"SELECT * FROM users WHERE id = %s\", (user_id,))\n```\n```\n\n## Integration\n\n### With \u002Fai-dev-kit:execute-lane\n\nRun security audit in code-related lanes:\n\n```markdown\nLane: SL-API\n\nPost-implementation checks:\n1. ✓ Tests pass\n2. ✓ Lint clean\n3. ⚠️ Security audit: 2 MEDIUM issues\n\nReview security findings before merge.\n```\n\n### CI Integration\n\n```yaml\n- name: Security Audit\n  run: |\n    # Check for vulnerable patterns\n    grep -rn \"execute(f\" --include=\"*.py\" && exit 1 || true\n    grep -rn \"shell=True\" --include=\"*.py\" && exit 1 || true\n    grep -rn \"except:\" --include=\"*.py\" && echo \"Warning: bare except found\"\n```\n\n## Best Practices\n\n1. **Defense in depth**: Multiple layers of security\n2. **Least privilege**: Minimum permissions needed\n3. **Input validation**: Validate all external input\n4. **Output encoding**: Escape output appropriately\n5. **Secrets management**: Never hardcode secrets\n6. **Error handling**: Don't expose internal details\n7. **Logging**: Log security events (not sensitive data)\n8. **Updates**: Keep dependencies updated\n","# Security Audit Skill\n\nDetect common security vulnerabilities during code review and development. Based on OWASP guidelines and common vulnerability patterns.\n\n## Design Principle\n\nThis skill is **framework-generic**. It provides universal security patterns:\n- Covers OWASP Top 10 and common CWEs\n- Works with Python, TypeScript, and other languages\n- Project-specific security requirements go in project-specific skills\n\n## Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| SEVERITY_THRESHOLD | medium | Minimum severity to report |\n| SCAN_DEPTH | 3 | Directory depth for scanning |\n| INCLUDE_TESTS | false | Include test files in scan |\n\n## Instructions\n\n**MANDATORY** - Follow the Workflow steps below in order.\n\n1. Identify security-sensitive code areas\n2. Check for common vulnerability patterns\n3. Report findings with severity\n4. Suggest remediation\n\n## Red Flags - STOP and Reconsider\n\nIf you're about to:\n- Write SQL with string concatenation\n- Use bare `except:` blocks\n- Execute shell commands with user input\n- Store secrets in code\n- Disable security features \"temporarily\"\n\n**STOP** -> Use parameterized queries -> Add specific exception handling -> Then proceed\n\n## Cookbook\n\n### SQL Injection Prevention\n- IF: Writing database queries\n- THEN: Read and execute `.\u002Fcookbook\u002Fsql-injection.md`\n\n### Bare Except Handling\n- IF: Writing exception handlers\n- THEN: Read and execute `.\u002Fcookbook\u002Fbare-except.md`\n\n### Shell Injection Prevention\n- IF: Executing shell commands\n- THEN: Read and execute `.\u002Fcookbook\u002Fshell-injection.md`\n\n## Vulnerability Patterns\n\n### SQL Injection (CWE-89)\n\n**BAD - String concatenation:**\n```python\n# VULNERABLE\nquery = f\"SELECT * FROM users WHERE id = {user_id}\"\ncursor.execute(query)\n\nquery = \"SELECT * FROM users WHERE name = '\" + name + \"'\"\n```\n\n**GOOD - Parameterized queries:**\n```python\n# SAFE\ncursor.execute(\"SELECT * FROM users WHERE id = %s\", (user_id,))\n\n# SQLAlchemy\nsession.query(User).filter(User.id == user_id).first()\n\n# Prisma\nawait prisma.user.findUnique({ where: { id: userId } })\n```\n\n### Bare Except (CWE-754)\n\n**BAD - Catches everything:**\n```python\n# VULNERABLE - hides bugs, catches KeyboardInterrupt\ntry:\n    risky_operation()\nexcept:\n    pass\n\n# VULNERABLE - too broad\nexcept Exception:\n    log.error(\"Something failed\")\n```\n\n**GOOD - Specific exceptions:**\n```python\n# SAFE - specific exceptions\ntry:\n    risky_operation()\nexcept ValueError as e:\n    log.warning(f\"Invalid value: {e}\")\nexcept ConnectionError as e:\n    log.error(f\"Connection failed: {e}\")\n    raise\n```\n\n### Shell Injection (CWE-78)\n\n**BAD - User input in shell:**\n```python\n# VULNERABLE\nos.system(f\"grep {user_input} \u002Fvar\u002Flog\u002Fapp.log\")\n\nimport subprocess\nsubprocess.run(f\"ls {directory}\", shell=True)\n```\n\n**GOOD - Avoid shell, use lists:**\n```python\n# SAFE - no shell\nsubprocess.run([\"grep\", user_input, \"\u002Fvar\u002Flog\u002Fapp.log\"])\n\n# SAFE - validated input\nif not re.match(r'^[a-zA-Z0-9_-]+$', directory):\n    raise ValueError(\"Invalid directory name\")\nsubprocess.run([\"ls\", directory])\n```\n\n### Path Traversal (CWE-22)\n\n**BAD - User input in paths:**\n```python\n# VULNERABLE\npath = f\"\u002Fuploads\u002F{user_filename}\"\nwith open(path) as f:\n    return f.read()\n```\n\n**GOOD - Validate and sanitize:**\n```python\n# SAFE\nfrom pathlib import Path\n\nupload_dir = Path(\"\u002Fuploads\").resolve()\nrequested = (upload_dir \u002F user_filename).resolve()\n\nif not requested.is_relative_to(upload_dir):\n    raise ValueError(\"Path traversal attempt\")\n\nwith open(requested) as f:\n    return f.read()\n```\n\n### Hardcoded Secrets (CWE-798)\n\n**BAD - Secrets in code:**\n```python\n# VULNERABLE\nAPI_KEY = \"sk-1234567890abcdef\"\nDB_PASSWORD = \"super_secret_password\"\n```\n\n**GOOD - Environment variables:**\n```python\n# SAFE\nimport os\n\nAPI_KEY = os.environ[\"API_KEY\"]\nDB_PASSWORD = os.environ[\"DB_PASSWORD\"]\n\n# Or with defaults for development\nAPI_KEY = os.getenv(\"API_KEY\", \"dev-key-only\")\n```\n\n### XSS (CWE-79)\n\n**BAD - Unsanitized output:**\n```html\n\u003C!-- VULNERABLE -->\n\u003Cdiv>{{ user_input }}\u003C\u002Fdiv>\n```\n\n**GOOD - Proper escaping:**\n```html\n\u003C!-- SAFE - auto-escaped in most frameworks -->\n\u003Cdiv>{{ user_input | e }}\u003C\u002Fdiv>\n\n\u003C!-- Or use textContent in JS -->\nelement.textContent = userInput;  \u002F\u002F Safe\n```\n\n## Severity Levels\n\n| Severity | Impact | Examples |\n|----------|--------|----------|\n| CRITICAL | Data breach, RCE | SQL injection, shell injection |\n| HIGH | Data exposure, privilege escalation | Path traversal, hardcoded secrets |\n| MEDIUM | Information disclosure | Verbose errors, bare excepts |\n| LOW | Best practice violation | Missing input validation |\n\n## Detection Patterns\n\n### Python Patterns to Search\n\n```python\nVULNERABLE_PATTERNS = {\n    \"sql_injection\": [\n        r'execute\\([\\'\"].*%s.*[\\'\"].*%',  # % formatting in SQL\n        r'execute\\(f[\\'\"]',                 # f-string in SQL\n        r'execute\\([\\'\"].*\\+',              # String concat in SQL\n    ],\n    \"shell_injection\": [\n        r'os\\.system\\(',                    # os.system\n        r'subprocess\\..*shell=True',        # shell=True\n        r'eval\\(',                          # eval\n        r'exec\\(',                          # exec\n    ],\n    \"bare_except\": [\n        r'except\\s*:',                      # bare except\n    ],\n    \"hardcoded_secrets\": [\n        r'password\\s*=\\s*[\\'\"]',            # password = \"...\"\n        r'api_key\\s*=\\s*[\\'\"]',             # api_key = \"...\"\n        r'secret\\s*=\\s*[\\'\"]',              # secret = \"...\"\n    ],\n}\n```\n\n### TypeScript Patterns to Search\n\n```typescript\nconst VULNERABLE_PATTERNS = {\n  sqlInjection: [\n    \u002F`SELECT.*\\$\\{\u002F,        \u002F\u002F Template literal in SQL\n    \u002F\"SELECT.*\" \\+ \u002F,       \u002F\u002F String concat in SQL\n  ],\n  xss: [\n    \u002FinnerHTML\\s*=\u002F,        \u002F\u002F innerHTML assignment\n    \u002FdangerouslySetInnerHTML\u002F, \u002F\u002F React dangerous prop\n  ],\n  shellInjection: [\n    \u002Fexec\\([`'\"]\u002F,          \u002F\u002F child_process.exec\n    \u002Fspawn\\(.*shell:\\s*true\u002F, \u002F\u002F shell: true\n  ],\n};\n```\n\n## Audit Workflow\n\n### Step 1: Identify Sensitive Areas\n\n```markdown\nCheck these high-risk areas first:\n- Authentication\u002Fauthorization code\n- Database queries\n- File operations\n- External API calls\n- User input handling\n- Serialization\u002Fdeserialization\n```\n\n### Step 2: Run Pattern Scan\n\n```markdown\nFor each source file:\n  Match against vulnerability patterns\n  Record file, line, pattern matched\n  Assess severity\n```\n\n### Step 3: Generate Report\n\n```markdown\n# Security Audit Report\n\n## Summary\n- CRITICAL: 2\n- HIGH: 5\n- MEDIUM: 12\n\n## Critical Issues\n\n### 1. SQL Injection in user_service.py:45\nPattern: f-string in execute()\n```python\ncursor.execute(f\"SELECT * FROM users WHERE id = {user_id}\")\n```\n\n**Fix**: Use parameterized query\n```python\ncursor.execute(\"SELECT * FROM users WHERE id = %s\", (user_id,))\n```\n```\n\n## Integration\n\n### With \u002Fai-dev-kit:execute-lane\n\nRun security audit in code-related lanes:\n\n```markdown\nLane: SL-API\n\nPost-implementation checks:\n1. ✓ Tests pass\n2. ✓ Lint clean\n3. ⚠️ Security audit: 2 MEDIUM issues\n\nReview security findings before merge.\n```\n\n### CI Integration\n\n```yaml\n- name: Security Audit\n  run: |\n    # Check for vulnerable patterns\n    grep -rn \"execute(f\" --include=\"*.py\" && exit 1 || true\n    grep -rn \"shell=True\" --include=\"*.py\" && exit 1 || true\n    grep -rn \"except:\" --include=\"*.py\" && echo \"Warning: bare except found\"\n```\n\n## Best Practices\n\n1. **Defense in depth**: Multiple layers of security\n2. **Least privilege**: Minimum permissions needed\n3. **Input validation**: Validate all external input\n4. **Output encoding**: Escape output appropriately\n5. **Secrets management**: Never hardcode secrets\n6. **Error handling**: Don't expose internal details\n7. **Logging**: Log security events (not sensitive data)\n8. **Updates**: Keep dependencies updated\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill security-audit",{"tool":66,"command":67},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill security-audit",{"tool":69,"command":70},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill security-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit\u002FSKILL.md",true,[74,80,84],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"cookbook\u002Fbare-except.md","REFERENCE","参考文档",6282,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit\u002Fcookbook\u002Fbare-except.md",{"path":81,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":82,"sourceHtmlUrl":83},"cookbook\u002Fsql-injection.md",7031,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit\u002Fcookbook\u002Fsql-injection.md",{"path":85,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":86,"sourceHtmlUrl":87},"skill-report.json",25952,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fconsiliency\u002Fsecurity-audit\u002Fskill-report.json",[89,99,109,118,124,131],{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":46},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[94],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[96,97,98],"model","model hierarchy","model hierarchy skill",{"skillNo":100,"name":101,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":105,"publishedAt":46},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[104],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[106,107,108],"MCP","zoom","zoom mcp",{"skillNo":110,"name":111,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":46},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[115,116,117,107],"sdk","zoom apps sdk","apps",{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":46},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[120],{"skillNo":125,"name":126,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":130,"publishedAt":46},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[129],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[126],{"skillNo":132,"name":133,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":46},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[133]]