[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-create-modernization-plan":3,"mdc-v2vypd-key":35,"related-repo-microsoft-create-modernization-plan":924,"related-org-microsoft-create-modernization-plan":1019},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":30,"sourceUrl":33,"mdContent":34},"create-modernization-plan","create modernization plans for Azure migration","Create a modernization plan to migrate the project to Azure",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,20],{"name":13,"slug":14,"type":15},"Modernization","modernization","tag",{"name":17,"slug":18,"type":15},"Azure","azure",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Deployment","deployment",34,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgithub-copilot-modernization","2026-07-07T06:52:44.361557",null,8,[29,14],"copilot",{"repoUrl":24,"stars":23,"forks":27,"topics":31,"description":32},[29,14],"GitHub Copilot modernization agent","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgithub-copilot-modernization\u002Ftree\u002FHEAD\u002Fplugins\u002Fgithub-copilot-modernization\u002Fskills\u002Fcreate-modernization-plan","---\nname: create-modernization-plan\ndescription: Create a modernization plan to migrate the project to Azure\n---\n\n# Create modernization plan\n\nThis skill is used to create a modernization plan to migrate the a given project to Azure\n\n## User Input\n\n- modernization-prompt: The user input to generate the modernization plan\n- modernization-work-folder (Mandatory): The folder to save the modernization plan\n- github-issue-link (Optional): A github issue to track the modernization status, to be filled into plan template\n- assessment-report (Optional): A assessment report for the project will be modernized, it will provide the data about the project for modernization\n- plan-name (Optional): The plan name to be filled into plan template\n- language (Mandatory): The programming language of the project (java or dotnet)\n\n## Supported Task Patterns\n\nRead the supported patterns file based on the language:\n- For .NET projects: Read `supported-patterns-dotnet.md`\n- For all other projects: Read `supported-patterns-java.md`. Default option.\n\nThese files contain the list of supported task patterns with and without skill definitions. If a skill is available, the skill location should be set to `builtin`.\n\n## Workflow\n\nGiven the user input, do this:\n\n1. Double Check the issues\n   **IMPORTANT**:\n   - If you are given an assessment-report, you need to double check if the issue really exist in current project. If not, please ignore this issue when you generate the plan\n\n2. **Load context**: Retrieve information for plan, you can read\n    1) Analysis the supported patterns to find the right tasks for the issues\n    2) Analysis modernization requirement from user input\n\n3. **Clarification and Questionnaire** (only when the `ask_user` tool is available): If there are any open issues or ambiguities that need user input, use the following steps to answer any questions. Also ask the questions outlined in `questionnaire.md` via `ask_user` tool to scope the modernization plan. For questionnaire questions, if the user input already provides the answer, skip asking that question and use the provided information as the answer.\n    1) Use the `ask_user` tool to ask the user each clarification question directly. Wait for the user's response before proceeding.\n    2) Record each question and answer for use in the summary step.\n    3) If the `ask_user` tool is not available, skip this step entirely and proceed to plan generation using best-effort defaults.\n\n4. **Generate plan and tasks**: Generate plan.md and tasks.json using the appropriate templates:\n\n    **Template Selection**:\n    - Use **plan-template.md** for code migration, containerization, and deployment tasks\n    - Use **security-plan-template.md** to include a security\u002FCVE remediation task in every modernization plan. \n    - Use **infra-plan-template.md** ONLY when user explicitly requests infrastructure (e.g., \"prepare infrastructure\", \"create landing zone\", \"provision resources\", \"generate Bicep\u002FTerraform\")\n\n     **Plan Generation**:\n    1) Follow the structure of the selected template to generate the plan\n    2) Follow the rules defined in the template to fill in the sections with relevant information based on the analysis of user input and content of mentioned files\n    3) Save the plan in folder ${modernization-work-folder} with the filename plan.md. If a plan already exists, overwrite it.\n    4) Generate a separate tasks.json file following the tasks-schema.json schema with setupBaseline, infrastructure, upgrade, transform, containerization, and deployment tasks\n    5) Save the tasks in folder ${modernization-work-folder}\u002F.metadata\u002F with the filename tasks.json. If tasks.json already exists, overwrite it.\n\n    **Clarification Outcomes in Plan**: Incorporate all clarification answers from steps 3–4 into `plan.md` and `tasks.json`:\n    - Update the relevant task's `requirements` or `description` in `tasks.json` based on the answer. Do NOT create a separate task for an implementation detail—only add a new task when the answer introduces entirely new migration scope.\n    - Record all clarification questions and their outcomes in the **\"## Open Questions & Questionnaire\"** section of `plan.md`:\n      - Answered: `- [x] Q: ... → A: ...`\n      - Unanswered\u002Fskipped: `- [ ] ...`\n      - Remove the section entirely if no clarification questions were raised.\n\n    **IMPORTANT**: The plan.md should NOT contain the detailed task breakdown. Those details go into tasks.json for better tracking and programmatic access.\n\n    **Task Breakdown Rules**: When creating tasks for tasks.json and plan.md:\n    - Purpose: Break down coding work into discrete migration tasks. Each task represents a user-requested migration from one service\u002Fcomponent to another, or a specific business logic modernization.\n    - Create tasks ONLY based on what the user explicitly requested - do not infer or add implicit tasks, **except** for the security\u002FCVE remediation task which must always be included in every plan\n    - If an `assessment-report` is provided, the task description must identify which specific issues from the assessment report are addressed by that task (e.g., \"Addresses issues: \u003Cissue-title-1>, \u003Cissue-title-2>\")\n    - Group related changes that serve a single user goal into one task (e.g., all changes needed to migrate to PostgreSQL)\n    - Find a matched skill \u002F pattern for the task, following the following priority order.\n      1. Skills available for the project, which will be listed in the `skill` tool description.\n      2. Patterns that will be attached and available at plan execution phase, listed in the supported patterns file.\n      3. Otherwise if no relevant pattern is available for the task pattern, use the prompt segment from the user directly. DO NOT expand the request scope.\n    - **IMPORTANT**:\n      - You MUST NOT use the pattern name as the skill name in the generated plan and tasks.json.\n      - If there are similar skills defined in project skill `.github\u002Fskills\u002F` versus other skills, MUST use the one defined in project.\n      - Skills must be fully matched. For migration scenarios, both the source product and target product must match the task intent.\n    - Each task should be independently testable\n    - Do not add tests for unimpacted code or existing functionality unless user requested\n    - **IMPORTANT**: Do NOT read individual skill files at this stage; Do Not include the skill detail in the tasks.\n\n    **Java Upgrade Task Guidelines**: Only add an upgrade task if the user explicitly requests it. You must refer to the .\u002Fjava-upgrade-guideline.md for specific rules and guidelines when creating Java upgrade tasks.\n\n    **.NET Upgrade Task Guidelines**: You must refer to the .\u002Fdotnet-upgrade-guideline.md for specific rules and guidelines when creating .NET upgrade tasks.\n\n    **Deployment Task Rules**:\n    - **IMPORTANT** Do NOT create task type with `containerization`  if deployment task already exists, deployment task will cover the containerization work if needed.\n    - Deployment Task Options: Azure App Service, Azure Kubernetes Service, Azure Container Apps (default), Azure App Service Managed Instance, Azure Static Web App, Azure Function App\n\n    **Security Task Guidelines**: The security task order should be after all the upgrade and transform tasks and before the deployment tasks in the generated plan. If the user provides specific security requirements, incorporate them into the security task; otherwise, use the default requirements from the template.\n\n    **IMPORTANT**: The upgrade task must be the first task in the task list because subsequent transform tasks (e.g., migrating to Azure services) depend on the upgraded runtime and project format.\n\n5. **Rulebook Compliance Validation** (only when rulebook attachments are present):\n   After generating the plan and tasks, call skill `validate-rulebook-compliance` to validate that the plan tasks cover the rulebook rules:\n   - tasks-json-path: `${modernization-work-folder}\u002F.metadata\u002Ftasks.json`\n   - compliance-output-path: `${modernization-work-folder}\u002Frulebook-compliance.md`\n   - This validation is **best-effort only** and must **not** block or fail plan creation.\n   - If the validation call cannot run, fails, or required context\u002Fattachments are missing, you must still complete the workflow and emit `${modernization-work-folder}\u002Fplan.md` and `${modernization-work-folder}\u002F.metadata\u002Ftasks.json`.\n   - If validation cannot be completed successfully, write a minimal warning\u002Fstatus report to `${modernization-work-folder}\u002Frulebook-compliance.md` explaining that validation was skipped or failed and why, if known.\n\n6. **Summary & Confirmation** (only when the `ask_user` tool is available):\n    1) Present a summary to the user via `ask_user` that includes:\n       - All clarification questions and the user's answers (if any were asked in step 3)\n       - The planned task list with key details for each task: task name, type, matched skill\u002Fpattern, and a brief description of what it will do\n       - The supported task type in task-schema.json but not listed in the planned task list but matched with the user requirement, ask the user if they want to include those tasks in the plan or not.\n    2) Ask the user to confirm the summary is correct, or provide additional input to adjust any answers or task list.\n    3) If the user provides additional input, incorporate the changes. If the user chooses to skip or confirms, proceed to plan generation.\n    4) If the `ask_user` tool is not available, skip this step entirely.\n\n## Completion Criteria\n\n1. All clarification & questionnaire questions have been asked (or skipped with defaults) via `ask_user`, answers incorporated into `plan.md` and `tasks.json`, and outcomes recorded in the \"## Open Questions & Questionnaire\" section of `plan.md`\n2. The modernization task list is built\n3. The modernization task list MUST be scoped according to user input\n4. DON'T RUN the plan if user does not explicitly ask you to run the plan\n5. The generated plan.md and tasks.json are saved in the specified folder `${modernization-work-folder}`\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,48,54,61,96,102,107,135,148,154,159,859,865],{"type":41,"tag":42,"props":43,"children":44},"element","h1",{"id":4},[45],{"type":46,"value":47},"text","Create modernization plan",{"type":41,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"This skill is used to create a modernization plan to migrate the a given project to Azure",{"type":41,"tag":55,"props":56,"children":58},"h2",{"id":57},"user-input",[59],{"type":46,"value":60},"User Input",{"type":41,"tag":62,"props":63,"children":64},"ul",{},[65,71,76,81,86,91],{"type":41,"tag":66,"props":67,"children":68},"li",{},[69],{"type":46,"value":70},"modernization-prompt: The user input to generate the modernization plan",{"type":41,"tag":66,"props":72,"children":73},{},[74],{"type":46,"value":75},"modernization-work-folder (Mandatory): The folder to save the modernization plan",{"type":41,"tag":66,"props":77,"children":78},{},[79],{"type":46,"value":80},"github-issue-link (Optional): A github issue to track the modernization status, to be filled into plan template",{"type":41,"tag":66,"props":82,"children":83},{},[84],{"type":46,"value":85},"assessment-report (Optional): A assessment report for the project will be modernized, it will provide the data about the project for modernization",{"type":41,"tag":66,"props":87,"children":88},{},[89],{"type":46,"value":90},"plan-name (Optional): The plan name to be filled into plan template",{"type":41,"tag":66,"props":92,"children":93},{},[94],{"type":46,"value":95},"language (Mandatory): The programming language of the project (java or dotnet)",{"type":41,"tag":55,"props":97,"children":99},{"id":98},"supported-task-patterns",[100],{"type":46,"value":101},"Supported Task Patterns",{"type":41,"tag":49,"props":103,"children":104},{},[105],{"type":46,"value":106},"Read the supported patterns file based on the language:",{"type":41,"tag":62,"props":108,"children":109},{},[110,122],{"type":41,"tag":66,"props":111,"children":112},{},[113,115],{"type":46,"value":114},"For .NET projects: Read ",{"type":41,"tag":116,"props":117,"children":119},"code",{"className":118},[],[120],{"type":46,"value":121},"supported-patterns-dotnet.md",{"type":41,"tag":66,"props":123,"children":124},{},[125,127,133],{"type":46,"value":126},"For all other projects: Read ",{"type":41,"tag":116,"props":128,"children":130},{"className":129},[],[131],{"type":46,"value":132},"supported-patterns-java.md",{"type":46,"value":134},". Default option.",{"type":41,"tag":49,"props":136,"children":137},{},[138,140,146],{"type":46,"value":139},"These files contain the list of supported task patterns with and without skill definitions. If a skill is available, the skill location should be set to ",{"type":41,"tag":116,"props":141,"children":143},{"className":142},[],[144],{"type":46,"value":145},"builtin",{"type":46,"value":147},".",{"type":41,"tag":55,"props":149,"children":151},{"id":150},"workflow",[152],{"type":46,"value":153},"Workflow",{"type":41,"tag":49,"props":155,"children":156},{},[157],{"type":46,"value":158},"Given the user input, do this:",{"type":41,"tag":160,"props":161,"children":162},"ol",{},[163,184,207,272,697,789],{"type":41,"tag":66,"props":164,"children":165},{},[166,168,174,176],{"type":46,"value":167},"Double Check the issues\n",{"type":41,"tag":169,"props":170,"children":171},"strong",{},[172],{"type":46,"value":173},"IMPORTANT",{"type":46,"value":175},":",{"type":41,"tag":62,"props":177,"children":178},{},[179],{"type":41,"tag":66,"props":180,"children":181},{},[182],{"type":46,"value":183},"If you are given an assessment-report, you need to double check if the issue really exist in current project. If not, please ignore this issue when you generate the plan",{"type":41,"tag":66,"props":185,"children":186},{},[187,192,194],{"type":41,"tag":169,"props":188,"children":189},{},[190],{"type":46,"value":191},"Load context",{"type":46,"value":193},": Retrieve information for plan, you can read",{"type":41,"tag":160,"props":195,"children":196},{},[197,202],{"type":41,"tag":66,"props":198,"children":199},{},[200],{"type":46,"value":201},"Analysis the supported patterns to find the right tasks for the issues",{"type":41,"tag":66,"props":203,"children":204},{},[205],{"type":46,"value":206},"Analysis modernization requirement from user input",{"type":41,"tag":66,"props":208,"children":209},{},[210,215,217,223,225,231,233,238,240],{"type":41,"tag":169,"props":211,"children":212},{},[213],{"type":46,"value":214},"Clarification and Questionnaire",{"type":46,"value":216}," (only when the ",{"type":41,"tag":116,"props":218,"children":220},{"className":219},[],[221],{"type":46,"value":222},"ask_user",{"type":46,"value":224}," tool is available): If there are any open issues or ambiguities that need user input, use the following steps to answer any questions. Also ask the questions outlined in ",{"type":41,"tag":116,"props":226,"children":228},{"className":227},[],[229],{"type":46,"value":230},"questionnaire.md",{"type":46,"value":232}," via ",{"type":41,"tag":116,"props":234,"children":236},{"className":235},[],[237],{"type":46,"value":222},{"type":46,"value":239}," tool to scope the modernization plan. For questionnaire questions, if the user input already provides the answer, skip asking that question and use the provided information as the answer.",{"type":41,"tag":160,"props":241,"children":242},{},[243,255,260],{"type":41,"tag":66,"props":244,"children":245},{},[246,248,253],{"type":46,"value":247},"Use the ",{"type":41,"tag":116,"props":249,"children":251},{"className":250},[],[252],{"type":46,"value":222},{"type":46,"value":254}," tool to ask the user each clarification question directly. Wait for the user's response before proceeding.",{"type":41,"tag":66,"props":256,"children":257},{},[258],{"type":46,"value":259},"Record each question and answer for use in the summary step.",{"type":41,"tag":66,"props":261,"children":262},{},[263,265,270],{"type":46,"value":264},"If the ",{"type":41,"tag":116,"props":266,"children":268},{"className":267},[],[269],{"type":46,"value":222},{"type":46,"value":271}," tool is not available, skip this step entirely and proceed to plan generation using best-effort defaults.",{"type":41,"tag":66,"props":273,"children":274},{},[275,280,282,286,291,292,329,332,337,338,366,369,374,376,382,384,390,391,471,474,478,480,483,488,490,624,627,632,634,637,642,644,647,652,653,678,681,686,688,691,695],{"type":41,"tag":169,"props":276,"children":277},{},[278],{"type":46,"value":279},"Generate plan and tasks",{"type":46,"value":281},": Generate plan.md and tasks.json using the appropriate templates:",{"type":41,"tag":283,"props":284,"children":285},"br",{},[],{"type":41,"tag":169,"props":287,"children":288},{},[289],{"type":46,"value":290},"Template Selection",{"type":46,"value":175},{"type":41,"tag":62,"props":293,"children":294},{},[295,307,318],{"type":41,"tag":66,"props":296,"children":297},{},[298,300,305],{"type":46,"value":299},"Use ",{"type":41,"tag":169,"props":301,"children":302},{},[303],{"type":46,"value":304},"plan-template.md",{"type":46,"value":306}," for code migration, containerization, and deployment tasks",{"type":41,"tag":66,"props":308,"children":309},{},[310,311,316],{"type":46,"value":299},{"type":41,"tag":169,"props":312,"children":313},{},[314],{"type":46,"value":315},"security-plan-template.md",{"type":46,"value":317}," to include a security\u002FCVE remediation task in every modernization plan.",{"type":41,"tag":66,"props":319,"children":320},{},[321,322,327],{"type":46,"value":299},{"type":41,"tag":169,"props":323,"children":324},{},[325],{"type":46,"value":326},"infra-plan-template.md",{"type":46,"value":328}," ONLY when user explicitly requests infrastructure (e.g., \"prepare infrastructure\", \"create landing zone\", \"provision resources\", \"generate Bicep\u002FTerraform\")",{"type":41,"tag":283,"props":330,"children":331},{},[],{"type":41,"tag":169,"props":333,"children":334},{},[335],{"type":46,"value":336},"Plan Generation",{"type":46,"value":175},{"type":41,"tag":160,"props":339,"children":340},{},[341,346,351,356,361],{"type":41,"tag":66,"props":342,"children":343},{},[344],{"type":46,"value":345},"Follow the structure of the selected template to generate the plan",{"type":41,"tag":66,"props":347,"children":348},{},[349],{"type":46,"value":350},"Follow the rules defined in the template to fill in the sections with relevant information based on the analysis of user input and content of mentioned files",{"type":41,"tag":66,"props":352,"children":353},{},[354],{"type":46,"value":355},"Save the plan in folder ${modernization-work-folder} with the filename plan.md. If a plan already exists, overwrite it.",{"type":41,"tag":66,"props":357,"children":358},{},[359],{"type":46,"value":360},"Generate a separate tasks.json file following the tasks-schema.json schema with setupBaseline, infrastructure, upgrade, transform, containerization, and deployment tasks",{"type":41,"tag":66,"props":362,"children":363},{},[364],{"type":46,"value":365},"Save the tasks in folder ${modernization-work-folder}\u002F.metadata\u002F with the filename tasks.json. If tasks.json already exists, overwrite it.",{"type":41,"tag":283,"props":367,"children":368},{},[],{"type":41,"tag":169,"props":370,"children":371},{},[372],{"type":46,"value":373},"Clarification Outcomes in Plan",{"type":46,"value":375},": Incorporate all clarification answers from steps 3–4 into ",{"type":41,"tag":116,"props":377,"children":379},{"className":378},[],[380],{"type":46,"value":381},"plan.md",{"type":46,"value":383}," and ",{"type":41,"tag":116,"props":385,"children":387},{"className":386},[],[388],{"type":46,"value":389},"tasks.json",{"type":46,"value":175},{"type":41,"tag":62,"props":392,"children":393},{},[394,422],{"type":41,"tag":66,"props":395,"children":396},{},[397,399,405,407,413,415,420],{"type":46,"value":398},"Update the relevant task's ",{"type":41,"tag":116,"props":400,"children":402},{"className":401},[],[403],{"type":46,"value":404},"requirements",{"type":46,"value":406}," or ",{"type":41,"tag":116,"props":408,"children":410},{"className":409},[],[411],{"type":46,"value":412},"description",{"type":46,"value":414}," in ",{"type":41,"tag":116,"props":416,"children":418},{"className":417},[],[419],{"type":46,"value":389},{"type":46,"value":421}," based on the answer. Do NOT create a separate task for an implementation detail—only add a new task when the answer introduces entirely new migration scope.",{"type":41,"tag":66,"props":423,"children":424},{},[425,427,432,434,439,441],{"type":46,"value":426},"Record all clarification questions and their outcomes in the ",{"type":41,"tag":169,"props":428,"children":429},{},[430],{"type":46,"value":431},"\"## Open Questions & Questionnaire\"",{"type":46,"value":433}," section of ",{"type":41,"tag":116,"props":435,"children":437},{"className":436},[],[438],{"type":46,"value":381},{"type":46,"value":440},":\n",{"type":41,"tag":62,"props":442,"children":443},{},[444,455,466],{"type":41,"tag":66,"props":445,"children":446},{},[447,449],{"type":46,"value":448},"Answered: ",{"type":41,"tag":116,"props":450,"children":452},{"className":451},[],[453],{"type":46,"value":454},"- [x] Q: ... → A: ...",{"type":41,"tag":66,"props":456,"children":457},{},[458,460],{"type":46,"value":459},"Unanswered\u002Fskipped: ",{"type":41,"tag":116,"props":461,"children":463},{"className":462},[],[464],{"type":46,"value":465},"- [ ] ...",{"type":41,"tag":66,"props":467,"children":468},{},[469],{"type":46,"value":470},"Remove the section entirely if no clarification questions were raised.",{"type":41,"tag":283,"props":472,"children":473},{},[],{"type":41,"tag":169,"props":475,"children":476},{},[477],{"type":46,"value":173},{"type":46,"value":479},": The plan.md should NOT contain the detailed task breakdown. Those details go into tasks.json for better tracking and programmatic access.",{"type":41,"tag":283,"props":481,"children":482},{},[],{"type":41,"tag":169,"props":484,"children":485},{},[486],{"type":46,"value":487},"Task Breakdown Rules",{"type":46,"value":489},": When creating tasks for tasks.json and plan.md:",{"type":41,"tag":62,"props":491,"children":492},{},[493,498,510,535,540,571,605,610,615],{"type":41,"tag":66,"props":494,"children":495},{},[496],{"type":46,"value":497},"Purpose: Break down coding work into discrete migration tasks. Each task represents a user-requested migration from one service\u002Fcomponent to another, or a specific business logic modernization.",{"type":41,"tag":66,"props":499,"children":500},{},[501,503,508],{"type":46,"value":502},"Create tasks ONLY based on what the user explicitly requested - do not infer or add implicit tasks, ",{"type":41,"tag":169,"props":504,"children":505},{},[506],{"type":46,"value":507},"except",{"type":46,"value":509}," for the security\u002FCVE remediation task which must always be included in every plan",{"type":41,"tag":66,"props":511,"children":512},{},[513,515,521,523],{"type":46,"value":514},"If an ",{"type":41,"tag":116,"props":516,"children":518},{"className":517},[],[519],{"type":46,"value":520},"assessment-report",{"type":46,"value":522}," is provided, the task description must identify which specific issues from the assessment report are addressed by that task (e.g., \"Addresses issues: ",{"type":41,"tag":524,"props":525,"children":526},"issue-title-1",{},[527,529],{"type":46,"value":528},", ",{"type":41,"tag":530,"props":531,"children":532},"issue-title-2",{},[533],{"type":46,"value":534},"\")",{"type":41,"tag":66,"props":536,"children":537},{},[538],{"type":46,"value":539},"Group related changes that serve a single user goal into one task (e.g., all changes needed to migrate to PostgreSQL)",{"type":41,"tag":66,"props":541,"children":542},{},[543,545],{"type":46,"value":544},"Find a matched skill \u002F pattern for the task, following the following priority order.\n",{"type":41,"tag":160,"props":546,"children":547},{},[548,561,566],{"type":41,"tag":66,"props":549,"children":550},{},[551,553,559],{"type":46,"value":552},"Skills available for the project, which will be listed in the ",{"type":41,"tag":116,"props":554,"children":556},{"className":555},[],[557],{"type":46,"value":558},"skill",{"type":46,"value":560}," tool description.",{"type":41,"tag":66,"props":562,"children":563},{},[564],{"type":46,"value":565},"Patterns that will be attached and available at plan execution phase, listed in the supported patterns file.",{"type":41,"tag":66,"props":567,"children":568},{},[569],{"type":46,"value":570},"Otherwise if no relevant pattern is available for the task pattern, use the prompt segment from the user directly. DO NOT expand the request scope.",{"type":41,"tag":66,"props":572,"children":573},{},[574,578,579],{"type":41,"tag":169,"props":575,"children":576},{},[577],{"type":46,"value":173},{"type":46,"value":440},{"type":41,"tag":62,"props":580,"children":581},{},[582,587,600],{"type":41,"tag":66,"props":583,"children":584},{},[585],{"type":46,"value":586},"You MUST NOT use the pattern name as the skill name in the generated plan and tasks.json.",{"type":41,"tag":66,"props":588,"children":589},{},[590,592,598],{"type":46,"value":591},"If there are similar skills defined in project skill ",{"type":41,"tag":116,"props":593,"children":595},{"className":594},[],[596],{"type":46,"value":597},".github\u002Fskills\u002F",{"type":46,"value":599}," versus other skills, MUST use the one defined in project.",{"type":41,"tag":66,"props":601,"children":602},{},[603],{"type":46,"value":604},"Skills must be fully matched. For migration scenarios, both the source product and target product must match the task intent.",{"type":41,"tag":66,"props":606,"children":607},{},[608],{"type":46,"value":609},"Each task should be independently testable",{"type":41,"tag":66,"props":611,"children":612},{},[613],{"type":46,"value":614},"Do not add tests for unimpacted code or existing functionality unless user requested",{"type":41,"tag":66,"props":616,"children":617},{},[618,622],{"type":41,"tag":169,"props":619,"children":620},{},[621],{"type":46,"value":173},{"type":46,"value":623},": Do NOT read individual skill files at this stage; Do Not include the skill detail in the tasks.",{"type":41,"tag":283,"props":625,"children":626},{},[],{"type":41,"tag":169,"props":628,"children":629},{},[630],{"type":46,"value":631},"Java Upgrade Task Guidelines",{"type":46,"value":633},": Only add an upgrade task if the user explicitly requests it. You must refer to the .\u002Fjava-upgrade-guideline.md for specific rules and guidelines when creating Java upgrade tasks.",{"type":41,"tag":283,"props":635,"children":636},{},[],{"type":41,"tag":169,"props":638,"children":639},{},[640],{"type":46,"value":641},".NET Upgrade Task Guidelines",{"type":46,"value":643},": You must refer to the .\u002Fdotnet-upgrade-guideline.md for specific rules and guidelines when creating .NET upgrade tasks.",{"type":41,"tag":283,"props":645,"children":646},{},[],{"type":41,"tag":169,"props":648,"children":649},{},[650],{"type":46,"value":651},"Deployment Task Rules",{"type":46,"value":175},{"type":41,"tag":62,"props":654,"children":655},{},[656,673],{"type":41,"tag":66,"props":657,"children":658},{},[659,663,665,671],{"type":41,"tag":169,"props":660,"children":661},{},[662],{"type":46,"value":173},{"type":46,"value":664}," Do NOT create task type with ",{"type":41,"tag":116,"props":666,"children":668},{"className":667},[],[669],{"type":46,"value":670},"containerization",{"type":46,"value":672},"  if deployment task already exists, deployment task will cover the containerization work if needed.",{"type":41,"tag":66,"props":674,"children":675},{},[676],{"type":46,"value":677},"Deployment Task Options: Azure App Service, Azure Kubernetes Service, Azure Container Apps (default), Azure App Service Managed Instance, Azure Static Web App, Azure Function App",{"type":41,"tag":283,"props":679,"children":680},{},[],{"type":41,"tag":169,"props":682,"children":683},{},[684],{"type":46,"value":685},"Security Task Guidelines",{"type":46,"value":687},": The security task order should be after all the upgrade and transform tasks and before the deployment tasks in the generated plan. If the user provides specific security requirements, incorporate them into the security task; otherwise, use the default requirements from the template.",{"type":41,"tag":283,"props":689,"children":690},{},[],{"type":41,"tag":169,"props":692,"children":693},{},[694],{"type":46,"value":173},{"type":46,"value":696},": The upgrade task must be the first task in the task list because subsequent transform tasks (e.g., migrating to Azure services) depend on the upgraded runtime and project format.",{"type":41,"tag":66,"props":698,"children":699},{},[700,705,707,713,715],{"type":41,"tag":169,"props":701,"children":702},{},[703],{"type":46,"value":704},"Rulebook Compliance Validation",{"type":46,"value":706}," (only when rulebook attachments are present):\nAfter generating the plan and tasks, call skill ",{"type":41,"tag":116,"props":708,"children":710},{"className":709},[],[711],{"type":46,"value":712},"validate-rulebook-compliance",{"type":46,"value":714}," to validate that the plan tasks cover the rulebook rules:",{"type":41,"tag":62,"props":716,"children":717},{},[718,729,740,759,777],{"type":41,"tag":66,"props":719,"children":720},{},[721,723],{"type":46,"value":722},"tasks-json-path: ",{"type":41,"tag":116,"props":724,"children":726},{"className":725},[],[727],{"type":46,"value":728},"${modernization-work-folder}\u002F.metadata\u002Ftasks.json",{"type":41,"tag":66,"props":730,"children":731},{},[732,734],{"type":46,"value":733},"compliance-output-path: ",{"type":41,"tag":116,"props":735,"children":737},{"className":736},[],[738],{"type":46,"value":739},"${modernization-work-folder}\u002Frulebook-compliance.md",{"type":41,"tag":66,"props":741,"children":742},{},[743,745,750,752,757],{"type":46,"value":744},"This validation is ",{"type":41,"tag":169,"props":746,"children":747},{},[748],{"type":46,"value":749},"best-effort only",{"type":46,"value":751}," and must ",{"type":41,"tag":169,"props":753,"children":754},{},[755],{"type":46,"value":756},"not",{"type":46,"value":758}," block or fail plan creation.",{"type":41,"tag":66,"props":760,"children":761},{},[762,764,770,771,776],{"type":46,"value":763},"If the validation call cannot run, fails, or required context\u002Fattachments are missing, you must still complete the workflow and emit ",{"type":41,"tag":116,"props":765,"children":767},{"className":766},[],[768],{"type":46,"value":769},"${modernization-work-folder}\u002Fplan.md",{"type":46,"value":383},{"type":41,"tag":116,"props":772,"children":774},{"className":773},[],[775],{"type":46,"value":728},{"type":46,"value":147},{"type":41,"tag":66,"props":778,"children":779},{},[780,782,787],{"type":46,"value":781},"If validation cannot be completed successfully, write a minimal warning\u002Fstatus report to ",{"type":41,"tag":116,"props":783,"children":785},{"className":784},[],[786],{"type":46,"value":739},{"type":46,"value":788}," explaining that validation was skipped or failed and why, if known.",{"type":41,"tag":66,"props":790,"children":791},{},[792,797,798,803,805],{"type":41,"tag":169,"props":793,"children":794},{},[795],{"type":46,"value":796},"Summary & Confirmation",{"type":46,"value":216},{"type":41,"tag":116,"props":799,"children":801},{"className":800},[],[802],{"type":46,"value":222},{"type":46,"value":804}," tool is available):",{"type":41,"tag":160,"props":806,"children":807},{},[808,838,843,848],{"type":41,"tag":66,"props":809,"children":810},{},[811,813,818,820],{"type":46,"value":812},"Present a summary to the user via ",{"type":41,"tag":116,"props":814,"children":816},{"className":815},[],[817],{"type":46,"value":222},{"type":46,"value":819}," that includes:\n",{"type":41,"tag":62,"props":821,"children":822},{},[823,828,833],{"type":41,"tag":66,"props":824,"children":825},{},[826],{"type":46,"value":827},"All clarification questions and the user's answers (if any were asked in step 3)",{"type":41,"tag":66,"props":829,"children":830},{},[831],{"type":46,"value":832},"The planned task list with key details for each task: task name, type, matched skill\u002Fpattern, and a brief description of what it will do",{"type":41,"tag":66,"props":834,"children":835},{},[836],{"type":46,"value":837},"The supported task type in task-schema.json but not listed in the planned task list but matched with the user requirement, ask the user if they want to include those tasks in the plan or not.",{"type":41,"tag":66,"props":839,"children":840},{},[841],{"type":46,"value":842},"Ask the user to confirm the summary is correct, or provide additional input to adjust any answers or task list.",{"type":41,"tag":66,"props":844,"children":845},{},[846],{"type":46,"value":847},"If the user provides additional input, incorporate the changes. If the user chooses to skip or confirms, proceed to plan generation.",{"type":41,"tag":66,"props":849,"children":850},{},[851,852,857],{"type":46,"value":264},{"type":41,"tag":116,"props":853,"children":855},{"className":854},[],[856],{"type":46,"value":222},{"type":46,"value":858}," tool is not available, skip this step entirely.",{"type":41,"tag":55,"props":860,"children":862},{"id":861},"completion-criteria",[863],{"type":46,"value":864},"Completion Criteria",{"type":41,"tag":160,"props":866,"children":867},{},[868,898,903,908,913],{"type":41,"tag":66,"props":869,"children":870},{},[871,873,878,880,885,886,891,893],{"type":46,"value":872},"All clarification & questionnaire questions have been asked (or skipped with defaults) via ",{"type":41,"tag":116,"props":874,"children":876},{"className":875},[],[877],{"type":46,"value":222},{"type":46,"value":879},", answers incorporated into ",{"type":41,"tag":116,"props":881,"children":883},{"className":882},[],[884],{"type":46,"value":381},{"type":46,"value":383},{"type":41,"tag":116,"props":887,"children":889},{"className":888},[],[890],{"type":46,"value":389},{"type":46,"value":892},", and outcomes recorded in the \"## Open Questions & Questionnaire\" section of ",{"type":41,"tag":116,"props":894,"children":896},{"className":895},[],[897],{"type":46,"value":381},{"type":41,"tag":66,"props":899,"children":900},{},[901],{"type":46,"value":902},"The modernization task list is built",{"type":41,"tag":66,"props":904,"children":905},{},[906],{"type":46,"value":907},"The modernization task list MUST be scoped according to user input",{"type":41,"tag":66,"props":909,"children":910},{},[911],{"type":46,"value":912},"DON'T RUN the plan if user does not explicitly ask you to run the plan",{"type":41,"tag":66,"props":914,"children":915},{},[916,918],{"type":46,"value":917},"The generated plan.md and tasks.json are saved in the specified folder ",{"type":41,"tag":116,"props":919,"children":921},{"className":920},[],[922],{"type":46,"value":923},"${modernization-work-folder}",{"items":925,"total":27},[926,941,954,961,976,991,1002],{"slug":927,"name":927,"fn":928,"description":929,"org":930,"tags":931,"stars":23,"repoUrl":24,"updatedAt":940},"assessment","assess application repositories for modernization","Run application assessment for a single repository",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[932,935,938,939],{"name":933,"slug":934,"type":15},"Audit","audit",{"name":936,"slug":937,"type":15},"Code Analysis","code-analysis",{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},"2026-07-07T06:52:46.921075",{"slug":942,"name":942,"fn":943,"description":944,"org":945,"tags":946,"stars":23,"repoUrl":24,"updatedAt":953},"clarifying-scenarios","evaluate modernization request scenario context","Evaluates whether a user's modernization\u002Frewrite request provides enough scenario context to proceed (e.g., target component library, screenshots, design system for frontend; API contract policy, data migration strategy for backend). Produces a deterministic clarity score, asks the user for missing required fields via a structured form, and writes a canonical `clarification.md` artifact consumed by all downstream agents.\nTriggers: \"clarification gate\", \"scenario clarification\", \"elicit missing context\", \"evaluate prompt completeness\", \"ask user for screenshots \u002F target library \u002F design system\".\nNOT for: feature specification (use feature-inventory), planning (use creating-implementation-plan), implementation (use implementing-code), or resolving spec-time `[NEEDS CLARIFICATION]` markers (those remain owned by feature-inventory).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[947,949,952],{"name":948,"slug":29,"type":15},"Copilot",{"name":950,"slug":951,"type":15},"Engineering","engineering",{"name":13,"slug":14,"type":15},"2026-07-03T16:31:04.911521",{"slug":4,"name":4,"fn":5,"description":6,"org":955,"tags":956,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[957,958,959,960],{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":962,"name":962,"fn":963,"description":964,"org":965,"tags":966,"stars":23,"repoUrl":24,"updatedAt":975},"dependency-map","generate project dependency map diagrams","Generate dependency map diagram from project build files",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[967,970,971,974],{"name":968,"slug":969,"type":15},"Architecture","architecture",{"name":936,"slug":937,"type":15},{"name":972,"slug":973,"type":15},"Diagrams","diagrams",{"name":950,"slug":951,"type":15},"2026-07-18T05:14:07.976259",{"slug":977,"name":977,"fn":978,"description":979,"org":980,"tags":981,"stars":23,"repoUrl":24,"updatedAt":990},"guidelines","apply framework migration and transformation rules","Collection of framework-to-framework migration rules and transformation patterns (e.g., Struts→Spring MVC, JSP→Thymeleaf, EJB→Spring Boot).\nTriggers: \"check migration guidelines\", \"look up transformation rules\", \"find Struts-to-Spring patterns\", \"apply migration conventions\", \"conversion rules for X→Y\".\nAlso consumed automatically by breaking-down-tasks and implementing-code during migration workflows.\nNOT for: direct execution — other skills scan this directory.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[982,985,986,989],{"name":983,"slug":984,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":987,"slug":988,"type":15},"Migration","migration",{"name":13,"slug":14,"type":15},"2026-07-03T16:31:08.783756",{"slug":992,"name":992,"fn":993,"description":994,"org":995,"tags":996,"stars":23,"repoUrl":24,"updatedAt":1001},"implementing-code","execute implementation tasks for modernization","Executes a batch of implementation tasks with TDD workflow, source-anchored rewrite for behavioral fidelity, guideline-based code transformation, and full requirement tracing. Returns a structured batch report.\nTriggers: \"implement tasks\", \"execute the batch\", \"write code for these tasks\", \"implement with source anchoring\", \"run the implementation\".\nNOT for: task generation (use breaking-down-tasks), implementation planning (use creating-implementation-plan).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[997,998,999,1000],{"name":948,"slug":29,"type":15},{"name":950,"slug":951,"type":15},{"name":987,"slug":988,"type":15},{"name":13,"slug":14,"type":15},"2026-07-18T05:14:07.057305",{"slug":1003,"name":1003,"fn":1004,"description":1005,"org":1006,"tags":1007,"stars":23,"repoUrl":24,"updatedAt":1018},"quality-gates","run quality gate validation for workflows","Runs quality gate validation at each workflow stage. Supports 4 gate types: spec-quality, spec-to-plan, plan-to-tasks, completeness. Produces gate pass\u002Ffail reports with actionable feedback.\nTriggers: \"run quality gate\", \"validate spec quality\", \"spec quality\", \"plan coverage\", \"check plan coverage\", \"validate plan to tasks\", \"check task traceability\", \"verify task completeness\", \"run completeness review\", \"review implementation\", \"check plan traceability\", \"check coverage\", \"completeness quality gate\", \"final sign-off\", \"feature parity sign-off\", \"completeness gate\", \"feature parity\", \"sign-off report\", \"verify all requirements\".\nRequires `type` parameter to select the gate.\nNOT for: code review, implementation (use implementing-code), spec writing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1008,1009,1012,1015],{"name":9,"slug":8,"type":15},{"name":1010,"slug":1011,"type":15},"QA","qa",{"name":1013,"slug":1014,"type":15},"Testing","testing",{"name":1016,"slug":1017,"type":15},"Workflow Automation","workflow-automation","2026-07-07T06:52:45.631984",{"items":1020,"total":1209},[1021,1041,1060,1079,1094,1111,1122,1135,1150,1165,1184,1197],{"slug":1022,"name":1022,"fn":1023,"description":1024,"org":1025,"tags":1026,"stars":1038,"repoUrl":1039,"updatedAt":1040},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1027,1028,1031,1032,1035],{"name":950,"slug":951,"type":15},{"name":1029,"slug":1030,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":1033,"slug":1034,"type":15},"Project Management","project-management",{"name":1036,"slug":1037,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":1042,"name":1042,"fn":1043,"description":1044,"org":1045,"tags":1046,"stars":1057,"repoUrl":1058,"updatedAt":1059},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1047,1050,1053,1054],{"name":1048,"slug":1049,"type":15},".NET","net",{"name":1051,"slug":1052,"type":15},"Agents","agents",{"name":17,"slug":18,"type":15},{"name":1055,"slug":1056,"type":15},"LLM","llm",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:10.297433",{"slug":1061,"name":1061,"fn":1062,"description":1063,"org":1064,"tags":1065,"stars":1057,"repoUrl":1058,"updatedAt":1078},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1066,1069,1070,1073,1074,1075],{"name":1067,"slug":1068,"type":15},"Analytics","analytics",{"name":17,"slug":18,"type":15},{"name":1071,"slug":1072,"type":15},"Data Analysis","data-analysis",{"name":983,"slug":984,"type":15},{"name":9,"slug":8,"type":15},{"name":1076,"slug":1077,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":1080,"name":1080,"fn":1081,"description":1082,"org":1083,"tags":1084,"stars":1057,"repoUrl":1058,"updatedAt":1093},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1085,1088,1089,1090],{"name":1086,"slug":1087,"type":15},"AI Infrastructure","ai-infrastructure",{"name":17,"slug":18,"type":15},{"name":983,"slug":984,"type":15},{"name":1091,"slug":1092,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1098,"tags":1099,"stars":1057,"repoUrl":1058,"updatedAt":1110},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1100,1101,1104,1105,1106,1109],{"name":17,"slug":18,"type":15},{"name":1102,"slug":1103,"type":15},"Compliance","compliance",{"name":1055,"slug":1056,"type":15},{"name":9,"slug":8,"type":15},{"name":1107,"slug":1108,"type":15},"Python","python",{"name":1091,"slug":1092,"type":15},"2026-07-18T05:14:23.017504",{"slug":1112,"name":1112,"fn":1113,"description":1114,"org":1115,"tags":1116,"stars":1057,"repoUrl":1058,"updatedAt":1121},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1117,1118,1119,1120],{"name":1067,"slug":1068,"type":15},{"name":17,"slug":18,"type":15},{"name":1055,"slug":1056,"type":15},{"name":1107,"slug":1108,"type":15},"2026-07-31T05:54:29.068751",{"slug":1123,"name":1123,"fn":1124,"description":1125,"org":1126,"tags":1127,"stars":1057,"repoUrl":1058,"updatedAt":1134},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1128,1131,1132,1133],{"name":1129,"slug":1130,"type":15},"API Development","api-development",{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":1107,"slug":1108,"type":15},"2026-07-18T05:14:16.988376",{"slug":1136,"name":1136,"fn":1137,"description":1138,"org":1139,"tags":1140,"stars":1057,"repoUrl":1058,"updatedAt":1149},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1141,1142,1145,1148],{"name":17,"slug":18,"type":15},{"name":1143,"slug":1144,"type":15},"Computer Vision","computer-vision",{"name":1146,"slug":1147,"type":15},"Images","images",{"name":1107,"slug":1108,"type":15},"2026-07-18T05:14:18.007737",{"slug":1151,"name":1151,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":1057,"repoUrl":1058,"updatedAt":1164},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1156,1157,1160,1163],{"name":17,"slug":18,"type":15},{"name":1158,"slug":1159,"type":15},"Configuration","configuration",{"name":1161,"slug":1162,"type":15},"Feature Flags","feature-flags",{"name":983,"slug":984,"type":15},"2026-07-03T16:32:01.278468",{"slug":1166,"name":1166,"fn":1167,"description":1168,"org":1169,"tags":1170,"stars":1057,"repoUrl":1058,"updatedAt":1183},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1171,1174,1177,1180],{"name":1172,"slug":1173,"type":15},"Cosmos DB","cosmos-db",{"name":1175,"slug":1176,"type":15},"Database","database",{"name":1178,"slug":1179,"type":15},"NoSQL","nosql",{"name":1181,"slug":1182,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":1185,"name":1185,"fn":1167,"description":1186,"org":1187,"tags":1188,"stars":1057,"repoUrl":1058,"updatedAt":1196},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1189,1190,1191,1192,1193],{"name":1172,"slug":1173,"type":15},{"name":1175,"slug":1176,"type":15},{"name":9,"slug":8,"type":15},{"name":1178,"slug":1179,"type":15},{"name":1194,"slug":1195,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":1198,"name":1198,"fn":1199,"description":1200,"org":1201,"tags":1202,"stars":1057,"repoUrl":1058,"updatedAt":1208},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1203,1204,1205,1206,1207],{"name":17,"slug":18,"type":15},{"name":1172,"slug":1173,"type":15},{"name":1175,"slug":1176,"type":15},{"name":983,"slug":984,"type":15},{"name":1178,"slug":1179,"type":15},"2026-05-13T06:14:17.582229",267]