Skip to content

Commit 3c0cf47

Browse files
authored
Merge branch 'main' into yizcheng/nonazregion
2 parents 0c6304a + 3f8a491 commit 3c0cf47

682 files changed

Lines changed: 3742 additions & 1098 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gdn/.gdnbaselines

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
4141
"createdDate": "2026-02-24 12:06:54Z"
4242
},
43-
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44-
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
43+
"3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915": {
44+
"signature": "3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915",
4545
"alternativeSignatures": [],
46-
"target": "update-permissions-reference-fic.ps1",
46+
"target": "scripts/update-permissions-reference-fic.ps1",
4747
"line": 179,
4848
"memberOf": [
4949
"default"
5050
],
5151
"tool": "psscriptanalyzer",
5252
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53-
"createdDate": "2026-02-24 12:06:54Z"
53+
"createdDate": "2026-03-24 12:06:54Z"
5454
}
5555
}
5656
}

.gdn/.gdnsuppress

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,17 @@
4040
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
4141
"createdDate": "2026-02-24 12:06:54Z"
4242
},
43-
"261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96": {
44-
"signature": "261f3837d9978ecb7637c62a4ced8a0eb843e19a07557738ce232dc24410ac96",
43+
"3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915": {
44+
"signature": "3a37bf64f23749ac738b5da94bdc0511f105855aee640971733d155dad1f9915",
4545
"alternativeSignatures": [],
46-
"target": "update-permissions-reference-fic.ps1",
46+
"target": "scripts/update-permissions-reference-fic.ps1",
4747
"line": 179,
4848
"memberOf": [
4949
"default"
5050
],
5151
"tool": "psscriptanalyzer",
5252
"ruleId": "PSAvoidUsingConvertToSecureStringWithPlainText",
53-
"createdDate": "2026-02-24 12:06:54Z"
53+
"createdDate": "2026-03-24 12:06:54Z"
5454
}
5555
}
5656
}

