[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699W15PR59T643EJ0NSKXQC":3,"skill-same:01M699W15PR59T643EJ0NSKXQC":56},{"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":23,"linkOnly":24,"markdownContent":25,"markdownBody":26,"frontMatter":27,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M699W15PR59T643EJ0NSKXQC","openspec-new-change",null,"Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.","microsoft\u002Frayfin","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699VK9NEV8GH0Y5JKT1G8XG",661,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec-new-change\u002FSKILL.md",[],[19,20,21,22],"change","openspec new change","cli","workflow","2026-11-10 10:12:30",false,"---\nname: openspec-new-change\ndescription: Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.\nlicense: MIT\ncompatibility: Requires openspec CLI.\nmetadata:\n  author: openspec\n  version: \"1.0\"\n  generatedBy: \"1.1.1\"\n---\n\nStart a new change using the experimental artifact-driven approach.\n\n**Input**: The user's request should include a change name (kebab-case) OR a description of what they want to build.\n\n**Steps**\n\n1. **If no clear input provided, ask what they want to build**\n\n   Use the **AskUserQuestion tool** (open-ended, no preset options) to ask:\n   > \"What change do you want to work on? Describe what you want to build or fix.\"\n\n   From their description, derive a kebab-case name (e.g., \"add user authentication\" → `add-user-auth`).\n\n   **IMPORTANT**: Do NOT proceed without understanding what the user wants to build.\n\n2. **Determine the workflow schema**\n\n   Use the default schema (omit `--schema`) unless the user explicitly requests a different workflow.\n\n   **Use a different schema only if the user mentions:**\n   - A specific schema name → use `--schema \u003Cname>`\n   - \"show workflows\" or \"what workflows\" → run `npx openspec schemas --json` and let them choose\n\n   **Otherwise**: Omit `--schema` to use the default.\n\n3. **Create the change directory**\n   ```bash\n   npx openspec new change \"\u003Cname>\"\n   ```\n   Add `--schema \u003Cname>` only if the user requested a specific workflow.\n   This creates a scaffolded change at `openspec\u002Fchanges\u002F\u003Cname>\u002F` with the selected schema.\n\n4. **Show the artifact status**\n   ```bash\n   npx openspec status --change \"\u003Cname>\"\n   ```\n   This shows which artifacts need to be created and which are ready (dependencies satisfied).\n\n5. **Get instructions for the first artifact**\n   The first artifact depends on the schema (e.g., `proposal` for spec-driven).\n   Check the status output to find the first artifact with status \"ready\".\n   ```bash\n   npx openspec instructions \u003Cfirst-artifact-id> --change \"\u003Cname>\"\n   ```\n   This outputs the template and context for creating the first artifact.\n\n6. **STOP and wait for user direction**\n\n**Output**\n\nAfter completing the steps, summarize:\n- Change name and location\n- Schema\u002Fworkflow being used and its artifact sequence\n- Current status (0\u002FN artifacts complete)\n- The template for the first artifact\n- Prompt: \"Ready to create the first artifact? Just describe what this change is about and I'll draft it, or ask me to continue.\"\n\n**Guardrails**\n- Do NOT create any artifacts yet - just show the instructions\n- Do NOT advance beyond showing the first artifact template\n- If the name is invalid (not kebab-case), ask for a valid name\n- If a change with that name already exists, suggest continuing that change instead\n- Pass --schema if using a non-default workflow\n","Start a new change using the experimental artifact-driven approach.\n\n**Input**: The user's request should include a change name (kebab-case) OR a description of what they want to build.\n\n**Steps**\n\n1. **If no clear input provided, ask what they want to build**\n\n   Use the **AskUserQuestion tool** (open-ended, no preset options) to ask:\n   > \"What change do you want to work on? Describe what you want to build or fix.\"\n\n   From their description, derive a kebab-case name (e.g., \"add user authentication\" → `add-user-auth`).\n\n   **IMPORTANT**: Do NOT proceed without understanding what the user wants to build.\n\n2. **Determine the workflow schema**\n\n   Use the default schema (omit `--schema`) unless the user explicitly requests a different workflow.\n\n   **Use a different schema only if the user mentions:**\n   - A specific schema name → use `--schema \u003Cname>`\n   - \"show workflows\" or \"what workflows\" → run `npx openspec schemas --json` and let them choose\n\n   **Otherwise**: Omit `--schema` to use the default.\n\n3. **Create the change directory**\n   ```bash\n   npx openspec new change \"\u003Cname>\"\n   ```\n   Add `--schema \u003Cname>` only if the user requested a specific workflow.\n   This creates a scaffolded change at `openspec\u002Fchanges\u002F\u003Cname>\u002F` with the selected schema.\n\n4. **Show the artifact status**\n   ```bash\n   npx openspec status --change \"\u003Cname>\"\n   ```\n   This shows which artifacts need to be created and which are ready (dependencies satisfied).\n\n5. **Get instructions for the first artifact**\n   The first artifact depends on the schema (e.g., `proposal` for spec-driven).\n   Check the status output to find the first artifact with status \"ready\".\n   ```bash\n   npx openspec instructions \u003Cfirst-artifact-id> --change \"\u003Cname>\"\n   ```\n   This outputs the template and context for creating the first artifact.\n\n6. **STOP and wait for user direction**\n\n**Output**\n\nAfter completing the steps, summarize:\n- Change name and location\n- Schema\u002Fworkflow being used and its artifact sequence\n- Current status (0\u002FN artifacts complete)\n- The template for the first artifact\n- Prompt: \"Ready to create the first artifact? Just describe what this change is about and I'll draft it, or ask me to continue.\"\n\n**Guardrails**\n- Do NOT create any artifacts yet - just show the instructions\n- Do NOT advance beyond showing the first artifact template\n- If the name is invalid (not kebab-case), ask for a valid name\n- If a change with that name already exists, suggest continuing that change instead\n- Pass --schema if using a non-default workflow\n",{"name":5,"license":15,"metadata":28,"description":7,"compatibility":32},{"author":29,"version":30,"generatedBy":31},"openspec","1.0","1.1.1","Requires openspec CLI.","main","0979439a7a0806abd0ee48c2619b37f297ae1324",".github\u002Fskills\u002Fopenspec-new-change",77,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 01:21:10",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add microsoft\u002Frayfin --skill openspec-new-change",{"tool":48,"command":49},"bunx","bunx skills add microsoft\u002Frayfin --skill openspec-new-change",{"tool":51,"command":52},"pnpm","pnpm dlx skills add microsoft\u002Frayfin --skill openspec-new-change","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec-new-change\u002FSKILL.md",true,[],[57,69,89,98,117,125],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":23},"01M699YEY2QDVPKTZS3HR9AX84","rayfin-getting-started","Use when starting or creating a NEW Rayfin app, or when a Rayfin task comes up and you are not yet inside a Rayfin project. Gets you into a project with the Rayfin CLI, then hands off to the authoritative, version-locked in-project rayfin skill\u002Fdocs that own all in-project work. Triggers: build a Rayfin app, start a Rayfin project, create a new Rayfin app, create-rayfin, npm create @microsoft\u002Frayfin, rayfin init, scaffold rayfin, rayfin CLI, rayfin template, universal app, awesome-rayfin gallery, get started with Rayfin","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fskills\u002Frayfin-getting-started\u002FSKILL.md",[],[64,65,66,67,9,68,21],"rayfin getting started","rayfin","scaffold","init","docs",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":85,"publishedAt":23},"01M699YCN4ZDW2AMDP4NVJ2QGC","visuals","Use when user wants to incorporate charts, graphs, data grid,  or other visual representations of data into their project. Use VegaVisual and DataGrid components to create these visuals,  utilizing the shared DataTable input, formatting, theme, and interactivity. Covers the onInteraction selection\u002Fclick events host apps consume, named multi-table data input for layered overlays and reference lines, and Vega-Lite native selections. Triggers: chart, graph, plot, dashboard, KPI, metric, trend, scorecard, data grid, visualize.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fsamples\u002Funiversal-app\u002Ftemplate\u002F.agents\u002Fskills\u002Fvisuals\u002FSKILL.md",[75,80],{"categoryNo":76,"categoryName":77,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[71,86,87,88],"components","dashboard","visualize",{"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":95,"publishedAt":23},"01M699YBEP146MJZJNN8YEBZ2G","schema-discovery","Explore Power BI semantic model schemas using DAX INFO functions. Progressive metadata discovery strategy, scope estimation, and narrowing techniques for tables, columns, measures, and relationships.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fsamples\u002Funiversal-app\u002Ftemplate\u002F.agents\u002Fskills\u002Fschema-discovery\u002FSKILL.md",[],[96,97],"schema discovery","dax",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":113,"publishedAt":23},"01M699Y9E80WYFKD1S4MT4B1CS","query-design","Separates DAX data-fetching from TypeScript presentation. Guides when to use  DAX vs. TypeScript vs. Vega-Lite for aggregation, total rows, FORMAT(), SELECTCOLUMNS,  BLANK handling, filtering, multi-grain queries, cross-filtering and cross-highlight subset\u002Foverlay queries, and format strings.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fsamples\u002Funiversal-app\u002Ftemplate\u002F.agents\u002Fskills\u002Fquery-design\u002FSKILL.md",[104,107,110],{"categoryNo":105,"categoryName":106,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":108,"categoryName":109,"taxonomyType":78,"taxonomyTypeDesc":79},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":111,"categoryName":112,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000032","设计师",[114,115,97,116],"query design","design","typescript",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":23},"01M699Y7CKZ55QSYFE827RRVJE","functions-capability","Apply and build the Universal App functions capability. Use for trusted server-side logic, secrets, external APIs, custom model endpoints, published Fabric data agents, webhooks, or privileged operations.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fsamples\u002Funiversal-app\u002Ftemplate\u002F.agents\u002Fskills\u002Ffunctions-capability\u002FSKILL.md",[],[124],"functions capability",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":23},"01M699Y5R87YE620T78Z30KQSA","fabric-sdk","How to query Fabric data from a running app through the Rayfin connectors client. Use getRayfinClient().connectors.\u003Cname>.executeQuery to run DAX against a semantic model, and toQueryResult to normalize the response.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frayfin\u002Fblob\u002Fmain\u002Fsamples\u002Funiversal-app\u002Ftemplate\u002F.agents\u002Fskills\u002Ffabric-sdk\u002FSKILL.md",[],[132,133,97,134,65,135],"sdk","fabric sdk","rayfin connectors","connectors"]