[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P3X6DYR3BAV0CM6DFYMANC":3,"skill-same:01M6P3X6DYR3BAV0CM6DFYMANC":77},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":34,"commitSha":58,"skillDirectory":59,"forksCount":13,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6P3X6DYR3BAV0CM6DFYMANC","gcp-cloud-functions",null,"Deploy serverless functions on Google Cloud Functions. Configure triggers and manage deployments. Use when implementing serverless workloads on GCP.","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fgcp-cloud-functions\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"functions","cloud functions","gcp cloud functions","cloud","gcp","manage","license","implementing","relevant","triggers","platform","main","community","google cloud","deployments","agent-skills","only","use","access","devops-security","2026-11-10 10:12:30",false,"---\nname: gcp-cloud-functions\ndescription: Deploy serverless functions on Google Cloud Functions. Configure triggers\n  and manage deployments. Use when implementing serverless workloads on GCP.\ncategory: devops\nrisk: critical\nsource: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\nsource_repo: BagelHole\u002FDevOps-Security-Agent-Skills\nsource_type: community\ndate_added: '2026-09-20'\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE\ncompatibility: Requires the relevant OS\u002Fplatform tooling and privileged access where\n  noted. Docs-only; helper scripts and templates not bundled.\nmetadata:\n  author: devops-skills\n  version: '1.0'\n---\n\n# GCP Cloud Functions\n\nBuild and deploy event-driven serverless applications with Google Cloud Functions (Gen1 and Gen2).\n\n## When to Use\n\n- Processing webhooks, API endpoints, or lightweight HTTP backends\n- Reacting to events from Pub\u002FSub, Cloud Storage, Firestore, or Eventarc\n- Running scheduled tasks (cron) without maintaining a server\n- Building data-processing pipelines triggered by file uploads\n- Prototyping microservices before committing to Cloud Run or GKE\n\n## Prerequisites\n\n- Google Cloud SDK (`gcloud`) installed and authenticated\n- APIs enabled: Cloud Functions, Cloud Build, Artifact Registry, Cloud Run (Gen2)\n- IAM role `roles\u002Fcloudfunctions.developer` (or `roles\u002Frun.developer` for Gen2)\n\n```bash\ngcloud services enable cloudfunctions.googleapis.com cloudbuild.googleapis.com \\\n  artifactregistry.googleapis.com run.googleapis.com eventarc.googleapis.com\n```\n\n## Gen1 vs Gen2 Comparison\n\n| Feature | Gen1 | Gen2 (recommended) |\n|---------|------|---------------------|\n| Runtime | Cloud Functions infra | Built on Cloud Run |\n| Max timeout | 9 minutes | 60 minutes |\n| Max memory | 8 GB | 32 GB |\n| Concurrency | 1 request\u002Finstance | Up to 1000\u002Finstance |\n| Traffic splitting | No | Yes |\n| Eventarc triggers | No | Yes |\n\n## Deploy an HTTP Function (Gen2)\n\n```bash\n# Python HTTP function\ngcloud functions deploy hello-http \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-http --allow-unauthenticated \\\n  --entry-point=hello_http \\\n  --memory=256Mi --timeout=60s \\\n  --min-instances=0 --max-instances=100 \\\n  --set-env-vars=APP_ENV=production --source=.\n\n# Node.js HTTP function\ngcloud functions deploy hello-node \\\n  --gen2 --region=us-central1 --runtime=nodejs20 \\\n  --trigger-http --allow-unauthenticated \\\n  --entry-point=helloNode --memory=256Mi --source=.\n```\n\n## Deploy a Pub\u002FSub Triggered Function\n\n```bash\ngcloud pubsub topics create order-events\n\ngcloud functions deploy process-order \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-topic=order-events \\\n  --entry-point=process_order \\\n  --memory=512Mi --timeout=120s --retry \\\n  --service-account=order-processor@${PROJECT_ID}.iam.gserviceaccount.com \\\n  --source=.\n```\n\n## Deploy a Cloud Storage Triggered Function\n\n```bash\ngcloud functions deploy process-upload \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n  --trigger-event-filters=\"bucket=my-upload-bucket\" \\\n  --entry-point=process_upload \\\n  --memory=1Gi --timeout=300s --source=.\n```\n\n## Deploy a Scheduled Function\n\n```bash\ngcloud functions deploy daily-cleanup \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-http --no-allow-unauthenticated \\\n  --entry-point=daily_cleanup --source=.\n\ngcloud scheduler jobs create http daily-cleanup-job \\\n  --schedule=\"0 2 * * *\" \\\n  --uri=\"https:\u002F\u002Fus-central1-${PROJECT_ID}.cloudfunctions.net\u002Fdaily-cleanup\" \\\n  --http-method=POST \\\n  --oidc-service-account-email=scheduler-sa@${PROJECT_ID}.iam.gserviceaccount.com \\\n  --location=us-central1\n```\n\n## Python Function Examples\n\n```python\n# main.py\nimport functions_framework\nimport base64, json\nfrom flask import jsonify\nfrom google.cloud import firestore\n\n@functions_framework.http\ndef hello_http(request):\n    \"\"\"HTTP Cloud Function.\"\"\"\n    name = request.args.get(\"name\", \"World\")\n    return jsonify({\"message\": f\"Hello, {name}!\", \"status\": \"ok\"}), 200\n\n@functions_framework.cloud_event\ndef process_order(cloud_event):\n    \"\"\"Triggered by a Pub\u002FSub message.\"\"\"\n    data = base64.b64decode(cloud_event.data[\"message\"][\"data\"]).decode(\"utf-8\")\n    order = json.loads(data)\n    db = firestore.Client()\n    db.collection(\"orders\").document(order[\"id\"]).set({\n        \"status\": \"processing\", \"items\": order[\"items\"], \"total\": order[\"total\"],\n    })\n\n@functions_framework.cloud_event\ndef process_upload(cloud_event):\n    \"\"\"Triggered when a file is uploaded to Cloud Storage.\"\"\"\n    data = cloud_event.data\n    bucket_name, file_name = data[\"bucket\"], data[\"name\"]\n    if not file_name.lower().endswith((\".png\", \".jpg\", \".jpeg\")):\n        return\n    from google.cloud import vision\n    client = vision.ImageAnnotatorClient()\n    image = vision.Image(source=vision.ImageSource(\n        gcs_image_uri=f\"gs:\u002F\u002F{bucket_name}\u002F{file_name}\"))\n    labels = [l.description for l in client.label_detection(image=image).label_annotations]\n    print(f\"Labels for {file_name}: {labels}\")\n```\n\n```\n# requirements.txt\nfunctions-framework==3.*\ngoogle-cloud-firestore==2.*\ngoogle-cloud-storage==2.*\ngoogle-cloud-vision==3.*\nflask>=2.0\n```\n\n## Node.js Function Examples\n\n```javascript\n\u002F\u002F index.js\nconst functions = require(\"@google-cloud\u002Ffunctions-framework\");\n\nfunctions.http(\"helloNode\", (req, res) => {\n  const name = req.query.name || \"World\";\n  res.json({ message: `Hello, ${name}!`, status: \"ok\" });\n});\n\nfunctions.cloudEvent(\"processMessage\", (cloudEvent) => {\n  const data = Buffer.from(cloudEvent.data.message.data, \"base64\").toString();\n  console.log(`Processing: ${JSON.parse(data)}`);\n});\n```\n\n## Managing Deployed Functions\n\n```bash\ngcloud functions list --gen2 --region=us-central1\ngcloud functions describe hello-http --gen2 --region=us-central1\ngcloud functions logs read hello-http --gen2 --region=us-central1 --limit=50\ngcloud functions delete hello-http --gen2 --region=us-central1 --quiet\n\n# Update env vars without redeploying code\ngcloud functions deploy hello-http --gen2 --region=us-central1 \\\n  --update-env-vars=APP_ENV=staging\n\n# Test locally before deploying\nfunctions-framework --target=hello_http --port=8080\n```\n\n## Terraform Configuration\n\n```hcl\nresource \"google_cloudfunctions2_function\" \"api\" {\n  name     = \"hello-http\"\n  location = \"us-central1\"\n\n  build_config {\n    runtime     = \"python312\"\n    entry_point = \"hello_http\"\n    source {\n      storage_source {\n        bucket = google_storage_bucket.source.name\n        object = google_storage_bucket_object.source.name\n      }\n    }\n  }\n\n  service_config {\n    min_instance_count    = 0\n    max_instance_count    = 100\n    available_memory      = \"256Mi\"\n    timeout_seconds       = 60\n    service_account_email = google_service_account.fn.email\n    environment_variables = { APP_ENV = \"production\" }\n  }\n}\n\nresource \"google_cloud_run_service_iam_member\" \"invoker\" {\n  location = google_cloudfunctions2_function.api.location\n  service  = google_cloudfunctions2_function.api.name\n  role     = \"roles\u002Frun.invoker\"\n  member   = \"allUsers\"\n}\n\nresource \"google_cloudfunctions2_function\" \"processor\" {\n  name     = \"process-order\"\n  location = \"us-central1\"\n\n  build_config {\n    runtime     = \"python312\"\n    entry_point = \"process_order\"\n    source {\n      storage_source {\n        bucket = google_storage_bucket.source.name\n        object = google_storage_bucket_object.source.name\n      }\n    }\n  }\n\n  service_config {\n    max_instance_count    = 50\n    available_memory      = \"512Mi\"\n    timeout_seconds       = 120\n    service_account_email = google_service_account.fn.email\n  }\n\n  event_trigger {\n    trigger_region = \"us-central1\"\n    event_type     = \"google.cloud.pubsub.topic.v1.messagePublished\"\n    pubsub_topic   = google_pubsub_topic.orders.id\n    retry_policy   = \"RETRY_POLICY_RETRY\"\n  }\n}\n```\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---------|-------|-----|\n| `PERMISSION_DENIED` on deploy | Missing Cloud Build or Artifact Registry perms | Grant `roles\u002Fcloudbuild.builds.builder` to Cloud Build SA |\n| Function deploys but returns 403 | Missing `roles\u002Frun.invoker` for Gen2 | Add `--allow-unauthenticated` or grant invoker role |\n| Cold start latency > 5s | Large dependencies or no min instances | Set `--min-instances=1`; reduce deps; use lazy imports |\n| Pub\u002FSub messages redelivered | Function errors or times out | Increase `--timeout`; fix error handling; add dead-letter topic |\n| `Build failed` during deploy | Syntax error or missing dependency | Check `gcloud builds log`; verify requirements.txt |\n| Cannot connect to VPC resource | Function not on VPC connector | Add `--vpc-connector=my-connector` to deploy |\n\n## Related Skills\n\n- **gcp-networking** - VPC connectors for accessing private resources from functions\n- **gcp-cloud-sql** - Connecting Cloud Functions to managed databases\n- **terraform-gcp** - Deploy Cloud Functions with Infrastructure as Code\n- **gcp-gke** - When workloads outgrow serverless and need Kubernetes\n\n## Limitations\n\n- Infrastructure commands can disrupt services: confirm target host\u002Fscope and have backups\u002Fsnapshots before mutating state.\n- Docs-only import: upstream scripts and templates not bundled.\n\n","# GCP Cloud Functions\n\nBuild and deploy event-driven serverless applications with Google Cloud Functions (Gen1 and Gen2).\n\n## When to Use\n\n- Processing webhooks, API endpoints, or lightweight HTTP backends\n- Reacting to events from Pub\u002FSub, Cloud Storage, Firestore, or Eventarc\n- Running scheduled tasks (cron) without maintaining a server\n- Building data-processing pipelines triggered by file uploads\n- Prototyping microservices before committing to Cloud Run or GKE\n\n## Prerequisites\n\n- Google Cloud SDK (`gcloud`) installed and authenticated\n- APIs enabled: Cloud Functions, Cloud Build, Artifact Registry, Cloud Run (Gen2)\n- IAM role `roles\u002Fcloudfunctions.developer` (or `roles\u002Frun.developer` for Gen2)\n\n```bash\ngcloud services enable cloudfunctions.googleapis.com cloudbuild.googleapis.com \\\n  artifactregistry.googleapis.com run.googleapis.com eventarc.googleapis.com\n```\n\n## Gen1 vs Gen2 Comparison\n\n| Feature | Gen1 | Gen2 (recommended) |\n|---------|------|---------------------|\n| Runtime | Cloud Functions infra | Built on Cloud Run |\n| Max timeout | 9 minutes | 60 minutes |\n| Max memory | 8 GB | 32 GB |\n| Concurrency | 1 request\u002Finstance | Up to 1000\u002Finstance |\n| Traffic splitting | No | Yes |\n| Eventarc triggers | No | Yes |\n\n## Deploy an HTTP Function (Gen2)\n\n```bash\n# Python HTTP function\ngcloud functions deploy hello-http \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-http --allow-unauthenticated \\\n  --entry-point=hello_http \\\n  --memory=256Mi --timeout=60s \\\n  --min-instances=0 --max-instances=100 \\\n  --set-env-vars=APP_ENV=production --source=.\n\n# Node.js HTTP function\ngcloud functions deploy hello-node \\\n  --gen2 --region=us-central1 --runtime=nodejs20 \\\n  --trigger-http --allow-unauthenticated \\\n  --entry-point=helloNode --memory=256Mi --source=.\n```\n\n## Deploy a Pub\u002FSub Triggered Function\n\n```bash\ngcloud pubsub topics create order-events\n\ngcloud functions deploy process-order \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-topic=order-events \\\n  --entry-point=process_order \\\n  --memory=512Mi --timeout=120s --retry \\\n  --service-account=order-processor@${PROJECT_ID}.iam.gserviceaccount.com \\\n  --source=.\n```\n\n## Deploy a Cloud Storage Triggered Function\n\n```bash\ngcloud functions deploy process-upload \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-event-filters=\"type=google.cloud.storage.object.v1.finalized\" \\\n  --trigger-event-filters=\"bucket=my-upload-bucket\" \\\n  --entry-point=process_upload \\\n  --memory=1Gi --timeout=300s --source=.\n```\n\n## Deploy a Scheduled Function\n\n```bash\ngcloud functions deploy daily-cleanup \\\n  --gen2 --region=us-central1 --runtime=python312 \\\n  --trigger-http --no-allow-unauthenticated \\\n  --entry-point=daily_cleanup --source=.\n\ngcloud scheduler jobs create http daily-cleanup-job \\\n  --schedule=\"0 2 * * *\" \\\n  --uri=\"https:\u002F\u002Fus-central1-${PROJECT_ID}.cloudfunctions.net\u002Fdaily-cleanup\" \\\n  --http-method=POST \\\n  --oidc-service-account-email=scheduler-sa@${PROJECT_ID}.iam.gserviceaccount.com \\\n  --location=us-central1\n```\n\n## Python Function Examples\n\n```python\n# main.py\nimport functions_framework\nimport base64, json\nfrom flask import jsonify\nfrom google.cloud import firestore\n\n@functions_framework.http\ndef hello_http(request):\n    \"\"\"HTTP Cloud Function.\"\"\"\n    name = request.args.get(\"name\", \"World\")\n    return jsonify({\"message\": f\"Hello, {name}!\", \"status\": \"ok\"}), 200\n\n@functions_framework.cloud_event\ndef process_order(cloud_event):\n    \"\"\"Triggered by a Pub\u002FSub message.\"\"\"\n    data = base64.b64decode(cloud_event.data[\"message\"][\"data\"]).decode(\"utf-8\")\n    order = json.loads(data)\n    db = firestore.Client()\n    db.collection(\"orders\").document(order[\"id\"]).set({\n        \"status\": \"processing\", \"items\": order[\"items\"], \"total\": order[\"total\"],\n    })\n\n@functions_framework.cloud_event\ndef process_upload(cloud_event):\n    \"\"\"Triggered when a file is uploaded to Cloud Storage.\"\"\"\n    data = cloud_event.data\n    bucket_name, file_name = data[\"bucket\"], data[\"name\"]\n    if not file_name.lower().endswith((\".png\", \".jpg\", \".jpeg\")):\n        return\n    from google.cloud import vision\n    client = vision.ImageAnnotatorClient()\n    image = vision.Image(source=vision.ImageSource(\n        gcs_image_uri=f\"gs:\u002F\u002F{bucket_name}\u002F{file_name}\"))\n    labels = [l.description for l in client.label_detection(image=image).label_annotations]\n    print(f\"Labels for {file_name}: {labels}\")\n```\n\n```\n# requirements.txt\nfunctions-framework==3.*\ngoogle-cloud-firestore==2.*\ngoogle-cloud-storage==2.*\ngoogle-cloud-vision==3.*\nflask>=2.0\n```\n\n## Node.js Function Examples\n\n```javascript\n\u002F\u002F index.js\nconst functions = require(\"@google-cloud\u002Ffunctions-framework\");\n\nfunctions.http(\"helloNode\", (req, res) => {\n  const name = req.query.name || \"World\";\n  res.json({ message: `Hello, ${name}!`, status: \"ok\" });\n});\n\nfunctions.cloudEvent(\"processMessage\", (cloudEvent) => {\n  const data = Buffer.from(cloudEvent.data.message.data, \"base64\").toString();\n  console.log(`Processing: ${JSON.parse(data)}`);\n});\n```\n\n## Managing Deployed Functions\n\n```bash\ngcloud functions list --gen2 --region=us-central1\ngcloud functions describe hello-http --gen2 --region=us-central1\ngcloud functions logs read hello-http --gen2 --region=us-central1 --limit=50\ngcloud functions delete hello-http --gen2 --region=us-central1 --quiet\n\n# Update env vars without redeploying code\ngcloud functions deploy hello-http --gen2 --region=us-central1 \\\n  --update-env-vars=APP_ENV=staging\n\n# Test locally before deploying\nfunctions-framework --target=hello_http --port=8080\n```\n\n## Terraform Configuration\n\n```hcl\nresource \"google_cloudfunctions2_function\" \"api\" {\n  name     = \"hello-http\"\n  location = \"us-central1\"\n\n  build_config {\n    runtime     = \"python312\"\n    entry_point = \"hello_http\"\n    source {\n      storage_source {\n        bucket = google_storage_bucket.source.name\n        object = google_storage_bucket_object.source.name\n      }\n    }\n  }\n\n  service_config {\n    min_instance_count    = 0\n    max_instance_count    = 100\n    available_memory      = \"256Mi\"\n    timeout_seconds       = 60\n    service_account_email = google_service_account.fn.email\n    environment_variables = { APP_ENV = \"production\" }\n  }\n}\n\nresource \"google_cloud_run_service_iam_member\" \"invoker\" {\n  location = google_cloudfunctions2_function.api.location\n  service  = google_cloudfunctions2_function.api.name\n  role     = \"roles\u002Frun.invoker\"\n  member   = \"allUsers\"\n}\n\nresource \"google_cloudfunctions2_function\" \"processor\" {\n  name     = \"process-order\"\n  location = \"us-central1\"\n\n  build_config {\n    runtime     = \"python312\"\n    entry_point = \"process_order\"\n    source {\n      storage_source {\n        bucket = google_storage_bucket.source.name\n        object = google_storage_bucket_object.source.name\n      }\n    }\n  }\n\n  service_config {\n    max_instance_count    = 50\n    available_memory      = \"512Mi\"\n    timeout_seconds       = 120\n    service_account_email = google_service_account.fn.email\n  }\n\n  event_trigger {\n    trigger_region = \"us-central1\"\n    event_type     = \"google.cloud.pubsub.topic.v1.messagePublished\"\n    pubsub_topic   = google_pubsub_topic.orders.id\n    retry_policy   = \"RETRY_POLICY_RETRY\"\n  }\n}\n```\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---------|-------|-----|\n| `PERMISSION_DENIED` on deploy | Missing Cloud Build or Artifact Registry perms | Grant `roles\u002Fcloudbuild.builds.builder` to Cloud Build SA |\n| Function deploys but returns 403 | Missing `roles\u002Frun.invoker` for Gen2 | Add `--allow-unauthenticated` or grant invoker role |\n| Cold start latency > 5s | Large dependencies or no min instances | Set `--min-instances=1`; reduce deps; use lazy imports |\n| Pub\u002FSub messages redelivered | Function errors or times out | Increase `--timeout`; fix error handling; add dead-letter topic |\n| `Build failed` during deploy | Syntax error or missing dependency | Check `gcloud builds log`; verify requirements.txt |\n| Cannot connect to VPC resource | Function not on VPC connector | Add `--vpc-connector=my-connector` to deploy |\n\n## Related Skills\n\n- **gcp-networking** - VPC connectors for accessing private resources from functions\n- **gcp-cloud-sql** - Connecting Cloud Functions to managed databases\n- **terraform-gcp** - Deploy Cloud Functions with Infrastructure as Code\n- **gcp-gke** - When workloads outgrow serverless and need Kubernetes\n\n## Limitations\n\n- Infrastructure commands can disrupt services: confirm target host\u002Fscope and have backups\u002Fsnapshots before mutating state.\n- Docs-only import: upstream scripts and templates not bundled.\n\n",{"name":5,"risk":48,"source":49,"license":14,"category":50,"metadata":51,"date_added":54,"description":7,"source_repo":55,"source_type":35,"compatibility":56,"license_source":57},"critical","https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills","devops",{"author":52,"version":53},"devops-skills","1.0","2026-09-20","BagelHole\u002FDevOps-Security-Agent-Skills","Requires the relevant OS\u002Fplatform tooling and privileged access where noted. Docs-only; helper scripts and templates not bundled.","https:\u002F\u002Fgithub.com\u002FBagelHole\u002FDevOps-Security-Agent-Skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fgcp-cloud-functions","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill gcp-cloud-functions",{"tool":69,"command":70},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill gcp-cloud-functions",{"tool":72,"command":73},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill gcp-cloud-functions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fgcp-cloud-functions\u002FSKILL.md",true,[],[78,97,121,145,173,197],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":85,"publishedAt":43},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[84],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[86,87,88,89,90,91,80,92,42,41,93,39,35,34,94,48,95,96,31,30],"ZeRO","trust","zero trust","architecture","assessment","verification","segmentation","configure","active","scope","scripts",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":43},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[104,105,106,107,108,109,110,111,112,113,114,115,116,39,117,35,118,119,48,120],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":43},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[128,129,130,131,132,133,134,29,135,136,137,138,139,35,34,140,141,142,143,144],"transcript","youtube transcript","youtube","safe","github","codex","research","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":162,"publishedAt":43},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[151,154,157],{"categoryNo":152,"categoryName":153,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":155,"categoryName":156,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":158,"categoryName":159,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[128,129,130,163,131,164,132,133,29,165,166,167,168,137,169,35,34,170,171,172],"youtube transcript skills","gemini","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":183,"publishedAt":43},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[179,182],{"categoryNo":180,"categoryName":181,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":155,"categoryName":156,"taxonomyType":20,"taxonomyTypeDesc":21},[130,184,185,108,131,186,187,188,189,29,167,190,191,192,193,34,194,140,195,196],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":204,"publishedAt":43},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[203],{"categoryNo":152,"categoryName":153,"taxonomyType":20,"taxonomyTypeDesc":21},[205,130,206,207,131,164,165,208,209,166,167,168,137,210,169,35,34,170,211,143],"youtube full","full","google","server","dlp","credits","automatic"]