iron-edge 1.2.0 → 2.0.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 (660) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +114 -25
  3. package/agents/iron-3d.md +1 -1
  4. package/agents/iron-animations.md +3 -2
  5. package/agents/iron-auditor.md +175 -0
  6. package/agents/iron-brand.md +3 -2
  7. package/agents/iron-ceo.md +143 -0
  8. package/agents/iron-claude.md +54 -0
  9. package/agents/iron-clone.md +87 -0
  10. package/agents/iron-cloning.md +21 -3
  11. package/agents/iron-commercial.md +3 -2
  12. package/agents/iron-community.md +1 -1
  13. package/agents/iron-content.md +3 -2
  14. package/agents/iron-copy.md +3 -2
  15. package/agents/iron-council.md +3 -2
  16. package/agents/iron-courses.md +3 -2
  17. package/agents/iron-cyber.md +3 -2
  18. package/agents/iron-design.md +3 -2
  19. package/agents/iron-eng.md +138 -0
  20. package/agents/iron-finance.md +3 -2
  21. package/agents/iron-forge.md +147 -0
  22. package/agents/iron-growth.md +3 -2
  23. package/agents/iron-install.md +15 -13
  24. package/agents/iron-paidmedia.md +3 -2
  25. package/agents/iron-premium.md +146 -0
  26. package/agents/iron-product.md +3 -2
  27. package/agents/iron-research.md +3 -2
  28. package/agents/iron-search.md +82 -0
  29. package/agents/iron-shopify.md +80 -4
  30. package/agents/iron-spy.md +1 -1
  31. package/agents/iron-storytelling.md +3 -2
  32. package/agents/iron-video.md +1 -1
  33. package/agents/lp-cinematico.md +2 -2
  34. package/agents/xq-advisory.md +1 -1
  35. package/agents/xq-brand.md +1 -1
  36. package/agents/xq-clevel.md +1 -1
  37. package/agents/xq-codecore.md +19 -19
  38. package/agents/xq-copy.md +1 -1
  39. package/agents/xq-copymaster.md +1 -1
  40. package/agents/xq-cyber.md +1 -1
  41. package/agents/xq-data.md +1 -1
  42. package/agents/xq-design.md +1 -1
  43. package/agents/xq-hormozi.md +2 -2
  44. package/agents/xq-movement.md +1 -1
  45. package/agents/xq-storytelling.md +1 -1
  46. package/agents/xq-traffic.md +1 -1
  47. package/bin/iron-edge.js +74 -0
  48. package/docs/2026-08-21-como-pedir-software-ao-iron.md +62 -0
  49. package/docs/2026-08-21-skill-gate-fonte-unica.md +70 -0
  50. package/installer/install-mac.sh +52 -0
  51. package/installer/install-windows.ps1 +65 -0
  52. package/installer/install.js +518 -0
  53. package/iron-routing-map.md +276 -0
  54. package/package.json +14 -7
  55. package/skills/anotar/SKILL.md +50 -0
  56. package/skills/brandkit/SKILL.md +152 -0
  57. package/skills/clone-distill/SKILL.md +45 -0
  58. package/skills/clone-distill/scripts/distill.mjs +144 -0
  59. package/skills/clone-inventory/SKILL.md +51 -0
  60. package/skills/clone-inventory/package-lock.json +307 -0
  61. package/skills/clone-inventory/package.json +1 -0
  62. package/skills/clone-inventory/scripts/inventory.mjs +336 -0
  63. package/skills/clone-organize/SKILL.md +107 -0
  64. package/skills/clone-organize/package-lock.json +307 -0
  65. package/skills/clone-organize/package.json +1 -0
  66. package/skills/clone-organize/scripts/verify-visual.mjs +79 -0
  67. package/skills/clone-site/SKILL.md +104 -0
  68. package/skills/clone-site/package-lock.json +360 -0
  69. package/skills/clone-site/package.json +12 -0
  70. package/skills/clone-site/reference/lessons.md +131 -0
  71. package/skills/clone-site/reference/workflow.md +211 -0
  72. package/skills/clone-site/scripts/capture.mjs +507 -0
  73. package/skills/clone-site/scripts/clone.sh +166 -0
  74. package/skills/clone-site/scripts/fix_paths.py +118 -0
  75. package/skills/clone-site/scripts/serve.py +129 -0
  76. package/skills/clone-site/scripts/verify.mjs +126 -0
  77. package/skills/clone-site/scripts/wget_fallback.sh +38 -0
  78. package/skills/clone-transplant/SKILL.md +50 -0
  79. package/skills/clone-transplant/scripts/transplant.mjs +299 -0
  80. package/skills/conectar-mcp/SKILL.md +38 -0
  81. package/skills/escada/SKILL.md +62 -0
  82. package/skills/faxina/SKILL.md +34 -0
  83. package/skills/gate/SKILL.md +318 -0
  84. package/skills/gate/hooks/gate-dirty.sh +40 -0
  85. package/skills/gate/hooks/gate-stop.sh +31 -0
  86. package/skills/gate/preflight.py +132 -0
  87. package/skills/lp-cinematico/SKILL.md +5 -0
  88. package/skills/roteiro-video/SKILL.md +5 -0
  89. package/skills/salvar/SKILL.md +80 -0
  90. package/squads/squad-animations/README.md +18 -6
  91. package/squads/squad-animations/agents/animation-interpreter.md +9 -0
  92. package/squads/squad-animations/agents/animation-performance-engineer.md +9 -0
  93. package/squads/squad-animations/agents/animations-orqx.md +11 -2
  94. package/squads/squad-animations/agents/css-motion-artist.md +9 -0
  95. package/squads/squad-animations/agents/generative-particle-engineer.md +9 -0
  96. package/squads/squad-animations/agents/motion-choreographer.md +9 -0
  97. package/squads/squad-animations/agents/scroll-narrative-engineer.md +9 -0
  98. package/squads/squad-animations/agents/shader-artist.md +9 -0
  99. package/squads/squad-animations/agents/threejs-architect.md +9 -0
  100. package/squads/squad-animations/knowledge-base/chrome-brain-integration.md +17 -43
  101. package/squads/squad-animations/squad.yaml +21 -7
  102. package/squads/squad-brand/README.md +9 -3
  103. package/squads/squad-brand/agents/al-ries.md +9 -0
  104. package/squads/squad-brand/agents/alina-wheeler.md +9 -0
  105. package/squads/squad-brand/agents/archetype-consultant.md +9 -0
  106. package/squads/squad-brand/agents/brand-archetype-strategist.md +9 -0
  107. package/squads/squad-brand/agents/brand-auditor.md +9 -0
  108. package/squads/squad-brand/agents/brand-collateral-designer.md +9 -0
  109. package/squads/squad-brand/agents/brand-compiler.md +9 -0
  110. package/squads/squad-brand/agents/brand-creative-engineer.md +9 -0
  111. package/squads/squad-brand/agents/brand-culture-architect.md +9 -0
  112. package/squads/squad-brand/agents/brand-growth-strategist.md +9 -0
  113. package/squads/squad-brand/agents/brand-identity-designer.md +9 -0
  114. package/squads/squad-brand/agents/brand-motion-vfx.md +9 -0
  115. package/squads/squad-brand/agents/brand-naming-specialist.md +9 -0
  116. package/squads/squad-brand/agents/brand-orqx.md +12 -3
  117. package/squads/squad-brand/agents/brand-positioning-strategist.md +9 -0
  118. package/squads/squad-brand/agents/brand-sonic-designer.md +9 -0
  119. package/squads/squad-brand/agents/brand-strategist.md +9 -0
  120. package/squads/squad-brand/agents/brand-system-architect.md +9 -0
  121. package/squads/squad-brand/agents/byron-sharp.md +9 -0
  122. package/squads/squad-brand/agents/david-aaker.md +9 -0
  123. package/squads/squad-brand/agents/denise-yohn.md +9 -0
  124. package/squads/squad-brand/agents/domain-scout.md +9 -0
  125. package/squads/squad-brand/agents/donald-miller.md +9 -0
  126. package/squads/squad-brand/agents/emily-heyward.md +9 -0
  127. package/squads/squad-brand/agents/jean-noel-kapferer.md +9 -0
  128. package/squads/squad-brand/agents/kevin-keller.md +9 -0
  129. package/squads/squad-brand/agents/marty-neumeier.md +9 -0
  130. package/squads/squad-brand/agents/miller-sticky-brand.md +9 -0
  131. package/squads/squad-brand/agents/naming-strategist.md +9 -0
  132. package/squads/squad-brand/knowledge-base/chrome-brain-integration.md +17 -35
  133. package/squads/squad-brand/squad.yaml +43 -10
  134. package/squads/squad-brand/tasks/create-components.md +1 -1
  135. package/squads/squad-brand/tasks/create-dark-mode.md +1 -1
  136. package/squads/squad-brand/tasks/create-token-system.md +1 -1
  137. package/squads/squad-brand/tasks/define-grid-system.md +1 -1
  138. package/squads/squad-brand/tasks/design-dynamic-identity-system.md +1 -1
  139. package/squads/squad-brand/tasks/export-tokens.md +1 -1
  140. package/squads/squad-brand/templates/client-delivery-template.md +1 -1
  141. package/squads/squad-claude/README.md +19 -7
  142. package/squads/squad-claude/agents/claude-orqx.md +13 -4
  143. package/squads/squad-claude/agents/config-engineer.md +9 -0
  144. package/squads/squad-claude/agents/hooks-architect.md +9 -0
  145. package/squads/squad-claude/agents/mcp-integrator.md +9 -0
  146. package/squads/squad-claude/agents/project-integrator.md +9 -0
  147. package/squads/squad-claude/agents/roadmap-sentinel.md +9 -0
  148. package/squads/squad-claude/agents/skill-craftsman.md +9 -0
  149. package/squads/squad-claude/agents/swarm-orqx.md +9 -0
  150. package/squads/squad-claude/checklists/agent-readiness-checklist.md +1 -2
  151. package/squads/squad-claude/checklists/claude-setup-audit-checklist.md +1 -1
  152. package/squads/squad-claude/checklists/prompt-quality-checklist.md +0 -5
  153. package/squads/squad-claude/knowledge-base/chrome-brain-integration.md +17 -42
  154. package/squads/squad-claude/knowledge-base/claude-code-configuration-reference.md +6 -11
  155. package/squads/squad-claude/knowledge-base/claude-code-hooks-reference.md +28 -19
  156. package/squads/squad-claude/knowledge-base/claude-code-internals-deep.md +16 -2
  157. package/squads/squad-claude/knowledge-base/claude-code-tools-reference.md +2 -2
  158. package/squads/squad-claude/knowledge-base/context-window-optimization.md +3 -3
  159. package/squads/squad-claude/knowledge-base/knowledge-architecture-reference.md +3 -3
  160. package/squads/squad-claude/knowledge-base/mcp-integration-patterns.md +1 -1
  161. package/squads/squad-claude/knowledge-base/memory-systems-reference.md +6 -6
  162. package/squads/squad-claude/knowledge-base/obsidian-claude-integration.md +5 -5
  163. package/squads/squad-claude/knowledge-base/retrieval-augmented-generation.md +3 -3
  164. package/squads/squad-claude/knowledge-base/skill-creation-patterns.md +10 -10
  165. package/squads/squad-claude/knowledge-base/swarm-orchestration-patterns.md +10 -10
  166. package/squads/squad-claude/squad.yaml +20 -7
  167. package/squads/squad-claude/templates/agent-definition-template.md +1 -1
  168. package/squads/squad-cloning/README.md +22 -6
  169. package/squads/squad-cloning/agents/agent-forger.md +36 -3
  170. package/squads/squad-cloning/agents/cloning-orqx.md +39 -4
  171. package/squads/squad-cloning/agents/cognitive-extractor.md +33 -0
  172. package/squads/squad-cloning/agents/content-capturer.md +33 -0
  173. package/squads/squad-cloning/agents/kb-architect.md +33 -0
  174. package/squads/squad-cloning/agents/mind-synthesizer.md +33 -0
  175. package/squads/squad-cloning/agents/source-hunter.md +33 -0
  176. package/squads/squad-cloning/agents/squad-assembler.md +35 -2
  177. package/squads/squad-cloning/checklists/clone-completeness-checklist.md +1 -1
  178. package/squads/squad-cloning/checklists/pre-deploy-checklist.md +3 -3
  179. package/squads/squad-cloning/knowledge-base/agent-generation-guide.md +4 -4
  180. package/squads/squad-cloning/knowledge-base/chrome-brain-integration.md +17 -43
  181. package/squads/squad-cloning/knowledge-base/clone-tier-standards.md +1 -1
  182. package/squads/squad-cloning/knowledge-base/cross-squad-deployment.md +2 -2
  183. package/squads/squad-cloning/knowledge-base/ethical-guidelines.md +2 -2
  184. package/squads/squad-cloning/knowledge-base/multi-agent-deployment-patterns.md +1 -1
  185. package/squads/squad-cloning/knowledge-base/skill-standard-for-clones.md +5 -5
  186. package/squads/squad-cloning/squad.yaml +32 -11
  187. package/squads/squad-cloning/tasks/assign-content-class.md +33 -23
  188. package/squads/squad-cloning/tasks/build-cognitive-profile.md +38 -23
  189. package/squads/squad-cloning/tasks/calculate-confidence-score.md +36 -23
  190. package/squads/squad-cloning/tasks/capture-article-text.md +53 -23
  191. package/squads/squad-cloning/tasks/capture-social-posts.md +50 -23
  192. package/squads/squad-cloning/tasks/compile-source-catalog.md +37 -23
  193. package/squads/squad-cloning/tasks/cross-reference-kbs.md +67 -23
  194. package/squads/squad-cloning/tasks/deploy-cross-squad-kbs.md +43 -28
  195. package/squads/squad-cloning/tasks/design-kb-taxonomy.md +70 -23
  196. package/squads/squad-cloning/tasks/determine-clone-tier.md +45 -23
  197. package/squads/squad-cloning/tasks/discover-articles-interviews.md +36 -23
  198. package/squads/squad-cloning/tasks/discover-books-publications.md +36 -23
  199. package/squads/squad-cloning/tasks/discover-podcasts-appearances.md +36 -23
  200. package/squads/squad-cloning/tasks/discover-social-media-content.md +36 -23
  201. package/squads/squad-cloning/tasks/discover-youtube-channels.md +37 -23
  202. package/squads/squad-cloning/tasks/escalate-quality-issues.md +40 -23
  203. package/squads/squad-cloning/tasks/estimate-content-volume.md +37 -23
  204. package/squads/squad-cloning/tasks/extract-book-content.md +53 -23
  205. package/squads/squad-cloning/tasks/extract-decision-patterns.md +33 -23
  206. package/squads/squad-cloning/tasks/extract-heuristics.md +33 -23
  207. package/squads/squad-cloning/tasks/extract-mental-models.md +33 -23
  208. package/squads/squad-cloning/tasks/extract-vocabulary-tone.md +29 -23
  209. package/squads/squad-cloning/tasks/extract-workflows-processes.md +34 -23
  210. package/squads/squad-cloning/tasks/finalize-clone-delivery.md +37 -23
  211. package/squads/squad-cloning/tasks/generate-agent-commands.md +48 -23
  212. package/squads/squad-cloning/tasks/generate-agent-heuristics.md +44 -23
  213. package/squads/squad-cloning/tasks/generate-agent-persona.md +53 -23
  214. package/squads/squad-cloning/tasks/generate-agent-protocols.md +45 -23
  215. package/squads/squad-cloning/tasks/generate-checklist-files.md +43 -28
  216. package/squads/squad-cloning/tasks/generate-cross-squad-handoffs.md +53 -23
  217. package/squads/squad-cloning/tasks/generate-extraction-report.md +30 -23
  218. package/squads/squad-cloning/tasks/generate-framework-kbs.md +68 -23
  219. package/squads/squad-cloning/tasks/generate-methodology-kbs.md +68 -23
  220. package/squads/squad-cloning/tasks/generate-mind-map.md +36 -23
  221. package/squads/squad-cloning/tasks/generate-pattern-kbs.md +66 -23
  222. package/squads/squad-cloning/tasks/generate-reference-kbs.md +67 -23
  223. package/squads/squad-cloning/tasks/generate-squad-yaml.md +39 -27
  224. package/squads/squad-cloning/tasks/generate-task-files.md +45 -28
  225. package/squads/squad-cloning/tasks/generate-template-files.md +39 -28
  226. package/squads/squad-cloning/tasks/generate-workflow-files.md +44 -28
  227. package/squads/squad-cloning/tasks/identify-contradictions.md +32 -23
  228. package/squads/squad-cloning/tasks/identify-meta-patterns.md +42 -23
  229. package/squads/squad-cloning/tasks/initiate-clone-project.md +40 -23
  230. package/squads/squad-cloning/tasks/monitor-pipeline-progress.md +33 -23
  231. package/squads/squad-cloning/tasks/normalize-raw-content.md +43 -23
  232. package/squads/squad-cloning/tasks/package-squad-output.md +39 -28
  233. package/squads/squad-cloning/tasks/resolve-contradictions.md +47 -23
  234. package/squads/squad-cloning/tasks/run-pre-publish-checklist.md +39 -27
  235. package/squads/squad-cloning/tasks/tag-confidence-levels.md +30 -23
  236. package/squads/squad-cloning/tasks/transcribe-podcast-episodes.md +56 -23
  237. package/squads/squad-cloning/tasks/transcribe-youtube-videos.md +54 -23
  238. package/squads/squad-cloning/tasks/validate-agent-completeness.md +47 -23
  239. package/squads/squad-cloning/tasks/validate-kb-citations.md +62 -23
  240. package/squads/squad-cloning/tasks/validate-transcription-quality.md +39 -23
  241. package/squads/squad-cloning/workflows/full-clone-pipeline.yaml +17 -1
  242. package/squads/squad-cloning/workflows/tier2-consultant.yaml +1 -1
  243. package/squads/squad-commercial/README.md +18 -6
  244. package/squads/squad-commercial/agents/commercial-orqx.md +11 -2
  245. package/squads/squad-commercial/agents/cs-business-auditor.md +12 -3
  246. package/squads/squad-commercial/agents/cs-client-success.md +12 -3
  247. package/squads/squad-commercial/agents/cs-crm-specialist.md +12 -3
  248. package/squads/squad-commercial/agents/cs-funnel-architect.md +12 -3
  249. package/squads/squad-commercial/agents/cs-lead-generation-strategist.md +12 -3
  250. package/squads/squad-commercial/agents/cs-offer-designer.md +12 -3
  251. package/squads/squad-commercial/agents/cs-revops-analyst.md +12 -3
  252. package/squads/squad-commercial/agents/cs-sales-closer.md +12 -3
  253. package/squads/squad-commercial/agents/cs-sales-enablement.md +12 -3
  254. package/squads/squad-commercial/agents/legal-chief.md +19 -189
  255. package/squads/squad-commercial/knowledge-base/chrome-brain-integration.md +17 -34
  256. package/squads/squad-commercial/knowledge-base/prospecting-pipeline-generation.md +1 -1
  257. package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +2 -2
  258. package/squads/squad-commercial/squad.yaml +25 -16
  259. package/squads/squad-commercial/tasks/build-nurture-sequences.md +1 -1
  260. package/squads/squad-commercial/tasks/coordinate-revenue-cycle.md +5 -5
  261. package/squads/squad-commercial/tasks/define-icp-profile.md +1 -1
  262. package/squads/squad-commercial/tasks/design-advocacy-program.md +1 -1
  263. package/squads/squad-commercial/tasks/design-lead-magnet.md +1 -1
  264. package/squads/squad-commercial/tasks/design-lead-magnets.md +2 -2
  265. package/squads/squad-commercial/tasks/manage-commercial-handoffs.md +5 -5
  266. package/squads/squad-commercial/tasks/map-content-to-funnel.md +4 -4
  267. package/squads/squad-commercial/tasks/run-productization-sprint.md +2 -2
  268. package/squads/squad-content/README.md +18 -6
  269. package/squads/squad-content/agents/content-analyst.md +9 -0
  270. package/squads/squad-content/agents/content-engineer.md +10 -1
  271. package/squads/squad-content/agents/content-governor.md +10 -1
  272. package/squads/squad-content/agents/content-orqx.md +13 -4
  273. package/squads/squad-content/agents/editorial-strategist.md +11 -2
  274. package/squads/squad-content/agents/platform-specialist.md +14 -5
  275. package/squads/squad-content/agents/signal-intelligence.md +9 -0
  276. package/squads/squad-content/checklists/onboarding-setup-checklist.md +2 -2
  277. package/squads/squad-content/knowledge-base/chrome-brain-integration.md +17 -38
  278. package/squads/squad-content/knowledge-base/content-strategy-master-reference.md +1 -1
  279. package/squads/squad-content/knowledge-base/cross-squad-integration-protocol.md +24 -24
  280. package/squads/squad-content/knowledge-base/social-algorithms-master-reference.md +1 -1
  281. package/squads/squad-content/squad.yaml +22 -11
  282. package/squads/squad-content/tasks/check-brand-consistency.md +2 -2
  283. package/squads/squad-content/tasks/coordinate-cross-squad.md +2 -2
  284. package/squads/squad-content/tasks/define-big-idea.md +2 -2
  285. package/squads/squad-content/tasks/define-content-standards.md +1 -1
  286. package/squads/squad-content/tasks/define-editorial-pillars.md +1 -1
  287. package/squads/squad-content/tasks/integrate-brand-visual-assets.md +3 -3
  288. package/squads/squad-content/tasks/update-content-preferences.md +1 -1
  289. package/squads/squad-content/workflows/onboarding-content-cycle.yaml +1 -1
  290. package/squads/squad-copy/README.md +18 -6
  291. package/squads/squad-copy/agents/ad-copywriter.md +13 -4
  292. package/squads/squad-copy/agents/andre-chaperon.md +9 -0
  293. package/squads/squad-copy/agents/ben-settle.md +9 -0
  294. package/squads/squad-copy/agents/brand-voice-writer.md +14 -5
  295. package/squads/squad-copy/agents/claude-hopkins.md +9 -0
  296. package/squads/squad-copy/agents/clayton-makepeace.md +9 -0
  297. package/squads/squad-copy/agents/conversion-writer.md +13 -4
  298. package/squads/squad-copy/agents/copy-chief.md +24 -152
  299. package/squads/squad-copy/agents/copy-editor.md +11 -2
  300. package/squads/squad-copy/agents/copy-orqx.md +10 -1
  301. package/squads/squad-copy/agents/copy-strategist.md +16 -7
  302. package/squads/squad-copy/agents/dan-kennedy.md +9 -0
  303. package/squads/squad-copy/agents/dan-koe.md +9 -0
  304. package/squads/squad-copy/agents/david-deutsch.md +9 -0
  305. package/squads/squad-copy/agents/david-ogilvy.md +9 -0
  306. package/squads/squad-copy/agents/direct-response-writer.md +13 -4
  307. package/squads/squad-copy/agents/email-sequence-strategist.md +13 -4
  308. package/squads/squad-copy/agents/eugene-schwartz.md +9 -0
  309. package/squads/squad-copy/agents/frank-kern.md +9 -0
  310. package/squads/squad-copy/agents/funnel-copywriter.md +13 -4
  311. package/squads/squad-copy/agents/gary-bencivenga.md +9 -0
  312. package/squads/squad-copy/agents/gary-halbert.md +9 -0
  313. package/squads/squad-copy/agents/headline-specialist.md +10 -1
  314. package/squads/squad-copy/agents/jim-rutz.md +9 -0
  315. package/squads/squad-copy/agents/joe-sugarman.md +9 -0
  316. package/squads/squad-copy/agents/john-carlton.md +9 -0
  317. package/squads/squad-copy/agents/jon-benson.md +9 -0
  318. package/squads/squad-copy/agents/long-form-writer.md +13 -4
  319. package/squads/squad-copy/agents/parris-lampropoulos.md +9 -0
  320. package/squads/squad-copy/agents/persuasion-psychologist.md +12 -3
  321. package/squads/squad-copy/agents/proof-architect.md +13 -4
  322. package/squads/squad-copy/agents/robert-collier.md +9 -0
  323. package/squads/squad-copy/agents/russell-brunson.md +9 -0
  324. package/squads/squad-copy/agents/ry-schwartz.md +9 -0
  325. package/squads/squad-copy/agents/stefan-georgi.md +9 -0
  326. package/squads/squad-copy/agents/todd-brown.md +9 -0
  327. package/squads/squad-copy/knowledge-base/chrome-brain-integration.md +17 -37
  328. package/squads/squad-copy/squad.yaml +49 -16
  329. package/squads/squad-copy/tasks/align-copy-strategy-with-brand.md +6 -6
  330. package/squads/squad-copy/tasks/approve-copy-for-release.md +1 -1
  331. package/squads/squad-copy/tasks/build-headline-swipe-file.md +1 -1
  332. package/squads/squad-copy/tasks/build-message-hierarchy.md +2 -2
  333. package/squads/squad-copy/tasks/conduct-copy-audit.md +1 -1
  334. package/squads/squad-copy/tasks/coordinate-multi-channel-copy.md +1 -1
  335. package/squads/squad-copy/tasks/craft-social-media-hooks.md +1 -1
  336. package/squads/squad-copy/tasks/create-brand-manifesto.md +1 -1
  337. package/squads/squad-copy/tasks/create-case-study-framework.md +3 -3
  338. package/squads/squad-copy/tasks/create-copy-brief.md +3 -3
  339. package/squads/squad-copy/tasks/create-ugc-script.md +3 -3
  340. package/squads/squad-copy/tasks/define-market-awareness-level.md +1 -1
  341. package/squads/squad-copy/tasks/design-headline-ab-tests.md +2 -2
  342. package/squads/squad-copy/tasks/develop-brand-voice.md +1 -1
  343. package/squads/squad-copy/tasks/map-objection-landscape.md +2 -2
  344. package/squads/squad-copy/tasks/optimize-email-engagement.md +2 -2
  345. package/squads/squad-copy/tasks/optimize-funnel-conversion-copy.md +3 -3
  346. package/squads/squad-copy/tasks/plan-multi-channel-copy.md +1 -1
  347. package/squads/squad-copy/tasks/write-ad-copy-variations.md +2 -2
  348. package/squads/squad-copy/tasks/write-funnel-copy-sequence.md +1 -1
  349. package/squads/squad-copy/tasks/write-video-podcast-titles.md +1 -1
  350. package/squads/squad-copy/workflows/brand-voice-development.yaml +1 -1
  351. package/squads/squad-council/README.md +18 -6
  352. package/squads/squad-council/agents/brene-brown.md +9 -0
  353. package/squads/squad-council/agents/charlie-munger.md +9 -0
  354. package/squads/squad-council/agents/council-orqx.md +12 -3
  355. package/squads/squad-council/agents/derek-sivers.md +9 -0
  356. package/squads/squad-council/agents/naval-ravikant.md +9 -0
  357. package/squads/squad-council/agents/patrick-lencioni.md +9 -0
  358. package/squads/squad-council/agents/peter-thiel.md +9 -0
  359. package/squads/squad-council/agents/ray-dalio.md +9 -0
  360. package/squads/squad-council/agents/reid-hoffman.md +9 -0
  361. package/squads/squad-council/agents/simon-sinek.md +9 -0
  362. package/squads/squad-council/agents/yvon-chouinard.md +9 -0
  363. package/squads/squad-council/knowledge-base/brand-strategy-models.md +2 -2
  364. package/squads/squad-council/knowledge-base/innovation-disruption-frameworks.md +1 -1
  365. package/squads/squad-council/knowledge-base/market-analysis-frameworks.md +1 -1
  366. package/squads/squad-council/squad.yaml +25 -20
  367. package/squads/squad-courses/README.md +18 -6
  368. package/squads/squad-courses/agents/assessment-creator.md +9 -0
  369. package/squads/squad-courses/agents/content-writer.md +9 -0
  370. package/squads/squad-courses/agents/courses-orqx.md +11 -2
  371. package/squads/squad-courses/agents/curriculum-designer.md +9 -0
  372. package/squads/squad-courses/agents/launch-strategist.md +9 -0
  373. package/squads/squad-courses/agents/lesson-architect.md +9 -0
  374. package/squads/squad-courses/agents/production-director.md +9 -0
  375. package/squads/squad-courses/agents/slide-designer.md +9 -0
  376. package/squads/squad-courses/knowledge-base/domain-advocacia-curriculum.md +1 -1
  377. package/squads/squad-courses/knowledge-base/domain-contabilidade-curriculum.md +1 -1
  378. package/squads/squad-courses/squad.yaml +21 -10
  379. package/squads/squad-courses/tasks/adapt-content-for-level.md +30 -22
  380. package/squads/squad-courses/tasks/adapt-slides-for-format.md +41 -23
  381. package/squads/squad-courses/tasks/create-bonus-strategy.md +34 -17
  382. package/squads/squad-courses/tasks/create-final-project-brief.md +48 -22
  383. package/squads/squad-courses/tasks/create-lesson-outline.md +34 -22
  384. package/squads/squad-courses/tasks/create-presentation-outline.md +40 -23
  385. package/squads/squad-courses/tasks/create-production-checklist.md +43 -28
  386. package/squads/squad-courses/tasks/create-progress-milestones.md +40 -22
  387. package/squads/squad-courses/tasks/create-quiz-questions.md +47 -22
  388. package/squads/squad-courses/tasks/create-sales-page-brief.md +36 -17
  389. package/squads/squad-courses/tasks/create-self-evaluation.md +41 -22
  390. package/squads/squad-courses/tasks/create-shot-list.md +41 -28
  391. package/squads/squad-courses/tasks/create-speaker-notes.md +43 -23
  392. package/squads/squad-courses/tasks/create-syllabus-document.md +35 -23
  393. package/squads/squad-courses/tasks/create-teleprompter-script.md +42 -28
  394. package/squads/squad-courses/tasks/create-workshop-materials.md +40 -23
  395. package/squads/squad-courses/tasks/define-competency-framework.md +42 -23
  396. package/squads/squad-courses/tasks/define-course-scope.md +36 -23
  397. package/squads/squad-courses/tasks/define-learning-outcomes.md +41 -23
  398. package/squads/squad-courses/tasks/define-lesson-objectives.md +35 -22
  399. package/squads/squad-courses/tasks/design-certification-criteria.md +43 -22
  400. package/squads/squad-courses/tasks/design-email-sequence.md +33 -17
  401. package/squads/squad-courses/tasks/design-interactive-elements.md +45 -23
  402. package/squads/squad-courses/tasks/design-intro-outro.md +38 -27
  403. package/squads/squad-courses/tasks/design-knowledge-checkpoints.md +36 -22
  404. package/squads/squad-courses/tasks/design-learning-path.md +40 -23
  405. package/squads/squad-courses/tasks/design-lesson-flow.md +40 -22
  406. package/squads/squad-courses/tasks/design-module-structure.md +37 -22
  407. package/squads/squad-courses/tasks/design-peer-review-rubric.md +40 -22
  408. package/squads/squad-courses/tasks/design-practical-assessment.md +45 -22
  409. package/squads/squad-courses/tasks/design-pricing-model.md +34 -17
  410. package/squads/squad-courses/tasks/design-screen-recording-flow.md +41 -28
  411. package/squads/squad-courses/tasks/design-slide-structure.md +40 -23
  412. package/squads/squad-courses/tasks/design-student-onboarding.md +34 -17
  413. package/squads/squad-courses/tasks/design-visual-hierarchy.md +42 -23
  414. package/squads/squad-courses/tasks/estimate-lesson-duration.md +35 -22
  415. package/squads/squad-courses/tasks/finalize-course-delivery.md +34 -23
  416. package/squads/squad-courses/tasks/initiate-course-project.md +38 -23
  417. package/squads/squad-courses/tasks/map-prerequisite-chain.md +41 -23
  418. package/squads/squad-courses/tasks/monitor-course-progress.md +34 -23
  419. package/squads/squad-courses/tasks/plan-b-roll-sequences.md +41 -28
  420. package/squads/squad-courses/tasks/plan-enrollment-funnel.md +35 -17
  421. package/squads/squad-courses/tasks/plan-launch-sequence.md +36 -17
  422. package/squads/squad-courses/tasks/plan-practical-exercises.md +36 -22
  423. package/squads/squad-courses/tasks/plan-recording-session.md +48 -28
  424. package/squads/squad-courses/tasks/proofread-course-content.md +30 -22
  425. package/squads/squad-courses/tasks/review-course-quality.md +34 -23
  426. package/squads/squad-courses/tasks/select-platform-strategy.md +35 -17
  427. package/squads/squad-courses/tasks/sequence-difficulty-progression.md +36 -22
  428. package/squads/squad-courses/tasks/structure-module-sequence.md +40 -23
  429. package/squads/squad-courses/tasks/validate-pedagogical-coherence.md +43 -23
  430. package/squads/squad-courses/tasks/write-case-studies.md +30 -22
  431. package/squads/squad-courses/tasks/write-ebook-chapter.md +30 -22
  432. package/squads/squad-courses/tasks/write-handout-material.md +30 -22
  433. package/squads/squad-courses/tasks/write-lesson-content.md +33 -22
  434. package/squads/squad-courses/tasks/write-slide-content.md +43 -23
  435. package/squads/squad-courses/tasks/write-summary-sheets.md +30 -22
  436. package/squads/squad-courses/tasks/write-video-script.md +42 -27
  437. package/squads/squad-courses/tasks/write-workbook-exercises.md +31 -22
  438. package/squads/squad-courses/workflows/course-quality-review.yaml +3 -3
  439. package/squads/squad-courses/workflows/full-course-creation.yaml +2 -2
  440. package/squads/squad-cybersecurity/README.md +18 -6
  441. package/squads/squad-cybersecurity/agents/cloud-security-engineer.md +9 -0
  442. package/squads/squad-cybersecurity/agents/compliance-officer.md +9 -0
  443. package/squads/squad-cybersecurity/agents/cyber-chief.md +24 -159
  444. package/squads/squad-cybersecurity/agents/cyber-orqx.md +11 -2
  445. package/squads/squad-cybersecurity/agents/incident-responder.md +9 -0
  446. package/squads/squad-cybersecurity/agents/network-security-engineer.md +9 -0
  447. package/squads/squad-cybersecurity/agents/penetration-tester.md +9 -0
  448. package/squads/squad-cybersecurity/agents/soc-analyst.md +9 -0
  449. package/squads/squad-cybersecurity/agents/threat-analyst.md +9 -0
  450. package/squads/squad-cybersecurity/knowledge-base/chrome-brain-integration.md +17 -35
  451. package/squads/squad-cybersecurity/knowledge-base/routing-catalog.md +22 -22
  452. package/squads/squad-cybersecurity/squad.yaml +23 -9
  453. package/squads/squad-design/README.md +18 -6
  454. package/squads/squad-design/agents/brad-frost.md +14 -29
  455. package/squads/squad-design/agents/dan-mall.md +13 -26
  456. package/squads/squad-design/agents/dave-malouf.md +13 -26
  457. package/squads/squad-design/agents/design-chief.md +24 -216
  458. package/squads/squad-design/agents/design-orqx.md +11 -2
  459. package/squads/squad-design/agents/dx-accessibility-specialist.md +9 -0
  460. package/squads/squad-design/agents/dx-design-system-architect.md +9 -0
  461. package/squads/squad-design/agents/dx-frontend-engineer.md +9 -0
  462. package/squads/squad-design/agents/dx-interaction-designer.md +9 -0
  463. package/squads/squad-design/agents/dx-performance-engineer.md +9 -0
  464. package/squads/squad-design/agents/dx-ui-designer.md +9 -0
  465. package/squads/squad-design/agents/dx-ux-strategist.md +9 -0
  466. package/squads/squad-design/agents/nano-banana-generator.md +13 -25
  467. package/squads/squad-design/knowledge-base/brazilian-design-context.md +1 -1
  468. package/squads/squad-design/knowledge-base/chrome-brain-integration.md +17 -43
  469. package/squads/squad-design/knowledge-base/design-system-master-reference.md +1 -1
  470. package/squads/squad-design/knowledge-base/design-to-code-pipeline.md +1 -1
  471. package/squads/squad-design/knowledge-base/designops-maturity.md +1 -1
  472. package/squads/squad-design/knowledge-base/famous-design-systems-study.md +1 -1
  473. package/squads/squad-design/squad.yaml +26 -16
  474. package/squads/squad-engineering/README.md +82 -0
  475. package/squads/squad-engineering/agents/eng-architect.md +61 -0
  476. package/squads/squad-engineering/agents/eng-data.md +50 -0
  477. package/squads/squad-engineering/agents/eng-dev.md +64 -0
  478. package/squads/squad-engineering/agents/eng-devops.md +51 -0
  479. package/squads/squad-engineering/agents/eng-orqx.md +114 -0
  480. package/squads/squad-engineering/agents/eng-product.md +57 -0
  481. package/squads/squad-engineering/agents/eng-qa.md +49 -0
  482. package/squads/squad-engineering/agents/eng-sprint.md +57 -0
  483. package/squads/squad-engineering/checklists/dod.md +18 -0
  484. package/squads/squad-engineering/checklists/pre-publicacao.md +14 -0
  485. package/squads/squad-engineering/knowledge-base/doc-first-na-medida.md +46 -0
  486. package/squads/squad-engineering/knowledge-base/escada-e-cargos.md +61 -0
  487. package/squads/squad-engineering/knowledge-base/memoria-por-cargo.md +39 -0
  488. package/squads/squad-engineering/knowledge-base/seguranca-minima.md +30 -0
  489. package/squads/squad-engineering/knowledge-base/stack-por-tipo.md +30 -0
  490. package/squads/squad-engineering/knowledge-base/story-como-contrato.md +30 -0
  491. package/squads/squad-engineering/preferences/README.md +49 -0
  492. package/squads/squad-engineering/squad.yaml +202 -0
  493. package/squads/squad-engineering/tasks/classify-track.md +43 -0
  494. package/squads/squad-engineering/tasks/develop-story.md +43 -0
  495. package/squads/squad-engineering/tasks/draft-stories.md +46 -0
  496. package/squads/squad-engineering/tasks/initial-state-audit.md +55 -0
  497. package/squads/squad-engineering/tasks/operate-gate-code.md +52 -0
  498. package/squads/squad-engineering/tasks/plan-orchestration.md +35 -0
  499. package/squads/squad-engineering/tasks/prepare-environment.md +29 -0
  500. package/squads/squad-engineering/tasks/publish.md +32 -0
  501. package/squads/squad-engineering/tasks/run-retro.md +36 -0
  502. package/squads/squad-engineering/tasks/verify-dod.md +27 -0
  503. package/squads/squad-engineering/tasks/verify-track-after-diff.md +33 -0
  504. package/squads/squad-engineering/tasks/write-adr.md +29 -0
  505. package/squads/squad-engineering/tasks/write-architecture.md +44 -0
  506. package/squads/squad-engineering/tasks/write-brief.md +42 -0
  507. package/squads/squad-engineering/tasks/write-migration.md +31 -0
  508. package/squads/squad-engineering/tasks/write-prd.md +44 -0
  509. package/squads/squad-engineering/templates/adr-template.md +13 -0
  510. package/squads/squad-engineering/templates/arquitetura-template.md +43 -0
  511. package/squads/squad-engineering/templates/brief-template.md +34 -0
  512. package/squads/squad-engineering/templates/checklist-pre-publicacao-template.md +29 -0
  513. package/squads/squad-engineering/templates/estado-inicial-template.md +26 -0
  514. package/squads/squad-engineering/templates/memoria-do-cargo-template.md +32 -0
  515. package/squads/squad-engineering/templates/plano-de-orquestracao-template.md +20 -0
  516. package/squads/squad-engineering/templates/prd-template.md +41 -0
  517. package/squads/squad-engineering/templates/story-template.md +69 -0
  518. package/squads/squad-engineering/workflows/ajuste-cycle.yaml +75 -0
  519. package/squads/squad-engineering/workflows/feature-cycle.yaml +112 -0
  520. package/squads/squad-engineering/workflows/projeto-cycle.yaml +137 -0
  521. package/squads/squad-finance/README.md +18 -6
  522. package/squads/squad-finance/agents/budget-controller.md +9 -0
  523. package/squads/squad-finance/agents/finance-orqx.md +11 -2
  524. package/squads/squad-finance/agents/pricing-strategist.md +9 -0
  525. package/squads/squad-finance/agents/profitability-analyst.md +9 -0
  526. package/squads/squad-finance/agents/revenue-analyst.md +9 -0
  527. package/squads/squad-finance/knowledge-base/contabilidade-master-reference.md +1 -1
  528. package/squads/squad-finance/knowledge-base/finance-master-reference.md +1 -1
  529. package/squads/squad-finance/squad.yaml +18 -9
  530. package/squads/squad-growth/README.md +18 -6
  531. package/squads/squad-growth/agents/ga-analytics-engineer.md +9 -0
  532. package/squads/squad-growth/agents/ga-campaign-analyst.md +9 -0
  533. package/squads/squad-growth/agents/ga-cro-specialist.md +9 -0
  534. package/squads/squad-growth/agents/ga-data-analyst.md +9 -0
  535. package/squads/squad-growth/agents/ga-growth-hacker.md +9 -0
  536. package/squads/squad-growth/agents/ga-seo-strategist.md +9 -0
  537. package/squads/squad-growth/agents/growth-orqx.md +14 -5
  538. package/squads/squad-growth/knowledge-base/chrome-brain-integration.md +17 -38
  539. package/squads/squad-growth/squad.yaml +21 -16
  540. package/squads/squad-paidmedia/README.md +18 -6
  541. package/squads/squad-paidmedia/agents/campaign-analyst.md +9 -0
  542. package/squads/squad-paidmedia/agents/creative-strategist.md +9 -0
  543. package/squads/squad-paidmedia/agents/cro-specialist.md +9 -0
  544. package/squads/squad-paidmedia/agents/depesh-mandalia.md +9 -0
  545. package/squads/squad-paidmedia/agents/google-ads-specialist.md +9 -0
  546. package/squads/squad-paidmedia/agents/kasim-aslam.md +9 -0
  547. package/squads/squad-paidmedia/agents/meta-ads-specialist.md +9 -0
  548. package/squads/squad-paidmedia/agents/molly-pittman.md +9 -0
  549. package/squads/squad-paidmedia/agents/nicholas-kusmich.md +9 -0
  550. package/squads/squad-paidmedia/agents/paidmedia-orqx.md +11 -2
  551. package/squads/squad-paidmedia/agents/pedro-sobral.md +9 -0
  552. package/squads/squad-paidmedia/agents/performance-engineer.md +9 -0
  553. package/squads/squad-paidmedia/agents/pm-creative-performance-analyst.md +13 -4
  554. package/squads/squad-paidmedia/agents/pm-youtube-ads-specialist.md +12 -3
  555. package/squads/squad-paidmedia/agents/ralph-burns.md +9 -0
  556. package/squads/squad-paidmedia/agents/tom-breeze.md +9 -0
  557. package/squads/squad-paidmedia/agents/traffic-masters-chief.md +19 -201
  558. package/squads/squad-paidmedia/knowledge-base/chrome-brain-integration.md +17 -40
  559. package/squads/squad-paidmedia/squad.yaml +29 -7
  560. package/squads/squad-paidmedia/tasks/design-youtube-ad-campaign.md +2 -2
  561. package/squads/squad-product/README.md +18 -6
  562. package/squads/squad-product/agents/product-orqx.md +12 -4
  563. package/squads/squad-product/agents/ps-client-product-manager.md +9 -1
  564. package/squads/squad-product/agents/ps-delivery-manager.md +9 -1
  565. package/squads/squad-product/agents/ps-discovery-lead.md +9 -1
  566. package/squads/squad-product/agents/ps-product-analyst.md +9 -1
  567. package/squads/squad-product/agents/ps-product-ops-specialist.md +9 -1
  568. package/squads/squad-product/agents/ps-product-strategist.md +9 -1
  569. package/squads/squad-product/knowledge-base/chrome-brain-integration.md +17 -42
  570. package/squads/squad-product/squad.yaml +21 -16
  571. package/squads/squad-product/tasks/define-product-okrs.md +1 -1
  572. package/squads/squad-product/tasks/define-product-vision.md +1 -1
  573. package/squads/squad-research/README.md +18 -6
  574. package/squads/squad-research/agents/audience-intelligence.md +11 -2
  575. package/squads/squad-research/agents/competitive-intelligence.md +11 -2
  576. package/squads/squad-research/agents/data-chief.md +24 -188
  577. package/squads/squad-research/agents/data-synthesizer.md +9 -0
  578. package/squads/squad-research/agents/deep-researcher.md +9 -0
  579. package/squads/squad-research/agents/market-analyst.md +10 -1
  580. package/squads/squad-research/agents/research-orqx.md +13 -4
  581. package/squads/squad-research/agents/trend-forecaster.md +10 -1
  582. package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +2 -2
  583. package/squads/squad-research/knowledge-base/brazilian-market-research-sources.md +1 -1
  584. package/squads/squad-research/knowledge-base/chrome-brain-integration.md +17 -34
  585. package/squads/squad-research/knowledge-base/cross-squad-integration-protocol.md +7 -7
  586. package/squads/squad-research/knowledge-base/multi-agent-research-methodology.md +1 -1
  587. package/squads/squad-research/knowledge-base/research-synthesis-frameworks.md +1 -1
  588. package/squads/squad-research/preferences/README.md +7 -7
  589. package/squads/squad-research/squad.yaml +32 -20
  590. package/squads/squad-research/tasks/analyze-audience-psychographics.md +1 -1
  591. package/squads/squad-research/tasks/analyze-competitor-positioning.md +1 -1
  592. package/squads/squad-research/tasks/analyze-competitor-pricing.md +2 -2
  593. package/squads/squad-research/tasks/analyze-industry-trends.md +1 -1
  594. package/squads/squad-research/tasks/analyze-pricing-landscape.md +1 -1
  595. package/squads/squad-research/tasks/analyze-social-listening.md +1 -1
  596. package/squads/squad-research/tasks/analyze-value-chain.md +1 -1
  597. package/squads/squad-research/tasks/benchmark-competitor-digital.md +3 -3
  598. package/squads/squad-research/tasks/build-audience-persona.md +6 -6
  599. package/squads/squad-research/tasks/build-data-narrative.md +1 -1
  600. package/squads/squad-research/tasks/compile-competitive-dossier.md +4 -4
  601. package/squads/squad-research/tasks/conduct-jobs-to-be-done.md +5 -5
  602. package/squads/squad-research/tasks/coordinate-cross-squad-research.md +6 -6
  603. package/squads/squad-research/tasks/create-battle-card.md +3 -3
  604. package/squads/squad-research/tasks/create-executive-briefing.md +1 -1
  605. package/squads/squad-research/tasks/create-future-landscape.md +4 -4
  606. package/squads/squad-research/tasks/create-insight-deck.md +1 -1
  607. package/squads/squad-research/tasks/create-swot-analysis.md +4 -4
  608. package/squads/squad-research/tasks/detect-weak-signals.md +3 -3
  609. package/squads/squad-research/tasks/evaluate-market-entry.md +1 -1
  610. package/squads/squad-research/tasks/forecast-industry-trends.md +4 -4
  611. package/squads/squad-research/tasks/forecast-market-growth.md +1 -1
  612. package/squads/squad-research/tasks/generate-actionable-recommendations.md +3 -3
  613. package/squads/squad-research/tasks/identify-competitive-gaps.md +1 -1
  614. package/squads/squad-research/tasks/identify-inflection-points.md +3 -3
  615. package/squads/squad-research/tasks/identify-market-segments.md +1 -1
  616. package/squads/squad-research/tasks/manage-research-sprint.md +1 -1
  617. package/squads/squad-research/tasks/map-audience-ecosystem.md +1 -1
  618. package/squads/squad-research/tasks/map-audience-journey.md +4 -4
  619. package/squads/squad-research/tasks/map-competitive-landscape.md +3 -3
  620. package/squads/squad-research/tasks/map-strategic-implications.md +4 -4
  621. package/squads/squad-research/tasks/map-technology-adoption.md +3 -3
  622. package/squads/squad-research/tasks/orchestrate-research-pipeline.md +2 -2
  623. package/squads/squad-research/tasks/predict-market-shifts.md +1 -1
  624. package/squads/squad-research/tasks/profile-ideal-customer.md +4 -4
  625. package/squads/squad-research/tasks/run-porter-five-forces.md +1 -1
  626. package/squads/squad-research/tasks/run-scenario-planning.md +3 -3
  627. package/squads/squad-research/tasks/segment-audience.md +1 -1
  628. package/squads/squad-research/tasks/size-market-tam-sam-som.md +4 -4
  629. package/squads/squad-research/tasks/synthesize-research-report.md +4 -4
  630. package/squads/squad-research/tasks/track-emerging-technologies.md +3 -3
  631. package/squads/squad-research/tasks/visualize-research-data.md +1 -1
  632. package/squads/squad-research/workflows/audience-intelligence-cycle.yaml +4 -4
  633. package/squads/squad-research/workflows/competitive-intelligence-cycle.yaml +3 -3
  634. package/squads/squad-research/workflows/deep-research-cycle.yaml +3 -3
  635. package/squads/squad-research/workflows/full-research-sprint.yaml +7 -7
  636. package/squads/squad-research/workflows/market-analysis-cycle.yaml +3 -3
  637. package/squads/squad-research/workflows/trend-forecasting-cycle.yaml +3 -3
  638. package/squads/squad-storytelling/README.md +18 -6
  639. package/squads/squad-storytelling/agents/blake-snyder.md +9 -0
  640. package/squads/squad-storytelling/agents/dan-harmon.md +9 -0
  641. package/squads/squad-storytelling/agents/joseph-campbell.md +9 -0
  642. package/squads/squad-storytelling/agents/keith-johnstone.md +9 -0
  643. package/squads/squad-storytelling/agents/kindra-hall.md +9 -0
  644. package/squads/squad-storytelling/agents/marshall-ganz.md +9 -0
  645. package/squads/squad-storytelling/agents/matthew-dicks.md +9 -0
  646. package/squads/squad-storytelling/agents/nancy-duarte.md +9 -0
  647. package/squads/squad-storytelling/agents/oren-klaff.md +9 -0
  648. package/squads/squad-storytelling/agents/park-howell.md +9 -0
  649. package/squads/squad-storytelling/agents/shawn-coyne.md +9 -0
  650. package/squads/squad-storytelling/agents/story-chief.md +24 -170
  651. package/squads/squad-storytelling/agents/storytelling-orqx.md +12 -3
  652. package/squads/squad-storytelling/knowledge-base/chrome-brain-integration.md +17 -34
  653. package/squads/squad-storytelling/squad.yaml +28 -10
  654. package/agents/iron-orqx.md +0 -211
  655. package/bin/cli.js +0 -261
  656. package/squads/squad-claude/agents/db-sage.md +0 -152
  657. package/squads/squad-claude/agents/tools-orqx.md +0 -219
  658. package/squads/squad-cloning/agents/sop-extractor.md +0 -61
  659. package/squads/squad-design/agents/design-system.md +0 -210
  660. package/squads/squad-design/agents/ux-designer.md +0 -124
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ fix_paths.py - Pos-processamento do espelho gerado por wget.
4
+
5
+ 1. Converte caminhos relativos (../ ./) para root-absolutos (/...) em todos
6
+ os HTMLs, para que os assets carreguem em qualquer profundidade de rota
7
+ (o <base href=""> vazio do Next.js quebra paths relativos quando a URL muda).
8
+ 2. Conserta o CSS do Typekit corrompido pelo wget: o bloco
9
+ <style data-href="https://use.typekit.net/XXXX.css">...url('')...</style>
10
+ vira um <link rel="stylesheet" href="https://use.typekit.net/XXXX.css"/>
11
+ (NOTA: kits Typekit sao travados por dominio e NAO carregam em localhost;
12
+ so funcionam no dominio registrado. Para fontes 100% locais use o motor
13
+ de navegador - veja reference/lessons.md).
14
+
15
+ Uso: python3 fix_paths.py <rootDir>
16
+ """
17
+ import os, re, sys
18
+
19
+ ROOT = os.path.abspath(sys.argv[1]) if len(sys.argv) > 1 else os.getcwd()
20
+
21
+ SKIP = ('http://', 'https://', '//', 'data:', '#', 'mailto:', 'tel:', 'javascript:', '/')
22
+
23
+ # Runtime injetado no fim do <body> (igual ao capture.mjs):
24
+ # tk() ativa classes `tk-*` no <html> (kits Typekit); toast (opt-in via env) avisa
25
+ # que forms nao enviam offline. CLONE_FORM_TOAST=1 liga o toast.
26
+ FORM_TOAST = os.environ.get('CLONE_FORM_TOAST') == '1'
27
+ _TK = r"""function tk(){try{var c=new Set();for(var i=0;i<document.styleSheets.length;i++){var s=document.styleSheets[i],R;try{R=s.cssRules}catch(e){continue}if(!R)continue;for(var j=0;j<R.length;j++){var t=R[j].selectorText;if(!t)continue;var m=t.match(/\.tk-[\w-]+/g);if(m)for(var k=0;k<m.length;k++)c.add(m[k].slice(1))}}c.forEach(function(x){document.documentElement.classList.add(x)})}catch(e){}}if(document.readyState==='complete')tk();else window.addEventListener('load',tk);"""
28
+ _TOAST = r"""document.addEventListener('submit',function(e){var f=e.target,a=((f.getAttribute&&f.getAttribute('action'))||'').trim();if(!/^(https?:|mailto:)/i.test(a)){e.preventDefault();var t=document.createElement('div');t.textContent='Clone estatico — formularios nao enviam (sem backend).';t.style.cssText='position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111;color:#fff;padding:12px 18px;border-radius:8px;font:14px/1.4 system-ui,sans-serif;z-index:2147483647;max-width:90vw;box-shadow:0 4px 20px rgba(0,0,0,.3);opacity:0;transition:opacity .2s';document.body.appendChild(t);requestAnimationFrame(function(){t.style.opacity='1'});setTimeout(function(){t.style.opacity='0';setTimeout(function(){t.remove()},300)},3500)}},true);""" if FORM_TOAST else ""
29
+ INJECT = '<script data-clone-site="runtime">(function(){' + _TK + _TOAST + '})();</script>'
30
+
31
+ def to_abs(p, rel_dir):
32
+ if not p or p.startswith(SKIP):
33
+ return p
34
+ if p.startswith('./'):
35
+ p = p[2:]
36
+ ups = 0
37
+ while p.startswith('../'):
38
+ ups += 1; p = p[3:]
39
+ dirs = [d for d in rel_dir.split('/') if d]
40
+ base = dirs[:len(dirs) - ups] if ups <= len(dirs) else []
41
+ out = '/' + '/'.join(base + [p]) if base else '/' + p
42
+ return re.sub(r'/{2,}', '/', out)
43
+
44
+ ATTR_RE = re.compile(r'\b(href|src|poster)=(["\'])(.*?)\2', re.IGNORECASE)
45
+ SRCSET_RE = re.compile(r'\b(srcset|imagesrcset)=(["\'])(.*?)\2', re.IGNORECASE)
46
+ URLCSS_RE = re.compile(r'url\(\s*([\'"]?)([^\'")]*)\1\s*\)', re.IGNORECASE)
47
+ TYPEKIT_STYLE_RE = re.compile(
48
+ r'<style[^>]*data-href="(https://use\.typekit\.net/[^"]+\.css)"[^>]*>.*?</style>',
49
+ re.IGNORECASE | re.DOTALL)
50
+
51
+ def fix_html(path):
52
+ rel_dir = os.path.relpath(os.path.dirname(path), ROOT).replace('\\', '/')
53
+ if rel_dir == '.':
54
+ rel_dir = ''
55
+ with open(path, 'r', encoding='utf-8', errors='ignore') as f:
56
+ html = f.read()
57
+ orig = html
58
+
59
+ # Typekit corrompido -> link externo (1:1 do kit)
60
+ html = TYPEKIT_STYLE_RE.sub(lambda m: f'<link rel="stylesheet" href="{m.group(1)}"/>', html)
61
+
62
+ def attr(m):
63
+ return f'{m.group(1)}={m.group(2)}{to_abs(m.group(3), rel_dir)}{m.group(2)}'
64
+ html = ATTR_RE.sub(attr, html)
65
+
66
+ def srcset(m):
67
+ parts = []
68
+ for chunk in m.group(3).split(','):
69
+ seg = chunk.strip().split()
70
+ if seg:
71
+ seg[0] = to_abs(seg[0], rel_dir)
72
+ parts.append(' '.join(seg))
73
+ return f'{m.group(1)}={m.group(2)}{", ".join(parts)}{m.group(2)}'
74
+ html = SRCSET_RE.sub(srcset, html)
75
+
76
+ def urlcss(m):
77
+ return f'url("{to_abs(m.group(2), rel_dir)}")'
78
+ html = URLCSS_RE.sub(urlcss, html)
79
+
80
+ # injeta runtime (tk-* / toast) uma vez por página
81
+ # (replacement como função: INJECT contém \. \w que quebrariam re.sub com string)
82
+ if 'data-clone-site="runtime"' not in html:
83
+ html = re.sub(r'</body>', lambda _m: INJECT + '</body>', html, count=1, flags=re.IGNORECASE)
84
+
85
+ if html != orig:
86
+ with open(path, 'w', encoding='utf-8') as f:
87
+ f.write(html)
88
+ return True
89
+ return False
90
+
91
+ n = 0
92
+ for r, dirs, files in os.walk(ROOT):
93
+ dirs[:] = [d for d in dirs if not d.startswith('.')]
94
+ for fn in files:
95
+ if fn.endswith('.html'):
96
+ if fix_html(os.path.join(r, fn)):
97
+ n += 1
98
+ print(f'[fix_paths] {n} HTMLs corrigidos em {ROOT}')
99
+
100
+ # Stubs para chunks _next referenciados mas ausentes (evita 404 no console)
101
+ bm = None
102
+ for r, _, files in os.walk(ROOT):
103
+ for fn in files:
104
+ if fn == '_buildManifest.js':
105
+ bm = os.path.join(r, fn)
106
+ if bm:
107
+ static_root = os.path.dirname(os.path.dirname(bm)) # .../_next/static
108
+ with open(bm, encoding='utf-8', errors='ignore') as f:
109
+ content = f.read()
110
+ chunks = set(re.findall(r'"(static/chunks/[^"]+\.js)"', content))
111
+ stubbed = 0
112
+ for c in chunks:
113
+ p = os.path.join(static_root, c.replace('static/', '', 1))
114
+ if not os.path.exists(p):
115
+ os.makedirs(os.path.dirname(p), exist_ok=True)
116
+ open(p, 'w').close()
117
+ stubbed += 1
118
+ print(f'[fix_paths] {stubbed} chunks _next stub-ados')
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ serve.py - Servidor estatico para o espelho clonado.
4
+
5
+ Resolve o que quebrava no servidor padrao:
6
+ - /rota (sem barra) -> serve /rota/index.html
7
+ - /rota.html quando existe
8
+ - MIME correto p/ .js .mjs .css .woff2 .woff .ttf .webp .svg .json .wasm
9
+ - no-cache (dev) + CORS p/ fontes
10
+ - ignora BrokenPipe/ConnectionReset (cliente fechou)
11
+ - --spa: fallback de qualquer rota desconhecida p/ /index.html
12
+
13
+ Uso: python3 serve.py [--root DIR] [--port N] [--spa]
14
+ """
15
+ import http.server, socketserver, os, sys, posixpath, glob
16
+ from urllib.parse import unquote, urlsplit
17
+
18
+ ROOT = os.getcwd()
19
+ PORT = 8765
20
+ SPA = False
21
+ args = sys.argv[1:]
22
+ i = 0
23
+ while i < len(args):
24
+ a = args[i]
25
+ if a == '--root': ROOT = os.path.abspath(args[i + 1]); i += 2
26
+ elif a == '--port': PORT = int(args[i + 1]); i += 2
27
+ elif a == '--spa': SPA = True; i += 1
28
+ else: i += 1
29
+
30
+ REAL_ROOT = os.path.realpath(ROOT)
31
+
32
+ EXTRA_MIME = {
33
+ '.js': 'application/javascript', '.mjs': 'application/javascript',
34
+ '.css': 'text/css', '.json': 'application/json', '.map': 'application/json',
35
+ '.woff2': 'font/woff2', '.woff': 'font/woff', '.ttf': 'font/ttf',
36
+ '.otf': 'font/otf', '.eot': 'application/vnd.ms-fontobject',
37
+ '.svg': 'image/svg+xml', '.webp': 'image/webp', '.avif': 'image/avif',
38
+ '.ico': 'image/x-icon', '.wasm': 'application/wasm', '.webmanifest': 'application/manifest+json',
39
+ '.html': 'text/html; charset=utf-8',
40
+ }
41
+
42
+ class Handler(http.server.SimpleHTTPRequestHandler):
43
+ def __init__(self, *a, **k): super().__init__(*a, directory=ROOT, **k)
44
+
45
+ def end_headers(self):
46
+ self.send_header('Access-Control-Allow-Origin', '*')
47
+ self.send_header('Cache-Control', 'no-cache, no-store, must-revalidate')
48
+ super().end_headers()
49
+
50
+ def guess_type(self, path):
51
+ ext = posixpath.splitext(path)[1].lower()
52
+ if ext in EXTRA_MIME: return EXTRA_MIME[ext]
53
+ return super().guess_type(path)
54
+
55
+ def _within(self, p):
56
+ """Retorna o realpath se estiver dentro de ROOT; senao None (anti path-traversal)."""
57
+ try:
58
+ rp = os.path.realpath(p)
59
+ except OSError:
60
+ return None
61
+ return rp if (rp == REAL_ROOT or rp.startswith(REAL_ROOT + os.sep)) else None
62
+
63
+ def _resolve(self, urlpath):
64
+ p = unquote(urlsplit(urlpath).path)
65
+ # descarta segmentos vazios / '.' / '..' antes de montar o caminho
66
+ segs = [s for s in p.split('/') if s and s not in ('.', '..')]
67
+ fs = os.path.join(ROOT, *segs) if segs else ROOT
68
+ for cand in (fs, os.path.join(fs, 'index.html'), fs + '.html'):
69
+ safe = self._within(cand)
70
+ if safe and os.path.isfile(safe):
71
+ return safe
72
+ # fallback: asset pedido pelo nome-base (ex.: runtime do webpack pede
73
+ # `foo.css?dpl=...`) mas salvo no disco com hash-de-query no nome
74
+ # (`foo.<hash>.ext`). Casa por prefixo dentro do mesmo diretorio.
75
+ stem, ext = posixpath.splitext(fs)
76
+ if ext and os.path.isdir(os.path.dirname(fs)):
77
+ for m in sorted(glob.glob(glob.escape(stem) + '.*' + ext)):
78
+ safe = self._within(m)
79
+ if safe and os.path.isfile(safe):
80
+ return safe
81
+ if SPA:
82
+ safe = self._within(os.path.join(ROOT, 'index.html'))
83
+ if safe and os.path.isfile(safe):
84
+ return safe
85
+ return None
86
+
87
+ def send_head(self):
88
+ target = self._resolve(self.path)
89
+ if target is None:
90
+ self.send_error(404, 'Not Found')
91
+ return None
92
+ try:
93
+ f = open(target, 'rb')
94
+ except OSError:
95
+ self.send_error(404, 'Not Found'); return None
96
+ try:
97
+ fs = os.fstat(f.fileno())
98
+ self.send_response(200)
99
+ self.send_header('Content-Type', self.guess_type(target))
100
+ self.send_header('Content-Length', str(fs.st_size))
101
+ self.end_headers()
102
+ return f
103
+ except Exception:
104
+ f.close(); raise
105
+
106
+ def do_GET(self):
107
+ try:
108
+ f = self.send_head()
109
+ if f:
110
+ try: self.copyfile(f, self.wfile)
111
+ finally: f.close()
112
+ except (BrokenPipeError, ConnectionResetError): pass
113
+
114
+ def log_message(self, fmt, *a):
115
+ try: msg = (fmt % a)
116
+ except Exception: msg = ''
117
+ if ' 404 ' in msg or ' 500 ' in msg:
118
+ sys.stderr.write('[serve] %s %s\n' % (self.address_string(), msg))
119
+
120
+ class Server(socketserver.ThreadingMixIn, http.server.HTTPServer):
121
+ daemon_threads = True
122
+ allow_reuse_address = True
123
+
124
+ if __name__ == '__main__':
125
+ os.chdir(ROOT)
126
+ with Server(('127.0.0.1', PORT), Handler) as httpd:
127
+ print(f'[serve] http://localhost:{PORT} root={ROOT} spa={SPA}')
128
+ try: httpd.serve_forever()
129
+ except KeyboardInterrupt: pass
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * verify.mjs — Compara visualmente o ORIGINAL e o CLONE local.
4
+ *
5
+ * Para cada rota: tira screenshot full-page de ambos (desktop + opcional mobile),
6
+ * coleta erros de console e requests 404 do clone, e cruza a cobertura de fontes.
7
+ * Gera _verify/report.json + _verify/*.png para inspeção.
8
+ *
9
+ * Uso: node verify.mjs <originalUrl> <cloneBaseUrl> <outDir> [--routes "/,/sobre/"] [--mobile]
10
+ */
11
+ import { chromium } from 'playwright';
12
+ import { mkdir, writeFile, readFile, readdir, stat } from 'node:fs/promises';
13
+ import path from 'node:path';
14
+
15
+ const [originalUrl, cloneBase, outDir] = process.argv.slice(2);
16
+ if (!originalUrl || !cloneBase || !outDir) {
17
+ console.error('uso: node verify.mjs <originalUrl> <cloneBaseUrl> <outDir> [--routes "..."] [--mobile]');
18
+ process.exit(2);
19
+ }
20
+ const argv = process.argv.slice(2);
21
+ const ri = argv.indexOf('--routes');
22
+ const ROUTES = ri !== -1 && argv[ri + 1] ? argv[ri + 1].split(',').map(s => s.trim()) : ['/'];
23
+ const MOBILE = argv.includes('--mobile');
24
+ const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36';
25
+ const vdir = path.join(outDir, '_verify');
26
+
27
+ async function shoot(context, url, file, collect) {
28
+ const page = await context.newPage();
29
+ const errors = [], failed = [];
30
+ page.on('console', m => { if (m.type() === 'error') errors.push(m.text().slice(0, 200)); });
31
+ page.on('pageerror', e => errors.push(e.message.slice(0, 200)));
32
+ page.on('requestfailed', r => {
33
+ const u = r.url();
34
+ if (!/google|gtm|facebook|doubleclick|clarity|hotjar/.test(u)) failed.push(u);
35
+ });
36
+ let fonts = [];
37
+ try {
38
+ await page.goto(url, { waitUntil: 'load', timeout: 45000 });
39
+ await page.waitForLoadState('networkidle').catch(() => {});
40
+ await page.evaluate(async () => {
41
+ await new Promise(r => { let t = 0; const s = setInterval(() => { window.scrollBy(0, 800); t += 800; if (t > document.body.scrollHeight) { clearInterval(s); window.scrollTo(0, 0); r(); } }, 100); setTimeout(() => { clearInterval(s); r(); }, 6000); });
42
+ }).catch(() => {});
43
+ await page.evaluate(() => document.fonts && document.fonts.ready).catch(() => {});
44
+ await page.waitForTimeout(1200);
45
+ fonts = await page.evaluate(() => { try { return [...document.fonts].filter(f => f.status === 'loaded').map(f => `${f.family}/${f.weight}/${f.style}`); } catch { return []; } }).catch(() => []);
46
+ await page.screenshot({ path: file, fullPage: true });
47
+ } catch (e) {
48
+ if (collect) collect.note = 'goto falhou: ' + e.message;
49
+ } finally { await page.close().catch(() => {}); }
50
+ return { errors, failed, fonts: [...new Set(fonts)] };
51
+ }
52
+
53
+ // Checagens estáticas no espelho em disco (baratas, do método manual):
54
+ // integridade de <style> (CSS truncado) e cobertura de chunks do _buildManifest.
55
+ async function walkFiles(dir) {
56
+ const out = [];
57
+ async function rec(d) {
58
+ let ents; try { ents = await readdir(d, { withFileTypes: true }); } catch { return; }
59
+ for (const e of ents) {
60
+ if (e.name === '_verify' || e.name === 'node_modules' || e.name.startsWith('.')) continue;
61
+ const p = path.join(d, e.name);
62
+ if (e.isDirectory()) await rec(p); else out.push(p);
63
+ }
64
+ }
65
+ await rec(dir);
66
+ return out;
67
+ }
68
+ async function staticChecks(outDir) {
69
+ const res = { cssTruncated: [], chunks: { ok: 0, missing: [] } };
70
+ const files = await walkFiles(outDir);
71
+ for (const f of files.filter(x => x.endsWith('.html'))) {
72
+ try {
73
+ const h = await readFile(f, 'utf8');
74
+ const open = (h.match(/<style[\s>]/gi) || []).length;
75
+ const close = (h.match(/<\/style>/gi) || []).length;
76
+ if (open !== close) res.cssTruncated.push({ file: path.relative(outDir, f), open, close });
77
+ } catch {}
78
+ }
79
+ const manifest = files.find(x => x.endsWith('_buildManifest.js'));
80
+ if (manifest) {
81
+ try {
82
+ const txt = await readFile(manifest, 'utf8');
83
+ const nextDir = path.dirname(path.dirname(path.dirname(manifest))); // .../_next
84
+ const refs = [...new Set((txt.match(/"(static\/chunks\/[^"]+\.js)"/g) || []).map(m => m.slice(1, -1)))];
85
+ for (const ref of refs) {
86
+ const p = path.join(nextDir, ref);
87
+ try { const s = await stat(p); if (s.size > 0) res.chunks.ok++; else res.chunks.missing.push({ ref, reason: 'stub vazio' }); }
88
+ catch { res.chunks.missing.push({ ref, reason: 'ausente' }); }
89
+ }
90
+ } catch {}
91
+ }
92
+ return res;
93
+ }
94
+
95
+ (async () => {
96
+ await mkdir(vdir, { recursive: true });
97
+ const browser = await chromium.launch({ headless: true }); // sandbox ON
98
+ const report = { originalUrl, cloneBase, routes: [], generatedAt: new Date().toISOString() };
99
+ const ctx = await browser.newContext({ userAgent: UA, viewport: { width: 1440, height: 900 }, deviceScaleFactor: 1, ignoreHTTPSErrors: true, serviceWorkers: 'block' });
100
+ try {
101
+ for (const route of ROUTES) {
102
+ const slug = route.replace(/[^a-z0-9]+/gi, '_').replace(/^_|_$/g, '') || 'home';
103
+ const o = await shoot(ctx, originalUrl.replace(/\/$/, '') + route, path.join(vdir, `${slug}_original.png`));
104
+ const c = await shoot(ctx, cloneBase.replace(/\/$/, '') + route, path.join(vdir, `${slug}_clone.png`));
105
+ const missingFonts = o.fonts.filter(f => !c.fonts.includes(f));
106
+ report.routes.push({
107
+ route,
108
+ cloneConsoleErrors: c.errors,
109
+ cloneFailedRequests: c.failed,
110
+ fontsOriginal: o.fonts, fontsClone: c.fonts, fontsMissingInClone: missingFonts,
111
+ screenshots: { original: `_verify/${slug}_original.png`, clone: `_verify/${slug}_clone.png` },
112
+ });
113
+ const ok = c.failed.length === 0 && missingFonts.length === 0 && c.errors.length === 0;
114
+ console.log(`[verify] ${route} ${ok ? 'OK' : 'ATENÇÃO'} | 404s:${c.failed.length} erros:${c.errors.length} fontesFaltando:${missingFonts.length}`);
115
+ if (missingFonts.length) console.log(' fontes faltando no clone:', missingFonts.join(', '));
116
+ c.failed.slice(0, 5).forEach(f => console.log(' 404:', f));
117
+ }
118
+ } finally { await ctx.close().catch(() => {}); await browser.close().catch(() => {}); }
119
+ report.staticChecks = await staticChecks(outDir);
120
+ const sc = report.staticChecks;
121
+ console.log(`[verify] estático | CSS truncado: ${sc.cssTruncated.length} | chunks ok: ${sc.chunks.ok} faltando: ${sc.chunks.missing.length}`);
122
+ sc.cssTruncated.slice(0, 5).forEach(c => console.log(` <style> desbalanceado: ${c.file} (${c.open}/${c.close})`));
123
+ sc.chunks.missing.slice(0, 5).forEach(c => console.log(` chunk ${c.reason}: ${c.ref}`));
124
+ await writeFile(path.join(vdir, 'report.json'), JSON.stringify(report, null, 2));
125
+ console.log(`[verify] relatório: ${path.join(vdir, 'report.json')}`);
126
+ })().catch(e => { console.error('[verify] FALHA:', e); process.exit(1); });
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env bash
2
+ # wget_fallback.sh - Caminho rapido (sem navegador) para sites estaticos/SSG.
3
+ # NAO captura conteudo client-side de SPAs nem fontes de CDN travadas por dominio
4
+ # (ex: Adobe Typekit). Use o motor de navegador (capture.mjs) para fidelidade 1:1.
5
+ #
6
+ # Uso: wget_fallback.sh <url> <outDir>
7
+ set -uo pipefail
8
+
9
+ URL="${1:?url}"; OUT="${2:?outDir}"
10
+ HOST="$(printf '%s' "$URL" | sed -E 's#^https?://([^/]+).*#\1#')"
11
+ BARE="$(printf '%s' "$HOST" | sed -E 's/^www\.//')"
12
+ SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
13
+
14
+ mkdir -p "$OUT"
15
+ echo "[wget] espelhando $URL (dominios: $HOST,$BARE,www.$BARE)"
16
+
17
+ wget \
18
+ --mirror --convert-links --adjust-extension --page-requisites --no-parent \
19
+ --domains="$HOST,$BARE,www.$BARE" \
20
+ --tries=3 --timeout=30 --waitretry=2 --no-check-certificate -e robots=off \
21
+ --reject-regex '(gtm\.js|gtag|google-analytics|doubleclick|facebook\.com/tr|clarity\.ms)' \
22
+ --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" \
23
+ -P "$OUT" "$URL" 2>&1 | tail -20
24
+
25
+ # wget cria OUT/<host>/... -> achata para a raiz de OUT
26
+ SRC=""
27
+ for h in "$HOST" "www.$BARE" "$BARE"; do
28
+ [ -d "$OUT/$h" ] && SRC="$OUT/$h" && break
29
+ done
30
+ if [ -n "$SRC" ]; then
31
+ echo "[wget] achatando $SRC -> $OUT"
32
+ ( shopt -s dotglob nullglob; mv "$SRC"/* "$OUT"/ 2>/dev/null; rmdir "$SRC" 2>/dev/null )
33
+ fi
34
+
35
+ echo "[wget] corrigindo caminhos + Typekit + chunks"
36
+ python3 "$SKILL_DIR/scripts/fix_paths.py" "$OUT"
37
+
38
+ echo "[wget] concluido. (Aviso: fontes Typekit nao carregam em localhost neste modo.)"
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: clone-transplant
3
+ description: Veste a estrutura de um site clonado com a marca de um cliente. Lê o inventory.json da origem (cores por papel) e um brand.css de destino, troca cor por PAPEL (fundo→fundo, texto→texto), troca as fontes, e checa contraste no fim. Escreve numa pasta nova, nunca sobrescreve a origem. Use quando o usuário quiser o site do outro com a marca dele ("aquele site, com a minha cara").
4
+ argument-hint: <origem> <inventory.json> <brand.css> --out <pasta> [--nivel raso|fundo]
5
+ allowed-tools: Bash(node ${CLAUDE_SKILL_DIR}/scripts/transplant.mjs *), Read, Write
6
+ ---
7
+
8
+ # clone-transplant — a estrutura do outro, a marca do cliente
9
+
10
+ Troca as decisões de cor e fonte de um site clonado pelas da marca do cliente,
11
+ **por papel**. A estrutura e o layout continuam sendo do original; a alma passa a
12
+ ser da marca. Nunca inventa cor e nunca toca na origem.
13
+
14
+ ## Fluxo (caso A)
15
+ 1. `clone-site <url>` → pasta com o site do outro.
16
+ 2. `clone-inventory <url>` → `inventory.json` (cores da origem por papel).
17
+ 3. `clone-transplant <pasta> <inventory.json> <brand.css> --out <nova-pasta>`.
18
+
19
+ ## Como rodar
20
+ ```bash
21
+ node ${CLAUDE_SKILL_DIR}/scripts/transplant.mjs \
22
+ <origem: arquivo.html|pasta> <inventory.json> <brand.css> --out <pasta-nova> \
23
+ [--nivel raso|fundo] [--so paleta,tipografia] [--roles fundo=--crema,texto=--tartufo]
24
+ ```
25
+
26
+ ## Profundidade (fundo é o padrão, escolhível)
27
+ | Nível | Troca |
28
+ |---|---|
29
+ | `raso` | só a cor primária + as fontes |
30
+ | `fundo` (padrão) | paleta inteira por papel + tipografia (cor e fonte) |
31
+ | `--so a,b,c` | item a item (ex: `--so paleta` mantém as fontes do original) |
32
+ | `--roles ...` | força o mapa de papéis (ex: `texto=--tartufo`) |
33
+
34
+ > Troca **cor e fonte**. Raio e sombra ainda NÃO são trocados (ficam os do
35
+ > original) — não são prometidos aqui de propósito.
36
+
37
+ ## Regras (as travas que protegem a marca)
38
+ - **Mapa por papel, mostrado antes de aplicar.** O papel de cada cor do brand é
39
+ inferido do comentário da variável + luminância. Confira o mapa impresso.
40
+ - **Respeita negação no comentário.** `--oro: NUNCA texto` não vira cor de texto.
41
+ - **Texto = maior contraste sobre o fundo** quando há vários candidatos (o
42
+ `--tartufo` real vence o dourado de texto).
43
+ - **Contraste é check obrigatório.** Se o par texto/fundo da marca reprova AA, o
44
+ relatório marca BLOQUEADOR — não entregue assim.
45
+ - **Cores órfãs são reportadas** (apareceram no site, sem papel no inventário).
46
+ - **A origem nunca é tocada.** Sempre escreve em `--out` (pasta nova).
47
+
48
+ ## Saída
49
+ Pasta nova com o site transplantado + `_transplante.md` (mapa de cores aplicado,
50
+ tipografia, contraste do resultado, cores órfãs). Rode o `gate` antes do cliente.