@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,43 @@
1
+ ---
2
+ name: influencer-disclosure-compliance-review
3
+ description: Use this skill when reviewing an influencer campaign audit pack — campaign brief, creator agreement excerpt, platform post descriptions or screenshot descriptions, and the disclosure format and placement specification — against FTC Endorsement Guides to identify undisclosed material connections, inadequate disclosure placement, and brand liability exposure. Trigger when a user provides a structured influencer campaign audit pack and asks whether disclosures meet FTC requirements, whether the brief contains problematic instructions, or whether the brand faces liability for creator conduct under 16 CFR Part 255.
4
+ allowed-tools: Read Grep Glob
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-17"
9
+ category: compliance
10
+ lifecycle: experimental
11
+ ---
12
+
13
+ # Influencer Disclosure Compliance Review
14
+
15
+ ## Purpose
16
+ This skill reviews a structured influencer campaign audit pack against the FTC Endorsement Guides (16 CFR Part 255, updated 2023) and FTC Act Section 5 to identify undisclosed material connections, inadequate disclosure placement, brand-instructed deceptive practices, and brand liability exposure. The FTC has consistently held that a "material connection" — payment, gifted product, free service, family or employment relationship, or any other material incentive — must be clearly and conspicuously disclosed so that consumers can weight the endorsement appropriately. A disclosure buried after the "more" fold, placed only in a hashtag crowd, or omitted entirely is a violation. The review assesses the audit pack as a static document: it does not generate new campaign content, draft creator instructions, or approve posts. This skill is scoped strictly to reviewing an existing audit pack; for ad-hoc content generation, use a different skill.
17
+
18
+ ## Lean operating rules
19
+ - Treat any post description where a material connection (payment, gifted product, free service, brand affiliation) exists but no disclosure appears in the visible portion of the content — before the "more" or "see more" fold on Instagram, TikTok, or YouTube — as HIGH. FTC Endorsement Guides §255.5 requires clear-and-conspicuous disclosure visible without requiring additional user action.
20
+ - Treat gifted product or complimentary service received by the creator, regardless of whether cash payment was made, as a material connection requiring disclosure. Flag the absence of any gifted-product disclosure in the post description as HIGH.
21
+ - Treat a campaign brief that instructs creators to "only share positive experiences," suppress honest opinions, or omit negative aspects of the product as HIGH. Instructing suppression of honest opinion is a deceptive practice under 16 CFR §255.5 and creates brand liability.
22
+ - Treat disclosure language placed exclusively within a crowd of hashtags (e.g., `#ad` buried among 20 other hashtags) where it is not likely to stand out as HIGH — the FTC Endorsement Guides require disclosures to be clear and conspicuous, not hidden.
23
+ - Treat a creator agreement that contains no disclosure obligation clause, or whose clause does not specify placement requirements, as HIGH — the brand bears responsibility for ensuring adequate disclosure and must contractually enforce it.
24
+ - Treat verbal or audio-only disclosures in video content without simultaneous on-screen text disclosure as MEDIUM for platforms where superimposed text is technically feasible — the FTC's 2023 updated guides indicate disclosures should be simultaneous with the relevant content.
25
+ - Treat the use of platform-native "Paid Partnership" or "Branded Content" labels as a positive control but note it does not eliminate the obligation to make disclosures in the caption or verbally where the connection is not otherwise obvious.
26
+ - Flag any disclosure that uses ambiguous language — "collab," "sp," "partner," "ambassador" without context — without a plain-language equivalent as MEDIUM; the FTC guidance indicates that simple terms like "#ad" or "#sponsored" are preferred.
27
+ - Flag the absence of a documented disclosure review or approval step in the campaign workflow as MEDIUM — brands bear ongoing liability for non-compliant creator posts.
28
+ - Do not recommend suppressing, editing, or withholding any creator's honest opinion. Remediation recommendations must preserve the creator's right to share genuine views.
29
+ - Label every finding with evidence basis: brief provided, contract provided, post description provided, disclosure spec provided, or inference from missing document.
30
+
31
+ ## References
32
+ Load these only when needed:
33
+ - [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
34
+
35
+ ## Response minimum
36
+ Return, at minimum:
37
+ - Material-connection disclosure assessment (payment, gifted product, free service, other incentives)
38
+ - Disclosure placement and conspicuousness assessment (pre-fold visibility, hashtag crowd, verbal vs. on-screen)
39
+ - Brief and contract review for problematic instructions (opinion suppression, mandatory positivity)
40
+ - Creator agreement disclosure-obligation clause assessment
41
+ - Platform-native label usage assessment
42
+ - Severity-labelled finding list (critical / high / medium / low)
43
+ - Safe next actions
@@ -0,0 +1,22 @@
1
+ {
2
+ "id": "influencer-disclosure-compliance-review",
3
+ "name": "Influencer Disclosure Compliance Review",
4
+ "type": "skill",
5
+ "provider": "marketing",
6
+ "harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
7
+ "summary": "Review influencer campaign audit packs — brief, contract, post descriptions, and disclosure placement specs — for FTC Endorsement Guide violations: undisclosed material connections, inadequate disclosure placement, and brand liability exposure.",
8
+ "source_type": "original",
9
+ "official_docs": [
10
+ "https://www.ftc.gov/legal-library/browse/rules/endorsement-guides",
11
+ "https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-255",
12
+ "https://www.ftc.gov/system/files/ftc_gov/pdf/ftc-endorsement-guides-final-rule.pdf",
13
+ "https://www.ftc.gov/legal-library/browse/statutes/federal-trade-commission-act",
14
+ "https://www.ftc.gov/business-guidance/resources/ftcs-endorsement-guides-what-people-are-asking"
15
+ ],
16
+ "security_notes": "Review works from a structured influencer campaign audit pack only — brief, contract excerpt, post descriptions, and disclosure spec. Never accept raw personal data about creators, unpublished negotiations, or brand financial terms beyond what is needed to assess disclosure adequacy. This is a static compliance review; it does not generate campaign content or creator instructions.",
17
+ "last_verified": "2026-05-17",
18
+ "path": "skills/marketing/influencer-disclosure-compliance-review",
19
+ "author": "github: Raishin",
20
+ "version": "0.1.0",
21
+ "lifecycle": "experimental"
22
+ }
@@ -0,0 +1,156 @@
1
+ # Workflow and Output Contract
2
+
3
+ ## Workflow
4
+
5
+ ### Step 1 — Collect inputs
6
+
7
+ Ask the user to provide the influencer campaign audit pack as a structured document. The pack should include:
8
+ - **Campaign brief**: objectives, key messages, deliverable specifications, any instructions to creators about tone or content scope
9
+ - **Creator agreement excerpt**: compensation terms (cash, gifted product, affiliate commission, free service), disclosure obligation clause, content approval process
10
+ - **Post descriptions**: written descriptions of the posts as published or planned, or a text description of screenshot content — including caption text, hashtags used, and where in the caption any disclosure language appears relative to the "more" fold
11
+ - **Disclosure format and placement specification**: the brand's stated requirement for how creators must disclose (e.g., "#ad in first line," "verbal disclosure in first 30 seconds," "Instagram Paid Partnership label required")
12
+
13
+ Note which documents are absent. If the brief is missing, note that brief-level findings cannot be assessed. If post descriptions are missing, note that placement findings are inference only.
14
+
15
+ ### Step 2 — Material connection identification
16
+
17
+ Before assessing disclosures, identify all material connections present in the campaign:
18
+ - **Cash payment**: flat fee, CPM, performance-based commission, affiliate fee
19
+ - **Gifted product**: product provided free of charge regardless of whether additional payment was made — the FTC is explicit that product gifts are material connections
20
+ - **Complimentary service**: free access, free subscription, free experience
21
+ - **Brand affiliation**: creator is an employee, brand ambassador, family member of a brand employee, or investor in the brand
22
+ - **Other incentives**: contest entry, travel, accommodation, ticket access
23
+
24
+ ```text
25
+ # Example: material connections present in this campaign
26
+ - Cash payment: $[AMOUNT_REDACTED] flat fee per post
27
+ - Gifted product: one unit of [PRODUCT] provided prior to post
28
+ - No affiliate commission structure found in contract excerpt
29
+ ```
30
+
31
+ Any combination of the above constitutes a material connection requiring disclosure under 16 CFR §255.5. Document every connection found.
32
+
33
+ ### Step 3 — Brief review for problematic instructions
34
+
35
+ Review the campaign brief for instructions that could themselves be deceptive practices or brand liability triggers:
36
+ - **Opinion suppression**: Instructions to "only share positive experiences," "avoid mentioning [negative aspect]," "only post if you love it," or equivalent. Under 16 CFR §255.5 and FTC Act Section 5, directing a creator to suppress honest opinion is a deceptive practice attributable to the brand.
37
+ - **Mandatory positivity**: Instructions requiring the creator to express enthusiasm, use superlatives, or frame the product in exclusively positive terms.
38
+ - **Approval-gate bias**: An approval process where the brand reviews content before publication and withholds approval for content that includes balanced or negative views — functionally equivalent to opinion suppression.
39
+ - **False authenticity framing**: Instructions to present sponsored content as organic discovery (e.g., "write as if you found this yourself").
40
+
41
+ ```text
42
+ # HIGH — brief instructs opinion suppression
43
+ Brief language: "Please only share your experience if it is positive. If you have concerns,
44
+ reach out to us directly rather than including them in your post."
45
+
46
+ # COMPLIANT — brief preserves honest opinion
47
+ Brief language: "Share your genuine experience with the product. If you have concerns,
48
+ you are welcome to include them. We ask only that you disclose the partnership."
49
+ ```
50
+
51
+ ### Step 4 — Disclosure placement and conspicuousness assessment
52
+
53
+ For each post description, assess whether disclosure language is clear and conspicuous:
54
+
55
+ **Pre-fold visibility rule**: On platforms with truncated captions (Instagram, TikTok, Facebook), disclosure language must appear before the "more" or "see more" fold — i.e., in the first approximately 125 characters visible without user interaction. A disclosure that appears after the fold is not clear and conspicuous regardless of its content.
56
+
57
+ ```text
58
+ # HIGH — disclosure after the fold
59
+ Caption (visible before "more"):
60
+ "I've been obsessed with this skincare routine lately — here's what I've been using
61
+ every morning to get glowing skin. Products linked below! 🌟 [120 chars so far]"
62
+ [...more...]
63
+ "#ad #sponsored #gifted"
64
+
65
+ # COMPLIANT — disclosure in first line, before fold
66
+ Caption:
67
+ "AD | [Brand] gifted me this skincare set and I've been loving it..."
68
+ ```
69
+
70
+ **Hashtag crowd burial**: A disclosure hashtag (`#ad`, `#sponsored`) buried within a group of 15 or more other hashtags at the end of a caption is not clear and conspicuous. Assess whether the disclosure hashtag stands out.
71
+
72
+ **Video disclosures**: For video content, assess whether disclosure is:
73
+ - Verbal: stated clearly and early (within first 30 seconds for videos over 2 minutes)
74
+ - On-screen text: present simultaneously with the verbal mention or the first reference to the product
75
+ - Not reliant solely on a description-box disclosure that viewers may not see
76
+
77
+ **Platform-native labels**: Note whether Instagram's "Paid Partnership" label, TikTok's "Branded Content" toggle, or YouTube's paid promotion disclosure checkbox were used. These are positive controls but do not eliminate caption or verbal disclosure obligations where the connection might otherwise not be obvious.
78
+
79
+ ### Step 5 — Creator agreement disclosure-obligation clause assessment
80
+
81
+ Review the creator agreement excerpt for:
82
+ - **Presence of a disclosure clause**: Does the agreement explicitly require the creator to disclose the material connection in every post?
83
+ - **Placement specificity**: Does the clause specify where in the post the disclosure must appear (e.g., "in the first line of the caption before any truncation")?
84
+ - **Platform coverage**: Does the clause cover all platforms on which the creator will post, including Stories, Reels, TikTok, YouTube Shorts, and any cross-posting?
85
+ - **Enforcement mechanism**: Does the agreement give the brand a right to request correction of a non-compliant post?
86
+
87
+ A creator agreement with no disclosure clause, or with a disclosure clause that does not specify placement, leaves the brand exposed — the FTC holds brands responsible for ensuring disclosures are made even when individual creators are nominally independent.
88
+
89
+ ```text
90
+ # HIGH — no disclosure clause
91
+ Creator agreement excerpt: [No disclosure obligation language found in provided excerpt]
92
+
93
+ # COMPLIANT — specific placement requirement
94
+ Creator agreement clause: "Creator shall include '#ad' or '#sponsored' as the first
95
+ hashtag or in the first line of the caption on each post, before any caption truncation."
96
+ ```
97
+
98
+ ### Step 6 — Disclosure format adequacy assessment
99
+
100
+ Assess whether the disclosure language specified in the brief or used in post descriptions meets FTC clarity standards:
101
+ - **Acceptable terms**: `#ad`, `#sponsored`, "Advertisement," "Paid partnership with [Brand]," "I received this product for free from [Brand]"
102
+ - **Ambiguous terms** (flag as MEDIUM): `#collab`, `#sp`, `#partner`, `#ambassador` without further context — the FTC guidance notes these may not be universally understood
103
+ - **Insufficient terms**: `#gifted` alone may not be sufficient if it does not convey the commercial nature of the relationship; `#affiliate` is more specific but may still require context
104
+
105
+ ### Step 7 — Produce the output
106
+
107
+ Format findings using the Output section below.
108
+
109
+ ---
110
+
111
+ ## Output
112
+
113
+ Return findings in this structure:
114
+
115
+ ```
116
+ ## Verdict
117
+ <one sentence: pass / needs work / critical issues found>
118
+
119
+ ## Evidence level
120
+ <brief provided | contract provided | post descriptions provided | disclosure spec provided | inference>
121
+
122
+ ## Material connections identified
123
+ <list all material connections found in the audit pack>
124
+
125
+ ## Findings
126
+
127
+ ### CRITICAL
128
+ - [C1] <finding title>: <description> — <remediation>
129
+
130
+ ### HIGH
131
+ - [H1] <finding title>: <description> — <remediation>
132
+
133
+ ### MEDIUM
134
+ - [M1] <finding title>: <description> — <remediation>
135
+
136
+ ### LOW
137
+ - [L1] <finding title>: <description> — <remediation>
138
+
139
+ ## Safe next actions
140
+ 1. <action>
141
+ 2. <action>
142
+
143
+ ## Open questions
144
+ - <question requiring user clarification>
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Security and scope notes
150
+
151
+ - This is a static review of a structured influencer campaign audit pack. The skill does not generate new post content, draft creator instructions, or approve posts for publication.
152
+ - Never recommend that creators suppress honest opinions, omit negative experiences, or present sponsored content as organic discovery — these are themselves FTC violations and increase brand liability.
153
+ - Brand liability under FTC Act Section 5 extends to deceptive acts by creators the brand directed or had reason to know about. A finding of brief-level opinion suppression instructions is a brand liability issue, not only a creator issue.
154
+ - The FTC Endorsement Guides were substantially updated in 2023 — verify that any prior campaign documentation was produced with awareness of the updated requirements, particularly regarding disclosure placement and the treatment of gifted product.
155
+ - When evidence is partial (e.g., no post descriptions provided), scope placement findings to inference and state assumptions explicitly.
156
+ - A serious finding here (e.g., systematic non-disclosure across a campaign) may warrant notification to legal counsel before the campaign continues or expands.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: lookalike-audience-upload-compliance-review
3
+ description: Use this skill when reviewing custom-audience and lookalike-audience upload specifications for hashing adequacy, PII field scope, consent-basis validity, and platform data-sharing restrictions before the upload is submitted to Meta, Google, LinkedIn, or TikTok. Trigger when a user provides an audience upload field-mapping specification (CSV schema or platform upload template), declared hashing method, consent-basis documentation, or originating list segment metadata — or when they ask whether their customer list upload or lookalike seed list is compliant with GDPR, CCPA/CPRA, or platform terms before uploading.
4
+ allowed-tools: Read Grep Glob
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-17"
9
+ category: data
10
+ lifecycle: experimental
11
+ ---
12
+
13
+ # Lookalike Audience Upload Compliance Review
14
+
15
+ ## Purpose
16
+ This skill reviews custom-audience and lookalike-audience upload specifications for hashing adequacy, PII field scope, consent-basis validity, and platform data-sharing restrictions before the upload is submitted to Meta, Google, LinkedIn, or TikTok. Customer list uploads are one of the most common data-sharing vectors in marketing operations: a brand transmits personal data — email, phone, name, address — to an ad platform under the guise of audience matching. The legal basis, the scope of consent granted, the minimality of the field set, and the reversibility of the hashing method all determine whether the upload is a lawful data-sharing arrangement or an unauthorized third-party disclosure that violates GDPR Article 5 and 6, CCPA/CPRA §1798.100, and platform terms. The review catches underhashed identifiers, oversized field sets, consent-scope mismatches, and re-identification surfaces before the upload fires.
17
+
18
+ ## Lean operating rules
19
+ - Treat email addresses, phone numbers, or other direct identifiers hashed with MD5 rather than SHA-256 (or better) as HIGH — MD5 is trivially reversible via rainbow table for common email formats and does not constitute adequate pseudonymization under GDPR Article 5(1)(f).
20
+ - Treat a seed list for a financial-services, insurance, or healthcare lookalike that includes customers who consented only to service communications (transactional consent) as HIGH — sharing that list with an ad platform for advertising targeting exceeds the consent scope, constituting unauthorized "sharing" of personal information under CPRA §1798.100 and a purpose-limitation violation under GDPR Article 5(1)(b).
21
+ - Treat a field mapping that includes home postal code combined with email and phone as HIGH — the combination creates a high-confidence re-identification surface beyond what the matching algorithm requires, violating the data-minimization principle under GDPR Article 5(1)(c) and FTC data-minimization guidance.
22
+ - Treat unhashed upload of any direct identifier (plain-text email, phone, name) as HIGH — no platform terms permit plain-text PII upload, and transmission in the clear is an unequivocal data breach of the identifier.
23
+ - Treat the absence of a documented lawful basis (GDPR Article 6) for the data-sharing arrangement — neither the original collection basis nor a separate legitimate-interest or consent basis for sharing with the ad platform — as HIGH.
24
+ - Treat lookalike seed lists that include individuals in jurisdictions where the operator has no data-processing agreement with the ad platform (e.g., EU residents shared with a non-adequate-country platform without SCCs) as HIGH — the transfer itself is unlawful under GDPR Chapter V.
25
+ - Flag field sets that include date of birth, precise geolocation, or transaction-level history where only email and phone are needed for matching as MEDIUM — over-inclusion violates data minimization and increases re-identification risk.
26
+ - Flag platform-specific restrictions violated by the field mapping — e.g., Meta's Customer List Custom Audience terms prohibit health, financial account data, and sensitive categories — as MEDIUM when inclusion is marginal but potentially violating.
27
+ - Flag the absence of a documented retention or deletion schedule for the matched and unmatched records on the platform side as MEDIUM — GDPR Article 5(1)(e) requires storage limitation; the user should confirm platform-side deletion timelines.
28
+ - Do not recommend uploading any field not strictly needed for the matching objective; default to the minimum field set (normalized lowercase email SHA-256 hashed) unless the user explicitly requires phone or name for match-rate reasons.
29
+ - Label every finding with evidence basis: field-mapping spec provided, hashing method declared, consent documentation provided, or inference from missing information.
30
+
31
+ ## References
32
+ Load these only when needed:
33
+ - [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
34
+
35
+ ## Response minimum
36
+ Return, at minimum:
37
+ - Hashing adequacy assessment (algorithm, where hashing occurs, platform requirement alignment)
38
+ - PII field-scope and data-minimization assessment (fields included vs. fields needed)
39
+ - Consent-basis validity assessment (original collection basis, scope for ad-platform sharing)
40
+ - Cross-border transfer assessment (GDPR Chapter V if EU data subjects are in the list)
41
+ - Platform-specific restriction check (Meta, Google, LinkedIn, TikTok terms)
42
+ - Re-identification surface assessment (field combination risk)
43
+ - Severity-labelled finding list (critical / high / medium / low)
44
+ - Safe next actions
@@ -0,0 +1,21 @@
1
+ {
2
+ "id": "lookalike-audience-upload-compliance-review",
3
+ "name": "Lookalike Audience Upload Compliance Review",
4
+ "type": "skill",
5
+ "provider": "marketing",
6
+ "harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
7
+ "summary": "Review custom-audience and lookalike-audience upload specifications for hashing adequacy, PII field scope, consent-basis validity, and platform data-sharing restrictions before upload to Meta, Google, LinkedIn, or TikTok — catching underhashed identifiers, consent-scope mismatches, and re-identification surfaces.",
8
+ "source_type": "original",
9
+ "official_docs": [
10
+ "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679",
11
+ "https://oag.ca.gov/privacy/ccpa",
12
+ "https://www.ftc.gov/reports/data-brokers-call-transparency-accountability",
13
+ "https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences/",
14
+ "https://support.google.com/google-ads/answer/6334160"
15
+ ],
16
+ "security_notes": "Custom-audience uploads transmit hashed personal data to ad platforms under data-sharing arrangements that must have a lawful basis, appropriate consent scope, and adequate pseudonymization. Review works from sanitized field-mapping specifications, declared hashing methods, and consent-basis documentation only; never request actual audience files, real customer records, or platform API credentials.",
17
+ "last_verified": "2026-05-17",
18
+ "path": "skills/marketing/lookalike-audience-upload-compliance-review",
19
+ "author": "github: Raishin",
20
+ "version": "0.1.0"
21
+ }
@@ -0,0 +1,203 @@
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 documents (replace real records with schema descriptions; no actual customer PII, no platform API credentials):
8
+ - Audience upload field-mapping specification (CSV column headers, platform upload template, or field list with data types)
9
+ - Declared hashing method (algorithm, whether hashing occurs client-side or server-side, and normalization steps applied before hashing)
10
+ - Consent-basis documentation (privacy notice excerpt, consent-collection mechanism, opt-in/opt-out flow, original collection purpose)
11
+ - Originating list segment metadata (how the list was segmented, which customer population it covers, what action or consent triggered inclusion)
12
+ - Target platform(s) (Meta, Google, LinkedIn, TikTok, or DSP)
13
+ - Whether EU or California resident data subjects are included
14
+
15
+ If the user provides only a partial set, note which sections are absent and scope findings accordingly.
16
+
17
+ ### Step 2 — Platform identification and terms baseline
18
+
19
+ Identify the target platform and retrieve the relevant customer-list terms:
20
+
21
+ ```text
22
+ Meta Custom Audiences: Prohibit sensitive categories (health, financial account data, sexual orientation,
23
+ religious beliefs, political views, union membership, biometric data, criminal records, or data from
24
+ users under 13). Require SHA-256 hashing of email, phone, name. Normalize before hashing
25
+ (lowercase, no spaces).
26
+
27
+ Google Customer Match: Prohibit sensitive-category data. Require SHA-256 hashing. Normalization
28
+ required per Google's specification (lowercase email, E.164 phone format before hashing).
29
+
30
+ LinkedIn Matched Audiences: Prohibit sensitive categories. Require SHA-256. Minimum list size
31
+ enforced for privacy (300 matched members).
32
+
33
+ TikTok Custom Audiences: Require SHA-256. Prohibit sensitive categories. GDPR and CCPA
34
+ compliance certifications required for respective geographies.
35
+ ```
36
+
37
+ Note any field in the specification that appears to violate platform-specific prohibitions.
38
+
39
+ ### Step 3 — Hashing adequacy audit
40
+
41
+ Inspect the declared hashing method against minimum requirements:
42
+
43
+ ```text
44
+ # HIGH — MD5 hashing declared
45
+ MD5 produces a 128-bit digest. For common email formats (first.last@domain.com),
46
+ precomputed rainbow tables resolve ~80-90% of hashes. This is not adequate pseudonymization
47
+ under GDPR Article 5(1)(f) and violates platform terms for Meta, Google, LinkedIn, and TikTok.
48
+ Remediation: Replace MD5 with SHA-256. Apply normalization (lowercase, trim whitespace) before hashing.
49
+
50
+ # HIGH — plain-text upload (no hashing declared)
51
+ Direct transmission of email or phone in the clear constitutes unambiguous PII disclosure
52
+ to the ad platform. No platform terms permit this.
53
+
54
+ # MEDIUM — SHA-256 declared but normalization step not documented
55
+ Without documented normalization (lowercase, strip punctuation), match rates degrade and
56
+ partial hash collisions become possible. Confirm normalization spec.
57
+
58
+ # CORRECT — SHA-256 with documented normalization
59
+ Email: lowercase → strip whitespace → SHA-256
60
+ Phone: E.164 format → strip non-numeric → SHA-256
61
+ ```
62
+
63
+ Hashing reduces re-identification risk but does not eliminate it — flag this explicitly. Hashed identifiers are still personal data under GDPR.
64
+
65
+ ### Step 4 — PII field-scope and data-minimization audit
66
+
67
+ Inspect the field mapping for over-inclusion relative to the matching objective:
68
+
69
+ ```text
70
+ # Minimum field set for match-rate adequacy (any platform)
71
+ - SHA-256 hashed email ← sufficient for >85% match rates on most platforms
72
+
73
+ # Extended field set (justified only when match rate is demonstrably inadequate)
74
+ - SHA-256 hashed phone number
75
+ - SHA-256 hashed first name + last name (separate fields per platform spec)
76
+
77
+ # Over-included fields (data-minimization violation)
78
+ - Date of birth → not needed for matching; increases re-identification
79
+ - Home postal code → combined with email + phone = high-confidence re-identification surface
80
+ - Transaction history columns → no matching function; pure data exposure
81
+ - IP address → not a valid matching identifier; exposes behavioral fingerprint
82
+ ```
83
+
84
+ Flag any field beyond the minimum set needed for the stated matching objective as MEDIUM. Flag postal code combined with email and phone as HIGH (re-identification surface).
85
+
86
+ ### Step 5 — Consent-basis validity audit
87
+
88
+ Map the originating consent basis against the intended use:
89
+
90
+ ```text
91
+ Scenario A — Transactional consent only
92
+ Original consent: "I agree to receive order confirmations and shipping updates."
93
+ Intended use: Seed list for Facebook lookalike audience targeting financial product ads.
94
+ Assessment: HIGH — sharing for advertising targeting exceeds the transactional consent scope.
95
+ GDPR: Purpose-limitation violation (Article 5(1)(b)). Separate consent for advertising use required.
96
+ CPRA: Unauthorized "sharing" of personal information for cross-context behavioral advertising
97
+ (§1798.100) — constitutes a sale/share requiring opt-out mechanism.
98
+
99
+ Scenario B — Marketing consent with opt-in
100
+ Original consent: "I agree to receive marketing communications from [Brand]."
101
+ Intended use: Custom audience upload for retargeting on Meta.
102
+ Assessment: MEDIUM — first-party retargeting may fall within scope, but sharing PII with Meta
103
+ as a data controller may require separate disclosure in the privacy notice.
104
+ Confirm whether privacy notice discloses ad-platform data sharing.
105
+
106
+ Scenario C — No documented consent, legitimate interest asserted
107
+ Assessment: HIGH — legitimate interest is a narrow basis that rarely survives for ad-platform
108
+ data sharing. LIA (Legitimate Interest Assessment) must be documented; data-subject
109
+ rights (opt-out, erasure) must be honored.
110
+ ```
111
+
112
+ ### Step 6 — Cross-border transfer assessment
113
+
114
+ If EU resident data subjects are in the list and the ad platform is a non-adequate-country processor:
115
+
116
+ ```text
117
+ # Required safeguards for EU → US transfer (post-Schrems II)
118
+ - Standard Contractual Clauses (SCCs) — Module 2 (controller to processor) or
119
+ Module 1 (controller to controller depending on platform's legal role)
120
+ - UK Addendum if UK residents included
121
+ - Transfer Impact Assessment (TIA) documented
122
+
123
+ # HIGH — EU residents in list, no SCC or EU-US DPF certification documented for the platform
124
+ GDPR Chapter V prohibits transfer without adequate safeguard. Confirm platform's DPF
125
+ certification status or execute SCCs before upload.
126
+ ```
127
+
128
+ ### Step 7 — Platform-specific sensitive-category restriction check
129
+
130
+ Cross-check each field against platform-specific prohibited categories:
131
+
132
+ | Field | Meta | Google | LinkedIn | TikTok |
133
+ |---|---|---|---|---|
134
+ | Health condition inferred from segment | PROHIBITED | PROHIBITED | PROHIBITED | PROHIBITED |
135
+ | Financial hardship segment label | PROHIBITED | PROHIBITED | Review | Review |
136
+ | Religious affiliation in segment metadata | PROHIBITED | PROHIBITED | PROHIBITED | PROHIBITED |
137
+ | Age (exact DOB) | Allowed (hashed) | Allowed (hashed) | Caution | Caution |
138
+ | Postal code (unhashed) | Not a match field | Not a match field | Not a match field | Not a match field |
139
+
140
+ Flag any field or segment label that maps to a platform-prohibited category.
141
+
142
+ ### Step 8 — Retention and deletion assessment
143
+
144
+ Flag the absence of documented platform-side retention limits as MEDIUM:
145
+
146
+ - Confirm the platform's stated retention period for unmatched records (typically 48-72 hours for most platforms).
147
+ - Confirm whether the operator has a deletion schedule for the source list post-upload.
148
+ - Confirm whether the list can be deleted from the platform after campaign completion.
149
+
150
+ ### Step 9 — Produce the output
151
+
152
+ Format findings using the Output section below.
153
+
154
+ ---
155
+
156
+ ## Output
157
+
158
+ Return findings in this structure:
159
+
160
+ ```
161
+ ## Verdict
162
+ <one sentence: pass / needs work / critical issues found>
163
+
164
+ ## Evidence level
165
+ <field-mapping spec provided | hashing method declared | consent documentation provided | inference>
166
+
167
+ ## Platform(s) in scope
168
+ <Meta | Google | LinkedIn | TikTok | DSP>
169
+
170
+ ## Findings
171
+
172
+ ### CRITICAL
173
+ - [C1] <finding title>: <description> — <remediation>
174
+
175
+ ### HIGH
176
+ - [H1] <finding title>: <description> — <remediation>
177
+
178
+ ### MEDIUM
179
+ - [M1] <finding title>: <description> — <remediation>
180
+
181
+ ### LOW
182
+ - [L1] <finding title>: <description> — <remediation>
183
+
184
+ ## Recommended minimum field set
185
+ <field list with hashing spec>
186
+
187
+ ## Safe next actions
188
+ 1. <action>
189
+ 2. <action>
190
+
191
+ ## Open questions
192
+ - <question requiring user clarification>
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Security and scope notes
198
+
199
+ - This is a static review. Never request actual audience files, real customer records, or platform API credentials. Work from sanitized field-mapping specifications, declared hashing methods, and consent-basis documentation.
200
+ - SHA-256 hashing of a common email address is pseudonymization, not anonymization — the hashed identifier is still personal data under GDPR and still requires a lawful basis for sharing with the ad platform.
201
+ - A consent-scope mismatch discovered here may constitute a reportable breach or an unauthorized "sale/share" of personal information under CPRA — flag that possibility and route the legal determination to qualified counsel and the privacy compliance team.
202
+ - Never recommend uploading a field that is not strictly needed for the matching objective. Default to the minimum field set.
203
+ - When evidence is partial, scope each finding to what was provided and state the assumption explicitly.
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: marketing-consent-data-collection-review
3
+ description: Use this skill when reviewing a marketing site's consent and data-collection posture — cookie/consent banner (CMP) configuration, tag-manager container exports, Google Consent Mode wiring, or a cookie policy. Trigger when a user provides a CMP configuration, a tag manager container JSON, a consent-banner screenshot description, or asks whether their marketing tracking is GDPR/CCPA/ePrivacy compliant, whether tags fire before consent, or whether their opt-out path is valid.
4
+ allowed-tools: Read Grep Glob
5
+ metadata:
6
+ author: "github: Raishin"
7
+ version: "0.1.0"
8
+ updated: "2026-05-17"
9
+ category: compliance
10
+ lifecycle: experimental
11
+ ---
12
+
13
+ # Marketing Consent and Data-Collection Review
14
+
15
+ ## Purpose
16
+ This skill reviews the consent and data-collection layer of a marketing site for regulatory correctness, coverage gaps, and dark-pattern risk. Marketing analytics and advertising tags are a primary enforcement target under GDPR, the ePrivacy Directive, and US state privacy laws (CCPA/CPRA and successors). A tag that fires before a consent signal, a banner with no symmetric reject control, or a missing "Do Not Sell or Share" path converts routine marketing instrumentation into a regulatory liability and a class-action surface. The review catches consent-gating failures, banner dark patterns, Consent Mode misconfiguration, undeclared trackers, and cross-border transfer gaps before they reach production.
17
+
18
+ ## Lean operating rules
19
+ - Treat any analytics or advertising tag that fires before an explicit opt-in consent signal (in a GDPR/ePrivacy-scoped jurisdiction) as HIGH — prior consent is required before non-essential storage or access.
20
+ - Treat a consent banner with no reject control, or a reject control that takes more clicks or less visual weight than accept, as HIGH — non-symmetric choice is a recognized dark pattern and invalidates consent.
21
+ - Treat pre-ticked consent checkboxes or "consent by continued browsing / scrolling" as HIGH — neither is freely given, specific, informed, and unambiguous consent.
22
+ - Treat the absence of a "Do Not Sell or Share My Personal Information" link or an equivalent opt-out preference signal path (Global Privacy Control honoring) as HIGH for sites serving California or other opt-out-regime traffic.
23
+ - Treat Google Consent Mode left in its default-granted state, or implemented without `wait_for_update`, as HIGH — tags transmit before the consent decision is captured.
24
+ - Treat trackers observed in the tag container that are not disclosed in the cookie policy or consent vendor list as HIGH — undisclosed processing has no lawful basis.
25
+ - Flag a single global consent toggle with no per-purpose granularity (analytics vs advertising vs personalization) as MEDIUM — purpose-bundled consent is not specific.
26
+ - Flag consent records with no retention of timestamp, scope, and consent-string version as MEDIUM — without a consent record the controller cannot demonstrate compliance.
27
+ - Flag advertising tags that send data to ad networks in non-EEA jurisdictions with no referenced transfer mechanism as MEDIUM.
28
+ - Do not recommend disabling a tag without naming the marketing measurement it supports and the residual attribution loss.
29
+ - Label every finding with evidence basis: configuration provided, policy text provided, documentation-based, or inference from missing config.
30
+
31
+ ## References
32
+ Load these only when needed:
33
+ - [Workflow and output contract](references/workflow-and-output.md) — use when executing the full review or formatting the final answer.
34
+
35
+ ## Response minimum
36
+ Return, at minimum:
37
+ - Consent-gating findings (tags firing before the consent signal)
38
+ - Banner design assessment (symmetry, granularity, dark-pattern checks)
39
+ - Opt-out / Global Privacy Control path assessment
40
+ - Consent Mode / tag-manager wiring findings
41
+ - Tracker-to-policy disclosure gap list
42
+ - Cross-border transfer assessment
43
+ - Severity-labelled finding list (critical / high / medium / low)
44
+ - Safe next actions
@@ -0,0 +1,21 @@
1
+ {
2
+ "id": "marketing-consent-data-collection-review",
3
+ "name": "Marketing Consent and Data-Collection Review",
4
+ "type": "skill",
5
+ "provider": "marketing",
6
+ "harnesses": ["codex", "claude-code", "cursor", "gemini", "kiro", "other"],
7
+ "summary": "Review marketing consent and data-collection posture — CMP banner config, tag-manager containers, Consent Mode wiring, and cookie policy — for GDPR/ePrivacy/CCPA correctness, dark patterns, and undisclosed trackers.",
8
+ "source_type": "original",
9
+ "official_docs": [
10
+ "https://eur-lex.europa.eu/eli/reg/2016/679/oj",
11
+ "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32002L0058",
12
+ "https://oag.ca.gov/privacy/ccpa",
13
+ "https://developers.google.com/tag-platform/security/guides/consent",
14
+ "https://iabeurope.eu/transparency-consent-framework/"
15
+ ],
16
+ "security_notes": "Marketing tags that fire before a consent signal collect personal data with no lawful basis and expose the controller to GDPR/ePrivacy enforcement and CCPA class actions. Consent banners with non-symmetric choice or pre-ticked boxes invalidate consent. Review works from sanitized configuration only; never request real visitor data, consent-string archives, or analytics account credentials.",
17
+ "last_verified": "2026-05-17",
18
+ "path": "skills/marketing/marketing-consent-data-collection-review",
19
+ "author": "github: Raishin",
20
+ "version": "0.1.0"
21
+ }