[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CC6KC6YMN5ZVJC4KB8XJFD":3,"skill-same:01M6CC6KC6YMN5ZVJC4KB8XJFD":65},{"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":17,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":40,"install":41,"resources":54},"01M6CC6KC6YMN5ZVJC4KB8XJFD","devcontainer-lifecycle",null,"This skill should be used when the user asks about \"devcontainer lifecycle events\", \"postStartCommand\", \"postCreateCommand\", \"onCreateCommand\", \"lifecycle execution order\", \"parallel named commands\", \"waitFor property\", \"command failure semantics\", \"prebuild commands\", \"container startup hooks\", or needs to understand when and how devcontainer lifecycle events execute.","ray-manaloto\u002Fmacos-development-environment","ray-manaloto","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F227192835?v=4","01M6CBR7J13ZA01X5YB1A1QRJP","01M6CBR7P0S3NS8ZV81JYNST14",1,"MIT","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fdevcontainer-toolkit\u002Fskills\u002Fdevcontainer-lifecycle\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28],"lifecycle","devcontainer lifecycle","startup","execution","how","parallel","command","user","execute","container","hooks","2026-11-10 10:12:30",false,"---\nname: devcontainer-lifecycle\ndescription: >\n  This skill should be used when the user asks about \"devcontainer lifecycle events\",\n  \"postStartCommand\", \"postCreateCommand\", \"onCreateCommand\", \"lifecycle execution order\",\n  \"parallel named commands\", \"waitFor property\", \"command failure semantics\",\n  \"prebuild commands\", \"container startup hooks\", or needs to understand when and how\n  devcontainer lifecycle events execute.\n---\n\n# Dev Container Lifecycle Events\n\n## Overview\n\nThe devcontainer specification defines 6 lifecycle events that execute in strict order\nduring container creation, startup, and editor attachment. Understanding execution order,\nscope, and failure semantics is essential for reliable dev environment initialization.\n\n## Execution Order (Strict)\n\n```\nHOST:       initializeCommand\nCONTAINER:  onCreateCommand → updateContentCommand → postCreateCommand\nON START:   postStartCommand\nON ATTACH:  postAttachCommand\n```\n\n### Event Reference Table\n\n| Event | Scope | When | Parallel | Re-runs on restart |\n|-------|-------|------|----------|--------------------|\n| initializeCommand | HOST | Before container creation | No | No |\n| onCreateCommand | Container | Container exists, not initialized | YES (object) | No |\n| updateContentCommand | Container | After onCreate | No | No |\n| postCreateCommand | Container | After full initialization | YES (object) | No |\n| postStartCommand | Container | Every start\u002Fresume | YES (object) | YES |\n| postAttachCommand | Container | Editor attaches | YES (object) | YES |\n\n### Key Insight: postStartCommand for Sidecar Services\n\n`postStartCommand` runs on EVERY container start, including restarts. This makes it the\ncorrect event for starting sidecar compose services that need to be running whenever the\ndev environment is active.\n\n## Command Syntax Formats\n\nThree formats are supported (availability varies by event):\n\n### String (shell execution)\n```json\n\"postCreateCommand\": \"npm install && npm run build\"\n```\nRuns in `\u002Fbin\u002Fsh`. Supports pipes, `&&`, `||`, redirects. Use for complex shell logic.\n\n### Array (direct execution)\n```json\n\"postCreateCommand\": [\"npm\", \"run\", \"build\"]\n```\nRuns directly without shell. More secure (no injection). Use for simple commands.\n\n### Object (parallel named commands)\n```json\n\"postCreateCommand\": {\n  \"build\": \"npm run build\",\n  \"watch\": \"npm run watch:css\",\n  \"db-seed\": [\"npm\", \"run\", \"db:seed\"]\n}\n```\nAll commands run in parallel with independent exit codes and logging.\nSupported by: onCreateCommand, postCreateCommand, postStartCommand, postAttachCommand.\n\n## Failure Semantics\n\n- If any creation command fails (onCreateCommand through postCreateCommand),\n  ALL subsequent commands are SKIPPED\n- postStartCommand and postAttachCommand only run if creation succeeded\n- Each parallel named command has independent exit status\n- No explicit timeout mechanism in the spec — use backgrounding wisely\n\n## waitFor Property\n\nControls which lifecycle event blocks container readiness:\n- Values: `\"initializeCommand\"` | `\"onCreateCommand\"` | `\"updateContentCommand\"` | `\"postCreateCommand\"`\n- Default: `\"postCreateCommand\"` (blocks until full setup complete)\n- Use case: Define prebuild cutoff point for CI optimization\n\n## Common Patterns\n\n### Fast startup with parallel initialization\n```json\n{\n  \"onCreateCommand\": {\n    \"deps\": \"apt-get update && apt-get install -y build-essential\",\n    \"db\": \"npm run db:setup\"\n  },\n  \"postStartCommand\": {\n    \"dev-server\": \"npm run dev\",\n    \"otel\": \"docker compose -f docker\u002Fotel\u002Fcompose.yaml up -d\"\n  }\n}\n```\n\n### Prebuild optimization\n```json\n{\n  \"waitFor\": \"updateContentCommand\",\n  \"onCreateCommand\": \"apt-get update && apt-get install -y nodejs\",\n  \"updateContentCommand\": \"npm ci\",\n  \"postCreateCommand\": \"npm run build\"\n}\n```\n\n## Additional Resources\n\n### Reference Files\n\nFor the complete lifecycle specification with all properties and edge cases:\n- **`references\u002Flifecycle-events-full.md`** — Complete event documentation with all syntax examples\n- **`references\u002Fexecution-guarantees.md`** — Timing, blocking, and failure behavior details\n\n### Related Skills\n\n- **devcontainer-compose** — Docker Compose integration patterns using lifecycle events\n- **devcontainer-setup** — Generate devcontainer.json with correct lifecycle pipeline\n","# Dev Container Lifecycle Events\n\n## Overview\n\nThe devcontainer specification defines 6 lifecycle events that execute in strict order\nduring container creation, startup, and editor attachment. Understanding execution order,\nscope, and failure semantics is essential for reliable dev environment initialization.\n\n## Execution Order (Strict)\n\n```\nHOST:       initializeCommand\nCONTAINER:  onCreateCommand → updateContentCommand → postCreateCommand\nON START:   postStartCommand\nON ATTACH:  postAttachCommand\n```\n\n### Event Reference Table\n\n| Event | Scope | When | Parallel | Re-runs on restart |\n|-------|-------|------|----------|--------------------|\n| initializeCommand | HOST | Before container creation | No | No |\n| onCreateCommand | Container | Container exists, not initialized | YES (object) | No |\n| updateContentCommand | Container | After onCreate | No | No |\n| postCreateCommand | Container | After full initialization | YES (object) | No |\n| postStartCommand | Container | Every start\u002Fresume | YES (object) | YES |\n| postAttachCommand | Container | Editor attaches | YES (object) | YES |\n\n### Key Insight: postStartCommand for Sidecar Services\n\n`postStartCommand` runs on EVERY container start, including restarts. This makes it the\ncorrect event for starting sidecar compose services that need to be running whenever the\ndev environment is active.\n\n## Command Syntax Formats\n\nThree formats are supported (availability varies by event):\n\n### String (shell execution)\n```json\n\"postCreateCommand\": \"npm install && npm run build\"\n```\nRuns in `\u002Fbin\u002Fsh`. Supports pipes, `&&`, `||`, redirects. Use for complex shell logic.\n\n### Array (direct execution)\n```json\n\"postCreateCommand\": [\"npm\", \"run\", \"build\"]\n```\nRuns directly without shell. More secure (no injection). Use for simple commands.\n\n### Object (parallel named commands)\n```json\n\"postCreateCommand\": {\n  \"build\": \"npm run build\",\n  \"watch\": \"npm run watch:css\",\n  \"db-seed\": [\"npm\", \"run\", \"db:seed\"]\n}\n```\nAll commands run in parallel with independent exit codes and logging.\nSupported by: onCreateCommand, postCreateCommand, postStartCommand, postAttachCommand.\n\n## Failure Semantics\n\n- If any creation command fails (onCreateCommand through postCreateCommand),\n  ALL subsequent commands are SKIPPED\n- postStartCommand and postAttachCommand only run if creation succeeded\n- Each parallel named command has independent exit status\n- No explicit timeout mechanism in the spec — use backgrounding wisely\n\n## waitFor Property\n\nControls which lifecycle event blocks container readiness:\n- Values: `\"initializeCommand\"` | `\"onCreateCommand\"` | `\"updateContentCommand\"` | `\"postCreateCommand\"`\n- Default: `\"postCreateCommand\"` (blocks until full setup complete)\n- Use case: Define prebuild cutoff point for CI optimization\n\n## Common Patterns\n\n### Fast startup with parallel initialization\n```json\n{\n  \"onCreateCommand\": {\n    \"deps\": \"apt-get update && apt-get install -y build-essential\",\n    \"db\": \"npm run db:setup\"\n  },\n  \"postStartCommand\": {\n    \"dev-server\": \"npm run dev\",\n    \"otel\": \"docker compose -f docker\u002Fotel\u002Fcompose.yaml up -d\"\n  }\n}\n```\n\n### Prebuild optimization\n```json\n{\n  \"waitFor\": \"updateContentCommand\",\n  \"onCreateCommand\": \"apt-get update && apt-get install -y nodejs\",\n  \"updateContentCommand\": \"npm ci\",\n  \"postCreateCommand\": \"npm run build\"\n}\n```\n\n## Additional Resources\n\n### Reference Files\n\nFor the complete lifecycle specification with all properties and edge cases:\n- **`references\u002Flifecycle-events-full.md`** — Complete event documentation with all syntax examples\n- **`references\u002Fexecution-guarantees.md`** — Timing, blocking, and failure behavior details\n\n### Related Skills\n\n- **devcontainer-compose** — Docker Compose integration patterns using lifecycle events\n- **devcontainer-setup** — Generate devcontainer.json with correct lifecycle pipeline\n",{"name":5,"description":7},"main","716b17df3ef6719d88aeac180015008b7ddfff6f","rsm-subagents\u002Fplugins\u002Fdevcontainer-toolkit\u002Fskills\u002Fdevcontainer-lifecycle",0,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment","https:\u002F\u002Fgithub.com\u002Fray-manaloto","2026-08-03 16:55:50",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add ray-manaloto\u002Fmacos-development-environment --skill devcontainer-lifecycle",{"tool":47,"command":48},"bunx","bunx skills add ray-manaloto\u002Fmacos-development-environment --skill devcontainer-lifecycle",{"tool":50,"command":51},"pnpm","pnpm dlx skills add ray-manaloto\u002Fmacos-development-environment --skill devcontainer-lifecycle","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fdevcontainer-toolkit\u002Fskills\u002Fdevcontainer-lifecycle\u002FSKILL.md",true,[55,61],{"path":56,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":59,"sourceHtmlUrl":60},"references\u002Fexecution-guarantees.md","REFERENCE","参考文档",1352,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fdevcontainer-toolkit\u002Fskills\u002Fdevcontainer-lifecycle\u002Freferences\u002Fexecution-guarantees.md",{"path":62,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":63,"sourceHtmlUrl":64},"references\u002Flifecycle-events-full.md",4395,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fdevcontainer-toolkit\u002Fskills\u002Fdevcontainer-lifecycle\u002Freferences\u002Flifecycle-events-full.md",[66,88,106,125,145,159],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":29},"01M6CC8DXNJ39YWERYTWCGGCGG","next-workflow-step","Use this skill when the user wants to transition to the next workflow step, wrap up a session cleanly, prepare a handoff, or says things like \"next step\", \"continue the workflow\", \"wrap up\", \"hand off\", \"move to the next phase\", \"what's next in embrace\", or \"prepare for \u002Fclear\". Also triggers when the current octo:embrace phase appears complete and no explicit next action is set.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fworkflow-toolkit\u002Fskills\u002Fnext-workflow-step\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[78,79,80,81,82,25,83,84,85,86,87],"next workflow step","workflow","up","use","session","wrap up","continue","handoff","prepare","SET",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":29},"01M6CC8BRZBQHEBXGMKPDM422P","source-discovery","This skill should be used when the user asks to \"find sources\", \"discover URLs\", \"catalog a source\", \"classify a URL\", \"search for libraries\", \"check what exists\", or mentions source discovery, URL cataloging, source classification, or research source management.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fsource-discovery\u002FSKILL.md",[],[95,96,97,98,99,100,101,102,103,25,104,105],"discovery","source discovery","research","libraries","search","classification","find","check","management","catalog","find sources",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":29},"01M6CC89CGJP69A0PS22G2H1FV","review-synthesis","This skill should be used when the user asks to \"summarize review findings\", \"prioritize fixes\", \"rank review issues\", \"combine reviewer feedback\", \"create action items from review\", or mentions review synthesis, finding prioritization, severity ranking, or review result summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Freview-synthesis\u002FSKILL.md",[],[113,114,115,116,117,118,119,25,120,121,122,123,124],"review","review synthesis","Synthesis","prioritize","create action","feedback","reviewer","summarize","prioritization","create","issues","severity",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":134,"publishedAt":29},"01M6CC872EZ9GRJY0HRCG0RT2M","research-scoring","This skill should be used when the user asks to \"score research\", \"check research quality\", \"evaluate coverage\", \"measure improvement\", \"assess research completeness\", or mentions research scoring, quality metrics, coverage gaps, improvement baseline, or research pipeline status.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fresearch-scoring\u002FSKILL.md",[131],{"categoryNo":132,"categoryName":133,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000021","资料检索与研究",[135,97,136,137,138,139,140,141,102,25,142,143,144],"research scoring","status","coverage gaps","metrics","pipeline","baseline","quality","coverage","pipeline status","research quality",{"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":151,"publishedAt":29},"01M6CC852HSDS1FE4EJAT0RHGR","notebooklm-integration","This skill should be used when the user asks to \"ingest into NotebookLM\", \"query NotebookLM\", \"add sources to notebook\", \"cross-source synthesis\", \"check stale sources\", or mentions NotebookLM, notebook integration, source ingestion, or knowledge consolidation.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fnotebooklm-integration\u002FSKILL.md",[],[152,153,154,155,102,25,156,157,158,115],"notebooklm integration","notebooklm","integration","knowledge","ingestion","ingest","stale",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":29},"01M6CC82Z4V3205KCJWQZPS2VG","evidence-synthesis","This skill should be used when the user asks to \"synthesize findings\", \"combine research\", \"cross-reference sources\", \"summarize evidence\", \"write a deep review\", or mentions evidence synthesis, finding consolidation, cross-source analysis, or research summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fevidence-synthesis\u002FSKILL.md",[165],{"categoryNo":132,"categoryName":133,"taxonomyType":75,"taxonomyTypeDesc":76},[167,115,168,120,97,169,170,171,25,172,113],"evidence synthesis","evidence","deep review","analysis","write","reference"]