@raishin/vanguard-frontier-agentic 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/.claude-plugin/plugin.json +11 -1
  2. package/.cursor-plugin/plugin.json +11 -1
  3. package/.github/plugin/marketplace.json +1 -1
  4. package/README.md +44 -27
  5. package/agents/dotnet/README.md +57 -0
  6. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/AGENT.md +57 -0
  7. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/claude-code.agent.md +41 -0
  8. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/codex.toml +40 -0
  9. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/copilot.agent.md +41 -0
  10. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/cursor.agent.md +41 -0
  11. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/gemini.agent.md +41 -0
  12. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/kiro-cli.agent.json +5 -0
  13. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/harnesses/kiro-ide.agent.md +41 -0
  14. package/agents/dotnet/dotnet-aspire-cloud-native-review-agent/metadata.json +41 -0
  15. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/AGENT.md +56 -0
  16. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/claude-code.agent.md +40 -0
  17. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/codex.toml +38 -0
  18. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/copilot.agent.md +40 -0
  19. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/cursor.agent.md +40 -0
  20. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/gemini.agent.md +40 -0
  21. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/kiro-cli.agent.json +5 -0
  22. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/harnesses/kiro-ide.agent.md +40 -0
  23. package/agents/dotnet/dotnet-aspnetcore-api-review-agent/metadata.json +42 -0
  24. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/AGENT.md +56 -0
  25. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/claude-code.agent.md +40 -0
  26. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/codex.toml +38 -0
  27. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/copilot.agent.md +40 -0
  28. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/cursor.agent.md +40 -0
  29. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/gemini.agent.md +40 -0
  30. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/kiro-cli.agent.json +5 -0
  31. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/harnesses/kiro-ide.agent.md +40 -0
  32. package/agents/dotnet/dotnet-aspnetcore-identity-authz-review-agent/metadata.json +42 -0
  33. package/agents/dotnet/dotnet-csharp-runtime-review-agent/AGENT.md +56 -0
  34. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/claude-code.agent.md +39 -0
  35. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/codex.toml +39 -0
  36. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/copilot.agent.md +39 -0
  37. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/cursor.agent.md +39 -0
  38. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/gemini.agent.md +39 -0
  39. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/kiro-cli.agent.json +5 -0
  40. package/agents/dotnet/dotnet-csharp-runtime-review-agent/harnesses/kiro-ide.agent.md +39 -0
  41. package/agents/dotnet/dotnet-csharp-runtime-review-agent/metadata.json +42 -0
  42. package/agents/dotnet/dotnet-efcore-data-access-review-agent/AGENT.md +58 -0
  43. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/claude-code.agent.md +42 -0
  44. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/codex.toml +41 -0
  45. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/copilot.agent.md +42 -0
  46. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/cursor.agent.md +42 -0
  47. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/gemini.agent.md +42 -0
  48. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/kiro-cli.agent.json +5 -0
  49. package/agents/dotnet/dotnet-efcore-data-access-review-agent/harnesses/kiro-ide.agent.md +42 -0
  50. package/agents/dotnet/dotnet-efcore-data-access-review-agent/metadata.json +42 -0
  51. package/agents/dotnet/dotnet-maestro-agent/AGENT.md +53 -0
  52. package/agents/dotnet/dotnet-maestro-agent/harnesses/claude-code.agent.md +36 -0
  53. package/agents/dotnet/dotnet-maestro-agent/harnesses/codex.toml +40 -0
  54. package/agents/dotnet/dotnet-maestro-agent/harnesses/copilot.agent.md +36 -0
  55. package/agents/dotnet/dotnet-maestro-agent/harnesses/cursor.agent.md +36 -0
  56. package/agents/dotnet/dotnet-maestro-agent/harnesses/gemini.agent.md +36 -0
  57. package/agents/dotnet/dotnet-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
  58. package/agents/dotnet/dotnet-maestro-agent/harnesses/kiro-ide.agent.md +36 -0
  59. package/agents/dotnet/dotnet-maestro-agent/metadata.json +40 -0
  60. package/agents/dotnet/dotnet-observability-otel-review-agent/AGENT.md +57 -0
  61. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/claude-code.agent.md +41 -0
  62. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/codex.toml +40 -0
  63. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/copilot.agent.md +41 -0
  64. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/cursor.agent.md +41 -0
  65. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/gemini.agent.md +41 -0
  66. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/kiro-cli.agent.json +5 -0
  67. package/agents/dotnet/dotnet-observability-otel-review-agent/harnesses/kiro-ide.agent.md +41 -0
  68. package/agents/dotnet/dotnet-observability-otel-review-agent/metadata.json +41 -0
  69. package/agents/dotnet/dotnet-performance-aot-review-agent/AGENT.md +56 -0
  70. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/claude-code.agent.md +40 -0
  71. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/codex.toml +39 -0
  72. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/copilot.agent.md +40 -0
  73. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/cursor.agent.md +40 -0
  74. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/gemini.agent.md +40 -0
  75. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/kiro-cli.agent.json +5 -0
  76. package/agents/dotnet/dotnet-performance-aot-review-agent/harnesses/kiro-ide.agent.md +40 -0
  77. package/agents/dotnet/dotnet-performance-aot-review-agent/metadata.json +41 -0
  78. package/agents/dotnet/dotnet-supply-chain-review-agent/AGENT.md +57 -0
  79. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/claude-code.agent.md +41 -0
  80. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/codex.toml +40 -0
  81. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/copilot.agent.md +41 -0
  82. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/cursor.agent.md +41 -0
  83. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/gemini.agent.md +41 -0
  84. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/kiro-cli.agent.json +5 -0
  85. package/agents/dotnet/dotnet-supply-chain-review-agent/harnesses/kiro-ide.agent.md +41 -0
  86. package/agents/dotnet/dotnet-supply-chain-review-agent/metadata.json +42 -0
  87. package/agents/dotnet/dotnet-testing-quality-review-agent/AGENT.md +56 -0
  88. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/claude-code.agent.md +40 -0
  89. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/codex.toml +39 -0
  90. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/copilot.agent.md +40 -0
  91. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/cursor.agent.md +40 -0
  92. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/gemini.agent.md +40 -0
  93. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/kiro-cli.agent.json +5 -0
  94. package/agents/dotnet/dotnet-testing-quality-review-agent/harnesses/kiro-ide.agent.md +40 -0
  95. package/agents/dotnet/dotnet-testing-quality-review-agent/metadata.json +41 -0
  96. package/agents/hr/hr-analytics-people-data-agent/metadata.json +3 -7
  97. package/agents/hr/hr-benefits-payroll-agent/metadata.json +3 -7
  98. package/agents/hr/hr-compensation-equity-agent/metadata.json +3 -7
  99. package/agents/hr/hr-culture-dei-agent/metadata.json +3 -7
  100. package/agents/hr/hr-employee-relations-agent/metadata.json +3 -7
  101. package/agents/hr/hr-hris-process-controls-agent/metadata.json +3 -7
  102. package/agents/hr/hr-learning-policy-agent/metadata.json +3 -7
  103. package/agents/hr/hr-leave-accommodation-agent/metadata.json +3 -7
  104. package/agents/hr/hr-maestro-agent/metadata.json +4 -8
  105. package/agents/hr/hr-performance-management-agent/metadata.json +3 -7
  106. package/agents/hr/hr-recruiting-selection-agent/metadata.json +3 -7
  107. package/agents/hr/hr-risk-triage-review-agent/metadata.json +3 -3
  108. package/agents/hr/hr-termination-readiness-agent/metadata.json +3 -7
  109. package/agents/hr/hr-workforce-planning-rif-agent/metadata.json +3 -7
  110. package/agents/hr/hr-workplace-investigations-agent/metadata.json +3 -7
  111. package/agents/legal/legal-contract-review-agent/metadata.json +3 -7
  112. package/agents/legal/legal-counsel-review-agent/metadata.json +3 -3
  113. package/agents/legal/legal-employment-law-risk-agent/metadata.json +4 -8
  114. package/agents/legal/legal-ethics-investigations-agent/metadata.json +3 -7
  115. package/agents/legal/legal-ip-open-source-agent/metadata.json +3 -7
  116. package/agents/legal/legal-knowledge-management-agent/metadata.json +3 -7
  117. package/agents/legal/legal-litigation-discovery-hold-agent/metadata.json +3 -7
  118. package/agents/legal/legal-maestro-agent/metadata.json +4 -8
  119. package/agents/legal/legal-policy-governance-agent/metadata.json +3 -7
  120. package/agents/legal/legal-privacy-data-protection-agent/metadata.json +3 -7
  121. package/agents/legal/legal-public-disclosure-agent/metadata.json +3 -7
  122. package/agents/legal/legal-regulatory-compliance-agent/metadata.json +3 -7
  123. package/agents/legal/legal-vendor-procurement-risk-agent/metadata.json +3 -7
  124. package/catalog/agents.json +292 -28
  125. package/catalog/asset-integrity.json +726 -96
  126. package/catalog/install-roles.json +28 -0
  127. package/catalog/skill-manifest.json +221 -6
  128. package/catalog/skills.json +276 -2
  129. package/package.json +1 -1
  130. package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
  131. package/schemas/agent.schema.json +4 -1
  132. package/schemas/skill.schema.json +4 -1
  133. package/scripts/export-marketplace-agents.mjs +13 -1
  134. package/skills/dotnet/dotnet-aspire-cloud-native-review/SKILL.md +53 -0
  135. package/skills/dotnet/dotnet-aspire-cloud-native-review/metadata.json +27 -0
  136. package/skills/dotnet/dotnet-aspire-cloud-native-review/references/workflow-and-output.md +115 -0
  137. package/skills/dotnet/dotnet-aspnetcore-api-review/SKILL.md +53 -0
  138. package/skills/dotnet/dotnet-aspnetcore-api-review/metadata.json +28 -0
  139. package/skills/dotnet/dotnet-aspnetcore-api-review/references/workflow-and-output.md +115 -0
  140. package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/SKILL.md +48 -0
  141. package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/metadata.json +28 -0
  142. package/skills/dotnet/dotnet-aspnetcore-identity-authz-review/references/workflow-and-output.md +125 -0
  143. package/skills/dotnet/dotnet-csharp-runtime-review/SKILL.md +56 -0
  144. package/skills/dotnet/dotnet-csharp-runtime-review/metadata.json +28 -0
  145. package/skills/dotnet/dotnet-csharp-runtime-review/references/workflow-and-output.md +141 -0
  146. package/skills/dotnet/dotnet-efcore-data-access-review/SKILL.md +57 -0
  147. package/skills/dotnet/dotnet-efcore-data-access-review/metadata.json +28 -0
  148. package/skills/dotnet/dotnet-efcore-data-access-review/references/workflow-and-output.md +140 -0
  149. package/skills/dotnet/dotnet-maestro/SKILL.md +106 -0
  150. package/skills/dotnet/dotnet-maestro/metadata.json +26 -0
  151. package/skills/dotnet/dotnet-observability-otel-review/SKILL.md +53 -0
  152. package/skills/dotnet/dotnet-observability-otel-review/metadata.json +27 -0
  153. package/skills/dotnet/dotnet-observability-otel-review/references/workflow-and-output.md +119 -0
  154. package/skills/dotnet/dotnet-performance-aot-review/SKILL.md +53 -0
  155. package/skills/dotnet/dotnet-performance-aot-review/metadata.json +27 -0
  156. package/skills/dotnet/dotnet-performance-aot-review/references/workflow-and-output.md +123 -0
  157. package/skills/dotnet/dotnet-supply-chain-review/SKILL.md +55 -0
  158. package/skills/dotnet/dotnet-supply-chain-review/metadata.json +28 -0
  159. package/skills/dotnet/dotnet-supply-chain-review/references/workflow-and-output.md +132 -0
  160. package/skills/dotnet/dotnet-testing-quality-review/SKILL.md +54 -0
  161. package/skills/dotnet/dotnet-testing-quality-review/metadata.json +27 -0
  162. package/skills/dotnet/dotnet-testing-quality-review/references/workflow-and-output.md +142 -0
  163. package/skills/hr/hr-risk-triage-review/metadata.json +9 -2
  164. package/skills/legal/legal-counsel-review/metadata.json +9 -2
  165. package/tests/fixtures/dotnet-maestro-routing/expected/01-csharp-runtime.json +6 -0
  166. package/tests/fixtures/dotnet-maestro-routing/expected/02-aspnetcore-api.json +6 -0
  167. package/tests/fixtures/dotnet-maestro-routing/expected/03-identity-authz.json +6 -0
  168. package/tests/fixtures/dotnet-maestro-routing/expected/04-efcore-data.json +6 -0
  169. package/tests/fixtures/dotnet-maestro-routing/expected/05-testing-quality.json +6 -0
  170. package/tests/fixtures/dotnet-maestro-routing/expected/06-supply-chain.json +6 -0
  171. package/tests/fixtures/dotnet-maestro-routing/expected/07-performance-aot.json +6 -0
  172. package/tests/fixtures/dotnet-maestro-routing/expected/08-observability-otel.json +6 -0
  173. package/tests/fixtures/dotnet-maestro-routing/expected/09-aspire-cloud-native.json +6 -0
  174. package/tests/fixtures/dotnet-maestro-routing/expected/10-multi-domain.json +7 -0
  175. package/tests/fixtures/dotnet-maestro-routing/expected/11-ambiguous.json +4 -0
  176. package/tests/fixtures/dotnet-maestro-routing/expected/adv-ambiguous-near-miss.json +4 -0
  177. package/tests/fixtures/dotnet-maestro-routing/expected/adv-instruction-injection.json +6 -0
  178. package/tests/fixtures/dotnet-maestro-routing/expected/adv-live-guard-bypass.json +4 -0
  179. package/tests/fixtures/dotnet-maestro-routing/expected/adv-parallel-saturation.json +9 -0
  180. package/tests/fixtures/dotnet-maestro-routing/expected/adv-persona-replacement.json +6 -0
  181. package/tests/fixtures/dotnet-maestro-routing/expected/adv-secrets-bait.json +6 -0
  182. package/tests/fixtures/dotnet-maestro-routing/inputs/01-csharp-runtime.json +7 -0
  183. package/tests/fixtures/dotnet-maestro-routing/inputs/02-aspnetcore-api.json +7 -0
  184. package/tests/fixtures/dotnet-maestro-routing/inputs/03-identity-authz.json +7 -0
  185. package/tests/fixtures/dotnet-maestro-routing/inputs/04-efcore-data.json +7 -0
  186. package/tests/fixtures/dotnet-maestro-routing/inputs/05-testing-quality.json +7 -0
  187. package/tests/fixtures/dotnet-maestro-routing/inputs/06-supply-chain.json +7 -0
  188. package/tests/fixtures/dotnet-maestro-routing/inputs/07-performance-aot.json +7 -0
  189. package/tests/fixtures/dotnet-maestro-routing/inputs/08-observability-otel.json +7 -0
  190. package/tests/fixtures/dotnet-maestro-routing/inputs/09-aspire-cloud-native.json +7 -0
  191. package/tests/fixtures/dotnet-maestro-routing/inputs/10-multi-domain.json +7 -0
  192. package/tests/fixtures/dotnet-maestro-routing/inputs/11-ambiguous.json +7 -0
  193. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-ambiguous-near-miss.json +7 -0
  194. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  195. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-live-guard-bypass.json +7 -0
  196. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-parallel-saturation.json +7 -0
  197. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  198. package/tests/fixtures/dotnet-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  199. package/tests/fixtures/dotnet-maestro-routing/taxonomy.json +99 -0
  200. package/tests/test-vfa-export-coverage.test.mjs +21 -4
  201. package/tests/validate-catalog.py +3 -0
