[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X0842GS3NPFCVNEBFZXETQ":3,"skill-same:01M6X0842GS3NPFCVNEBFZXETQ":65},{"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":25,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6X0842GS3NPFCVNEBFZXETQ","play",null,"Opens a Microsoft App in the browser via `ms app play`. Use when opening the live deployed version or a cloud-hosted preview (main branch or specific commit SHA) without starting a local dev server.","microsoft\u002FCopilot-Managed-Runtime","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6X05E4HRJ1306KAFJJ9MASV",6,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fplugins\u002Fcopilot-managed-runtime\u002Fskills\u002Fplay\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,9],"use","when","via","app","local","preview","main","ms","local dev server","version","local dev","read","branch","Bash","server","browser","dev","commit","2026-11-10 10:12:30",false,"---\nname: play\ndescription: Opens a Microsoft App in the browser via `ms app play`. Use when opening the live deployed version or a cloud-hosted preview (main branch or specific commit SHA) without starting a local dev server.\nallowed-tools: Read Grep Bash AskUserQuestion\n---\n\n**? Shared Instructions: [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md)** — Cross-cutting concerns.\n\n# Play\n\nOpens a Microsoft App in the browser by fetching its cloud play URL and launching it. No local dev server required.\n\n| Mode | Command | What opens |\n| ---- | ------- | ---------- |\n| `live` (default) | `ms app play` | The most recently deployed version. A snapshot — does not update until `ms app deploy` is run again. |\n| `preview` (main) | `ms app play --mode preview` | Built from the `main` branch on demand — always reflects the latest pushed code, even without a deploy. |\n| `preview` (commit) | `ms app play --mode preview --commit \u003Csha>` | App as of a specific commit SHA — useful for code review or regression testing. |\n\n> **Live vs. preview:** Live requires a prior `ms app deploy`. Preview builds from source on demand — it works without any deployment and always reflects unpublished code.\n\n## Workflow\n\n1. Memory Bank → 2. Verify Project + Env → 3. Resolve Mode → 4. Run → 5. Surface URL\n\n---\n\n### Step 1: Check Memory Bank\n\nRead `memory-bank.md` per [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md) for the app's environment\u002Fapp identifiers, if recorded.\n\n### Step 2: Verify Project + Env\n\n```bash\ntest -f ms.config.json || { echo \"Not in a Microsoft App workspace.\"; exit 1; }\nBIN=ms\n$BIN auth status                                         # must report the expected UPN\n```\n\n`--app` and `--environment-id` can be passed explicitly to run from outside a project directory — `ms.config.json` is only needed for the defaults.\n\n### Step 3: Resolve Mode\n\nIf not already clear from the user's request, ask:\n\n> \"Do you want to open the **live** deployed version, a **preview** of the latest code on main, or a preview of a **specific commit**?\"\n\nMap intent to mode:\n\n| User says | Mode |\n| --------- | ---- |\n| \"live\", \"deployed\", no qualifier | `live` (default — no flag needed) |\n| \"preview\", \"latest\", \"unpublished\", \"before deploy\" | `--mode preview` |\n| \"preview at commit X\" \u002F specific SHA provided | `--mode preview --commit \u003Csha>` |\n\n### Step 4: Run\n\n**Live (default):**\n\n```bash\n$BIN app play\n```\n\n**Preview — latest code on main:**\n\n```bash\n$BIN app play --mode preview\n```\n\n**Preview — specific commit:**\n\n```bash\n$BIN app play --mode preview --commit \u003Csha>\n```\n\nFull flag reference:\n\n| Flag | Alias | Default | Description |\n| ---- | ----- | ------- | ----------- |\n| `--mode` | `-m` | `live` | `live` or `preview`. |\n| `--commit` | `-c` | HEAD on main | Preview only. The commit SHA to open. Ignored for live mode (CLI throws if combined). |\n| `--app` | | `appId` from `ms.config.json` | App name override for running outside the project directory. |\n| `--no-browser` | | false | Print the URL without opening a browser tab. |\n| `--json` | | | Emit `{ success, appName, mode, url, commitHash }` instead of human-readable output. |\n\n### Step 5: Surface URL\n\nPresent the URL the CLI printed. For live mode, surface the CLI's built-in warning:\n\n```\nLive URL for 'my-app':\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\n\n⚠ Live does not auto-update. Run \u002Fdeploy to publish new code to the live URL.\n```\n\nFor preview:\n\n```\nPreview URL for 'my-app' (main):\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\u002Fbranch\u002Fmain\n```\n\nFor commit-pinned preview:\n\n```\nPreview URL for 'my-app' (commit abc1234):\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\u002Fcommit\u002Fabc1234\n```\n\n---\n\n## Edge Cases\n\n| Situation | Action |\n| --------- | ------ |\n| `No live build available — run 'ms app deploy' first` | The app has never been deployed. Tell the user to run `\u002Fdeploy`, then retry `ms app play`. |\n| `--commit` passed with `--mode live` | Hard `UsageError` from the CLI. Explain that `--commit` only works with `--mode preview`. |\n| No `appPlayUri` for preview mode | App record exists but play URI is missing. Surface the error verbatim and stop. |\n| User wants URL without opening a browser | Pass `--no-browser`; the CLI prints the URL and exits without launching a tab. |\n| User is outside a project directory | Pass `--app \u003Cname>` and `--environment-id \u003Cid>` explicitly. |\n","**? Shared Instructions: [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md)** — Cross-cutting concerns.\n\n# Play\n\nOpens a Microsoft App in the browser by fetching its cloud play URL and launching it. No local dev server required.\n\n| Mode | Command | What opens |\n| ---- | ------- | ---------- |\n| `live` (default) | `ms app play` | The most recently deployed version. A snapshot — does not update until `ms app deploy` is run again. |\n| `preview` (main) | `ms app play --mode preview` | Built from the `main` branch on demand — always reflects the latest pushed code, even without a deploy. |\n| `preview` (commit) | `ms app play --mode preview --commit \u003Csha>` | App as of a specific commit SHA — useful for code review or regression testing. |\n\n> **Live vs. preview:** Live requires a prior `ms app deploy`. Preview builds from source on demand — it works without any deployment and always reflects unpublished code.\n\n## Workflow\n\n1. Memory Bank → 2. Verify Project + Env → 3. Resolve Mode → 4. Run → 5. Surface URL\n\n---\n\n### Step 1: Check Memory Bank\n\nRead `memory-bank.md` per [shared-instructions.md](..\u002F..\u002Fshared\u002Fshared-instructions.md) for the app's environment\u002Fapp identifiers, if recorded.\n\n### Step 2: Verify Project + Env\n\n```bash\ntest -f ms.config.json || { echo \"Not in a Microsoft App workspace.\"; exit 1; }\nBIN=ms\n$BIN auth status                                         # must report the expected UPN\n```\n\n`--app` and `--environment-id` can be passed explicitly to run from outside a project directory — `ms.config.json` is only needed for the defaults.\n\n### Step 3: Resolve Mode\n\nIf not already clear from the user's request, ask:\n\n> \"Do you want to open the **live** deployed version, a **preview** of the latest code on main, or a preview of a **specific commit**?\"\n\nMap intent to mode:\n\n| User says | Mode |\n| --------- | ---- |\n| \"live\", \"deployed\", no qualifier | `live` (default — no flag needed) |\n| \"preview\", \"latest\", \"unpublished\", \"before deploy\" | `--mode preview` |\n| \"preview at commit X\" \u002F specific SHA provided | `--mode preview --commit \u003Csha>` |\n\n### Step 4: Run\n\n**Live (default):**\n\n```bash\n$BIN app play\n```\n\n**Preview — latest code on main:**\n\n```bash\n$BIN app play --mode preview\n```\n\n**Preview — specific commit:**\n\n```bash\n$BIN app play --mode preview --commit \u003Csha>\n```\n\nFull flag reference:\n\n| Flag | Alias | Default | Description |\n| ---- | ----- | ------- | ----------- |\n| `--mode` | `-m` | `live` | `live` or `preview`. |\n| `--commit` | `-c` | HEAD on main | Preview only. The commit SHA to open. Ignored for live mode (CLI throws if combined). |\n| `--app` | | `appId` from `ms.config.json` | App name override for running outside the project directory. |\n| `--no-browser` | | false | Print the URL without opening a browser tab. |\n| `--json` | | | Emit `{ success, appName, mode, url, commitHash }` instead of human-readable output. |\n\n### Step 5: Surface URL\n\nPresent the URL the CLI printed. For live mode, surface the CLI's built-in warning:\n\n```\nLive URL for 'my-app':\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\n\n⚠ Live does not auto-update. Run \u002Fdeploy to publish new code to the live URL.\n```\n\nFor preview:\n\n```\nPreview URL for 'my-app' (main):\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\u002Fbranch\u002Fmain\n```\n\nFor commit-pinned preview:\n\n```\nPreview URL for 'my-app' (commit abc1234):\n  https:\u002F\u002Fapps.powerapps.com\u002Fplay\u002Fe\u002F\u003Cenv-id>\u002Fapp\u002F\u003Cguid>\u002Fcommit\u002Fabc1234\n```\n\n---\n\n## Edge Cases\n\n| Situation | Action |\n| --------- | ------ |\n| `No live build available — run 'ms app deploy' first` | The app has never been deployed. Tell the user to run `\u002Fdeploy`, then retry `ms app play`. |\n| `--commit` passed with `--mode live` | Hard `UsageError` from the CLI. Explain that `--commit` only works with `--mode preview`. |\n| No `appPlayUri` for preview mode | App record exists but play URI is missing. Surface the error verbatim and stop. |\n| User wants URL without opening a browser | Pass `--no-browser`; the CLI prints the URL and exits without launching a tab. |\n| User is outside a project directory | Pass `--app \u003Cname>` and `--environment-id \u003Cid>` explicitly. |\n",{"name":5,"description":7,"allowed-tools":42},"Read Grep Bash AskUserQuestion","7c7ee71b1937858ba4ab6ca265967958c602d5ea","plugins\u002Fcopilot-managed-runtime\u002Fskills\u002Fplay",0,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 01:25:14",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add microsoft\u002FCopilot-Managed-Runtime --skill play",{"tool":57,"command":58},"bunx","bunx skills add microsoft\u002FCopilot-Managed-Runtime --skill play",{"tool":60,"command":61},"pnpm","pnpm dlx skills add microsoft\u002FCopilot-Managed-Runtime --skill play","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fplugins\u002Fcopilot-managed-runtime\u002Fskills\u002Fplay\u002FSKILL.md",true,[],[66,89,121,126,133,152],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":37},"01M6X0AET142GRSQ2EJ6M25MZK","setup-taskmanager","Sets up the Task Manager template for a new owner - copies the sample into its own folder, signs in to the `ms` CLI, creates the app and its platform-managed git repository on Copilot Managed Runtime, adds the Azure DevOps, Teams and Office 365 Users connectors, writes .env.local and admins.json, verifies with npm run check-setup, and commits and pushes to the app's repository. Use when someone has just cloned this template, when `npm run dev` or `npm run build` stops at check-setup, or when ms.config.json is missing.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FTaskManager\u002F.github\u002Fskills\u002Fsetup-taskmanager\u002FSKILL.md",[],[73,74,75,76,77,78,79,80,81,82,26,83,84,23,85,22,86,87,88,20],"setup","setup taskmanager","cli","azure devops","config","copilot","run","git","repository","template","up","run build","sample","manager","at","managed",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":105,"publishedAt":37},"01M6X0A8B189RCJYK3NWQSVEMD","add-data-source","Moves this app's data from browser-local storage to a shared backend (SharePoint lists, Dataverse tables, a REST API, or any other store) by adding a storage provider. Use when the user wants app data shared between people or devices, kept outside the browser, or stored in a specific system.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FTaskManager\u002F.github\u002Fskills\u002Fadd-data-source\u002FSKILL.md",[95,100],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[106,107,108,109,110,34,111,112,113,114,19,115,116,23,117,118,22,119,120,20],"add data source","data","add","source","dataverse","REST","devices","api","system","backend","provider","shared","rest api","store","people",{"skillNo":122,"name":68,"nameZh":6,"description":69,"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},"01M6X0A13K1CXG92DXMZZ2NWXK","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FTaskManager\u002F.claude\u002Fskills\u002Fsetup-taskmanager\u002FSKILL.md",[],[73,74,75,76,77,78,79,80,81,82,26,83,84,23,85,22,86,87,88,20],{"skillNo":127,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":132,"publishedAt":37},"01M6X09W1D8XCY20N6H9QS9WCH","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FTaskManager\u002F.claude\u002Fskills\u002Fadd-data-source\u002FSKILL.md",[130,131],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},[106,107,108,109,110,34,111,112,113,114,19,115,116,23,117,118,22,119,120,20],{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":142,"publishedAt":37},"01M6X09PVHY12C6WBP0KVEJ6NZ","setup-learninghub","Set up the Learning Hub sample after cloning it - copy it into its own folder, install dependencies, sign in with the ms CLI, create the app and its platform-managed git repository with ms app init (writes ms.config.json), hide the host header, add the Office 365 Users connector, configure .env.local, verify with check-setup, start local development, and commit and push to the app's repository. Use when someone asks to set up, configure, run or deploy this app for the first time, or when `npm run dev`\u002F`npm run build` stops with \"Learning Hub is not set up yet\".","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FLearningHub\u002F.github\u002Fskills\u002Fsetup-learninghub\u002FSKILL.md",[139],{"categoryNo":140,"categoryName":141,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000011","运维与部署",[73,143,75,144,36,145,146,147,148,26,83,149,84,150,23,85,22,151,88,20],"setup learninghub","init","create","SET","configure","commit and push","Connector","time","host",{"skillNo":153,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":158,"publishedAt":37},"01M6X09JNRAH0SKYXGM3JTMP2M","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FCopilot-Managed-Runtime\u002Fblob\u002Fmain\u002Fsamples\u002FLearningHub\u002F.github\u002Fskills\u002Fadd-data-source\u002FSKILL.md",[156,157],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},[106,107,108,109,110,34,111,112,113,114,19,115,116,23,117,118,22,119,120,20]]