[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6WM7SZ4PZVMENZ53T2CK4F5":3,"skill-same:01M6WM7SZ4PZVMENZ53T2CK4F5":62},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6WM7SZ4PZVMENZ53T2CK4F5","pr-preview-servers",null,"Find and validate rotating GCP Cloud Run preview servers for PR branches.","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fworldarchitect\u002Fskills\u002Fpr-preview-servers\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35],"pr","pr preview servers","preview","servers","validate","run","cloud","gcp","gcp cloud run","find","branches","for","cloud run","2026-11-10 10:12:30",false,"---\nname: pr-preview-servers\ndescription: Find and validate rotating GCP Cloud Run preview servers for PR branches.\n---\n\n# PR Preview Servers — GCP Cloud Run Pool\n\nReference for the rotating preview server pool used to deploy PR branches.\n\n## Pool Configuration\n\n- **Pool size**: 10 servers (`mvp-site-app-s1` through `mvp-site-app-s10`)\n- **Service prefix**: `mvp-site-app`\n- **GCP project**: `$GCP_PROJECT_ID`\n- **Region**: `us-central1`\n- **Trigger**: Any PR push to `$PROJECT_ROOT\u002F**`, `Dockerfile`, `requirements.txt`, etc.\n- **Workflow**: `.github\u002Fworkflows\u002Fpr-preview.yml`\n- **Pool assignment script**: `.github\u002Fscripts\u002Fpr-server-pool.sh`\n\n## URL Pattern\n\n```\nhttps:\u002F\u002Fmvp-site-app-s{N}-{hash}-uc.a.run.app\n```\n\nWhere `{N}` is 1–10 and `{hash}` is Cloud Run's stable unique URL segment.\n\n### Finding the Current PR's Preview URL\n\n**From GitHub CLI (fastest):**\n```bash\ngh pr view \u003CPR_NUMBER> --json comments --jq '.comments[].body' | grep -o 'https:\u002F\u002Fmvp-site-app-s[^ ]*'\n```\n\n**From PR comments in the UI:**\nLook for the bot comment that says \"Preview deployed to: `https:\u002F\u002F...`\"\n\n**From Cloud Run directly:**\n```bash\ngcloud run services describe mvp-site-app-s{N} \\\n  --project=\"$GCP_PROJECT_ID\" \\\n  --region=us-central1 \\\n  --format='value(status.url)'\n```\n\n## Deployment Details\n\nThe preview server is deployed with:\n- `FLASK_ENV=production`\n- `ENVIRONMENT=preview`\n- Secrets: `GEMINI_API_KEY`, `CEREBRAS_API_KEY`, `OPENROUTER_API_KEY`\n- **NO** `TESTING_AUTH_BYPASS=true` — real Firebase auth is required for protected endpoints\n- Max 2 Cloud Run instances, same timeout as production\n\n## Health Endpoint\n\n```\nGET \u002Fhealth\n→ 200 {\"status\": \"healthy\", \"service\": \"worldarchitect-ai\", \"timestamp\": \"...\"}\n```\n\nNote: `\u002Fhealth` does **not** expose the `ENVIRONMENT` env var. Confirmed 2026-02-20.\n\n## Testing Against Preview Servers\n\nUse the standalone smoke test (no local server startup needed):\n\n```bash\n# Test the current PR's preview server\npython3 testing_mcp\u002Ftest_openclaw_gateway_url_preview.py\n\n# Test a specific preview URL\npython3 testing_mcp\u002Ftest_openclaw_gateway_url_preview.py \\\n  --server-url https:\u002F\u002F\u003Cpreview-service-url-s10>\n```\n\n### What You Can Test Without Auth\n\n| Test | Why |\n|------|-----|\n| `\u002Fhealth` → 200 | Public health endpoint |\n| `\u002Fsettings` HTML → 200, field present | Public HTML page |\n| `POST \u002Fapi\u002Fsettings` → 401 (not 404) | Route wired, auth enforced |\n| Static assets | Public static files |\n\n### What Requires Real Firebase Auth\n\n- `POST \u002Fapi\u002Fsettings` with actual settings values (save to Firestore)\n- `GET \u002Fapi\u002Fsettings` (read user settings)\n- Any campaign API endpoint\n\n## Pool Eviction Policy\n\nWhen all 10 slots are taken, the oldest assignment is evicted to make room.\nThe evicted PR loses its preview URL. Check PR #N's comments for current status.\n\n## Known Preview Server URLs by PR\n\n| PR | Server | URL |\n|----|--------|-----|\n| #5662 | s10 | `https:\u002F\u002F\u003Cpreview-service-url-s10>` |\n| #5857 | s2  | `https:\u002F\u002F\u003Cpreview-service-url-s2>` |\n\n> Update this table as PRs are deployed. URL stays stable as long as the pool slot isn't evicted.\n","# PR Preview Servers — GCP Cloud Run Pool\n\nReference for the rotating preview server pool used to deploy PR branches.\n\n## Pool Configuration\n\n- **Pool size**: 10 servers (`mvp-site-app-s1` through `mvp-site-app-s10`)\n- **Service prefix**: `mvp-site-app`\n- **GCP project**: `$GCP_PROJECT_ID`\n- **Region**: `us-central1`\n- **Trigger**: Any PR push to `$PROJECT_ROOT\u002F**`, `Dockerfile`, `requirements.txt`, etc.\n- **Workflow**: `.github\u002Fworkflows\u002Fpr-preview.yml`\n- **Pool assignment script**: `.github\u002Fscripts\u002Fpr-server-pool.sh`\n\n## URL Pattern\n\n```\nhttps:\u002F\u002Fmvp-site-app-s{N}-{hash}-uc.a.run.app\n```\n\nWhere `{N}` is 1–10 and `{hash}` is Cloud Run's stable unique URL segment.\n\n### Finding the Current PR's Preview URL\n\n**From GitHub CLI (fastest):**\n```bash\ngh pr view \u003CPR_NUMBER> --json comments --jq '.comments[].body' | grep -o 'https:\u002F\u002Fmvp-site-app-s[^ ]*'\n```\n\n**From PR comments in the UI:**\nLook for the bot comment that says \"Preview deployed to: `https:\u002F\u002F...`\"\n\n**From Cloud Run directly:**\n```bash\ngcloud run services describe mvp-site-app-s{N} \\\n  --project=\"$GCP_PROJECT_ID\" \\\n  --region=us-central1 \\\n  --format='value(status.url)'\n```\n\n## Deployment Details\n\nThe preview server is deployed with:\n- `FLASK_ENV=production`\n- `ENVIRONMENT=preview`\n- Secrets: `GEMINI_API_KEY`, `CEREBRAS_API_KEY`, `OPENROUTER_API_KEY`\n- **NO** `TESTING_AUTH_BYPASS=true` — real Firebase auth is required for protected endpoints\n- Max 2 Cloud Run instances, same timeout as production\n\n## Health Endpoint\n\n```\nGET \u002Fhealth\n→ 200 {\"status\": \"healthy\", \"service\": \"worldarchitect-ai\", \"timestamp\": \"...\"}\n```\n\nNote: `\u002Fhealth` does **not** expose the `ENVIRONMENT` env var. Confirmed 2026-02-20.\n\n## Testing Against Preview Servers\n\nUse the standalone smoke test (no local server startup needed):\n\n```bash\n# Test the current PR's preview server\npython3 testing_mcp\u002Ftest_openclaw_gateway_url_preview.py\n\n# Test a specific preview URL\npython3 testing_mcp\u002Ftest_openclaw_gateway_url_preview.py \\\n  --server-url https:\u002F\u002F\u003Cpreview-service-url-s10>\n```\n\n### What You Can Test Without Auth\n\n| Test | Why |\n|------|-----|\n| `\u002Fhealth` → 200 | Public health endpoint |\n| `\u002Fsettings` HTML → 200, field present | Public HTML page |\n| `POST \u002Fapi\u002Fsettings` → 401 (not 404) | Route wired, auth enforced |\n| Static assets | Public static files |\n\n### What Requires Real Firebase Auth\n\n- `POST \u002Fapi\u002Fsettings` with actual settings values (save to Firestore)\n- `GET \u002Fapi\u002Fsettings` (read user settings)\n- Any campaign API endpoint\n\n## Pool Eviction Policy\n\nWhen all 10 slots are taken, the oldest assignment is evicted to make room.\nThe evicted PR loses its preview URL. Check PR #N's comments for current status.\n\n## Known Preview Server URLs by PR\n\n| PR | Server | URL |\n|----|--------|-----|\n| #5662 | s10 | `https:\u002F\u002F\u003Cpreview-service-url-s10>` |\n| #5857 | s2  | `https:\u002F\u002F\u003Cpreview-service-url-s2>` |\n\n> Update this table as PRs are deployed. URL stays stable as long as the pool slot isn't evicted.\n",{"name":5,"description":7},"main","8144f00ebafc4306264c63239e4b9fa42e48a90e","plugins\u002Fworldarchitect\u002Fskills\u002Fpr-preview-servers",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-12 14:45:07",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill pr-preview-servers",{"tool":54,"command":55},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill pr-preview-servers",{"tool":57,"command":58},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill pr-preview-servers","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fworldarchitect\u002Fskills\u002Fpr-preview-servers\u002FSKILL.md",true,[],[63,81,102,116,130,146],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":36},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[65,70,71,72,73,74,75,76,77,78,79,80],"user","when","replies","check","use","identity","whatsapp","gmail","read","message","ask",{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":92,"publishedAt":36},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[87],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[83,93,94,95,34,96,97,98,99,100,101],"resume","compatibility","provenance","history","produce","alias","briefing","state","fresh",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":109,"publishedAt":36},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[108],{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},[96,93,110,111,70,112,99,113,34,114,115,100,101],"history resume","branch","analysis","repository","worktree","sources",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":36},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[118,123,124,125,34,126,98,127,128,129],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":36},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[137,138,139,74,140,34,141,142,143,144,145],"codexa bench","work","split","default","duplicate","task","compare","normal","codex",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":150,"licenseFileUrl":151,"sourceHtmlUrl":152,"categories":153,"keywords":163,"publishedAt":36},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[154,157,160],{"categoryNo":155,"categoryName":156,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":158,"categoryName":159,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":161,"categoryName":162,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000032","设计师",[164,165,166,74,167,168,169,70,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,71,188],"frontend","design","frontend design","generic","ui design","react","html","components","code","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","with","react components","web ui","pages"]