[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M78HTZX4XFASPYNJ1DE42RPR":3,"skill-same:01M78HTZX4XFASPYNJ1DE42RPR":81},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M78HTZX4XFASPYNJ1DE42RPR","ms365-tenant-manager",null,"Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.","aneeba-pixel\u002Fclaude-skills","aneeba-pixel","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F218186338?v=4","01M78GRXBTG70217SH410P543Y","Aneeba Saeed","01M78GRXCDZ6TA0F8H2CZMDGSS",0,"MIT","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: \"ms365-tenant-manager\"\ndescription: Microsoft 365 tenant administration for Global Administrators. Automate M365 tenant setup, Office 365 admin tasks, Azure AD user management, Exchange Online configuration, Teams administration, and security policies. Generate PowerShell scripts for bulk operations, Conditional Access policies, license management, and compliance reporting. Use for M365 tenant manager, Office 365 admin, Azure AD users, Global Administrator, tenant configuration, or Microsoft 365 automation.\n---\n\n# Microsoft 365 Tenant Manager\n\nExpert guidance and automation for Microsoft 365 Global Administrators managing tenant setup, user lifecycle, security policies, and organizational optimization.\n\n---\n\n## Quick Start\n\n### Run a Security Audit\n\n```powershell\nConnect-MgGraph -Scopes \"Directory.Read.All\",\"Policy.Read.All\",\"AuditLog.Read.All\"\nGet-MgSubscribedSku | Select-Object SkuPartNumber, ConsumedUnits, @{N=\"Total\";E={$_.PrepaidUnits.Enabled}}\nGet-MgPolicyAuthorizationPolicy | Select-Object AllowInvitesFrom, DefaultUserRolePermissions\n```\n\n### Bulk Provision Users from CSV\n\n```powershell\n# CSV columns: DisplayName, UserPrincipalName, Department, LicenseSku\nImport-Csv .\\new_users.csv | ForEach-Object {\n    $passwordProfile = @{ Password = (New-Guid).ToString().Substring(0,16) + \"!\"; ForceChangePasswordNextSignIn = $true }\n    New-MgUser -DisplayName $_.DisplayName -UserPrincipalName $_.UserPrincipalName `\n               -Department $_.Department -AccountEnabled -PasswordProfile $passwordProfile\n}\n```\n\n### Create a Conditional Access Policy (MFA for Admins)\n\n```powershell\n$adminRoles = (Get-MgDirectoryRole | Where-Object { $_.DisplayName -match \"Admin\" }).Id\n$policy = @{\n    DisplayName = \"Require MFA for Admins\"\n    State = \"enabledForReportingButNotEnforced\"   # Start in report-only mode\n    Conditions = @{ Users = @{ IncludeRoles = $adminRoles } }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"mfa\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n```\n\n---\n\n## Workflows\n\n### Workflow 1: New Tenant Setup\n\n**Step 1: Generate Setup Checklist**\n\nConfirm prerequisites before provisioning:\n- Global Admin account created and secured with MFA\n- Custom domain purchased and accessible for DNS edits\n- License SKUs confirmed (E3 vs E5 feature requirements noted)\n\n**Step 2: Configure and Verify DNS Records**\n\n```powershell\n# After adding the domain in the M365 admin center, verify propagation before proceeding\n$domain = \"company.com\"\nResolve-DnsName -Name \"_msdcs.$domain\" -Type NS -ErrorAction SilentlyContinue\n# Also run from a shell prompt:\n# nslookup -type=MX company.com\n# nslookup -type=TXT company.com   # confirm SPF record\n```\n\nWait for DNS propagation (up to 48 h) before bulk user creation.\n\n**Step 3: Apply Security Baseline**\n\n```powershell\n# Disable legacy authentication (blocks Basic Auth protocols)\n$policy = @{\n    DisplayName = \"Block Legacy Authentication\"\n    State = \"enabled\"\n    Conditions = @{ ClientAppTypes = @(\"exchangeActiveSync\",\"other\") }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"block\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n\n# Enable unified audit log\nSet-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true\n```\n\n**Step 4: Provision Users**\n\n```powershell\n$licenseSku = (Get-MgSubscribedSku | Where-Object { $_.SkuPartNumber -eq \"ENTERPRISEPACK\" }).SkuId\n\nImport-Csv .\\employees.csv | ForEach-Object {\n    try {\n        $user = New-MgUser -DisplayName $_.DisplayName -UserPrincipalName $_.UserPrincipalName `\n                           -AccountEnabled -PasswordProfile @{ Password = (New-Guid).ToString().Substring(0,12)+\"!\"; ForceChangePasswordNextSignIn = $true }\n        Set-MgUserLicense -UserId $user.Id -AddLicenses @(@{ SkuId = $licenseSku }) -RemoveLicenses @()\n        Write-Host \"Provisioned: $($_.UserPrincipalName)\"\n    } catch {\n        Write-Warning \"Failed $($_.UserPrincipalName): $_\"\n    }\n}\n```\n\n**Validation:** Spot-check 3–5 accounts in the M365 admin portal; confirm licenses show \"Active.\"\n\n---\n\n### Workflow 2: Security Hardening\n\n**Step 1: Run Security Audit**\n\n```powershell\nConnect-MgGraph -Scopes \"Directory.Read.All\",\"Policy.Read.All\",\"AuditLog.Read.All\",\"Reports.Read.All\"\n\n# Export Conditional Access policy inventory\nGet-MgIdentityConditionalAccessPolicy | Select-Object DisplayName, State |\n    Export-Csv .\\ca_policies.csv -NoTypeInformation\n\n# Find accounts without MFA registered\n$report = Get-MgReportAuthenticationMethodUserRegistrationDetail\n$report | Where-Object { -not $_.IsMfaRegistered } |\n    Select-Object UserPrincipalName, IsMfaRegistered |\n    Export-Csv .\\no_mfa_users.csv -NoTypeInformation\n\nWrite-Host \"Audit complete. Review ca_policies.csv and no_mfa_users.csv.\"\n```\n\n**Step 2: Create MFA Policy (report-only first)**\n\n```powershell\n$policy = @{\n    DisplayName = \"Require MFA All Users\"\n    State = \"enabledForReportingButNotEnforced\"\n    Conditions = @{ Users = @{ IncludeUsers = @(\"All\") } }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"mfa\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n```\n\n**Validation:** After 48 h, review Sign-in logs in Entra ID; confirm expected users would be challenged, then change `State` to `\"enabled\"`.\n\n**Step 3: Review Secure Score**\n\n```powershell\n# Retrieve current Secure Score and top improvement actions\nGet-MgSecuritySecureScore -Top 1 | Select-Object CurrentScore, MaxScore, ActiveUserCount\nGet-MgSecuritySecureScoreControlProfile | Sort-Object -Property ActionType |\n    Select-Object Title, ImplementationStatus, MaxScore | Format-Table -AutoSize\n```\n\n---\n\n### Workflow 3: User Offboarding\n\n**Step 1: Block Sign-in and Revoke Sessions**\n\n```powershell\n$upn = \"departing.user@company.com\"\n$user = Get-MgUser -Filter \"userPrincipalName eq '$upn'\"\n\n# Block sign-in immediately\nUpdate-MgUser -UserId $user.Id -AccountEnabled:$false\n\n# Revoke all active tokens\nInvoke-MgInvalidateAllUserRefreshToken -UserId $user.Id\nWrite-Host \"Sign-in blocked and sessions revoked for $upn\"\n```\n\n**Step 2: Preview with -WhatIf (license removal)**\n\n```powershell\n# Identify assigned licenses\n$licenses = (Get-MgUserLicenseDetail -UserId $user.Id).SkuId\n\n# Dry-run: print what would be removed\n$licenses | ForEach-Object { Write-Host \"[WhatIf] Would remove SKU: $_\" }\n```\n\n**Step 3: Execute Offboarding**\n\n```powershell\n# Remove licenses\nSet-MgUserLicense -UserId $user.Id -AddLicenses @() -RemoveLicenses $licenses\n\n# Convert mailbox to shared (requires ExchangeOnlineManagement module)\nSet-Mailbox -Identity $upn -Type Shared\n\n# Remove from all groups\nGet-MgUserMemberOf -UserId $user.Id | ForEach-Object {\n    try { Remove-MgGroupMemberByRef -GroupId $_.Id -DirectoryObjectId $user.Id } catch {}\n}\nWrite-Host \"Offboarding complete for $upn\"\n```\n\n**Validation:** Confirm in the M365 admin portal that the account shows \"Blocked,\" has no active licenses, and the mailbox type is \"Shared.\"\n\n---\n\n## Best Practices\n\n### Tenant Setup\n\n1. Enable MFA before adding users\n2. Configure named locations for Conditional Access\n3. Use separate admin accounts with PIM\n4. Verify custom domains (and DNS propagation) before bulk user creation\n5. Apply Microsoft Secure Score recommendations\n\n### Security Operations\n\n1. Start Conditional Access policies in report-only mode\n2. Review Sign-in logs for 48 h before enforcing a new policy\n3. Never hardcode credentials in scripts — use Azure Key Vault or `Get-Credential`\n4. Enable unified audit logging for all operations\n5. Conduct quarterly security reviews and Secure Score check-ins\n\n### PowerShell Automation\n\n1. Prefer Microsoft Graph (`Microsoft.Graph` module) over legacy MSOnline\n2. Include `try\u002Fcatch` blocks for error handling\n3. Implement `Write-Host`\u002F`Write-Warning` logging for audit trails\n4. Use `-WhatIf` or dry-run output before bulk destructive operations\n5. Test in a non-production tenant first\n\n---\n\n## Reference Guides\n\n**references\u002Fpowershell-templates.md**\n- Ready-to-use script templates\n- Conditional Access policy examples\n- Bulk user provisioning scripts\n- Security audit scripts\n\n**references\u002Fsecurity-policies.md**\n- Conditional Access configuration\n- MFA enforcement strategies\n- DLP and retention policies\n- Security baseline settings\n\n**references\u002Ftroubleshooting.md**\n- Common error resolutions\n- PowerShell module issues\n- Permission troubleshooting\n- DNS propagation problems\n\n---\n\n## Limitations\n\n| Constraint | Impact |\n|------------|--------|\n| Global Admin required | Full tenant setup needs highest privilege |\n| API rate limits | Bulk operations may be throttled |\n| License dependencies | E3\u002FE5 required for advanced features |\n| Hybrid scenarios | On-premises AD needs additional configuration |\n| PowerShell prerequisites | Microsoft.Graph module required |\n\n### Required PowerShell Modules\n\n```powershell\nInstall-Module Microsoft.Graph -Scope CurrentUser\nInstall-Module ExchangeOnlineManagement -Scope CurrentUser\nInstall-Module MicrosoftTeams -Scope CurrentUser\n```\n\n### Required Permissions\n\n- **Global Administrator** — Full tenant setup\n- **User Administrator** — User management\n- **Security Administrator** — Security policies\n- **Exchange Administrator** — Mailbox management\n","# Microsoft 365 Tenant Manager\n\nExpert guidance and automation for Microsoft 365 Global Administrators managing tenant setup, user lifecycle, security policies, and organizational optimization.\n\n---\n\n## Quick Start\n\n### Run a Security Audit\n\n```powershell\nConnect-MgGraph -Scopes \"Directory.Read.All\",\"Policy.Read.All\",\"AuditLog.Read.All\"\nGet-MgSubscribedSku | Select-Object SkuPartNumber, ConsumedUnits, @{N=\"Total\";E={$_.PrepaidUnits.Enabled}}\nGet-MgPolicyAuthorizationPolicy | Select-Object AllowInvitesFrom, DefaultUserRolePermissions\n```\n\n### Bulk Provision Users from CSV\n\n```powershell\n# CSV columns: DisplayName, UserPrincipalName, Department, LicenseSku\nImport-Csv .\\new_users.csv | ForEach-Object {\n    $passwordProfile = @{ Password = (New-Guid).ToString().Substring(0,16) + \"!\"; ForceChangePasswordNextSignIn = $true }\n    New-MgUser -DisplayName $_.DisplayName -UserPrincipalName $_.UserPrincipalName `\n               -Department $_.Department -AccountEnabled -PasswordProfile $passwordProfile\n}\n```\n\n### Create a Conditional Access Policy (MFA for Admins)\n\n```powershell\n$adminRoles = (Get-MgDirectoryRole | Where-Object { $_.DisplayName -match \"Admin\" }).Id\n$policy = @{\n    DisplayName = \"Require MFA for Admins\"\n    State = \"enabledForReportingButNotEnforced\"   # Start in report-only mode\n    Conditions = @{ Users = @{ IncludeRoles = $adminRoles } }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"mfa\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n```\n\n---\n\n## Workflows\n\n### Workflow 1: New Tenant Setup\n\n**Step 1: Generate Setup Checklist**\n\nConfirm prerequisites before provisioning:\n- Global Admin account created and secured with MFA\n- Custom domain purchased and accessible for DNS edits\n- License SKUs confirmed (E3 vs E5 feature requirements noted)\n\n**Step 2: Configure and Verify DNS Records**\n\n```powershell\n# After adding the domain in the M365 admin center, verify propagation before proceeding\n$domain = \"company.com\"\nResolve-DnsName -Name \"_msdcs.$domain\" -Type NS -ErrorAction SilentlyContinue\n# Also run from a shell prompt:\n# nslookup -type=MX company.com\n# nslookup -type=TXT company.com   # confirm SPF record\n```\n\nWait for DNS propagation (up to 48 h) before bulk user creation.\n\n**Step 3: Apply Security Baseline**\n\n```powershell\n# Disable legacy authentication (blocks Basic Auth protocols)\n$policy = @{\n    DisplayName = \"Block Legacy Authentication\"\n    State = \"enabled\"\n    Conditions = @{ ClientAppTypes = @(\"exchangeActiveSync\",\"other\") }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"block\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n\n# Enable unified audit log\nSet-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $true\n```\n\n**Step 4: Provision Users**\n\n```powershell\n$licenseSku = (Get-MgSubscribedSku | Where-Object { $_.SkuPartNumber -eq \"ENTERPRISEPACK\" }).SkuId\n\nImport-Csv .\\employees.csv | ForEach-Object {\n    try {\n        $user = New-MgUser -DisplayName $_.DisplayName -UserPrincipalName $_.UserPrincipalName `\n                           -AccountEnabled -PasswordProfile @{ Password = (New-Guid).ToString().Substring(0,12)+\"!\"; ForceChangePasswordNextSignIn = $true }\n        Set-MgUserLicense -UserId $user.Id -AddLicenses @(@{ SkuId = $licenseSku }) -RemoveLicenses @()\n        Write-Host \"Provisioned: $($_.UserPrincipalName)\"\n    } catch {\n        Write-Warning \"Failed $($_.UserPrincipalName): $_\"\n    }\n}\n```\n\n**Validation:** Spot-check 3–5 accounts in the M365 admin portal; confirm licenses show \"Active.\"\n\n---\n\n### Workflow 2: Security Hardening\n\n**Step 1: Run Security Audit**\n\n```powershell\nConnect-MgGraph -Scopes \"Directory.Read.All\",\"Policy.Read.All\",\"AuditLog.Read.All\",\"Reports.Read.All\"\n\n# Export Conditional Access policy inventory\nGet-MgIdentityConditionalAccessPolicy | Select-Object DisplayName, State |\n    Export-Csv .\\ca_policies.csv -NoTypeInformation\n\n# Find accounts without MFA registered\n$report = Get-MgReportAuthenticationMethodUserRegistrationDetail\n$report | Where-Object { -not $_.IsMfaRegistered } |\n    Select-Object UserPrincipalName, IsMfaRegistered |\n    Export-Csv .\\no_mfa_users.csv -NoTypeInformation\n\nWrite-Host \"Audit complete. Review ca_policies.csv and no_mfa_users.csv.\"\n```\n\n**Step 2: Create MFA Policy (report-only first)**\n\n```powershell\n$policy = @{\n    DisplayName = \"Require MFA All Users\"\n    State = \"enabledForReportingButNotEnforced\"\n    Conditions = @{ Users = @{ IncludeUsers = @(\"All\") } }\n    GrantControls = @{ Operator = \"OR\"; BuiltInControls = @(\"mfa\") }\n}\nNew-MgIdentityConditionalAccessPolicy -BodyParameter $policy\n```\n\n**Validation:** After 48 h, review Sign-in logs in Entra ID; confirm expected users would be challenged, then change `State` to `\"enabled\"`.\n\n**Step 3: Review Secure Score**\n\n```powershell\n# Retrieve current Secure Score and top improvement actions\nGet-MgSecuritySecureScore -Top 1 | Select-Object CurrentScore, MaxScore, ActiveUserCount\nGet-MgSecuritySecureScoreControlProfile | Sort-Object -Property ActionType |\n    Select-Object Title, ImplementationStatus, MaxScore | Format-Table -AutoSize\n```\n\n---\n\n### Workflow 3: User Offboarding\n\n**Step 1: Block Sign-in and Revoke Sessions**\n\n```powershell\n$upn = \"departing.user@company.com\"\n$user = Get-MgUser -Filter \"userPrincipalName eq '$upn'\"\n\n# Block sign-in immediately\nUpdate-MgUser -UserId $user.Id -AccountEnabled:$false\n\n# Revoke all active tokens\nInvoke-MgInvalidateAllUserRefreshToken -UserId $user.Id\nWrite-Host \"Sign-in blocked and sessions revoked for $upn\"\n```\n\n**Step 2: Preview with -WhatIf (license removal)**\n\n```powershell\n# Identify assigned licenses\n$licenses = (Get-MgUserLicenseDetail -UserId $user.Id).SkuId\n\n# Dry-run: print what would be removed\n$licenses | ForEach-Object { Write-Host \"[WhatIf] Would remove SKU: $_\" }\n```\n\n**Step 3: Execute Offboarding**\n\n```powershell\n# Remove licenses\nSet-MgUserLicense -UserId $user.Id -AddLicenses @() -RemoveLicenses $licenses\n\n# Convert mailbox to shared (requires ExchangeOnlineManagement module)\nSet-Mailbox -Identity $upn -Type Shared\n\n# Remove from all groups\nGet-MgUserMemberOf -UserId $user.Id | ForEach-Object {\n    try { Remove-MgGroupMemberByRef -GroupId $_.Id -DirectoryObjectId $user.Id } catch {}\n}\nWrite-Host \"Offboarding complete for $upn\"\n```\n\n**Validation:** Confirm in the M365 admin portal that the account shows \"Blocked,\" has no active licenses, and the mailbox type is \"Shared.\"\n\n---\n\n## Best Practices\n\n### Tenant Setup\n\n1. Enable MFA before adding users\n2. Configure named locations for Conditional Access\n3. Use separate admin accounts with PIM\n4. Verify custom domains (and DNS propagation) before bulk user creation\n5. Apply Microsoft Secure Score recommendations\n\n### Security Operations\n\n1. Start Conditional Access policies in report-only mode\n2. Review Sign-in logs for 48 h before enforcing a new policy\n3. Never hardcode credentials in scripts — use Azure Key Vault or `Get-Credential`\n4. Enable unified audit logging for all operations\n5. Conduct quarterly security reviews and Secure Score check-ins\n\n### PowerShell Automation\n\n1. Prefer Microsoft Graph (`Microsoft.Graph` module) over legacy MSOnline\n2. Include `try\u002Fcatch` blocks for error handling\n3. Implement `Write-Host`\u002F`Write-Warning` logging for audit trails\n4. Use `-WhatIf` or dry-run output before bulk destructive operations\n5. Test in a non-production tenant first\n\n---\n\n## Reference Guides\n\n**references\u002Fpowershell-templates.md**\n- Ready-to-use script templates\n- Conditional Access policy examples\n- Bulk user provisioning scripts\n- Security audit scripts\n\n**references\u002Fsecurity-policies.md**\n- Conditional Access configuration\n- MFA enforcement strategies\n- DLP and retention policies\n- Security baseline settings\n\n**references\u002Ftroubleshooting.md**\n- Common error resolutions\n- PowerShell module issues\n- Permission troubleshooting\n- DNS propagation problems\n\n---\n\n## Limitations\n\n| Constraint | Impact |\n|------------|--------|\n| Global Admin required | Full tenant setup needs highest privilege |\n| API rate limits | Bulk operations may be throttled |\n| License dependencies | E3\u002FE5 required for advanced features |\n| Hybrid scenarios | On-premises AD needs additional configuration |\n| PowerShell prerequisites | Microsoft.Graph module required |\n\n### Required PowerShell Modules\n\n```powershell\nInstall-Module Microsoft.Graph -Scope CurrentUser\nInstall-Module ExchangeOnlineManagement -Scope CurrentUser\nInstall-Module MicrosoftTeams -Scope CurrentUser\n```\n\n### Required Permissions\n\n- **Global Administrator** — Full tenant setup\n- **User Administrator** — User management\n- **Security Administrator** — Security policies\n- **Exchange Administrator** — Mailbox management\n",{"name":5,"description":7},"claude\u002Fopen-prs-review-Of9HK","a48d8438efe8e36550acc4c2006bdcddf62911db","engineering-team\u002Fskills\u002Fms365-tenant-manager","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills","https:\u002F\u002Fgithub.com\u002Faneeba-pixel","Student at University of Gujrat","2026-07-14 21:41:17",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add aneeba-pixel\u002Fclaude-skills --skill ms365-tenant-manager",{"tool":37,"command":38},"bunx","bunx skills add aneeba-pixel\u002Fclaude-skills --skill ms365-tenant-manager",{"tool":40,"command":41},"pnpm","pnpm dlx skills add aneeba-pixel\u002Fclaude-skills --skill ms365-tenant-manager","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002FSKILL.md",true,[45,51,55,59,63,67,73,77],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"expected_output.json","REFERENCE","参考文档",2052,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Fexpected_output.json",{"path":52,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":53,"sourceHtmlUrl":54},"references\u002Fpowershell-templates.md",21511,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Freferences\u002Fpowershell-templates.md",{"path":56,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":57,"sourceHtmlUrl":58},"references\u002Fsecurity-policies.md",8792,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Freferences\u002Fsecurity-policies.md",{"path":60,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":61,"sourceHtmlUrl":62},"references\u002Ftroubleshooting.md",9809,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Freferences\u002Ftroubleshooting.md",{"path":64,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":65,"sourceHtmlUrl":66},"sample_input.json",471,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Fsample_input.json",{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"scripts\u002Fpowershell_generator.py","SCRIPT","脚本",14246,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Fscripts\u002Fpowershell_generator.py",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"scripts\u002Ftenant_setup.py",17034,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Fscripts\u002Ftenant_setup.py",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"scripts\u002Fuser_management.py",16404,"https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fengineering-team\u002Fskills\u002Fms365-tenant-manager\u002Fscripts\u002Fuser_management.py",[82,89,96,103,110,117],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M78K120A3JKH3NH8GC19YG4M","syllabus","Generates a curated supplementary reading list from any course syllabus using Consensus academic search. Grill-me intake (syllabus input format + course audience + year range) plus a grouping forcing-options checkpoint before any search runs — so the reading list matches the course's level and recency need. Parses the syllabus to extract topics and learning outcomes, searches Consensus for recent peer-reviewed papers per topic, and produces a professionally formatted .docx with clickable Consensus links, plain-language summaries calibrated to audience level, and Bloom-higher-order discussion questions tied to course learning goals. Triggers whenever a user uploads a syllabus, course outline, or curriculum document and wants supplementary readings. Also triggers on: 'syllabus reading list', 'find papers for my course', 'create a reading list from this syllabus', 'recent research for my class', 'supplementary readings', 'find journal articles for these topics', 'what recent papers cover this material', 'any new research on these course topics', 'update my syllabus with recent papers'. Even casual mentions when a syllabus is attached should trigger this skill.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Fsyllabus\u002Fskills\u002Fsyllabus\u002FSKILL.md",[],[],{"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":19},"01M78K0QS9AGDJ43CPQYEHM5S0","research","Default entry point for any research request — a hybrid router that classifies the question deterministically and either delegates to a specialist research skill (pulse for trends\u002Fsentiment, grants for NIH funding, litreview for academic literature, syllabus for course reading, patent for prior-art + IP landscape, dossier for entity research) or runs its own plan-decompose-multi-source-search-synthesize-cite fallback workflow when no specialist matches. Always surfaces the routing decision so users can override. Triggers — \"research [topic]\", \"look into [topic]\", \"what do we know about [topic]\", \"investigate [topic]\", \"find me information on [topic]\", \"do some research on [topic]\", \"I need to understand [topic]\", or any research request that doesn't obviously match a more-specific specialist skill. Output is a markdown briefing (default) or .docx document (on request) with full citations and an audit log.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Fresearch\u002Fskills\u002Fresearch\u002FSKILL.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":19},"01M78K0FV3HMJ94SK965CWMNNP","pulse","Multi-source recency research skill that takes the pulse of any topic across Reddit, Hacker News, the open web, and optionally X\u002FTwitter within a configurable recent window (default 30 days). Forcing intake clarifies topic specificity, angle (trend\u002Fsentiment\u002Fproblems\u002Fopportunities\u002Fcomparison), time window, and platform scope before searching. Returns a synthesized briefing with citations, engagement metrics, and cross-platform pattern analysis. Triggers: 'pulse on [topic]', 'what's happening with [topic]', 'what are people saying about [topic]', 'current conversation about [topic]', 'take the pulse of [topic]', 'trending: [topic]', 'find me info on [topic]', or any variation requesting multi-source recency intelligence on a topic. Also use for competitor research, trend discovery, tool comparisons, and audience sentiment analysis.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Fpulse\u002Fskills\u002Fpulse\u002FSKILL.md",[],[],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":19},"01M78K04E77B04KYBB6M01EV3J","patent","Patent prior-art and landscape intelligence skill — not generic patent help. Commits to one of five sub-use-cases via forcing intake (novelty search \u002F freedom-to-operate \u002F competitive landscape \u002F acquisition diligence \u002F litigation prior-art) before any search runs. Searches Google Patents, Espacenet, USPTO, and optionally Lens.org for citation-graph signals. Output is an editable Word document (.docx) with verdict, ranked closest art (claim-text extracted), CPC-class-aware landscape, family-resolved hits, geographic coverage, FTO flags where applicable, strategy recommendations, and full audit log. Triggers: 'prior art search for [invention]', 'patent search on [topic]', 'freedom to operate analysis', 'FTO for [product]', 'patent landscape for [field]', 'is [invention] novel', 'patents on [topic]', 'competitive patent analysis', 'prior art for litigation', 'patent diligence on [company]'. Produces search signal, not legal advice — always recommends consulting a patent attorney before filing or licensing decisions. Trademark, copyright, and trade-secret questions are out of scope.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Fpatent\u002Fskills\u002Fpatent\u002FSKILL.md",[],[],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":19},"01M78JZW8XEFZP6HSF53M8D4M1","notebooklm","Browser automation skill for controlling Google's NotebookLM. Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio Overview, infographics, slide decks, study guides, briefing docs, mind maps, timelines, FAQs), and creating new notebooks. Triggers on any phrase involving NotebookLM — 'open NotebookLM', 'check my [name] notebook', 'pull info from NotebookLM', 'ask my notebook about X', 'add [source] to NotebookLM', 'create an infographic in NotebookLM', 'use NotebookLM Studio', 'generate a slide deck from my notebook', or any variation where the goal involves NotebookLM. Requires browser automation environment — fails gracefully when unavailable.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Fnotebooklm\u002Fskills\u002Fnotebooklm\u002FSKILL.md",[],[],{"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":19},"01M78JZHX45S2Y0GPY9Z5V6TQ3","litreview","Academic literature orientation skill that searches papers via Consensus, builds a strategic search plan using PICO (default) or SPIDER \u002F Decomposition \u002F hybrid as fallbacks, and synthesizes findings into a professionally formatted Word document (.docx) research guide. Grill-me intake (research question specificity + framework hint + tentative depth) before the recon search; a second forcing checkpoint after Phase 2 confirms framework + sub-areas + depth before searches consume budget. Configurable depth (5\u002F10\u002F20 queries) controls coverage vs. speed. Output is a 'launching pad' — not a finished review, but an orientation guide that lets a researcher dive in confidently. Triggers: 'litreview on [topic]', 'literature review on [topic]', 'I'm starting a literature review on X', 'I'm writing a paper on X', 'help me research X', 'I'm doing research on X', 'can you help me research X'. Do NOT trigger for single one-off paper searches where the user just wants a quick list — that's a plain Consensus search.","https:\u002F\u002Fgithub.com\u002Faneeba-pixel\u002Fclaude-skills\u002Fblob\u002Fclaude\u002Fopen-prs-review-Of9HK\u002Fresearch\u002Flitreview\u002Fskills\u002Flitreview\u002FSKILL.md",[],[]]