[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G3P3FSC7NDK0V12S0X9D2P":3,"skill-same:01M6G3P3FSC7NDK0V12S0X9D2P":66},{"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":18,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6G3P3FSC7NDK0V12S0X9D2P","gcp-cloud-run",null,"Specialized skill for building production-ready serverless applications on GCP. Covers Cloud Run services (containerized), Cloud Run Functions (event-driven), cold start optimization, and event-dri...","reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdevops\u002Fgcp-cloud-run\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"cloud","gcp","gcp cloud run","run","applications","event","event-driven","cold","driven","functions","ready","specialized","serverless","Production","Optimization","services","start","apache","2026-11-10 10:12:30",false,"---\nname: gcp-cloud-run\ndescription: \"Specialized skill for building production-ready serverless applications on GCP. Covers Cloud Run services (containerized), Cloud Run Functions (event-driven), cold start optimization, and event-dri...\"\nsource: vibeship-spawner-skills (Apache 2.0)\nrisk: unknown\n---\n\n# GCP Cloud Run\n\n## Patterns\n\n### Cloud Run Service Pattern\n\nContainerized web service on Cloud Run\n\n**When to use**: ['Web applications and APIs', 'Need any runtime or library', 'Complex services with multiple endpoints', 'Stateless containerized workloads']\n\n```javascript\n```dockerfile\n# Dockerfile - Multi-stage build for smaller image\nFROM node:20-slim AS builder\nWORKDIR \u002Fapp\nCOPY package*.json .\u002F\nRUN npm ci --only=production\n\nFROM node:20-slim\nWORKDIR \u002Fapp\n\n# Copy only production dependencies\nCOPY --from=builder \u002Fapp\u002Fnode_modules .\u002Fnode_modules\nCOPY src .\u002Fsrc\nCOPY package.json .\u002F\n\n# Cloud Run uses PORT env variable\nENV PORT=8080\nEXPOSE 8080\n\n# Run as non-root user\nUSER node\n\nCMD [\"node\", \"src\u002Findex.js\"]\n```\n\n```javascript\n\u002F\u002F src\u002Findex.js\nconst express = require('express');\nconst app = express();\n\napp.use(express.json());\n\n\u002F\u002F Health check endpoint\napp.get('\u002Fhealth', (req, res) => {\n  res.status(200).send('OK');\n});\n\n\u002F\u002F API routes\napp.get('\u002Fapi\u002Fitems\u002F:id', async (req, res) => {\n  try {\n    const item = await getItem(req.params.id);\n    res.json(item);\n  } catch (error) {\n    console.error('Error:', error);\n    res.status(500).json({ error: 'Internal server error' });\n  }\n});\n\n\u002F\u002F Graceful shutdown\nprocess.on('SIGTERM', () => {\n  console.log('SIGTERM received, shutting down gracefully');\n  server.close(() => {\n    console.log('Server closed');\n    process.exit(0);\n  });\n});\n\nconst PORT = process.env.PORT || 8080;\nconst server = app.listen(PORT, () => {\n  console.log(`Server listening on port ${PORT}`);\n});\n```\n\n```yaml\n# cloudbuild.yaml\nsteps:\n  # Build the container image\n  - name: 'gcr.io\u002Fcloud-builders\u002Fdocker'\n    args: ['build', '-t', 'gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA', '.']\n\n  # Push the container image\n  - name: 'gcr.io\u002Fcloud-builders\u002Fdocker'\n    args: ['push', 'gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA']\n\n  # Deploy to Cloud Run\n  - name: 'gcr.io\u002Fgoogle.com\u002Fcloudsdktool\u002Fcloud-sdk'\n    entrypoint: gcloud\n    args:\n      - 'run'\n      - 'deploy'\n      - 'my-service'\n      - '--image=gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA'\n      - '--region=us-central1'\n      - '--platform=managed'\n      - '--allow-unauthenticated'\n      - '--memory=512Mi'\n      - '--cpu=1'\n      - '--min-instances=1'\n      - '--max-instances=100'\n     \n```\n\n### Cloud Run Functions Pattern\n\nEvent-driven functions (formerly Cloud Functions)\n\n**When to use**: ['Simple event handlers', 'Pub\u002FSub message processing', 'Cloud Storage triggers', 'HTTP webhooks']\n\n```javascript\n```javascript\n\u002F\u002F HTTP Function\n\u002F\u002F index.js\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.http('helloHttp', (req, res) => {\n  const name = req.query.name || req.body.name || 'World';\n  res.send(`Hello, ${name}!`);\n});\n```\n\n```javascript\n\u002F\u002F Pub\u002FSub Function\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.cloudEvent('processPubSub', (cloudEvent) => {\n  \u002F\u002F Decode Pub\u002FSub message\n  const message = cloudEvent.data.message;\n  const data = message.data\n    ? JSON.parse(Buffer.from(message.data, 'base64').toString())\n    : {};\n\n  console.log('Received message:', data);\n\n  \u002F\u002F Process message\n  processMessage(data);\n});\n```\n\n```javascript\n\u002F\u002F Cloud Storage Function\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.cloudEvent('processStorageEvent', async (cloudEvent) => {\n  const file = cloudEvent.data;\n\n  console.log(`Event: ${cloudEvent.type}`);\n  console.log(`Bucket: ${file.bucket}`);\n  console.log(`File: ${file.name}`);\n\n  if (cloudEvent.type === 'google.cloud.storage.object.v1.finalized') {\n    await processUploadedFile(file.bucket, file.name);\n  }\n});\n```\n\n```bash\n# Deploy HTTP function\ngcloud functions deploy hello-http \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-http \\\n  --allow-unauthenticated \\\n  --region us-central1\n\n# Deploy Pub\u002FSub function\ngcloud functions deploy process-messages \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-topic my-topic \\\n  --region us-central1\n\n# Deploy Cloud Storage function\ngcloud functions deploy process-uploads \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n  --trigger-event-filters=\"bucket=my-bucket\" \\\n  --region us-central1\n```\n```\n\n### Cold Start Optimization Pattern\n\nMinimize cold start latency for Cloud Run\n\n**When to use**: ['Latency-sensitive applications', 'User-facing APIs', 'High-traffic services']\n\n```javascript\n## 1. Enable Startup CPU Boost\n\n```bash\ngcloud run deploy my-service \\\n  --cpu-boost \\\n  --region us-central1\n```\n\n## 2. Set Minimum Instances\n\n```bash\ngcloud run deploy my-service \\\n  --min-instances 1 \\\n  --region us-central1\n```\n\n## 3. Optimize Container Image\n\n```dockerfile\n# Use distroless for minimal image\nFROM node:20-slim AS builder\nWORKDIR \u002Fapp\nCOPY package*.json .\u002F\nRUN npm ci --only=production\n\nFROM gcr.io\u002Fdistroless\u002Fnodejs20-debian12\nWORKDIR \u002Fapp\nCOPY --from=builder \u002Fapp\u002Fnode_modules .\u002Fnode_modules\nCOPY src .\u002Fsrc\nCMD [\"src\u002Findex.js\"]\n```\n\n## 4. Lazy Initialize Heavy Dependencies\n\n```javascript\n\u002F\u002F Lazy load heavy libraries\nlet bigQueryClient = null;\n\nfunction getBigQueryClient() {\n  if (!bigQueryClient) {\n    const { BigQuery } = require('@google-cloud\u002Fbigquery');\n    bigQueryClient = new BigQuery();\n  }\n  return bigQueryClient;\n}\n\n\u002F\u002F Only initialize when needed\napp.get('\u002Fapi\u002Fanalytics', async (req, res) => {\n  const client = getBigQueryClient();\n  const results = await client.query({...});\n  res.json(results);\n});\n```\n\n## 5. Increase Memory (More CPU)\n\n```bash\n# Higher memory = more CPU during startup\ngcloud run deploy my-service \\\n  --memory 1Gi \\\n  --cpu 2 \\\n  --region us-central1\n```\n```\n\n## Anti-Patterns\n\n### ❌ CPU-Intensive Work Without Concurrency=1\n\n**Why bad**: CPU is shared across concurrent requests. CPU-bound work\nwill starve other requests, causing timeouts.\n\n### ❌ Writing Large Files to \u002Ftmp\n\n**Why bad**: \u002Ftmp is an in-memory filesystem. Large files consume\nyour memory allocation and can cause OOM errors.\n\n### ❌ Long-Running Background Tasks\n\n**Why bad**: Cloud Run throttles CPU to near-zero when not handling\nrequests. Background tasks will be extremely slow or stall.\n\n## ⚠️ Sharp Edges\n\n| Issue | Severity | Solution |\n|-------|----------|----------|\n| Issue | high | ## Calculate memory including \u002Ftmp usage |\n| Issue | high | ## Set appropriate concurrency |\n| Issue | high | ## Enable CPU always allocated |\n| Issue | medium | ## Configure connection pool with keep-alive |\n| Issue | high | ## Enable startup CPU boost |\n| Issue | medium | ## Explicitly set execution environment |\n| Issue | medium | ## Set consistent timeouts |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# GCP Cloud Run\n\n## Patterns\n\n### Cloud Run Service Pattern\n\nContainerized web service on Cloud Run\n\n**When to use**: ['Web applications and APIs', 'Need any runtime or library', 'Complex services with multiple endpoints', 'Stateless containerized workloads']\n\n```javascript\n```dockerfile\n# Dockerfile - Multi-stage build for smaller image\nFROM node:20-slim AS builder\nWORKDIR \u002Fapp\nCOPY package*.json .\u002F\nRUN npm ci --only=production\n\nFROM node:20-slim\nWORKDIR \u002Fapp\n\n# Copy only production dependencies\nCOPY --from=builder \u002Fapp\u002Fnode_modules .\u002Fnode_modules\nCOPY src .\u002Fsrc\nCOPY package.json .\u002F\n\n# Cloud Run uses PORT env variable\nENV PORT=8080\nEXPOSE 8080\n\n# Run as non-root user\nUSER node\n\nCMD [\"node\", \"src\u002Findex.js\"]\n```\n\n```javascript\n\u002F\u002F src\u002Findex.js\nconst express = require('express');\nconst app = express();\n\napp.use(express.json());\n\n\u002F\u002F Health check endpoint\napp.get('\u002Fhealth', (req, res) => {\n  res.status(200).send('OK');\n});\n\n\u002F\u002F API routes\napp.get('\u002Fapi\u002Fitems\u002F:id', async (req, res) => {\n  try {\n    const item = await getItem(req.params.id);\n    res.json(item);\n  } catch (error) {\n    console.error('Error:', error);\n    res.status(500).json({ error: 'Internal server error' });\n  }\n});\n\n\u002F\u002F Graceful shutdown\nprocess.on('SIGTERM', () => {\n  console.log('SIGTERM received, shutting down gracefully');\n  server.close(() => {\n    console.log('Server closed');\n    process.exit(0);\n  });\n});\n\nconst PORT = process.env.PORT || 8080;\nconst server = app.listen(PORT, () => {\n  console.log(`Server listening on port ${PORT}`);\n});\n```\n\n```yaml\n# cloudbuild.yaml\nsteps:\n  # Build the container image\n  - name: 'gcr.io\u002Fcloud-builders\u002Fdocker'\n    args: ['build', '-t', 'gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA', '.']\n\n  # Push the container image\n  - name: 'gcr.io\u002Fcloud-builders\u002Fdocker'\n    args: ['push', 'gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA']\n\n  # Deploy to Cloud Run\n  - name: 'gcr.io\u002Fgoogle.com\u002Fcloudsdktool\u002Fcloud-sdk'\n    entrypoint: gcloud\n    args:\n      - 'run'\n      - 'deploy'\n      - 'my-service'\n      - '--image=gcr.io\u002F$PROJECT_ID\u002Fmy-service:$COMMIT_SHA'\n      - '--region=us-central1'\n      - '--platform=managed'\n      - '--allow-unauthenticated'\n      - '--memory=512Mi'\n      - '--cpu=1'\n      - '--min-instances=1'\n      - '--max-instances=100'\n     \n```\n\n### Cloud Run Functions Pattern\n\nEvent-driven functions (formerly Cloud Functions)\n\n**When to use**: ['Simple event handlers', 'Pub\u002FSub message processing', 'Cloud Storage triggers', 'HTTP webhooks']\n\n```javascript\n```javascript\n\u002F\u002F HTTP Function\n\u002F\u002F index.js\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.http('helloHttp', (req, res) => {\n  const name = req.query.name || req.body.name || 'World';\n  res.send(`Hello, ${name}!`);\n});\n```\n\n```javascript\n\u002F\u002F Pub\u002FSub Function\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.cloudEvent('processPubSub', (cloudEvent) => {\n  \u002F\u002F Decode Pub\u002FSub message\n  const message = cloudEvent.data.message;\n  const data = message.data\n    ? JSON.parse(Buffer.from(message.data, 'base64').toString())\n    : {};\n\n  console.log('Received message:', data);\n\n  \u002F\u002F Process message\n  processMessage(data);\n});\n```\n\n```javascript\n\u002F\u002F Cloud Storage Function\nconst functions = require('@google-cloud\u002Ffunctions-framework');\n\nfunctions.cloudEvent('processStorageEvent', async (cloudEvent) => {\n  const file = cloudEvent.data;\n\n  console.log(`Event: ${cloudEvent.type}`);\n  console.log(`Bucket: ${file.bucket}`);\n  console.log(`File: ${file.name}`);\n\n  if (cloudEvent.type === 'google.cloud.storage.object.v1.finalized') {\n    await processUploadedFile(file.bucket, file.name);\n  }\n});\n```\n\n```bash\n# Deploy HTTP function\ngcloud functions deploy hello-http \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-http \\\n  --allow-unauthenticated \\\n  --region us-central1\n\n# Deploy Pub\u002FSub function\ngcloud functions deploy process-messages \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-topic my-topic \\\n  --region us-central1\n\n# Deploy Cloud Storage function\ngcloud functions deploy process-uploads \\\n  --gen2 \\\n  --runtime nodejs20 \\\n  --trigger-event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n  --trigger-event-filters=\"bucket=my-bucket\" \\\n  --region us-central1\n```\n```\n\n### Cold Start Optimization Pattern\n\nMinimize cold start latency for Cloud Run\n\n**When to use**: ['Latency-sensitive applications', 'User-facing APIs', 'High-traffic services']\n\n```javascript\n## 1. Enable Startup CPU Boost\n\n```bash\ngcloud run deploy my-service \\\n  --cpu-boost \\\n  --region us-central1\n```\n\n## 2. Set Minimum Instances\n\n```bash\ngcloud run deploy my-service \\\n  --min-instances 1 \\\n  --region us-central1\n```\n\n## 3. Optimize Container Image\n\n```dockerfile\n# Use distroless for minimal image\nFROM node:20-slim AS builder\nWORKDIR \u002Fapp\nCOPY package*.json .\u002F\nRUN npm ci --only=production\n\nFROM gcr.io\u002Fdistroless\u002Fnodejs20-debian12\nWORKDIR \u002Fapp\nCOPY --from=builder \u002Fapp\u002Fnode_modules .\u002Fnode_modules\nCOPY src .\u002Fsrc\nCMD [\"src\u002Findex.js\"]\n```\n\n## 4. Lazy Initialize Heavy Dependencies\n\n```javascript\n\u002F\u002F Lazy load heavy libraries\nlet bigQueryClient = null;\n\nfunction getBigQueryClient() {\n  if (!bigQueryClient) {\n    const { BigQuery } = require('@google-cloud\u002Fbigquery');\n    bigQueryClient = new BigQuery();\n  }\n  return bigQueryClient;\n}\n\n\u002F\u002F Only initialize when needed\napp.get('\u002Fapi\u002Fanalytics', async (req, res) => {\n  const client = getBigQueryClient();\n  const results = await client.query({...});\n  res.json(results);\n});\n```\n\n## 5. Increase Memory (More CPU)\n\n```bash\n# Higher memory = more CPU during startup\ngcloud run deploy my-service \\\n  --memory 1Gi \\\n  --cpu 2 \\\n  --region us-central1\n```\n```\n\n## Anti-Patterns\n\n### ❌ CPU-Intensive Work Without Concurrency=1\n\n**Why bad**: CPU is shared across concurrent requests. CPU-bound work\nwill starve other requests, causing timeouts.\n\n### ❌ Writing Large Files to \u002Ftmp\n\n**Why bad**: \u002Ftmp is an in-memory filesystem. Large files consume\nyour memory allocation and can cause OOM errors.\n\n### ❌ Long-Running Background Tasks\n\n**Why bad**: Cloud Run throttles CPU to near-zero when not handling\nrequests. Background tasks will be extremely slow or stall.\n\n## ⚠️ Sharp Edges\n\n| Issue | Severity | Solution |\n|-------|----------|----------|\n| Issue | high | ## Calculate memory including \u002Ftmp usage |\n| Issue | high | ## Set appropriate concurrency |\n| Issue | high | ## Enable CPU always allocated |\n| Issue | medium | ## Configure connection pool with keep-alive |\n| Issue | high | ## Enable startup CPU boost |\n| Issue | medium | ## Explicitly set execution environment |\n| Issue | medium | ## Set consistent timeouts |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":42,"source":43,"description":7},"unknown","vibeship-spawner-skills (Apache 2.0)","master","dff58085da947e81e8418c922055644bf0082b1b","skills\u002Fdevops\u002Fgcp-cloud-run","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add reikiplanet\u002Fdaoskills --skill gcp-cloud-run",{"tool":58,"command":59},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill gcp-cloud-run",{"tool":61,"command":62},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill gcp-cloud-run","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fdevops\u002Fgcp-cloud-run\u002FSKILL.md",true,[],[67,93,105,119,139,162],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":37},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,33,89,90,91,92],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","framework","browser","development","webgpu",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":37},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[100,101,91,102,103,80,82,83,84,77,104,78],"ar","vr ar","interaction","requirements","performance",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":37},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[107,112,113,114,115,116,80,117,84,118,23,77],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":37},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[126,127,128,129,130,80,131,132,133,134,117,135,136,137,138],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":37},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[146,147,148,149,150,151,152,153,80,84,77,154,78,155,156,157,158,159,160,161],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":37},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[169,170,171,172,173,174,175,176,159,117,177,178,179,80,180,181,182,156,183,184],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]