@@ -981,6 +981,34 @@
981
981
  "legal-hr-routing-protocol",
982
982
  "legal-hr-risk-taxonomy"
983
983
  ]
984
+ },
985
+ "dotnet-application-review-engineer": {
986
+ "label": ".NET Application Review Engineer",
987
+ "description": "Static review of .NET applications: C# and runtime correctness, ASP.NET Core API architecture, authentication and authorization, EF Core data access, test quality, CI and NuGet supply-chain integrity, performance and Native AOT readiness, in-application OpenTelemetry wiring, and .NET Aspire cloud-native posture. A dotnet-maestro router plus nine static-review specialists; every agent reads source and sanitized configuration only and never builds, runs, migrates, or contacts a live system.",
988
+ "agents": [
989
+ "dotnet-maestro-agent",
990
+ "dotnet-csharp-runtime-review-agent",
991
+ "dotnet-aspnetcore-api-review-agent",
992
+ "dotnet-aspnetcore-identity-authz-review-agent",
993
+ "dotnet-efcore-data-access-review-agent",
994
+ "dotnet-testing-quality-review-agent",
995
+ "dotnet-supply-chain-review-agent",
996
+ "dotnet-performance-aot-review-agent",
997
+ "dotnet-observability-otel-review-agent",
998
+ "dotnet-aspire-cloud-native-review-agent"
999
+ ],
1000
+ "skills": [
1001
+ "dotnet-maestro",
1002
+ "dotnet-csharp-runtime-review",
1003
+ "dotnet-aspnetcore-api-review",
1004
+ "dotnet-aspnetcore-identity-authz-review",
1005
+ "dotnet-efcore-data-access-review",
1006
+ "dotnet-testing-quality-review",
1007
+ "dotnet-supply-chain-review",
1008
+ "dotnet-performance-aot-review",
1009
+ "dotnet-observability-otel-review",
1010
+ "dotnet-aspire-cloud-native-review"
1011
+ ]
984
1012
  }
