@raishin/vanguard-frontier-agentic 2.0.0 → 2.1.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 (342) hide show
  1. package/.claude-plugin/plugin.json +25 -1
  2. package/.cursor-plugin/plugin.json +25 -1
  3. package/.github/plugin/marketplace.json +1 -1
  4. package/README.md +26 -7
  5. package/agents/marketing/README.md +44 -0
  6. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/AGENT.md +53 -0
  7. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/claude-code.agent.md +36 -0
  8. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/codex.toml +33 -0
  9. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/copilot.agent.md +36 -0
  10. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/cursor.agent.md +36 -0
  11. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/gemini.agent.md +36 -0
  12. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/kiro-cli.agent.json +5 -0
  13. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/harnesses/kiro-ide.agent.md +36 -0
  14. package/agents/marketing/ai-advertising-targeting-fairness-review-agent/metadata.json +31 -0
  15. package/agents/marketing/analytics-data-minimization-review-agent/AGENT.md +51 -0
  16. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/claude-code.agent.md +34 -0
  17. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/codex.toml +33 -0
  18. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/copilot.agent.md +34 -0
  19. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/cursor.agent.md +34 -0
  20. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/gemini.agent.md +34 -0
  21. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/kiro-cli.agent.json +5 -0
  22. package/agents/marketing/analytics-data-minimization-review-agent/harnesses/kiro-ide.agent.md +34 -0
  23. package/agents/marketing/analytics-data-minimization-review-agent/metadata.json +31 -0
  24. package/agents/marketing/email-sender-authentication-review-agent/AGENT.md +50 -0
  25. package/agents/marketing/email-sender-authentication-review-agent/harnesses/claude-code.agent.md +33 -0
  26. package/agents/marketing/email-sender-authentication-review-agent/harnesses/codex.toml +32 -0
  27. package/agents/marketing/email-sender-authentication-review-agent/harnesses/copilot.agent.md +33 -0
  28. package/agents/marketing/email-sender-authentication-review-agent/harnesses/cursor.agent.md +33 -0
  29. package/agents/marketing/email-sender-authentication-review-agent/harnesses/gemini.agent.md +33 -0
  30. package/agents/marketing/email-sender-authentication-review-agent/harnesses/kiro-cli.agent.json +5 -0
  31. package/agents/marketing/email-sender-authentication-review-agent/harnesses/kiro-ide.agent.md +33 -0
  32. package/agents/marketing/email-sender-authentication-review-agent/metadata.json +31 -0
  33. package/agents/marketing/eu-ai-act-marketing-system-review-agent/AGENT.md +54 -0
  34. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/claude-code.agent.md +37 -0
  35. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/codex.toml +33 -0
  36. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/copilot.agent.md +37 -0
  37. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/cursor.agent.md +37 -0
  38. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/gemini.agent.md +37 -0
  39. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/kiro-cli.agent.json +5 -0
  40. package/agents/marketing/eu-ai-act-marketing-system-review-agent/harnesses/kiro-ide.agent.md +37 -0
  41. package/agents/marketing/eu-ai-act-marketing-system-review-agent/metadata.json +31 -0
  42. package/agents/marketing/influencer-disclosure-compliance-review-agent/AGENT.md +52 -0
  43. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/claude-code.agent.md +35 -0
  44. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/codex.toml +33 -0
  45. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/copilot.agent.md +35 -0
  46. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/cursor.agent.md +35 -0
  47. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/gemini.agent.md +35 -0
  48. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/kiro-cli.agent.json +5 -0
  49. package/agents/marketing/influencer-disclosure-compliance-review-agent/harnesses/kiro-ide.agent.md +35 -0
  50. package/agents/marketing/influencer-disclosure-compliance-review-agent/metadata.json +31 -0
  51. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/AGENT.md +54 -0
  52. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/claude-code.agent.md +37 -0
  53. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/codex.toml +34 -0
  54. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/copilot.agent.md +37 -0
  55. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/cursor.agent.md +37 -0
  56. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/gemini.agent.md +37 -0
  57. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/kiro-cli.agent.json +5 -0
  58. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/harnesses/kiro-ide.agent.md +37 -0
  59. package/agents/marketing/lookalike-audience-upload-compliance-review-agent/metadata.json +31 -0
  60. package/agents/marketing/marketing-consent-data-collection-review-agent/AGENT.md +51 -0
  61. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/claude-code.agent.md +34 -0
  62. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/codex.toml +33 -0
  63. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/copilot.agent.md +34 -0
  64. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/cursor.agent.md +34 -0
  65. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/gemini.agent.md +34 -0
  66. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/kiro-cli.agent.json +5 -0
  67. package/agents/marketing/marketing-consent-data-collection-review-agent/harnesses/kiro-ide.agent.md +34 -0
  68. package/agents/marketing/marketing-consent-data-collection-review-agent/metadata.json +31 -0
  69. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/AGENT.md +51 -0
  70. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/claude-code.agent.md +34 -0
  71. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/codex.toml +33 -0
  72. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/copilot.agent.md +34 -0
  73. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/cursor.agent.md +34 -0
  74. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/gemini.agent.md +34 -0
  75. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/kiro-cli.agent.json +5 -0
  76. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/harnesses/kiro-ide.agent.md +34 -0
  77. package/agents/marketing/marketing-conversion-flow-dark-pattern-review-agent/metadata.json +31 -0
  78. package/agents/marketing/marketing-email-list-retention-review-agent/AGENT.md +50 -0
  79. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/claude-code.agent.md +33 -0
  80. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/codex.toml +32 -0
  81. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/copilot.agent.md +33 -0
  82. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/cursor.agent.md +33 -0
  83. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/gemini.agent.md +33 -0
  84. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/kiro-cli.agent.json +5 -0
  85. package/agents/marketing/marketing-email-list-retention-review-agent/harnesses/kiro-ide.agent.md +33 -0
  86. package/agents/marketing/marketing-email-list-retention-review-agent/metadata.json +31 -0
  87. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/AGENT.md +50 -0
  88. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/claude-code.agent.md +33 -0
  89. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/codex.toml +32 -0
  90. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/copilot.agent.md +33 -0
  91. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/cursor.agent.md +33 -0
  92. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/gemini.agent.md +33 -0
  93. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/kiro-cli.agent.json +5 -0
  94. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/harnesses/kiro-ide.agent.md +33 -0
  95. package/agents/marketing/marketing-gpc-signal-honoring-review-agent/metadata.json +31 -0
  96. package/agents/marketing/marketing-maestro-agent/AGENT.md +62 -0
  97. package/agents/marketing/marketing-maestro-agent/PERMISSIONS.md +75 -0
  98. package/agents/marketing/marketing-maestro-agent/README.md +62 -0
  99. package/agents/marketing/marketing-maestro-agent/harnesses/claude-code.agent.md +43 -0
  100. package/agents/marketing/marketing-maestro-agent/harnesses/codex.toml +35 -0
  101. package/agents/marketing/marketing-maestro-agent/harnesses/copilot.agent.md +43 -0
  102. package/agents/marketing/marketing-maestro-agent/harnesses/cursor.agent.md +43 -0
  103. package/agents/marketing/marketing-maestro-agent/harnesses/gemini.agent.md +43 -0
  104. package/agents/marketing/marketing-maestro-agent/harnesses/kiro-cli.agent.json +5 -0
  105. package/agents/marketing/marketing-maestro-agent/harnesses/kiro-ide.agent.md +43 -0
  106. package/agents/marketing/marketing-maestro-agent/metadata.json +38 -0
  107. package/agents/marketing/marketing-pixel-data-leakage-review-agent/AGENT.md +50 -0
  108. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/claude-code.agent.md +33 -0
  109. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/codex.toml +32 -0
  110. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/copilot.agent.md +33 -0
  111. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/cursor.agent.md +33 -0
  112. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/gemini.agent.md +33 -0
  113. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/kiro-cli.agent.json +5 -0
  114. package/agents/marketing/marketing-pixel-data-leakage-review-agent/harnesses/kiro-ide.agent.md +33 -0
  115. package/agents/marketing/marketing-pixel-data-leakage-review-agent/metadata.json +31 -0
  116. package/agents/marketing/martech-access-governance-review-agent/AGENT.md +51 -0
  117. package/agents/marketing/martech-access-governance-review-agent/harnesses/claude-code.agent.md +34 -0
  118. package/agents/marketing/martech-access-governance-review-agent/harnesses/codex.toml +33 -0
  119. package/agents/marketing/martech-access-governance-review-agent/harnesses/copilot.agent.md +34 -0
  120. package/agents/marketing/martech-access-governance-review-agent/harnesses/cursor.agent.md +34 -0
  121. package/agents/marketing/martech-access-governance-review-agent/harnesses/gemini.agent.md +34 -0
  122. package/agents/marketing/martech-access-governance-review-agent/harnesses/kiro-cli.agent.json +5 -0
  123. package/agents/marketing/martech-access-governance-review-agent/harnesses/kiro-ide.agent.md +34 -0
  124. package/agents/marketing/martech-access-governance-review-agent/metadata.json +31 -0
  125. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/AGENT.md +50 -0
  126. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/claude-code.agent.md +33 -0
  127. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/codex.toml +32 -0
  128. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/copilot.agent.md +33 -0
  129. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/cursor.agent.md +33 -0
  130. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/gemini.agent.md +33 -0
  131. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/kiro-cli.agent.json +5 -0
  132. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/harnesses/kiro-ide.agent.md +33 -0
  133. package/agents/marketing/programmatic-supply-chain-integrity-review-agent/metadata.json +31 -0
  134. package/agents/qa/README.md +51 -0
  135. package/agents/qa/ci-test-pipeline-review-agent/AGENT.md +51 -0
  136. package/agents/qa/ci-test-pipeline-review-agent/harnesses/claude-code.agent.md +35 -0
  137. package/agents/qa/ci-test-pipeline-review-agent/harnesses/codex.toml +34 -0
  138. package/agents/qa/ci-test-pipeline-review-agent/harnesses/copilot.agent.md +35 -0
  139. package/agents/qa/ci-test-pipeline-review-agent/harnesses/cursor.agent.md +35 -0
  140. package/agents/qa/ci-test-pipeline-review-agent/harnesses/gemini.agent.md +35 -0
  141. package/agents/qa/ci-test-pipeline-review-agent/harnesses/kiro-cli.agent.json +5 -0
  142. package/agents/qa/ci-test-pipeline-review-agent/harnesses/kiro-ide.agent.md +35 -0
  143. package/agents/qa/ci-test-pipeline-review-agent/metadata.json +33 -0
  144. package/agents/qa/helm-chart-quality-review-agent/AGENT.md +56 -0
  145. package/agents/qa/helm-chart-quality-review-agent/harnesses/claude-code.agent.md +40 -0
  146. package/agents/qa/helm-chart-quality-review-agent/harnesses/codex.toml +39 -0
  147. package/agents/qa/helm-chart-quality-review-agent/harnesses/copilot.agent.md +40 -0
  148. package/agents/qa/helm-chart-quality-review-agent/harnesses/cursor.agent.md +40 -0
  149. package/agents/qa/helm-chart-quality-review-agent/harnesses/gemini.agent.md +40 -0
  150. package/agents/qa/helm-chart-quality-review-agent/harnesses/kiro-cli.agent.json +5 -0
  151. package/agents/qa/helm-chart-quality-review-agent/harnesses/kiro-ide.agent.md +40 -0
  152. package/agents/qa/helm-chart-quality-review-agent/metadata.json +35 -0
  153. package/agents/qa/kubernetes-manifest-quality-review-agent/AGENT.md +55 -0
  154. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/claude-code.agent.md +32 -0
  155. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/codex.toml +38 -0
  156. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/copilot.agent.md +32 -0
  157. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/cursor.agent.md +32 -0
  158. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/gemini.agent.md +32 -0
  159. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/kiro-cli.agent.json +5 -0
  160. package/agents/qa/kubernetes-manifest-quality-review-agent/harnesses/kiro-ide.agent.md +32 -0
  161. package/agents/qa/kubernetes-manifest-quality-review-agent/metadata.json +35 -0
  162. package/agents/qa/llm-ai-pipeline-test-review-agent/AGENT.md +52 -0
  163. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/claude-code.agent.md +36 -0
  164. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/codex.toml +36 -0
  165. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/copilot.agent.md +36 -0
  166. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/cursor.agent.md +36 -0
  167. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/gemini.agent.md +36 -0
  168. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/kiro-cli.agent.json +5 -0
  169. package/agents/qa/llm-ai-pipeline-test-review-agent/harnesses/kiro-ide.agent.md +36 -0
  170. package/agents/qa/llm-ai-pipeline-test-review-agent/metadata.json +35 -0
  171. package/agents/qa/playwright-e2e-execution-run-agent/AGENT.md +50 -0
  172. package/agents/qa/playwright-e2e-execution-run-agent/harnesses/claude-code.agent.md +39 -0
  173. package/agents/qa/playwright-e2e-execution-run-agent/harnesses/cursor.agent.md +39 -0
  174. package/agents/qa/playwright-e2e-execution-run-agent/metadata.json +28 -0
  175. package/agents/qa/playwright-e2e-suite-review-agent/AGENT.md +51 -0
  176. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/claude-code.agent.md +35 -0
  177. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/codex.toml +34 -0
  178. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/copilot.agent.md +35 -0
  179. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/cursor.agent.md +35 -0
  180. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/gemini.agent.md +35 -0
  181. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/kiro-cli.agent.json +5 -0
  182. package/agents/qa/playwright-e2e-suite-review-agent/harnesses/kiro-ide.agent.md +35 -0
  183. package/agents/qa/playwright-e2e-suite-review-agent/metadata.json +35 -0
  184. package/agents/qa/plc-control-logic-safety-review-agent/AGENT.md +53 -0
  185. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/claude-code.agent.md +37 -0
  186. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/codex.toml +36 -0
  187. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/copilot.agent.md +37 -0
  188. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/cursor.agent.md +37 -0
  189. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/gemini.agent.md +37 -0
  190. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/kiro-cli.agent.json +5 -0
  191. package/agents/qa/plc-control-logic-safety-review-agent/harnesses/kiro-ide.agent.md +37 -0
  192. package/agents/qa/plc-control-logic-safety-review-agent/metadata.json +33 -0
  193. package/agents/qa/rpa-workflow-resilience-review-agent/AGENT.md +52 -0
  194. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/claude-code.agent.md +36 -0
  195. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/codex.toml +35 -0
  196. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/copilot.agent.md +36 -0
  197. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/cursor.agent.md +36 -0
  198. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/gemini.agent.md +36 -0
  199. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/kiro-cli.agent.json +5 -0
  200. package/agents/qa/rpa-workflow-resilience-review-agent/harnesses/kiro-ide.agent.md +36 -0
  201. package/agents/qa/rpa-workflow-resilience-review-agent/metadata.json +34 -0
  202. package/agents/qa/test-coverage-quality-review-agent/AGENT.md +50 -0
  203. package/agents/qa/test-coverage-quality-review-agent/harnesses/claude-code.agent.md +34 -0
  204. package/agents/qa/test-coverage-quality-review-agent/harnesses/codex.toml +33 -0
  205. package/agents/qa/test-coverage-quality-review-agent/harnesses/copilot.agent.md +34 -0
  206. package/agents/qa/test-coverage-quality-review-agent/harnesses/cursor.agent.md +34 -0
  207. package/agents/qa/test-coverage-quality-review-agent/harnesses/gemini.agent.md +34 -0
  208. package/agents/qa/test-coverage-quality-review-agent/harnesses/kiro-cli.agent.json +5 -0
  209. package/agents/qa/test-coverage-quality-review-agent/harnesses/kiro-ide.agent.md +34 -0
  210. package/agents/qa/test-coverage-quality-review-agent/metadata.json +33 -0
  211. package/agents/qa/test-flakiness-triage-agent/AGENT.md +52 -0
  212. package/agents/qa/test-flakiness-triage-agent/harnesses/claude-code.agent.md +36 -0
  213. package/agents/qa/test-flakiness-triage-agent/harnesses/codex.toml +33 -0
  214. package/agents/qa/test-flakiness-triage-agent/harnesses/copilot.agent.md +36 -0
  215. package/agents/qa/test-flakiness-triage-agent/harnesses/cursor.agent.md +36 -0
  216. package/agents/qa/test-flakiness-triage-agent/harnesses/gemini.agent.md +36 -0
  217. package/agents/qa/test-flakiness-triage-agent/harnesses/kiro-cli.agent.json +5 -0
  218. package/agents/qa/test-flakiness-triage-agent/harnesses/kiro-ide.agent.md +36 -0
  219. package/agents/qa/test-flakiness-triage-agent/metadata.json +33 -0
  220. package/catalog/agents.json +1047 -197
  221. package/catalog/asset-integrity.json +2950 -1675
  222. package/catalog/install-roles.json +65 -1
  223. package/catalog/skill-manifest.json +538 -0
  224. package/catalog/skills.json +685 -0
  225. package/package.json +5 -2
  226. package/plugins/vanguard-frontier-agentic/.codex-plugin/plugin.json +1 -1
  227. package/scripts/generate-readme-counts.mjs +162 -0
  228. package/skills/marketing/ai-advertising-targeting-fairness-review/SKILL.md +43 -0
  229. package/skills/marketing/ai-advertising-targeting-fairness-review/metadata.json +21 -0
  230. package/skills/marketing/ai-advertising-targeting-fairness-review/references/workflow-and-output.md +150 -0
  231. package/skills/marketing/analytics-data-minimization-review/SKILL.md +44 -0
  232. package/skills/marketing/analytics-data-minimization-review/metadata.json +22 -0
  233. package/skills/marketing/analytics-data-minimization-review/references/workflow-and-output.md +187 -0
  234. package/skills/marketing/email-sender-authentication-review/SKILL.md +43 -0
  235. package/skills/marketing/email-sender-authentication-review/metadata.json +22 -0
  236. package/skills/marketing/email-sender-authentication-review/references/workflow-and-output.md +152 -0
  237. package/skills/marketing/eu-ai-act-marketing-system-review/SKILL.md +43 -0
  238. package/skills/marketing/eu-ai-act-marketing-system-review/metadata.json +21 -0
  239. package/skills/marketing/eu-ai-act-marketing-system-review/references/workflow-and-output.md +176 -0
  240. package/skills/marketing/influencer-disclosure-compliance-review/SKILL.md +43 -0
  241. package/skills/marketing/influencer-disclosure-compliance-review/metadata.json +22 -0
  242. package/skills/marketing/influencer-disclosure-compliance-review/references/workflow-and-output.md +156 -0
  243. package/skills/marketing/lookalike-audience-upload-compliance-review/SKILL.md +44 -0
  244. package/skills/marketing/lookalike-audience-upload-compliance-review/metadata.json +21 -0
  245. package/skills/marketing/lookalike-audience-upload-compliance-review/references/workflow-and-output.md +203 -0
  246. package/skills/marketing/marketing-consent-data-collection-review/SKILL.md +44 -0
  247. package/skills/marketing/marketing-consent-data-collection-review/metadata.json +21 -0
  248. package/skills/marketing/marketing-consent-data-collection-review/references/workflow-and-output.md +139 -0
  249. package/skills/marketing/marketing-conversion-flow-dark-pattern-review/SKILL.md +45 -0
  250. package/skills/marketing/marketing-conversion-flow-dark-pattern-review/metadata.json +22 -0
  251. package/skills/marketing/marketing-conversion-flow-dark-pattern-review/references/workflow-and-output.md +160 -0
  252. package/skills/marketing/marketing-email-list-retention-review/SKILL.md +43 -0
  253. package/skills/marketing/marketing-email-list-retention-review/metadata.json +22 -0
  254. package/skills/marketing/marketing-email-list-retention-review/references/workflow-and-output.md +144 -0
  255. package/skills/marketing/marketing-gpc-signal-honoring-review/SKILL.md +42 -0
  256. package/skills/marketing/marketing-gpc-signal-honoring-review/metadata.json +22 -0
  257. package/skills/marketing/marketing-gpc-signal-honoring-review/references/workflow-and-output.md +145 -0
  258. package/skills/marketing/marketing-maestro/README.md +37 -0
  259. package/skills/marketing/marketing-maestro/SKILL.md +49 -0
  260. package/skills/marketing/marketing-maestro/metadata.json +26 -0
  261. package/skills/marketing/marketing-maestro/references/safety-checklist.md +67 -0
  262. package/skills/marketing/marketing-maestro/references/workflow-and-output.md +110 -0
  263. package/skills/marketing/marketing-pixel-data-leakage-review/SKILL.md +43 -0
  264. package/skills/marketing/marketing-pixel-data-leakage-review/metadata.json +21 -0
  265. package/skills/marketing/marketing-pixel-data-leakage-review/references/workflow-and-output.md +129 -0
  266. package/skills/marketing/martech-access-governance-review/SKILL.md +45 -0
  267. package/skills/marketing/martech-access-governance-review/metadata.json +21 -0
  268. package/skills/marketing/martech-access-governance-review/references/workflow-and-output.md +116 -0
  269. package/skills/marketing/programmatic-supply-chain-integrity-review/SKILL.md +43 -0
  270. package/skills/marketing/programmatic-supply-chain-integrity-review/metadata.json +22 -0
  271. package/skills/marketing/programmatic-supply-chain-integrity-review/references/workflow-and-output.md +164 -0
  272. package/skills/qa/ci-test-pipeline-review/SKILL.md +45 -0
  273. package/skills/qa/ci-test-pipeline-review/metadata.json +21 -0
  274. package/skills/qa/ci-test-pipeline-review/references/workflow-and-output.md +124 -0
  275. package/skills/qa/helm-chart-quality-review/SKILL.md +61 -0
  276. package/skills/qa/helm-chart-quality-review/metadata.json +23 -0
  277. package/skills/qa/helm-chart-quality-review/references/workflow-and-output.md +174 -0
  278. package/skills/qa/kubernetes-manifest-quality-review/SKILL.md +92 -0
  279. package/skills/qa/kubernetes-manifest-quality-review/metadata.json +23 -0
  280. package/skills/qa/kubernetes-manifest-quality-review/references/workflow-and-output.md +246 -0
  281. package/skills/qa/llm-ai-pipeline-test-review/SKILL.md +52 -0
  282. package/skills/qa/llm-ai-pipeline-test-review/metadata.json +23 -0
  283. package/skills/qa/llm-ai-pipeline-test-review/references/workflow-and-output.md +221 -0
  284. package/skills/qa/playwright-e2e-execution-run/SKILL.md +54 -0
  285. package/skills/qa/playwright-e2e-execution-run/metadata.json +24 -0
  286. package/skills/qa/playwright-e2e-execution-run/references/workflow-and-output.md +133 -0
  287. package/skills/qa/playwright-e2e-suite-review/SKILL.md +44 -0
  288. package/skills/qa/playwright-e2e-suite-review/metadata.json +23 -0
  289. package/skills/qa/playwright-e2e-suite-review/references/workflow-and-output.md +176 -0
  290. package/skills/qa/plc-control-logic-safety-review/SKILL.md +47 -0
  291. package/skills/qa/plc-control-logic-safety-review/metadata.json +21 -0
  292. package/skills/qa/plc-control-logic-safety-review/references/workflow-and-output.md +231 -0
  293. package/skills/qa/rpa-workflow-resilience-review/SKILL.md +47 -0
  294. package/skills/qa/rpa-workflow-resilience-review/metadata.json +22 -0
  295. package/skills/qa/rpa-workflow-resilience-review/references/workflow-and-output.md +210 -0
  296. package/skills/qa/test-coverage-quality-review/SKILL.md +44 -0
  297. package/skills/qa/test-coverage-quality-review/metadata.json +21 -0
  298. package/skills/qa/test-coverage-quality-review/references/workflow-and-output.md +139 -0
  299. package/skills/qa/test-flakiness-triage/SKILL.md +43 -0
  300. package/skills/qa/test-flakiness-triage/metadata.json +21 -0
  301. package/skills/qa/test-flakiness-triage/references/workflow-and-output.md +114 -0
  302. package/tests/eval-qa-cluster.mjs +111 -0
  303. package/tests/fixtures/marketing-maestro-routing/expected/001-happy-ai-advertising-targeting-fairness-review.json +6 -0
  304. package/tests/fixtures/marketing-maestro-routing/expected/002-happy-analytics-data-minimization-review.json +6 -0
  305. package/tests/fixtures/marketing-maestro-routing/expected/003-happy-consent-data-collection-review.json +6 -0
  306. package/tests/fixtures/marketing-maestro-routing/expected/004-happy-conversion-flow-dark-pattern-review.json +6 -0
  307. package/tests/fixtures/marketing-maestro-routing/expected/005-happy-email-list-retention-review.json +6 -0
  308. package/tests/fixtures/marketing-maestro-routing/expected/006-happy-email-sender-authentication-review.json +6 -0
  309. package/tests/fixtures/marketing-maestro-routing/expected/007-happy-eu-ai-act-marketing-system-review.json +6 -0
  310. package/tests/fixtures/marketing-maestro-routing/expected/008-happy-gpc-signal-honoring-review.json +6 -0
  311. package/tests/fixtures/marketing-maestro-routing/expected/009-happy-influencer-disclosure-compliance-review.json +6 -0
  312. package/tests/fixtures/marketing-maestro-routing/expected/010-happy-lookalike-audience-upload-compliance-review.json +6 -0
  313. package/tests/fixtures/marketing-maestro-routing/expected/011-happy-martech-access-governance-review.json +6 -0
  314. package/tests/fixtures/marketing-maestro-routing/expected/012-happy-pixel-data-leakage-review.json +6 -0
  315. package/tests/fixtures/marketing-maestro-routing/expected/013-happy-programmatic-supply-chain-integrity-review.json +6 -0
  316. package/tests/fixtures/marketing-maestro-routing/expected/adv-ambiguous.json +4 -0
  317. package/tests/fixtures/marketing-maestro-routing/expected/adv-instruction-injection.json +7 -0
  318. package/tests/fixtures/marketing-maestro-routing/expected/adv-live-guard-gate.json +4 -0
  319. package/tests/fixtures/marketing-maestro-routing/expected/adv-persona-replacement.json +6 -0
  320. package/tests/fixtures/marketing-maestro-routing/expected/adv-secrets-bait.json +7 -0
  321. package/tests/fixtures/marketing-maestro-routing/inputs/001-happy-ai-advertising-targeting-fairness-review.json +7 -0
  322. package/tests/fixtures/marketing-maestro-routing/inputs/002-happy-analytics-data-minimization-review.json +7 -0
  323. package/tests/fixtures/marketing-maestro-routing/inputs/003-happy-consent-data-collection-review.json +7 -0
  324. package/tests/fixtures/marketing-maestro-routing/inputs/004-happy-conversion-flow-dark-pattern-review.json +7 -0
  325. package/tests/fixtures/marketing-maestro-routing/inputs/005-happy-email-list-retention-review.json +7 -0
  326. package/tests/fixtures/marketing-maestro-routing/inputs/006-happy-email-sender-authentication-review.json +7 -0
  327. package/tests/fixtures/marketing-maestro-routing/inputs/007-happy-eu-ai-act-marketing-system-review.json +7 -0
  328. package/tests/fixtures/marketing-maestro-routing/inputs/008-happy-gpc-signal-honoring-review.json +7 -0
  329. package/tests/fixtures/marketing-maestro-routing/inputs/009-happy-influencer-disclosure-compliance-review.json +7 -0
  330. package/tests/fixtures/marketing-maestro-routing/inputs/010-happy-lookalike-audience-upload-compliance-review.json +7 -0
  331. package/tests/fixtures/marketing-maestro-routing/inputs/011-happy-martech-access-governance-review.json +7 -0
  332. package/tests/fixtures/marketing-maestro-routing/inputs/012-happy-pixel-data-leakage-review.json +7 -0
  333. package/tests/fixtures/marketing-maestro-routing/inputs/013-happy-programmatic-supply-chain-integrity-review.json +7 -0
  334. package/tests/fixtures/marketing-maestro-routing/inputs/adv-ambiguous.json +7 -0
  335. package/tests/fixtures/marketing-maestro-routing/inputs/adv-instruction-injection.json +7 -0
  336. package/tests/fixtures/marketing-maestro-routing/inputs/adv-live-guard-gate.json +7 -0
  337. package/tests/fixtures/marketing-maestro-routing/inputs/adv-persona-replacement.json +7 -0
  338. package/tests/fixtures/marketing-maestro-routing/inputs/adv-secrets-bait.json +7 -0
  339. package/tests/fixtures/marketing-maestro-routing/taxonomy.json +183 -0
  340. package/tests/validate-catalog.py +1 -0
  341. package/tests/validate-maestro-routing.py +4 -0
  342. package/tests/validate-readme-counts.mjs +179 -0