.github/prompts/author-api-docs/common.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,19 @@ Use the following format when reporting file processing results, so output is co
603603
⚠️ Blocked: [list with reasons, or "None"]
604604
```
605605

606+
**Mid-phase validation** (required at every ⏸ phase gate, before moving to the next phase):
607+
608+
Re-read each file completed in the current phase and verify it meets expectations for its file type. Output a validation checklist:
609+
610+
```
611+
✅ Phase [N] Validation
612+
- [file1.md]: H1 ✓ | Namespace ✓ | Properties table ✓ | JSON representation ✓
613+
- [file2.md]: H1 ✓ | Namespace ✓ | Permissions ✓ | HTTP request ✓ | Examples ✓
614+
- [file3.md]: H1 ✓ | Namespace ✓ | Properties table ✗ (missing "newProperty") — FIXING
615+
```
616+
617+
Fix any failures before proceeding to the next phase. Do not defer fixes to end-of-session.
618+
606619
## State Tracking
607620

608621
Maintain a running progress tracker throughout the session. After each file or batch of files, update and display:
@@ -625,8 +638,9 @@ For Documentation Plans with many files (10+):
625638
1. **Group by type:** resources, API methods, enumerations, permissions, supporting files
626639
2. **Process in batches of 5 files** — complete all steps for each file before moving to the next
627640
3. **After each batch**, output a phase status summary (see [Structured Output Format](#structured-output-format))
628-
4. **Present the execution plan upfront** and proceed unless the author objects — avoid blocking confirmations for each batch when the Documentation Plan is clear
629-
5. **If the plan exceeds 20 files**, create a numbered task list at the start, group into batches, and checkpoint progress after each batch
641+
4. **Verify each batch before proceeding:** Re-read every file in the completed batch and confirm it contains the expected sections (e.g., H1, namespace, Permissions, HTTP request, Examples for API files; H1, namespace, Properties table, JSON representation for resource files). Fix any issues before starting the next batch.
642+
5. **Present the execution plan upfront** and proceed unless the author objects — avoid blocking confirmations for each batch when the Documentation Plan is clear
643+
6. **If the plan exceeds 20 files**, after the first batch completes and is verified, **stop and ask the author to confirm quality** before continuing. This catches systematic errors early.
630644

631645
## Decision Trees for Ambiguous Cases
632646

@@ -702,6 +716,8 @@ Report any inconsistencies in the final summary to the author.
702716

703717
The following checks apply to every documentation scenario. Scenario-specific checklists add additional items on top of these.
704718

719+
> **IMPORTANT:** For each checklist item, re-read the actual file content to confirm — do not check items from memory.
720+
705721
**For all files (new and updated):**
706722
- [ ] All required sections are present and in correct order
707723
- [ ] Headings match the expected format

.github/prompts/author-api-docs/deprecate-retire.md

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,15 @@ If the author has already described the deprecation in sufficient detail (e.g.,
7676
| Instead of... | Use... |
7777
|---------------|--------|
7878
| Documentation Plan | The author's prompt — extract what is being deprecated, the alternative/workaround, milestone date, and blog post link |
79-
| Autogenerated changelog | Ask the author if a changelog and What's New update are needed. If yes, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process |
79+
| Autogenerated changelog | Changelog and What's New are **always required** for deprecations and retirements. If no autogenerated changelog file exists, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process. Ask the author only for WorkloadArea and SubArea if not inferrable. |
8080

8181
**What you still need from the author** (ask if not provided):
8282
- What specifically is being deprecated (resource, method, property, enum, etc.)
8383
- The alternative API or workaround
8484
- The milestone/sunset date
8585
- Blog post URL (if available)
8686
- Which version(s): beta, v1.0, or both
87-
- WorkloadArea and SubArea for the changelog (if one is needed)
87+
- WorkloadArea and SubArea for the changelog (if not inferrable)
8888

8989
## Key principles
9090

@@ -190,10 +190,22 @@ See [Deprecating enumerations](.github/prompts/author-api-docs/enumerations.md#d
190190

191191
## Supporting updates
192192

193-
**Changelog:** Change type: "Deprecation". Include API set/entities, link to topics and blog post. See [Updating the Changelog](common.md#updating-the-changelog).
193+
Changelog and What's New updates are always required for deprecations and retirements. This applies to all deprecated or retired schema artifacts — resources, properties, relationships, enums, methods.
194+
195+
**Changelog:** Change type: "Deprecation" or "Deletion". Include API set/entities, link to topics and blog post. See [Updating the Changelog](common.md#updating-the-changelog).
194196

195197
**What's New:** Describe deprecation, link to deprecated API and alternative, link to blog post. See [Updating What's New](common.md#updating-whats-new).
196198

199+
**What's New description patterns for deprecations and retirements:**
200+
201+
- **Deprecated resource:** `Deprecated the [resourceName](/graph/api/resources/{filename}?view=graph-rest-{version}&preserve-view=true) resource type. Use [alternativeName](/graph/api/resources/{alt-filename}?view=graph-rest-{version}&preserve-view=true) instead.`
202+
- **Deprecated property:** `Deprecated the **propertyName** property on the [resourceName](/graph/api/resources/{filename}?view=graph-rest-{version}&preserve-view=true) resource type. Use the **alternativeProperty** property instead.`
203+
- **Deprecated method:** `Deprecated the [methodName](/graph/api/{filename}?view=graph-rest-{version}&preserve-view=true) method. Use [alternativeMethod](/graph/api/{alt-filename}?view=graph-rest-{version}&preserve-view=true) instead.`
204+
- **Deprecated enum/member:** `Deprecated the `memberName` member in the **enumName** enumeration type.`
205+
- **Retired resource:** `Removed the **resourceName** resource type and associated methods.`
206+
207+
For v1.0-only links, omit the `?view=graph-rest-beta&preserve-view=true` query string.
208+
197209
---
198210

199211
## Mixed scenarios
@@ -214,10 +226,15 @@ Retirement is the final stage of the API lifecycle — the deprecated API has re
214226

215227
### Inputs for retirement
216228

217-
The Documentation Plan must explicitly identify:
218-
- Which resources (entity types, complex types) are being retired (marked as "Deleted" or "Removed")
219-
- Which API operation files are linked to the retired resources
220-
- **Dependency analysis for related types:** Complex types referenced as property return types and entity types referenced as relationship targets must be explicitly called out. The Documentation Plan must state whether each related type is also being retired or should be retained.
229+
Retirement can be triggered by:
230+
- **Schema change:** A Documentation Plan or changelog showing `ChangeType: "Deletion"` for entities, complex types, properties, relationships, actions, or functions
231+
- **Endpoint removal:** The product stops supporting an endpoint — this may not appear in the schema. The author will specify which endpoints are removed and the affected version(s).
232+
233+
The Documentation Plan or author prompt must identify:
234+
- Which resources (entity types, complex types) are being retired
235+
- Which version(s): beta, v1.0, or both
236+
- The alternative API or resource (for redirects)
237+
- **Dependency analysis for related types:** Complex types referenced as property return types and entity types referenced as relationship targets may still be in use by other APIs. Only delete a related type if it is explicitly called out as retired — otherwise retain it.
221238

222239
### Retirement workflow
223240

@@ -242,11 +259,14 @@ Based on the Documentation Plan, delete:
242259
3. **Permission include files** for the retired API operation files:
243260
- `api-reference/{version}/includes/permissions/{operation}-permissions.md` (naming may vary — match the include reference in each API operation file)
244261

245-
4. **Complex type files** explicitly called out as retired/deleted in the Documentation Plan:
262+
4. **RBAC include files** for the retired API operation files (if they exist and not in use by other APIs):
263+
- `api-reference/{version}/includes/rbac-for-apis/{rbac-file}.md` (match the include reference in each API operation file)
264+
265+
5. **Complex type files** explicitly called out as retired/deleted in the Documentation Plan:
246266
- Only delete if the Documentation Plan explicitly marks the complex type as retired/deleted
247267
- If not explicitly called out as retired, retain the file
248268

249-
5. **Enum files or sections** explicitly called out as retired/deleted in the Documentation Plan:
269+
6. **Enum files or sections** explicitly called out as retired/deleted in the Documentation Plan:
250270
- For standalone enum files: delete if explicitly marked as retired
251271
- For H3 sections in parent resources: removed when parent resource is deleted
252272
- For entries in global enums files (`enums.md`, `enums-{subnamespace}.md`): remove the enum section
@@ -277,12 +297,12 @@ Add redirects for **resource files that include Methods tables** (entity types)
277297
"redirections": [
278298
{
279299
"source_path": "api-reference/{version}/resources/{retired-resource}.md",
280-
"redirect_url": "/graph/api/resources/{alternative-resource}",
300+
"redirect_url": "/graph/api/resources/{alternative-resource}?view=graph-rest-{version}",
281301
"redirect_document_id": false
282302
},
283303
{
284304
"source_path": "api-reference/{version}/api/{retired-operation}.md",
285-
"redirect_url": "/graph/api/{alternative-operation}",
305+
"redirect_url": "/graph/api/{alternative-operation}?view=graph-rest-{version}",
286306
"redirect_document_id": false
287307
}
288308
]
@@ -348,6 +368,7 @@ In addition to the [base quality checklist](common.md#base-quality-checklist), v
348368
**Supporting updates:**
349369
- [ ] Changelog: Change type "Deprecation", links to topics/blog
350370
- [ ] What's New: describes deprecation, links to API/alternative/blog
371+
- [ ] What's New includes entries for all deprecated schema artifacts (resources, properties, enums, methods)
351372

352373
**Mixed scenarios:**
353374
- [ ] Non-deprecation tasks processed first
@@ -367,6 +388,7 @@ In addition to the [base quality checklist](common.md#base-quality-checklist), v
367388
- [ ] All resource files explicitly marked as retired/deleted are deleted
368389
- [ ] All API operation files linked to retired resources are deleted
369390
- [ ] All permission include files for retired operations are deleted
391+
- [ ] All RBAC include files for retired operations are deleted (if they existed and not in use by other APIs)
370392
- [ ] Complex types and enums only deleted if explicitly called out as retired in the Documentation Plan
371393
- [ ] References to retired resources removed from parent/related resource tables (Methods, Relationships, Properties)
372394
- [ ] TOC entries removed for deleted files

.github/prompts/author-api-docs/ga.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ If the author has already described the promotion in sufficient detail (e.g., na
7070
| Documentation Plan | The author's prompt — extract which resources, methods, or properties are being promoted |
7171
| API.md | The author's pasted content (XML, CSDL, JSON) + existing documentation in the repo |
7272
| Doc stubs | Existing files in the repo — search for them by resource name, namespace, or file path |
73-
| Autogenerated changelog | Ask the author if they can provide an autogenerated changelog in `temp-docstubs`. If not, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process |
73+
| Autogenerated changelog | Changelog and What's New are **always required** for promotions to v1.0. If no autogenerated changelog file exists, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process. Ask the author only for WorkloadArea and SubArea if not inferrable. |
7474

7575
**What you still need from the author** (ask if not provided or inferrable):
7676
- Which specific resources/methods/properties are being promoted
7777
- Whether this is a full or partial promotion
7878
- Whether there are deviations from beta (renames, type changes, structural differences)
79-
- WorkloadArea and SubArea for the changelog (if one is needed)
79+
- WorkloadArea and SubArea for the changelog (if not inferrable)
8080

8181
**Do not block** on missing formal inputs when the author's prompt provides enough context to proceed.
8282

@@ -189,6 +189,8 @@ Remove "(preview)" from TOC entries as applicable:
189189

190190
### Step 5: Update changelog and What's new
191191

192+
Changelog and What's New updates are always required for promotions. This applies to all promoted schema artifacts — resources, properties, relationships, enums, methods.
193+
192194
1. **Add changelog entries:**
193195
- Use the autogenerated changelog doc stub (JSON file) provided by the author
194196
- Add entries for all APIs and resources being promoted to v1.0
@@ -198,6 +200,16 @@ Remove "(preview)" from TOC entries as applicable:
198200
- Add entries to the [What's new](https://learn.microsoft.com/en-us/graph/whats-new-overview) topic for the promoted APIs
199201
- Highlight that these APIs are now generally available (GA) in v1.0
200202

203+
**What's New description patterns for GA promotions:**
204+
205+
- **Promoted resource:** `Added the [resourceName](/graph/api/resources/{filename}) resource type to the v1.0 endpoint.`
206+
- **Promoted property:** `Added the **propertyName** property to the [resourceName](/graph/api/resources/{filename}) resource type in v1.0.`
207+
- **Promoted enum:** `Added the **enumName** enumeration type to the v1.0 endpoint.`
208+
- **Promoted method:** `Added the [methodName](/graph/api/{filename}) method to the [resourceName](/graph/api/resources/{filename}) resource type in v1.0.`
209+
- **Promoted enum member:** Added the `memberName` member to the **enumName** enumeration type in v1.0.
210+
211+
Note: For v1.0 links, do NOT append `?view=graph-rest-beta&preserve-view=true` query strings.
212+
201213
## Partial promotions
202214

203215
When only some properties, methods, or relationships of a resource are being promoted (the v1.0 resource already exists):
@@ -319,6 +331,7 @@ In addition to the [base quality checklist](common.md#base-quality-checklist), v
319331
**For changelog and What's new:**
320332
- [ ] Changelog entries added using autogenerated JSON stub
321333
- [ ] What's new topic updated with GA announcement
334+
- [ ] What's New includes entries for all promoted schema artifacts (resources, properties, enums, methods)
322335

323336
**Final verification — Scenario 2 specific:**
324337
- [ ] All resource files promoted and updated

.github/prompts/author-api-docs/public-preview.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ If the author has already described the change in sufficient detail (e.g., paste
6767
| Documentation Plan | The author's prompt — extract scope, files, resources, and changes directly from their message |
6868
| API.md | The author's pasted content (XML, CSDL, JSON) + existing documentation in the repo |
6969
| Doc stubs | Existing files in the repo — search for them by resource name, namespace, or file path |
70-
| Autogenerated changelog | Ask the author if a changelog and What's New update are needed. If yes, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process |
70+
| Autogenerated changelog | Changelog and What's New are **always required** for schema changes (new resources, properties, enums, methods, deprecations). If no autogenerated changelog file exists, use the [manual changelog authoring](common.md#manually-authoring-changelog-entries) process. Ask the author only for WorkloadArea and SubArea if not inferrable. |
7171

7272
**What you still need from the author** (ask if not provided or inferrable):
7373
- Which version: beta, v1.0, or both
@@ -497,6 +497,30 @@ For all API changes, include the following updates as applicable:
497497

498498
See the shared processes in [`common.md`](.github/prompts/author-api-docs/common.md) for complete instructions on each of these processes.
499499

500+
### When changelog and What's New are required
501+
502+
Changelog and What's New updates are required whenever a doc stub changelog file is provided or the Documentation Plan includes schema changes. This includes — but is not limited to:
503+
504+
| Change type | Changelog required | What's New required |
505+
|-------------|-------------------|---------------------|
506+
| New resource type (EntityType, ComplexType) | ✅ Yes | ✅ Yes |
507+
| New API method (action, function) | ✅ Yes | ✅ Yes |
508+
| New property on existing resource | ✅ Yes | ✅ Yes |
509+
| New relationship on existing resource | ✅ Yes | ✅ Yes |
510+
| New enumeration type | ✅ Yes | ✅ Yes |
511+
| New enum member on existing enum | ✅ Yes | ✅ Yes |
512+
| Deprecation or removal | ✅ Yes | ✅ Yes |
513+
514+
**What's New description patterns for common changes:**
515+
516+
- **New resource:** `Added the [resourceName](/graph/api/resources/{filename}?view=graph-rest-beta&preserve-view=true) resource type.`
517+
- **New property:** `Added the **propertyName** property to the [resourceName](/graph/api/resources/{filename}?view=graph-rest-beta&preserve-view=true) resource type.`
518+
- **New enum:** `Added the **enumName** enumeration type.`
519+
- **New method:** `Added the [methodName](/graph/api/{filename}?view=graph-rest-beta&preserve-view=true) method to the [resourceName](/graph/api/resources/{filename}?view=graph-rest-beta&preserve-view=true) resource type.`
520+
- **New enum member:** `Added the `memberName` member to the **enumName** enumeration type.`
521+
522+
For v1.0, omit the `?view=graph-rest-beta&preserve-view=true` query string from links.
523+
500524
After gathering all inputs, analyze the Documentation Plan to understand the full scope of work.
501525

502526
## Quality checklist
@@ -594,6 +618,8 @@ In addition to the [base quality checklist](common.md#base-quality-checklist), v
594618
- [ ] All TOC changes made if applicable
595619
- [ ] All properties referencing updated enumerations have been updated
596620
- [ ] All permissions files copied
621+
- [ ] Changelog entry added for all schema changes (new resources, properties, enums, methods, deprecations)
622+
- [ ] What's New entry added for all schema changes (matches changelog scope)
597623

598624
**For polymorphic collections (if applicable):**
599625
- [ ] Polymorphism detected from Documentation Plan notes

0 commit comments

Comments
 (0)