985
1013
  }
986
1014
  }
@@ -4252,6 +4252,221 @@
4252
4252
  }
4253
4253
  ]
4254
4254
  },
4255
+ {
4256
+ "id": "dotnet-aspire-cloud-native-review",
4257
+ "path": "skills/dotnet/dotnet-aspire-cloud-native-review",
4258
+ "aggregate_sha256": "d10dc2743b319688c5b7120dc86be8e56ade05e6691f6a8cec29280c906b9c53",
4259
+ "files": [
4260
+ {
4261
+ "path": "skills/dotnet/dotnet-aspire-cloud-native-review/SKILL.md",
4262
+ "sha256": "f25d203e6f150048734712e89742a80b26fbf930102df44491ec0cfe7a1cbd66",
4263
+ "bytes": 5335
4264
+ },
4265
+ {
4266
+ "path": "skills/dotnet/dotnet-aspire-cloud-native-review/metadata.json",
4267
+ "sha256": "f5d93fd1e80e66cd11e302f958c3f907536df6c35bc61713fafe96cf5a048e4f",
4268
+ "bytes": 1466
4269
+ },
4270
+ {
4271
+ "path": "skills/dotnet/dotnet-aspire-cloud-native-review/references/workflow-and-output.md",
4272
+ "sha256": "a61c0b2e87e51429e24eba0f1dfbba97ad53bb582c5c3ad958690bab09668d86",
4273
+ "bytes": 6167
4274
+ }
4275
+ ]
4276
+ },
4277
+ {
4278
+ "id": "dotnet-aspnetcore-api-review",
4279
+ "path": "skills/dotnet/dotnet-aspnetcore-api-review",
4280
+ "aggregate_sha256": "9739a8e2fa6c07fd9c2990c11edd824b911bf1b15a8ab3d785e4412db883d7c6",
4281
+ "files": [
4282
+ {
4283
+ "path": "skills/dotnet/dotnet-aspnetcore-api-review/SKILL.md",
4284
+ "sha256": "4e6cecbf4ed115b52bcac5edb40d553a393075d11200ddd1658830dba4d505d6",
4285
+ "bytes": 4902
4286
+ },
4287
+ {
4288
+ "path": "skills/dotnet/dotnet-aspnetcore-api-review/metadata.json",
4289
+ "sha256": "77e57f609a352cbf0ff6af7aa9ecb11e650b3112329bd3e8151362ddfb5bb22f",
4290
+ "bytes": 1363
4291
+ },
4292
+ {
4293
+ "path": "skills/dotnet/dotnet-aspnetcore-api-review/references/workflow-and-output.md",
4294
+ "sha256": "16a7c97ff73c813d6e66fed5e1cd428c3560f76334e824eec45157ecb01b93cf",
4295
+ "bytes": 5848
4296
+ }
4297
+ ]
4298
+ },
4299
+ {
4300
+ "id": "dotnet-aspnetcore-identity-authz-review",
4301
+ "path": "skills/dotnet/dotnet-aspnetcore-identity-authz-review",
4302
+ "aggregate_sha256": "7c21a0081efcb9665df0dfd799a0cd4ed056cf38b9506d2e98be3c6de848f8e0",
4303
+ "files": [
4304
+ {
4305
+ "path": "skills/dotnet/dotnet-aspnetcore-identity-authz-review/SKILL.md",
4306
+ "sha256": "4400c634a75ab4575cfb6e5e71001565a022170facb8c82ea4a16e3befd54f25",
4307
+ "bytes": 5446
4308
+ },
4309
+ {
4310
+ "path": "skills/dotnet/dotnet-aspnetcore-identity-authz-review/metadata.json",
4311
+ "sha256": "0b288e3065dbcec08f8a2361314041fd4000ef3567295ef7e8cda35f4525d39d",
4312
+ "bytes": 1591
4313
+ },
4314
+ {
4315
+ "path": "skills/dotnet/dotnet-aspnetcore-identity-authz-review/references/workflow-and-output.md",
4316
+ "sha256": "30ff645c741e3491de7151753046abe6ced3279baccc6435ceffef36df44ea3a",
4317
+ "bytes": 7233
4318
+ }
4319
+ ]
4320
+ },
4321
+ {
4322
+ "id": "dotnet-csharp-runtime-review",
4323
+ "path": "skills/dotnet/dotnet-csharp-runtime-review",
4324
+ "aggregate_sha256": "6c162621f77ac00822fb128862e15ef19ca9d0ecad272c985bab9314921aef31",
4325
+ "files": [
4326
+ {
4327
+ "path": "skills/dotnet/dotnet-csharp-runtime-review/SKILL.md",
4328
+ "sha256": "255765ec7c47e2c1c8aba5fc58ea27accf0d73a8d2c675ec5005da64dd5b7fff",
4329
+ "bytes": 4987
4330
+ },
4331
+ {
4332
+ "path": "skills/dotnet/dotnet-csharp-runtime-review/metadata.json",
4333
+ "sha256": "9b95682723fc49ea28d0ce037fba802b57160dbebd7357ed71025274e3b3529b",
4334
+ "bytes": 1309
4335
+ },
4336
+ {
4337
+ "path": "skills/dotnet/dotnet-csharp-runtime-review/references/workflow-and-output.md",
4338
+ "sha256": "2a6acc5dc364afa4cc4afcab9205cd622fc5d05e958a0a414c64bfae8b0373de",
4339
+ "bytes": 6912
4340
+ }
4341
+ ]
4342
+ },
4343
+ {
4344
+ "id": "dotnet-efcore-data-access-review",
4345
+ "path": "skills/dotnet/dotnet-efcore-data-access-review",
4346
+ "aggregate_sha256": "9338e58d2efa495d3a5e15b7d2c38ae604cd8ea8de3220fdd3870d4acdc9708b",
4347
+ "files": [
4348
+ {
4349
+ "path": "skills/dotnet/dotnet-efcore-data-access-review/SKILL.md",
4350
+ "sha256": "216c440621caa1e878e5a1c4d0b1626792d43e4ac20f4005a68285fadced9511",
4351
+ "bytes": 5357
4352
+ },
4353
+ {
4354
+ "path": "skills/dotnet/dotnet-efcore-data-access-review/metadata.json",
4355
+ "sha256": "08c243e1d3ad6b728a55b650e009942e0bbd6c9cb9a7407667b920249cb0a52b",
4356
+ "bytes": 1320
4357
+ },
4358
+ {
4359
+ "path": "skills/dotnet/dotnet-efcore-data-access-review/references/workflow-and-output.md",
4360
+ "sha256": "037b619910f769ccb26b28d4cb618d7ad5d7abfde30074ebf50ba32fd37c8d3d",
4361
+ "bytes": 6875
4362
+ }
4363
+ ]
4364
+ },
4365
+ {
4366
+ "id": "dotnet-maestro",
4367
+ "path": "skills/dotnet/dotnet-maestro",
4368
+ "aggregate_sha256": "37b49d75f13dd887cbba383c3f79006aac2da44f5c61dc09c3a3008d240e2f69",
4369
+ "files": [
4370
+ {
4371
+ "path": "skills/dotnet/dotnet-maestro/SKILL.md",
4372
+ "sha256": "4f1c58ca17782e019f990e4e8f6f362914f2100adb18d3ae9ef29a3806c8d704",
4373
+ "bytes": 8162
4374
+ },
4375
+ {
4376
+ "path": "skills/dotnet/dotnet-maestro/metadata.json",
4377
+ "sha256": "544af3af94ad7701761f6b6e485aad8dfde6355b1351ff1aab55d227d0c6cb17",
4378
+ "bytes": 993
4379
+ }
4380
+ ]
4381
+ },
4382
+ {
4383
+ "id": "dotnet-observability-otel-review",
4384
+ "path": "skills/dotnet/dotnet-observability-otel-review",
4385
+ "aggregate_sha256": "4752bb71732aa39dee3e64cdf3ef90572af276efd7ab50b565d6b74c2b80a50e",
4386
+ "files": [
4387
+ {
4388
+ "path": "skills/dotnet/dotnet-observability-otel-review/SKILL.md",
4389
+ "sha256": "658e8cbbcc3f97e9d76f07c6f9b6f3de7bb490582aff090bc2aa0fdcbbc3e02e",
4390
+ "bytes": 5107
4391
+ },
4392
+ {
4393
+ "path": "skills/dotnet/dotnet-observability-otel-review/metadata.json",
4394
+ "sha256": "e12dcc1ddc42cbfe88064ca0baad9eaa7db3a4a70c0b97da62cb72b1fd0f73be",
4395
+ "bytes": 1377
4396
+ },
4397
+ {
4398
+ "path": "skills/dotnet/dotnet-observability-otel-review/references/workflow-and-output.md",
4399
+ "sha256": "ee095c50d297bd3ee1d74bc68ea5847ee3e36a1a13b01c7e584118ee9c33b644",
4400
+ "bytes": 6381
4401
+ }
4402
+ ]
4403
+ },
4404
+ {
4405
+ "id": "dotnet-performance-aot-review",
4406
+ "path": "skills/dotnet/dotnet-performance-aot-review",
4407
+ "aggregate_sha256": "bbf4f825abe031da6d9e1dd73c25e6e2f9658a3605d3c161eec8f7c93fbaccae",
4408
+ "files": [
4409
+ {
4410
+ "path": "skills/dotnet/dotnet-performance-aot-review/SKILL.md",
4411
+ "sha256": "f67c3f6ec0823ede1049b887533f3404604aa6627b617f9bd80c56e4d9c81a4c",
4412
+ "bytes": 5450
4413
+ },
4414
+ {
4415
+ "path": "skills/dotnet/dotnet-performance-aot-review/metadata.json",
4416
+ "sha256": "a779fc17716c7216141d1f05e40111bb00e6fb83961b83e06ab1544085f40c4f",
4417
+ "bytes": 1264
4418
+ },
4419
+ {
4420
+ "path": "skills/dotnet/dotnet-performance-aot-review/references/workflow-and-output.md",
4421
+ "sha256": "37ee95c99b6d90973da593829f062a4a7bfdfa91ceadc2c6e1a6b4b4ded5a37d",
4422
+ "bytes": 7755
4423
+ }
4424
+ ]
4425
+ },
4426
+ {
4427
+ "id": "dotnet-supply-chain-review",
4428
+ "path": "skills/dotnet/dotnet-supply-chain-review",
4429
+ "aggregate_sha256": "67ec884c97820eab402c0578e91096b0e56661ab3fce97c3305dd956a18664f4",
4430
+ "files": [
4431
+ {
4432
+ "path": "skills/dotnet/dotnet-supply-chain-review/SKILL.md",
4433
+ "sha256": "1a878798891eebbe4bb774e7661e0a92975ca866e0cb71e873d0ed2af273cd5b",
4434
+ "bytes": 5251
4435
+ },
4436
+ {
4437
+ "path": "skills/dotnet/dotnet-supply-chain-review/metadata.json",
4438
+ "sha256": "f31ec2b9d8d6081f0b1402070c4f6543abc7369712f66b6a21f09e7a6706908f",
4439
+ "bytes": 1418
4440
+ },
4441
+ {
4442
+ "path": "skills/dotnet/dotnet-supply-chain-review/references/workflow-and-output.md",
4443
+ "sha256": "8483d2bceb9d7273bb91f8d22095c8b7c83fa757527f4078e38834ddca2677b1",
4444
+ "bytes": 7623
4445
+ }
4446
+ ]
4447
+ },
4448
+ {
4449
+ "id": "dotnet-testing-quality-review",
4450
+ "path": "skills/dotnet/dotnet-testing-quality-review",
4451
+ "aggregate_sha256": "9d6bd092ac50be6e2fc007a48c0a5cc479e14765c408469dfeab537117b8fd74",
4452
+ "files": [
4453
+ {
4454
+ "path": "skills/dotnet/dotnet-testing-quality-review/SKILL.md",
4455
+ "sha256": "aabdb603e7fb888bd2442b9d235d364c911586f5c1bb39a7566e3bce5bb076cc",
4456
+ "bytes": 5025
4457
+ },
4458
+ {
4459
+ "path": "skills/dotnet/dotnet-testing-quality-review/metadata.json",
4460
+ "sha256": "372962a587678f058132964b73b7e30e4f33f230eebde51062004f01762e233c",
4461
+ "bytes": 1224
4462
+ },
4463
+ {
4464
+ "path": "skills/dotnet/dotnet-testing-quality-review/references/workflow-and-output.md",
4465
+ "sha256": "37b95c6fdb10590263e8a9f316ae10a8df75b4a1186135994ead64e67b009150",
4466
+ "bytes": 7122
4467
+ }
4468
+ ]
4469
+ },
4255
4470
  {
4256
4471
  "id": "email-sender-authentication-review",
4257
4472
  "path": "skills/marketing/email-sender-authentication-review",
@@ -6034,7 +6249,7 @@
6034
6249
  {
6035
6250
  "id": "hr-risk-triage-review",
6036
6251
  "path": "skills/hr/hr-risk-triage-review",
6037
- "aggregate_sha256": "9b52c8961574232e814a97dd70e1a8b538ab5931127da8a2af30babb57fb6cbf",
6252
+ "aggregate_sha256": "4936089413ccbfbe2d7174ae1d0f647c6a10535c386ccdfbe773ccf6de495d03",
6038
6253
  "files": [
6039
6254
  {
6040
6255
  "path": "skills/hr/hr-risk-triage-review/SKILL.md",
@@ -6043,8 +6258,8 @@
6043
6258
  },
6044
6259
  {
6045
6260
  "path": "skills/hr/hr-risk-triage-review/metadata.json",
6046
- "sha256": "4853a6f54430aca86a6d4966334253927d19c9c2b0cca5dafac887c3d30a110f",
6047
- "bytes": 1295
6261
+ "sha256": "0783412c58ab6f322c1d6c00dbe85740e8e7ccab2574c62d530473e90acce37a",
6262
+ "bytes": 1318
6048
6263
  },
6049
6264
  {
6050
6265
  "path": "skills/hr/hr-risk-triage-review/references/jurisdictions/australia.md",
@@ -7847,7 +8062,7 @@
7847
8062
  {
7848
8063
  "id": "legal-counsel-review",
7849
8064
  "path": "skills/legal/legal-counsel-review",
7850
- "aggregate_sha256": "ffb7d729219ed7eb00af4da74bdb435052f67fc35d99a95c38217a2db0d9d99d",
8065
+ "aggregate_sha256": "266b7283c3aa9301ce57ae20187dc6e2c3f609378ebe4375b01367726d20a404",
7851
8066
  "files": [
7852
8067
  {
7853
8068
  "path": "skills/legal/legal-counsel-review/SKILL.md",
@@ -7856,8 +8071,8 @@
7856
8071
  },
7857
8072
  {
7858
8073
  "path": "skills/legal/legal-counsel-review/metadata.json",
7859
- "sha256": "38bda931f43fa4cfe567dd26f275b91b0357dedf11f97d283055027af1c3e4ac",
7860
- "bytes": 1328
8074
+ "sha256": "9760fae332ed3b57c73870e6117116031b1d57b1adc7f499ece44cdf9398c2f2",
8075
+ "bytes": 1354
7861
8076
  },
7862
8077
  {
7863
8078
  "path": "skills/legal/legal-counsel-review/references/jurisdictions/australia.md",
@@ -3921,6 +3921,280 @@
3921
3921
  "author": "github: Raishin",
3922
3922
  "version": "0.1.0"
3923
3923
  },
3924
+ {
3925
+ "id": "dotnet-aspire-cloud-native-review",
3926
+ "name": ".NET Aspire Cloud-Native Review",
3927
+ "type": "skill",
3928
+ "provider": "dotnet",
3929
+ "harnesses": [
3930
+ "codex",
3931
+ "claude-code",
3932
+ "cursor",
3933
+ "gemini",
3934
+ "kiro",
3935
+ "other"
3936
+ ],
3937
+ "summary": "Static review of .NET Aspire AppHost and service-defaults projects for cloud-native readiness — health checks, service dependency wiring, resiliency policies, configuration and secret hygiene, and the boundary to a real deployment platform. Reads source and sanitized configuration only.",
3938
+ "source_type": "original",
3939
+ "official_docs": [
3940
+ "https://learn.microsoft.com/en-us/dotnet/aspire/",
3941
+ "https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/service-defaults",
3942
+ "https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/app-host-overview",
3943
+ "https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/health-checks"
3944
+ ],
3945
+ "security_notes": "Static review only — reads the AppHost project, ServiceDefaults, the Aspire manifest, and sanitized configuration; never runs the AppHost or deploys. Flags secrets committed in appsettings as critical. Never requests secrets, connection strings, or customer data; ask for sanitized appsettings with placeholders. Note: .NET Aspire APIs evolve quickly — keep last_verified current.",
3946
+ "last_verified": "2026-05-19",
3947
+ "path": "skills/dotnet/dotnet-aspire-cloud-native-review",
3948
+ "version": "0.1.0",
3949
+ "author": "github: Raishin"
3950
+ },
3951
+ {
3952
+ "id": "dotnet-aspnetcore-api-review",
3953
+ "name": ".NET ASP.NET Core API Review",
3954
+ "type": "skill",
3955
+ "provider": "dotnet",
3956
+ "harnesses": [
3957
+ "codex",
3958
+ "claude-code",
3959
+ "cursor",
3960
+ "gemini",
3961
+ "kiro",
3962
+ "other"
3963
+ ],
3964
+ "summary": "Static review of ASP.NET Core HTTP API architecture — middleware ordering, dependency-injection lifetimes, CORS, model validation, API versioning, error responses, rate limiting, and health/readiness boundaries. Reads source and sanitized configuration only.",
3965
+ "source_type": "original",
3966
+ "official_docs": [
3967
+ "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/middleware/",
3968
+ "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection",
3969
+ "https://learn.microsoft.com/en-us/aspnet/core/security/cors",
3970
+ "https://learn.microsoft.com/en-us/aspnet/core/performance/rate-limit",
3971
+ "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/security"
3972
+ ],
3973
+ "security_notes": "Static review only — reads source and sanitized configuration, never runs the app or calls endpoints. Never requests secrets, connection strings, tokens, signing keys, or customer data; ask for sanitized appsettings with placeholders.",
3974
+ "last_verified": "2026-05-19",
3975
+ "path": "skills/dotnet/dotnet-aspnetcore-api-review",
3976
+ "version": "0.1.0",
3977
+ "author": "github: Raishin"
3978
+ },
3979
+ {
3980
+ "id": "dotnet-aspnetcore-identity-authz-review",
3981
+ "name": ".NET ASP.NET Core Identity & AuthZ Review",
3982
+ "type": "skill",
3983
+ "provider": "dotnet",
3984
+ "harnesses": [
3985
+ "codex",
3986
+ "claude-code",
3987
+ "cursor",
3988
+ "gemini",
3989
+ "kiro",
3990
+ "other"
3991
+ ],
3992
+ "summary": "Static review of ASP.NET Core authentication, authorization, identity boundaries, JWT token validation, cookie and session security, and multi-tenant isolation. Reads source and sanitized configuration only — never runs the app or contacts an identity provider.",
3993
+ "source_type": "original",
3994
+ "official_docs": [
3995
+ "https://learn.microsoft.com/en-us/aspnet/core/security/",
3996
+ "https://learn.microsoft.com/en-us/aspnet/core/security/authentication/configure-jwt-bearer-authentication",
3997
+ "https://learn.microsoft.com/en-us/aspnet/core/security/authorization/introduction",
3998
+ "https://learn.microsoft.com/en-us/aspnet/core/security/authorization/policies",
3999
+ "https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie"
4000
+ ],
4001
+ "security_notes": "Static review only — reads source and sanitized configuration, never runs the application, mints or inspects tokens, or contacts an identity provider. Flags disabled token validation, anonymous state-changing endpoints, and client-supplied tenant claims as critical. Never requests secrets, signing keys, client secrets, tokens, connection strings, tenant identifiers, or customer data.",
4002
+ "last_verified": "2026-05-19",
4003
+ "path": "skills/dotnet/dotnet-aspnetcore-identity-authz-review",
4004
+ "version": "0.1.0",
4005
+ "author": "github: Raishin"
4006
+ },
4007
+ {
4008
+ "id": "dotnet-csharp-runtime-review",
4009
+ "name": ".NET C# & Runtime Review",
4010
+ "type": "skill",
4011
+ "provider": "dotnet",
4012
+ "harnesses": [
4013
+ "codex",
4014
+ "claude-code",
4015
+ "cursor",
4016
+ "gemini",
4017
+ "kiro",
4018
+ "other"
4019
+ ],
4020
+ "summary": "Static review of C# language and runtime correctness — nullable reference types, async/await, cancellation, disposal, allocations on hot paths, LINQ misuse, and AOT/trimming hazards. Reads source only; never compiles or runs code.",
4021
+ "source_type": "original",
4022
+ "official_docs": [
4023
+ "https://learn.microsoft.com/en-us/dotnet/csharp/",
4024
+ "https://learn.microsoft.com/en-us/dotnet/standard/asynchronous-programming-patterns/",
4025
+ "https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-reference-types",
4026
+ "https://learn.microsoft.com/en-us/dotnet/core/diagnostics/debug-threadpool-starvation",
4027
+ "https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-warnings"
4028
+ ],
4029
+ "security_notes": "Static review only — reads C# source and project files, never compiles, runs, or instruments code. Never requests secrets, connection strings, tokens, or customer data.",
4030
+ "last_verified": "2026-05-19",
4031
+ "path": "skills/dotnet/dotnet-csharp-runtime-review",
4032
+ "version": "0.1.0",
4033
+ "author": "github: Raishin"
4034
+ },
4035
+ {
4036
+ "id": "dotnet-efcore-data-access-review",
4037
+ "name": ".NET EF Core Data Access Review",
4038
+ "type": "skill",
4039
+ "provider": "dotnet",
4040
+ "harnesses": [
4041
+ "codex",
4042
+ "claude-code",
4043
+ "cursor",
4044
+ "gemini",
4045
+ "kiro",
4046
+ "other"
4047
+ ],
4048
+ "summary": "Static review of EF Core data access — DbContext lifetime, N+1 queries, unbounded result sets, raw SQL injection surface, optimistic concurrency tokens, migration discipline, multi-tenant query filters, and connection resiliency. Reads source only.",
4049
+ "source_type": "original",
4050
+ "official_docs": [
4051
+ "https://learn.microsoft.com/en-us/ef/core/",
4052
+ "https://learn.microsoft.com/en-us/ef/core/dbcontext-configuration",
4053
+ "https://learn.microsoft.com/en-us/ef/core/querying/single-split-queries",
4054
+ "https://learn.microsoft.com/en-us/ef/core/miscellaneous/multitenancy",
4055
+ "https://learn.microsoft.com/en-us/ef/core/saving/concurrency"
4056
+ ],
4057
+ "security_notes": "Static review only — reads DbContext classes, entity configuration, migrations, and query sites; never runs migrations, opens a database connection, or executes SQL. Never requests connection strings, database credentials, or customer data.",
4058
+ "last_verified": "2026-05-19",
4059
+ "path": "skills/dotnet/dotnet-efcore-data-access-review",
4060
+ "version": "0.1.0",
4061
+ "author": "github: Raishin"
4062
+ },
4063
+ {
4064
+ "id": "dotnet-maestro",
4065
+ "name": ".NET Maestro",
4066
+ "type": "skill",
4067
+ "provider": "dotnet",
4068
+ "harnesses": [
4069
+ "codex",
4070
+ "claude-code",
4071
+ "cursor",
4072
+ "gemini",
4073
+ "kiro",
4074
+ "other"
4075
+ ],
4076
+ "summary": "Router skill for the .NET board. Classifies a .NET task and dispatches the narrowest specialist agent, or a parallel team of up to four for multi-domain tasks. Routes only — never answers .NET questions itself.",
4077
+ "source_type": "original",
4078
+ "official_docs": [
4079
+ "https://learn.microsoft.com/en-us/dotnet/",
4080
+ "https://learn.microsoft.com/en-us/aspnet/core/",
4081
+ "https://learn.microsoft.com/en-us/ef/core/"
4082
+ ],
4083
+ "security_notes": "Routing only — performs no review itself, never runs code, never requests secrets, connection strings, tokens, tenant identifiers, or customer data. Every dispatched .NET specialist is static-review.",
4084
+ "last_verified": "2026-05-19",
4085
+ "path": "skills/dotnet/dotnet-maestro",
4086
+ "version": "0.1.0",
4087
+ "author": "github: Raishin"
4088
+ },
4089
+ {
4090
+ "id": "dotnet-observability-otel-review",
4091
+ "name": ".NET Observability & OpenTelemetry Review",
4092
+ "type": "skill",
4093
+ "provider": "dotnet",
4094
+ "harnesses": [
4095
+ "codex",
4096
+ "claude-code",
4097
+ "cursor",
4098
+ "gemini",
4099
+ "kiro",
4100
+ "other"
4101
+ ],
4102
+ "summary": "Static review of in-application OpenTelemetry wiring in ASP.NET Core — SDK registration, trace context propagation, structured logging, correlation IDs, metrics instrumentation, sampling, and PII leakage in telemetry. Reads source and sanitized configuration only.",
4103
+ "source_type": "original",
4104
+ "official_docs": [
4105
+ "https://learn.microsoft.com/en-us/dotnet/core/diagnostics/observability-with-otel",
4106
+ "https://learn.microsoft.com/en-us/dotnet/core/extensions/logging",
4107
+ "https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/",
4108
+ "https://learn.microsoft.com/en-us/dotnet/core/diagnostics/distributed-tracing"
4109
+ ],
4110
+ "security_notes": "Static review only — reads OpenTelemetry registration, logging configuration, and instrumentation source; never runs the app or contacts a telemetry backend. Flags PII in spans or logs as critical. Never requests secrets, tokens, or customer data; ask for sanitized appsettings with placeholders.",
4111
+ "last_verified": "2026-05-19",
4112
+ "path": "skills/dotnet/dotnet-observability-otel-review",
4113
+ "version": "0.1.0",
4114
+ "author": "github: Raishin"
4115
+ },
4116
+ {
4117
+ "id": "dotnet-performance-aot-review",
4118
+ "name": ".NET Performance, AOT & Trimming Review",
4119
+ "type": "skill",
4120
+ "provider": "dotnet",
4121
+ "harnesses": [
4122
+ "codex",
4123
+ "claude-code",
4124
+ "cursor",
4125
+ "gemini",
4126
+ "kiro",
4127
+ "other"
4128
+ ],
4129
+ "summary": "Static, evidence-gated review of .NET performance posture, Native AOT, and trimming readiness — reflection and serialization hazards, hot-path allocations, and benchmark discipline. Any performance claim with no benchmark artifact is downgraded to inference.",
4130
+ "source_type": "original",
4131
+ "official_docs": [
4132
+ "https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/",
4133
+ "https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-self-contained",
4134
+ "https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/trim-warnings",
4135
+ "https://learn.microsoft.com/en-us/dotnet/core/diagnostics/"
4136
+ ],
4137
+ "security_notes": "Static review only — reads project files, benchmark results, trim-warning output, and hot-path source; never runs the application, a benchmark, or a profiler. Never requests secrets or customer data.",
4138
+ "last_verified": "2026-05-19",
4139
+ "path": "skills/dotnet/dotnet-performance-aot-review",
4140
+ "version": "0.1.0",
4141
+ "author": "github: Raishin"
4142
+ },
4143
+ {
4144
+ "id": "dotnet-supply-chain-review",
4145
+ "name": ".NET Supply Chain Review",
4146
+ "type": "skill",
4147
+ "provider": "dotnet",
4148
+ "harnesses": [
4149
+ "codex",
4150
+ "claude-code",
4151
+ "cursor",
4152
+ "gemini",
4153
+ "kiro",
4154
+ "other"
4155
+ ],
4156
+ "summary": "Static review of .NET CI/CD and NuGet supply-chain integrity — SDK pinning, package version pinning and lock files, feed trust, fork-PR secret exposure, vulnerability scanning, and build reproducibility. Reads workflow and project configuration only.",
4157
+ "source_type": "original",
4158
+ "official_docs": [
4159
+ "https://learn.microsoft.com/en-us/nuget/",
4160
+ "https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management",
4161
+ "https://learn.microsoft.com/en-us/dotnet/core/tools/global-json",
4162
+ "https://learn.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files",
4163
+ "https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions"
4164
+ ],
4165
+ "security_notes": "Static review only — reads CI workflow files, global.json, Directory.Packages.props, NuGet.config, lock files, and publish profiles; never triggers a pipeline or restores packages. Flags secret exposure to fork-PR builds as critical. Never requests CI secrets, feed credentials, or signing keys.",
4166
+ "last_verified": "2026-05-19",
4167
+ "path": "skills/dotnet/dotnet-supply-chain-review",
4168
+ "version": "0.1.0",
4169
+ "author": "github: Raishin"
4170
+ },
4171
+ {
4172
+ "id": "dotnet-testing-quality-review",
4173
+ "name": ".NET Testing Quality Review",
4174
+ "type": "skill",
4175
+ "provider": "dotnet",
4176
+ "harnesses": [
4177
+ "codex",
4178
+ "claude-code",
4179
+ "cursor",
4180
+ "gemini",
4181
+ "kiro",
4182
+ "other"
4183
+ ],
4184
+ "summary": "Static review of .NET test suites — detects assertion-free and tautological tests, over-mocking, coverage theater, weak isolation, flaky patterns, and missing negative or security tests across xUnit, NUnit, and MSTest. Reads test source only; never runs the suite.",
4185
+ "source_type": "original",
4186
+ "official_docs": [
4187
+ "https://learn.microsoft.com/en-us/dotnet/core/testing/",
4188
+ "https://learn.microsoft.com/en-us/dotnet/core/testing/unit-testing-best-practices",
4189
+ "https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests",
4190
+ "https://learn.microsoft.com/en-us/aspnet/core/test/middleware"
4191
+ ],
4192
+ "security_notes": "Static review only — reads test projects, test source, and coverage configuration; never runs the test suite, a coverage tool, or a test container. Never requests secrets or customer data.",
4193
+ "last_verified": "2026-05-19",
4194
+ "path": "skills/dotnet/dotnet-testing-quality-review",
4195
+ "version": "0.1.0",
4196
+ "author": "github: Raishin"
4197
+ },
3924
4198
  {
3925
4199
  "id": "email-sender-authentication-review",
3926
4200
  "name": "Email Sender Authentication Review",
@@ -5750,7 +6024,7 @@
5750
6024
  "id": "hr-risk-triage-review",
5751
6025
  "name": "HR Risk Triage Review",
5752
6026
  "type": "skill",
5753
- "provider": "generic",
6027
+ "provider": "hr",
5754
6028
  "harnesses": [
5755
6029
  "codex",
5756
6030
  "claude-code",
@@ -7466,7 +7740,7 @@
7466
7740
  "id": "legal-counsel-review",
7467
7741
  "name": "Legal Counsel Review",
7468
7742
  "type": "skill",
7469
- "provider": "generic",
7743
+ "provider": "legal",
7470
7744
  "harnesses": [
7471
7745
  "codex",
7472
7746
  "claude-code",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raishin/vanguard-frontier-agentic",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Cloud and zero-trust agentic workflow marketplace for skills, agents, rules, MCP references, and compliance-aware architecture.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vanguard-frontier-agentic",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Curated marketplace for cloud and zero-trust AI workflows. 331 agents, 286 skills, and rules across AWS, Azure, OCI, GCP, Alibaba Cloud, Huawei Cloud, Kubernetes, and Terraform.",
5
5
  "author": {
6
6
  "name": "Raishin",
@@ -49,7 +49,10 @@
49
49
  "kubernetes",
50
50
  "terraform",
51
51
  "multi-cloud",
52
- "generic"
52
+ "generic",
53
+ "dotnet",
54
+ "hr",
55
+ "legal"
53
56
  ]
54
57
  },
55
58
  "harnesses": {
@@ -42,7 +42,10 @@
42
42
  "kubernetes",
43
43
  "terraform",
44
44
  "multi-cloud",
45
- "generic"
45
+ "generic",
46
+ "dotnet",
47
+ "hr",
48
+ "legal"
46
49
  ]
47
50
  },
48
51
  "harnesses": {
@@ -304,8 +304,20 @@ function loadSkills() {
304
304
  for (const skill of fs.readdirSync(providerDir, { withFileTypes: true })) {
305
305
  if (!skill.isDirectory()) continue;
306
306
  const skillDir = path.join(providerDir, skill.name);
307
+ const metaFile = path.join(skillDir, "metadata.json");
307
308
  if (fs.existsSync(path.join(skillDir, "SKILL.md"))) {
308
- byName.set(skill.name, { dir: skillDir, provider: provider.name });
309
+ let skillProvider = provider.name;
310
+ if (fs.existsSync(metaFile)) {
311
+ try {
312
+ const meta = JSON.parse(fs.readFileSync(metaFile, "utf8"));
313
+ if (meta.provider) {
314
+ skillProvider = meta.provider;
315
+ }
316
+ } catch (err) {
317
+ // Fall back to directory name if metadata.json is invalid.
318
+ }
319
+ }
320
+ byName.set(skill.name, { dir: skillDir, provider: skillProvider });
309
321
  }
310
322
  }
311
323
  }