@@ -0,0 +1,231 @@
1
+ # Workflow and Output Contract
2
+
3
+ ## Workflow
4
+
5
+ ### Step 1 — Collect inputs
6
+
7
+ Ask the user to provide one or more of the following as sanitized exports (no live controller IP addresses, no plant-network hostnames, no historian credentials, no production asset tags that identify a specific facility or unit):
8
+ - Exported program logic in text form: Structured Text (`.st`, `.txt`), L5X/L5K (Rockwell), exported XML (IEC 61131-3 PLCopen XML), or a pasted ladder rung / function block description.
9
+ - The I/O list or hardware configuration (module types, I/O addresses, safety vs. standard I/O).
10
+ - The safety requirements specification (SRS) or SIL/PL assessment for the relevant safety instrumented function (SIF), if available.
11
+ - The process hazard analysis (PHA) or HAZOP summary for the unit, if available.
12
+ - The watchdog and communication-loss behavior specification, if documented separately.
13
+
14
+ If only a partial set is provided, note which inputs are absent and scope every finding accordingly. Logic without an I/O list leaves safety-rated channel identification as inference; say so explicitly.
15
+
16
+ ### Step 2 — Safety function and E-stop implementation audit
17
+
18
+ Identify every E-stop, emergency trip, or safety instrumented function (SIF) referenced in the exported logic.
19
+
20
+ **2a. Software-only E-stop — CRITICAL**
21
+
22
+ A safety function implemented entirely in standard PLC software cannot achieve SIL 1 or higher under IEC 61508 without architectural redundancy and systematic capability claims that a standard PLC runtime does not provide. A scan fault, firmware defect, or communications outage can prevent the software path from executing.
23
+
24
+ Correct implementation pattern:
25
+ - Hardware E-stop loop through a safety relay or safety-rated PLC (e.g., Pilz PNOZ, Siemens SIRIUS, Allen-Bradley GuardLogix safety task with dual-channel input).
26
+ - Standard PLC logic may signal or acknowledge the trip, but must never be the sole means of de-energizing the hazardous output.
27
+
28
+ Flag any rung or ST block where an E-stop coil address is driven exclusively by software logic with no cross-reference to a hardware-forced safety output or a safety PLC output.
29
+
30
+ **2b. Safety PLC vs. standard PLC**
31
+
32
+ If the exported logic is from a safety-rated task (e.g., GuardLogix safety task, Siemens F-CPU, HIMA HIMax), confirm that safety I/O is referenced via the safety I/O map, not standard I/O. Mixing safety and standard I/O addresses for the same SIF is CRITICAL.
33
+
34
+ ### Step 3 — Output fail-safe and de-energization audit
35
+
36
+ For every output coil or output block in the export:
37
+
38
+ - Trace whether a fail-safe (de-energized) state is reachable when: (a) the PLC transitions to STOP or FAULT mode, (b) the remote I/O link drops, (c) the safety function trips.
39
+ - Flag outputs where the only de-energization path is through software logic that may not execute during a PLC halt.
40
+
41
+ **Example — CRITICAL: output holds last state on I/O dropout**
42
+
43
+ ```
44
+ (* Structured Text — standard remote I/O, no watchdog output *)
45
+ IF ConveyorRunCmd AND NOT EStop_SoftBit THEN
46
+ ConveyorMotor_Out := TRUE;
47
+ END_IF;
48
+ (* No else-branch; no watchdog; remote I/O module holds last state on link loss *)
49
+ ```
50
+
51
+ Correct pattern — explicit safe state on every execution path:
52
+
53
+ ```
54
+ (* Every path terminates in an explicit assignment *)
55
+ IF ConveyorRunCmd AND NOT EStop_HW AND CommOK THEN
56
+ ConveyorMotor_Out := TRUE;
57
+ ELSE
58
+ ConveyorMotor_Out := FALSE; (* de-energize on any fault condition *)
59
+ END_IF;
60
+ ```
61
+
62
+ ### Step 4 — Latch and SET/RESET integrity audit
63
+
64
+ Scan every SET coil, SR function block, retentive output, and latch pattern in the export.
65
+
66
+ Check for:
67
+ - A SET with no cross-referenced RESET anywhere in the POU or program — HIGH (output permanently energized; requires a force to clear).
68
+ - A RESET gated behind a condition that is logically unreachable (e.g., RESET of a latch that is itself the condition for the RESET) — HIGH.
69
+ - SR blocks where the S1 (dominant set) input is tied to a non-safety-rated signal for a safety-rated latch — HIGH.
70
+
71
+ ```
72
+ (* HIGH — SET has no reachable RESET in export *)
73
+ IF FaultDetected THEN
74
+ FaultLatch (S := TRUE, R1 := FALSE);
75
+ END_IF;
76
+ (* FaultLatch.Q will remain TRUE forever — operator has no reset path *)
77
+ ```
78
+
79
+ Correct pattern:
80
+
81
+ ```
82
+ FaultLatch(
83
+ S := FaultDetected,
84
+ R1 := OperatorReset AND NOT FaultDetected
85
+ );
86
+ ```
87
+
88
+ ### Step 5 — Memory-write race audit
89
+
90
+ Search for any output bit, memory flag (`%M`, `%MW`, internal variable), or output coil address that appears on the left-hand side (assignment target, coil address) in more than one rung, network, or POU within the same task scan.
91
+
92
+ - Multiple writers to the same address — HIGH (last scan position wins; behavior changes silently when rungs are reordered or POUs are added).
93
+ - Output written in both a periodic task and an event-driven interrupt task — HIGH (non-deterministic; interrupt preemption creates a race).
94
+
95
+ Document the addresses, the rung or line numbers where the conflict occurs, and the task priority if available.
96
+
97
+ ### Step 6 — Forced I/O and commissioning override audit
98
+
99
+ Scan the exported file for:
100
+ - Force table entries, force lists, or any tag marked with a force flag in the export format (e.g., `Force="1"` in L5X, `%IX0.0 := TRUE (*FORCED*)` annotations).
101
+ - Debug constants or literal-TRUE inputs substituted for field sensor addresses.
102
+ - Comments containing `//FORCED`, `(* DEBUG *)`, `TODO: remove`, `commissioning`, or similar.
103
+
104
+ Any force or commissioning override found in a production export — HIGH. Forces suppress the live field signal; the control loop no longer sees the physical process.
105
+
106
+ ### Step 7 — Interlock bypass and maintenance override audit
107
+
108
+ Identify every maintenance mode, bypass, or inhibit bit that disables or overrides a protective interlock.
109
+
110
+ For each bypass:
111
+ - Confirm a time-limit timer (TON) in logic resets the bypass after a defined interval — if absent, HIGH.
112
+ - Confirm gating by a supervisor key-switch input, a safety-rated hardware input, or a logged credential acknowledgment — if absent, HIGH.
113
+ - Confirm the bypass state is annunciated to the operator and historian — if absent, MEDIUM.
114
+
115
+ ```
116
+ (* HIGH — indefinite bypass with no time limit, no key gate, no annunciation *)
117
+ IF MaintenanceBypassBit THEN
118
+ HighTempTrip := FALSE;
119
+ END_IF;
120
+ ```
121
+
122
+ Correct pattern:
123
+
124
+ ```
125
+ (* Time-limited, key-gated bypass with annunciation *)
126
+ MaintenanceTimer(IN := MaintenanceBypassBit AND KeySwitchIn, PT := T#15m);
127
+ IF MaintenanceTimer.Q THEN
128
+ MaintenanceBypassBit := FALSE; (* auto-expire *)
129
+ END_IF;
130
+ HighTempTrip_Active := HighTempTrip AND NOT (MaintenanceBypassBit AND KeySwitchIn);
131
+ BypassAnnunciation := MaintenanceBypassBit;
132
+ ```
133
+
134
+ ### Step 8 — Timer determinism and watchdog audit
135
+
136
+ **8a. Scan-count timers — HIGH**
137
+
138
+ Flag any timer pattern that increments a counter every scan and compares to a literal count rather than using a real-time-based function block (IEC 61131-3 TON, TOF, TP with a PT operand in time literals).
139
+
140
+ ```
141
+ (* HIGH — scan-count "timer"; breaks when scan time changes *)
142
+ ScanCounter := ScanCounter + 1;
143
+ IF ScanCounter >= 500 THEN (* intended: 500 scans * assumed 10ms = 5s *)
144
+ ScanCounter := 0;
145
+ TimeoutAction();
146
+ END_IF;
147
+ ```
148
+
149
+ Correct pattern:
150
+
151
+ ```
152
+ (* Real-time timer — deterministic regardless of scan load *)
153
+ DelayTimer(IN := TriggerCondition, PT := T#5s);
154
+ IF DelayTimer.Q THEN
155
+ TimeoutAction();
156
+ END_IF;
157
+ ```
158
+
159
+ **8b. Watchdog and communications-loss handling — HIGH if absent**
160
+
161
+ Confirm the program drives a watchdog output (toggling bit or heartbeat write) and that a defined default output state is explicitly set in the comms-loss handler or in the I/O module configuration. If neither is present in the export, flag HIGH and note the inference basis.
162
+
163
+ ### Step 9 — Input validation audit
164
+
165
+ Search for division (`/`, `MOD`), array indexing (`arr[idx]`), and explicit or implicit type conversions applied to process values or network-received values.
166
+
167
+ - Division where the divisor can reach zero based on sensor range — MEDIUM (scan fault and PLC halt on most runtimes).
168
+ - Array index derived from a process value with no range clamp before use — MEDIUM.
169
+ - Type conversion (INT to UINT, REAL to INT truncation) on a value that can legitimately be negative or out-of-range — MEDIUM.
170
+
171
+ ```
172
+ (* MEDIUM — divisor can be zero if flow transmitter fails low *)
173
+ FlowVelocity := FlowVolume / PipeArea;
174
+
175
+ (* CORRECT — guard the divisor *)
176
+ IF PipeArea > 0.0 THEN
177
+ FlowVelocity := FlowVolume / PipeArea;
178
+ ELSE
179
+ FlowVelocity := 0.0;
180
+ InputFaultBit := TRUE;
181
+ END_IF;
182
+ ```
183
+
184
+ ### Step 10 — Produce the output
185
+
186
+ Format findings using the Output section below.
187
+
188
+ ---
189
+
190
+ ## Output
191
+
192
+ Return findings in this structure:
193
+
194
+ ```
195
+ ## Verdict
196
+ <one sentence: pass / needs work / critical issues found>
197
+
198
+ ## Evidence level
199
+ <exported logic provided | I/O list provided | SRS/SIL assessment provided | partial artifacts | documentation-based | inference>
200
+
201
+ ## Findings
202
+
203
+ ### CRITICAL
204
+ - [C1] <finding title>: <description> — <remediation>
205
+
206
+ ### HIGH
207
+ - [H1] <finding title>: <description> — <remediation>
208
+
209
+ ### MEDIUM
210
+ - [M1] <finding title>: <description> — <remediation>
211
+
212
+ ### LOW
213
+ - [L1] <finding title>: <description> — <remediation>
214
+
215
+ ## Safe next actions
216
+ 1. <action>
217
+ 2. <action>
218
+
219
+ ## Open questions
220
+ - <question requiring user clarification>
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Security notes
226
+
227
+ - Never request or accept live controller IP addresses, plant-network hostnames, historian connection strings, OPC-UA endpoint URLs, or any identifier that maps a specific asset to a physical facility.
228
+ - This is a static review: do not attempt to connect to a PLC, write to a controller, modify running logic, or advise on bypassing any safety interlock or E-stop circuit.
229
+ - If a user requests a recommendation to disable, bypass, or weaken a safety interlock or SIF, refuse clearly and explain that doing so without a formal Management of Change (MOC) process and a SIL re-assessment is outside the scope of this review and is non-compliant with IEC 61508 and IEC 62443.
230
+ - Do not store, log, or repeat back plant identifiers, tag names that encode asset location, or process values that could reconstruct production data.
231
+ - Label every finding with its evidence basis so engineers can distinguish a confirmed defect in provided logic from an inference based on absent configuration.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: rpa-workflow-resilience-review
3
+ description: Use this skill when reviewing exported RPA workflow definitions for resilience and security defects that cause unattended bots to fail silently in production. Trigger when a user provides UiPath XAML files, Automation Anywhere bot exports, Power Automate Desktop flow definitions, Blue Prism process XML, or project dependency manifests, or asks why an unattended bot crashes silently, double-processes transactions, or times out under load. This skill reviews workflow definitions statically; it never connects to a live orchestrator, never runs a bot, and never requests runner credentials or orchestrator URLs.
4
+ allowed-tools: Read Grep Glob
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-17"
9
+ category: resilience
10
+ lifecycle: experimental
11
+ ---
12
+
13
+ # RPA Workflow Resilience Review
14
+
15
+ ## Purpose
16
+ This skill reviews exported RPA workflow definitions — UiPath XAML, Automation Anywhere task bots, Power Automate Desktop flows, and Blue Prism processes — for the resilience and security defects that destroy unattended production runs: hardcoded credentials, brittle UI selectors, missing exception handling, non-idempotent transaction logic, hard sleeps, and invisible failures. A bot that silently fails at 2 AM, double-posts a financial transaction, or leaks an RDP session is a production incident. This review catches those defects from the exported artifact before they reach the orchestrator scheduler.
17
+
18
+ ## Lean operating rules
19
+ - Treat any hardcoded credential, API key, connection string, or token present in a workflow variable, argument, activity property, or annotation as CRITICAL — these must be stored in the orchestrator credential vault or a secure asset; no exceptions.
20
+ - Treat UI selectors built on volatile attributes — absolute screen coordinates, positional `idx` values, dynamic window titles, auto-generated IDs from frameworks like WinForms or SAP session GUIDs — as HIGH; they break on any application UI change or version bump; use stable anchors (semantic names, fixed automation IDs, accessible names).
21
+ - Treat any application or UI interaction boundary with no enclosing exception handler (Try/Catch or platform equivalent) as HIGH — an unattended run dies silently with no diagnostics and no item-level status update.
22
+ - Treat a workflow that is not idempotent — re-running it after a partial failure re-submits a form, re-sends an email, re-posts a transaction, or re-creates a record with no already-processed guard — as HIGH; every unattended workflow must be re-runnable without side-effect duplication.
23
+ - Treat any use of a fixed Delay activity to wait for an application or UI element instead of an element-exists, on-element-appear, or application-ready condition as HIGH — this is the RPA equivalent of a hard sleep; it either races the application or pads every run unnecessarily.
24
+ - Treat the absence of a retry or recovery scope around transient steps, OR the presence of an unbounded or infinite retry with no cap or circuit-breaker, as HIGH — transient failures (network blips, SAP logon timeouts) need bounded retry; infinite loops produce zombie runs.
25
+ - Treat attended-only constructs — message boxes, input dialogs, manual user prompts, pop-up confirmations — inside a workflow marked or scheduled for unattended execution as HIGH; they block indefinitely and consume a robot license slot.
26
+ - Treat any selector, screenshot artifact, annotation, test-data variable, or hardcoded string in the workflow that contains PII, real customer names, account numbers, or production data as HIGH — sanitize before sharing or storing in source control.
27
+ - Treat the complete absence of logging and per-transaction-item status updates as MEDIUM — unattended failures become invisible until a downstream system breaks or an SLA is missed.
28
+ - Treat mutation of a shared orchestrator queue item or shared asset without a lock or transaction boundary as MEDIUM — concurrent robot instances can corrupt processing state.
29
+ - Treat missing cleanup logic on failure paths — browser sessions, SAP connections, RDP sessions, or file handles left open after an exception — as MEDIUM; leaked sessions exhaust connection pools and degrade the orchestrator environment.
30
+ - Do not recommend disabling exception handling or removing logging to simplify a workflow — refuse and explain that both are load-bearing safety mechanisms for unattended operation.
31
+ - Label every finding with its evidence basis: exported workflow provided, documentation-based, or inference from absent artifact.
32
+
33
+ ## References
34
+ Load these only when needed:
35
+ - [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
36
+
37
+ ## Response minimum
38
+ Return, at minimum:
39
+ - Credential and secrets findings (hardcoded values, unprotected variables)
40
+ - Selector resilience assessment (stable vs. volatile attribute strategy per workflow)
41
+ - Exception handling coverage (which interaction boundaries are unguarded)
42
+ - Idempotency and transaction-safety findings (re-run risk, queue locking)
43
+ - Wait strategy findings (fixed delays vs. element-ready conditions)
44
+ - Attended/unattended compatibility findings (blocking constructs in unattended flows)
45
+ - Observability findings (logging, item status, alerting)
46
+ - Severity-labelled finding list (critical / high / medium / low)
47
+ - Safe next actions
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "rpa-workflow-resilience-review",
3
+ "name": "RPA Workflow Resilience Review",
4
+ "type": "skill",
5
+ "provider": "generic",
6
+ "harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
7
+ "summary": "Review exported RPA workflow definitions (UiPath XAML, Automation Anywhere, Power Automate Desktop, Blue Prism) for resilience and security defects — hardcoded credentials, brittle selectors, missing exception handling, non-idempotent logic, fixed delays, and invisible failures — statically, without connecting to a live orchestrator.",
8
+ "source_type": "original",
9
+ "official_docs": [
10
+ "https://docs.uipath.com/studio/standalone/latest/user-guide/about-workflow-analyzer",
11
+ "https://docs.uipath.com/studio/standalone/latest/user-guide/about-debugging",
12
+ "https://docs.uipath.com/orchestrator/standalone/latest/user-guide/about-assets",
13
+ "https://docs.automationanywhere.com/",
14
+ "https://learn.microsoft.com/en-us/power-automate/guidance/coding-guidelines/overview",
15
+ "https://learn.microsoft.com/en-us/power-automate/guidance/coding-guidelines/error-handling"
16
+ ],
17
+ "security_notes": "Static review only — reads exported workflow definitions, never connects to a live orchestrator, never executes a bot, and never requests runner credentials, orchestrator URLs, or production queue data. Never accept workflow exports containing live PII, real customer data, or production connection strings; ask for sanitized snippets.",
18
+ "last_verified": "2026-05-17",
19
+ "path": "skills/qa/rpa-workflow-resilience-review",
20
+ "author": "github: Raishin",
21
+ "version": "0.1.0"
22
+ }
@@ -0,0 +1,210 @@
1
+ # Workflow and Output Contract
2
+
3
+ ## Workflow
4
+
5
+ ### Step 1 — Collect inputs
6
+
7
+ Ask the user to provide one or more of the following as sanitized exports (no orchestrator URLs, no runner credentials, no production queue data, no PII in test variables):
8
+ - Exported workflow definitions: UiPath `.xaml` files, Automation Anywhere `.atmx` or task JSON, Power Automate Desktop `.zip` or flow JSON, Blue Prism process XML
9
+ - Project dependency manifest or `project.json` (UiPath) / package descriptor
10
+ - Orchestrator asset list (names and types only — no values, no credential content)
11
+ - Optional: a recent orchestrator job log excerpt showing the failure (sanitized — no connection strings, no stack traces containing file paths with tenant IDs)
12
+
13
+ If only a partial set is provided, note which inputs are absent and scope findings accordingly. A workflow without its project manifest leaves dependency and version blind spots. An asset list without the workflow leaves credential-usage patterns invisible — say so explicitly.
14
+
15
+ ### Step 2 — Credential and secrets audit
16
+
17
+ Scan every workflow variable, argument, activity property, configuration file, and annotation for hardcoded secrets.
18
+
19
+ **2a. Hardcoded credentials**
20
+
21
+ ```xml
22
+ <!-- CRITICAL — password stored as a plain workflow argument default -->
23
+ <x:Property Name="SAPPassword" Type="InArgument(x:String)" />
24
+ <!-- Default value: "P@ssw0rd2024" -->
25
+ ```
26
+
27
+ Credentials must live exclusively in the orchestrator credential vault (UiPath Orchestrator Assets of type Credential, AA Control Room credentials, Power Platform environment variables with secret type, or Blue Prism credential manager). The workflow retrieves them at runtime via a `Get Credential` / `Get Asset` activity and holds them in a `SecureString` variable scoped to the minimum lifetime needed.
28
+
29
+ **2b. Connection strings and API tokens**
30
+
31
+ ```xml
32
+ <!-- CRITICAL — API key baked into an Assign activity -->
33
+ <Assign>
34
+ <Assign.To><OutArgument x:TypeArguments="x:String">apiKey</OutArgument></Assign.To>
35
+ <Assign.Value><InArgument x:TypeArguments="x:String">sk-live-abc123XYZ</InArgument></Assign.Value>
36
+ </Assign>
37
+ ```
38
+
39
+ Any string matching patterns for API keys (`sk-`, `Bearer `, `token=`, JDBC/ODBC DSNs with `Password=`) is CRITICAL regardless of whether it looks like a placeholder.
40
+
41
+ ### Step 3 — Selector resilience audit
42
+
43
+ Review every UI activity's selector for volatile versus stable attributes.
44
+
45
+ | Selector attribute | Verdict | Why |
46
+ |---|---|---|
47
+ | `automationid`, `name`, `controltype` from accessibility tree | preferred | stable across layout changes and minor version bumps |
48
+ | Fixed `title` with exact window name (non-session-specific) | acceptable | stable if the application version is locked |
49
+ | `idx` positional attribute | HIGH | breaks when the UI gains or loses elements above the target |
50
+ | Absolute screen coordinates (`x`, `y` in click activity) | HIGH | breaks on any resolution, DPI, or window-size change |
51
+ | Dynamic `title` containing session IDs, timestamps, or user names | HIGH | every robot instance generates a unique value |
52
+ | Auto-generated IDs (WinForms `textBox1`, SAP session `wnd[0]/usr/txtRSYST-BNAME`) with session ordinals | HIGH | ordinal changes when multiple SAP sessions are open |
53
+ | Partial match (`*` wildcard) on a stable prefix | acceptable | use sparingly; too broad a wildcard matches wrong elements |
54
+
55
+ Flag each HIGH selector with the activity name, the volatile attribute, and the recommended stable replacement.
56
+
57
+ **Example remediation for a SAP session-ordinal selector:**
58
+
59
+ ```xml
60
+ <!-- HIGH — wnd[0] ordinal is relative to open SAP windows -->
61
+ <uipath:TypeInto Selector="&lt;wnd app='saplogon.exe' title='SAP Easy Access' /&gt;&lt;wnd idx='1' /&gt;" />
62
+
63
+ <!-- CORRECT — use the window's automation ID instead -->
64
+ <uipath:TypeInto Selector="&lt;wnd app='saplogon.exe' automationid='MainWindow' /&gt;" />
65
+ ```
66
+
67
+ ### Step 4 — Exception handling coverage audit
68
+
69
+ Verify that every application or UI interaction boundary is wrapped in an exception handler.
70
+
71
+ Check for:
72
+ - Any `Click`, `Type Into`, `Get Text`, `Attach Browser`, `Open Application`, `Send Hotkey`, or platform-equivalent activity outside a Try/Catch or Retry Scope → HIGH (silent failure on the happy path; unattended run terminates with no item status update)
73
+ - A Try/Catch that catches `System.Exception` but only logs a generic message with no item-level failure status update to the orchestrator queue → MEDIUM (the exception is swallowed; the queue item stays In Progress forever)
74
+ - A Retry Scope with `NumberOfRetries` set to 0 or left at default without justification → MEDIUM (equivalent to no retry on transient failures)
75
+ - No Global Exception Handler configured at the project level → MEDIUM (any unhandled exception in an invoked workflow bypasses all local handlers)
76
+
77
+ ```xml
78
+ <!-- HIGH — UI interaction with no surrounding exception handler -->
79
+ <uipath:Click Selector="&lt;html app='chrome.exe' /&gt;&lt;webctrl id='submit-btn' /&gt;" />
80
+
81
+ <!-- CORRECT — wrapped in Try/Catch with queue item failure status on catch -->
82
+ <TryCatch>
83
+ <Try>
84
+ <uipath:Click Selector="..." />
85
+ </Try>
86
+ <Catches>
87
+ <Catch x:TypeArguments="s:Exception">
88
+ <uipath:SetTransactionStatus Status="Failed" ErrorMessage="[ExceptionMessage]" />
89
+ <Rethrow />
90
+ </Catch>
91
+ </Catches>
92
+ </TryCatch>
93
+ ```
94
+
95
+ ### Step 5 — Idempotency and transaction safety audit
96
+
97
+ Verify that every workflow is safe to re-run after a partial failure without duplicating side effects.
98
+
99
+ - A workflow that submits a form, sends an email, posts a financial transaction, or creates a record with no "already processed" guard (a status field check, a queue item deduplication key, a database flag) → HIGH
100
+ - A workflow that reads from an orchestrator queue but does not update the item status to `Successful` or `Failed` on every exit path → HIGH (items stuck In Progress block the queue and prevent retry)
101
+ - Two robot instances that can claim the same queue item simultaneously with no server-side lock (i.e., not using orchestrator's built-in queue transaction model, instead reading from a shared spreadsheet with no advisory lock) → MEDIUM
102
+ - No rollback or compensating transaction when a multi-step process fails partway through → MEDIUM
103
+
104
+ ```xml
105
+ <!-- HIGH — no idempotency guard before submitting payment -->
106
+ <uipath:Click Selector="'Submit Payment'" />
107
+
108
+ <!-- CORRECT — check whether this transaction ID was already posted -->
109
+ <uipath:GetQueueItemData ItemField="Reference" Result="[transactionRef]" />
110
+ <If Condition="[alreadyPostedLookup(transactionRef)]">
111
+ <Then>
112
+ <uipath:SetTransactionStatus Status="Successful" />
113
+ <!-- skip re-submission -->
114
+ </Then>
115
+ <Else>
116
+ <uipath:Click Selector="'Submit Payment'" />
117
+ <uipath:SetTransactionStatus Status="Successful" />
118
+ </Else>
119
+ </If>
120
+ ```
121
+
122
+ ### Step 6 — Wait strategy audit
123
+
124
+ Scan every workflow for fixed Delay activities used as application synchronization.
125
+
126
+ - Any `Delay` activity with a hardcoded duration (1 s, 3 s, 5 s) placed before a UI interaction → HIGH (races the application on fast machines; adds unnecessary latency on slow ones; the RPA equivalent of `Thread.Sleep`)
127
+ - `WaitForReady` property left at `None` on a UI activity that targets a freshly loaded page or dialog → HIGH (the activity fires before the target element exists)
128
+ - A pattern of `Delay` + `Element Exists` polling in a loop instead of `Wait Element Vanish` / `On Element Appear` / `Check App State` → MEDIUM
129
+
130
+ ```xml
131
+ <!-- HIGH — hard sleep before clicking a dynamically loaded button -->
132
+ <Delay Duration="[00:00:03]" />
133
+ <uipath:Click Selector="'Confirm'" />
134
+
135
+ <!-- CORRECT — wait for the element to become ready -->
136
+ <uipath:WaitForElement Selector="'Confirm'" Timeout="[00:00:30]" />
137
+ <uipath:Click Selector="'Confirm'" />
138
+ ```
139
+
140
+ ### Step 7 — Attended/unattended compatibility audit
141
+
142
+ Identify attended-only constructs inside workflows scheduled or deployed for unattended execution.
143
+
144
+ - Any `Message Box`, `Input Dialog`, `Prompt` activity, or platform-equivalent user interaction prompt inside a workflow that will run on an unattended robot or headless VM → HIGH (blocks indefinitely; consumes a licensed robot slot until manually killed)
145
+ - A workflow that assumes a logged-in desktop session or a specific screen resolution without a session-setup or auto-login step → HIGH
146
+ - A workflow that calls `Kill Process` or `Close Application` on a process that may not be running (no existence check first) → MEDIUM
147
+
148
+ ### Step 8 — Observability audit
149
+
150
+ Verify that failures are visible before downstream systems surface them.
151
+
152
+ - No `Log Message` activities at key decision points, transaction boundaries, or exception handlers → MEDIUM (failures are invisible until SLA breach)
153
+ - No per-item status update (`Set Transaction Status` or equivalent) on every exit path, including exception branches → MEDIUM (queue backlog grows silently)
154
+ - No alert or notification on repeated failure (three consecutive `Failed` items, orchestrator alert rule, or a monitoring webhook call) → MEDIUM
155
+
156
+ ### Step 9 — Cleanup and session hygiene audit
157
+
158
+ Verify that failure paths close all acquired resources.
159
+
160
+ - Browser sessions, SAP logons, application windows, or file handles acquired in the workflow with no corresponding close or kill activity on the exception path → MEDIUM (session leaks; connection pool exhaustion on the orchestrator VM)
161
+ - A Finally block absent from Try/Catch sequences that open external connections → MEDIUM
162
+
163
+ ### Step 10 — Produce the output
164
+
165
+ Format findings using the Output section below.
166
+
167
+ ---
168
+
169
+ ## Output
170
+
171
+ Return findings in this structure:
172
+
173
+ ```
174
+ ## Verdict
175
+ <one sentence: pass / needs work / critical issues found>
176
+
177
+ ## Evidence level
178
+ <exported workflow provided | partial artifacts | documentation-based | inference>
179
+
180
+ ## Findings
181
+
182
+ ### CRITICAL
183
+ - [C1] <finding title>: <description> — <remediation>
184
+
185
+ ### HIGH
186
+ - [H1] <finding title>: <description> — <remediation>
187
+
188
+ ### MEDIUM
189
+ - [M1] <finding title>: <description> — <remediation>
190
+
191
+ ### LOW
192
+ - [L1] <finding title>: <description> — <remediation>
193
+
194
+ ## Safe next actions
195
+ 1. <action>
196
+ 2. <action>
197
+
198
+ ## Open questions
199
+ - <question requiring user clarification>
200
+ ```
201
+
202
+ ---
203
+
204
+ ## Security notes
205
+
206
+ - Never request or accept orchestrator URLs with embedded credentials, runner service-account passwords, production queue data, or PII in variable defaults. Ask for sanitized exports with placeholder values.
207
+ - This is a static review: do not connect to a live orchestrator, execute a bot, or resolve orchestrator asset values. The review is based solely on the exported workflow artifact.
208
+ - Do not recommend removing exception handling or disabling logging to simplify a workflow — both are load-bearing safety mechanisms. Refuse and explain.
209
+ - Do not recommend hardcoding credentials even temporarily, even in a test workflow — credential exposure in source control is irreversible once committed.
210
+ - If a workflow export contains apparent PII (real customer names, account numbers, national IDs in variable defaults or test-data annotations), flag it as HIGH, redact it from the review output, and instruct the user to sanitize before re-sharing.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: test-coverage-quality-review
3
+ description: Use this skill when reviewing a test suite for assertion quality rather than coverage percentage — detecting coverage theater, where line/branch coverage is high but the tests would not catch a regression. Trigger when a user provides test files, a coverage report, or asks whether their tests are actually meaningful, why bugs ship despite high coverage, or how to set a coverage gate. This skill reviews test artifacts statically; it does not execute tests or run a coverage tool.
4
+ allowed-tools: Read Grep Glob
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-17"
9
+ category: delivery
10
+ lifecycle: experimental
11
+ ---
12
+
13
+ # Test Coverage Quality Review
14
+
15
+ ## Purpose
16
+ This skill reviews a test suite for whether its tests would actually catch a regression — not whether a coverage tool reports a high percentage. High line coverage with weak assertions is *coverage theater*: code runs during the test, the number looks good in CI, and the test still passes when the behavior breaks. The review separates exercised code from verified behavior, surfaces assertion-free and tautological tests, finds mock over-specification that tests the test instead of the system, and recommends a coverage gate that measures meaning rather than line execution.
17
+
18
+ ## Lean operating rules
19
+ - Treat a test with no assertion — it calls the code, no error is thrown, the test passes — as HIGH. Line coverage counts it; it verifies nothing.
20
+ - Treat tautological assertions (`expect(true).toBe(true)`, `expect(result).toBe(result)`, snapshot tests auto-updated on every change without review) as HIGH — they cannot fail when behavior changes.
21
+ - Treat assertions that only check shape, not value (`expect(result).toBeDefined()`, `expect(res.status).toBeTruthy()`, `expect(arr.length).toBeGreaterThan(0)`) where an exact value is knowable as MEDIUM — they pass for wrong values.
22
+ - Treat tests that assert the mock was called but never assert the result computed from it as HIGH — they test the wiring, not the behavior.
23
+ - Treat over-mocked unit tests where every collaborator is mocked and the assertions only restate the mock setup as HIGH — the test is a mirror of itself and proves nothing about integration.
24
+ - Treat the absence of error-path, empty-input, and boundary tests for code that has those branches as HIGH — the happy path inflates the coverage number while real failure modes are untested.
25
+ - Treat a coverage **percentage gate** as the sole quality signal as MEDIUM — a line-percentage threshold is easily satisfied by assertion-free tests; recommend pairing it with assertion-density and changed-line coverage.
26
+ - Treat snapshot tests as the primary verification for logic-bearing output as MEDIUM — snapshots detect change, not correctness, and decay into rubber-stamped updates.
27
+ - Treat coverage measured only as a global percentage with no per-changed-file or diff coverage as MEDIUM — new untested code hides behind a large tested codebase.
28
+ - Treat 100% coverage as a target presented as a goal as MEDIUM — it incentivizes theater; the goal is meaningful assertions on behavior that matters.
29
+ - Do not recommend raising the coverage threshold as a quality improvement — recommend assertion strength and diff coverage instead.
30
+ - Label every finding with evidence basis: test source provided, coverage report provided, documentation-based, or inference.
31
+
32
+ ## References
33
+ Load these only when needed:
34
+ - [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
35
+
36
+ ## Response minimum
37
+ Return, at minimum:
38
+ - Assertion quality findings (assertion-free, tautological, shape-only)
39
+ - Mock usage findings (call-assertion-only, over-mocking)
40
+ - Branch coverage gap assessment (error paths, boundaries, empty inputs)
41
+ - Coverage gate assessment (percentage-only vs. diff/assertion-aware)
42
+ - Snapshot test reliance assessment
43
+ - Severity-labelled finding list (critical / high / medium / low)
44
+ - Safe next actions
@@ -0,0 +1,21 @@
1
+ {
2
+ "id": "test-coverage-quality-review",
3
+ "name": "Test Coverage Quality Review",
4
+ "type": "skill",
5
+ "provider": "generic",
6
+ "harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
7
+ "summary": "Review a test suite for assertion quality over coverage percentage — detecting coverage theater, assertion-free and tautological tests, mock over-specification, and untested branches, and recommending a meaningful coverage gate. Static review only.",
8
+ "source_type": "original",
9
+ "official_docs": [
10
+ "https://martinfowler.com/bliki/TestCoverage.html",
11
+ "https://martinfowler.com/articles/mocksArentStubs.html",
12
+ "https://istanbul.js.org/docs/tutorials/coverage/",
13
+ "https://jestjs.io/docs/configuration",
14
+ "https://docs.pytest.org/en/stable/how-to/assert.html"
15
+ ],
16
+ "security_notes": "Static review only — reads test source and coverage reports, never executes tests or runs a coverage tool. Never request or accept credentials, fixtures containing real customer data, or production database snapshots; ask for sanitized test code.",
17
+ "last_verified": "2026-05-17",
18
+ "path": "skills/qa/test-coverage-quality-review",
19
+ "author": "github: Raishin",
20
+ "version": "0.1.0"
21
+ }