@daniellins/power-claude 0.16.3

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.

Potentially problematic release.


This version of @daniellins/power-claude might be problematic. Click here for more details.

Files changed (467) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +121 -0
  3. package/bin/cli.js +124 -0
  4. package/installer/__tests__/doctor-ready-oracles.test.cjs +140 -0
  5. package/installer/__tests__/merge-settings.test.cjs +330 -0
  6. package/installer/adopt.js +161 -0
  7. package/installer/copy.js +203 -0
  8. package/installer/doctor.js +266 -0
  9. package/installer/install.js +155 -0
  10. package/installer/manifest.js +102 -0
  11. package/installer/motor-scripts.js +50 -0
  12. package/installer/motor-scripts.json +39 -0
  13. package/installer/uninstall.js +99 -0
  14. package/installer/update.js +376 -0
  15. package/installer/util.js +113 -0
  16. package/installer/wizard.js +64 -0
  17. package/package.json +26 -0
  18. package/scripts/__fixtures__/anti-path-demo/agents/ap-writer.md +13 -0
  19. package/scripts/__fixtures__/anti-path-demo/templates/write-tmpl.md +7 -0
  20. package/scripts/__fixtures__/anti-path-demo/workflows/wf-ap.smoke.json +10 -0
  21. package/scripts/__fixtures__/anti-path-demo/workflows/wf-ap.yaml +25 -0
  22. package/scripts/__fixtures__/assess-tier/retrofit-leve/pod/agents/content-chief.md +1 -0
  23. package/scripts/__fixtures__/assess-tier/retrofit-leve/pod/workflows/wf-criacao-redteam.yaml +3 -0
  24. package/scripts/__fixtures__/assess-tier/retrofit-leve/pod-spec.json +13 -0
  25. package/scripts/__fixtures__/fidelity/fake-green-average-in-band.yaml +21 -0
  26. package/scripts/__fixtures__/fidelity/fake-green-average.yaml +18 -0
  27. package/scripts/__fixtures__/fidelity/fake-green-denominator.yaml +19 -0
  28. package/scripts/__fixtures__/fidelity/fake-green-missing-evidence.yaml +18 -0
  29. package/scripts/__fixtures__/fidelity/fake-green-threshold.yaml +18 -0
  30. package/scripts/__fixtures__/fidelity/fake-green-weight.yaml +18 -0
  31. package/scripts/__fixtures__/fidelity/golden.yaml +31 -0
  32. package/scripts/__fixtures__/fidelity/trindade-incoherent.yaml +15 -0
  33. package/scripts/__fixtures__/forge-canonical/pod-spec-example.json +37 -0
  34. package/scripts/__fixtures__/migrate-squad/authored/agents/offer-engineer.md +17 -0
  35. package/scripts/__fixtures__/migrate-squad/authored/knowledge/no-source.md +7 -0
  36. package/scripts/__fixtures__/migrate-squad/authored/knowledge/value-stack-method.md +8 -0
  37. package/scripts/__fixtures__/migrate-squad/authored/specs/wf-sample.smoke.json +24 -0
  38. package/scripts/__fixtures__/migrate-squad/authored/specs/wf-sample.spec.json +45 -0
  39. package/scripts/__fixtures__/migrate-squad/legacy-squad/HEADLINE.md +3 -0
  40. package/scripts/__fixtures__/migrate-squad/legacy-squad/README.md +4 -0
  41. package/scripts/__fixtures__/migrate-squad/legacy-squad/agents/hormozi-offer.md +14 -0
  42. package/scripts/__fixtures__/migrate-squad/legacy-squad/checklists/dead-redundant.md +4 -0
  43. package/scripts/__fixtures__/migrate-squad/legacy-squad/checklists/method-guide.md +6 -0
  44. package/scripts/__fixtures__/migrate-squad/legacy-squad/checklists/veto-screen.md +4 -0
  45. package/scripts/__fixtures__/migrate-squad/legacy-squad/config/config.yaml +2 -0
  46. package/scripts/__fixtures__/migrate-squad/legacy-squad/data/case-library.md +3 -0
  47. package/scripts/__fixtures__/migrate-squad/legacy-squad/scripts/validate-mvn.py +16 -0
  48. package/scripts/__fixtures__/migrate-squad/legacy-squad/sops/sop-sample.md +3 -0
  49. package/scripts/__fixtures__/migrate-squad/legacy-squad/squad-io.yaml +14 -0
  50. package/scripts/__fixtures__/migrate-squad/legacy-squad/tasks/gather-context.md +7 -0
  51. package/scripts/__fixtures__/migrate-squad/legacy-squad/templates/output-tmpl.md +5 -0
  52. package/scripts/__fixtures__/migrate-squad/legacy-squad/workflows/wf-sample.yaml +24 -0
  53. package/scripts/__fixtures__/pipeline/pipelines/pipeline-checkpoint.yaml +21 -0
  54. package/scripts/__fixtures__/pipeline/pipelines/pipeline-demo.yaml +22 -0
  55. package/scripts/__fixtures__/pipeline/pods/pipe-a/agents/maker.md +13 -0
  56. package/scripts/__fixtures__/pipeline/pods/pipe-a/memory/learnings.consolidated.md +8 -0
  57. package/scripts/__fixtures__/pipeline/pods/pipe-a/memory/learnings.jsonl +83 -0
  58. package/scripts/__fixtures__/pipeline/pods/pipe-a/templates/make-tmpl.md +8 -0
  59. package/scripts/__fixtures__/pipeline/pods/pipe-a/workflows/wf-a.yaml +16 -0
  60. package/scripts/__fixtures__/pipeline/pods/pipe-b/agents/user.md +13 -0
  61. package/scripts/__fixtures__/pipeline/pods/pipe-b/memory/learnings.consolidated.md +8 -0
  62. package/scripts/__fixtures__/pipeline/pods/pipe-b/memory/learnings.jsonl +14 -0
  63. package/scripts/__fixtures__/pipeline/pods/pipe-b/templates/use-tmpl.md +6 -0
  64. package/scripts/__fixtures__/pipeline/pods/pipe-b/workflows/wf-b.yaml +16 -0
  65. package/scripts/__fixtures__/pod-run/agents/forge-chief.md +13 -0
  66. package/scripts/__fixtures__/pod-run/agents/pod-critic.md +13 -0
  67. package/scripts/__fixtures__/pod-run/templates/build-tmpl.md +8 -0
  68. package/scripts/__fixtures__/pod-run/templates/gate-tmpl.md +6 -0
  69. package/scripts/__fixtures__/pod-run/workflows/wf-min.yaml +43 -0
  70. package/scripts/__fixtures__/pod-run/workflows/wf-skip-modes.yaml +50 -0
  71. package/scripts/__fixtures__/pod-workflow/invalid-checkpoint-all-skippable.yaml +30 -0
  72. package/scripts/__fixtures__/pod-workflow/invalid-checkpoint-criteria-escalar-de-bloco.yaml +40 -0
  73. package/scripts/__fixtures__/pod-workflow/invalid-checkpoint-skip-mode-desconhecido.yaml +30 -0
  74. package/scripts/__fixtures__/pod-workflow/invalid-checkpoint-unknown-key.yaml +29 -0
  75. package/scripts/__fixtures__/pod-workflow/invalid-cycle.yaml +26 -0
  76. package/scripts/__fixtures__/pod-workflow/invalid-fix-loop-backedge.yaml +29 -0
  77. package/scripts/__fixtures__/pod-workflow/invalid-fix-loop-forward.yaml +29 -0
  78. package/scripts/__fixtures__/pod-workflow/invalid-handoff-open.yaml +27 -0
  79. package/scripts/__fixtures__/pod-workflow/invalid-knowledge-shape.yaml +18 -0
  80. package/scripts/__fixtures__/pod-workflow/invalid-missing-agent.yaml +15 -0
  81. package/scripts/__fixtures__/pod-workflow/invalid-missing-outputs.yaml +15 -0
  82. package/scripts/__fixtures__/pod-workflow/invalid-missing-template.yaml +15 -0
  83. package/scripts/__fixtures__/pod-workflow/invalid-missing-veto.yaml +13 -0
  84. package/scripts/__fixtures__/pod-workflow/invalid-template-not-on-disk.yaml +16 -0
  85. package/scripts/__fixtures__/pod-workflow/invalid-veto-prose.yaml +17 -0
  86. package/scripts/__fixtures__/pod-workflow/knowledge/a.md +4 -0
  87. package/scripts/__fixtures__/pod-workflow/knowledge/b.md +4 -0
  88. package/scripts/__fixtures__/pod-workflow/knowledge/c.md +4 -0
  89. package/scripts/__fixtures__/pod-workflow/templates/step-tmpl.md +7 -0
  90. package/scripts/__fixtures__/pod-workflow/valid-checkpoint-skip-modes.yaml +29 -0
  91. package/scripts/__fixtures__/pod-workflow/valid-fix-loop.yaml +30 -0
  92. package/scripts/__fixtures__/pod-workflow/valid-knowledge.yaml +30 -0
  93. package/scripts/__fixtures__/pod-workflow/valid-veto-always-true.yaml +20 -0
  94. package/scripts/__fixtures__/pod-workflow/valid.yaml +27 -0
  95. package/scripts/__fixtures__/smoke-canary/agents/canary-reporter.md +13 -0
  96. package/scripts/__fixtures__/smoke-canary/agents/canary-researcher.md +13 -0
  97. package/scripts/__fixtures__/smoke-canary/agents/canary-synth.md +13 -0
  98. package/scripts/__fixtures__/smoke-canary/memory/learnings.consolidated.md +10 -0
  99. package/scripts/__fixtures__/smoke-canary/memory/learnings.jsonl +448 -0
  100. package/scripts/__fixtures__/smoke-canary/templates/report-tmpl.md +9 -0
  101. package/scripts/__fixtures__/smoke-canary/templates/research-tmpl.md +7 -0
  102. package/scripts/__fixtures__/smoke-canary/templates/synth-tmpl.md +9 -0
  103. package/scripts/__fixtures__/smoke-canary/workflows/wf-canary.smoke.json +11 -0
  104. package/scripts/__fixtures__/smoke-canary/workflows/wf-canary.yaml +53 -0
  105. package/scripts/__fixtures__/source-audit/fake-green-bronze-unsignaled.yaml +10 -0
  106. package/scripts/__fixtures__/source-audit/fake-green-counts.yaml +9 -0
  107. package/scripts/__fixtures__/source-audit/fake-green-missing-evidence.yaml +9 -0
  108. package/scripts/__fixtures__/source-audit/fake-green-unclassified.yaml +10 -0
  109. package/scripts/__fixtures__/source-audit/fake-green-verdict.yaml +10 -0
  110. package/scripts/__fixtures__/source-audit/golden-blocked.yaml +10 -0
  111. package/scripts/__fixtures__/source-audit/golden.yaml +11 -0
  112. package/scripts/__fixtures__/sweep-forms/agents/forms-count.md +13 -0
  113. package/scripts/__fixtures__/sweep-forms/agents/forms-field.md +13 -0
  114. package/scripts/__fixtures__/sweep-forms/agents/forms-fileref.md +13 -0
  115. package/scripts/__fixtures__/sweep-forms/agents/forms-json.md +13 -0
  116. package/scripts/__fixtures__/sweep-forms/agents/forms-section.md +13 -0
  117. package/scripts/__fixtures__/sweep-forms/specs/wf-forms.spec.json +5 -0
  118. package/scripts/__fixtures__/sweep-forms/templates/t_count.md +5 -0
  119. package/scripts/__fixtures__/sweep-forms/templates/t_field.md +3 -0
  120. package/scripts/__fixtures__/sweep-forms/templates/t_fileref.md +3 -0
  121. package/scripts/__fixtures__/sweep-forms/templates/t_json.md +0 -0
  122. package/scripts/__fixtures__/sweep-forms/templates/t_section.md +3 -0
  123. package/scripts/__fixtures__/sweep-forms/workflows/wf-forms.smoke.json +13 -0
  124. package/scripts/__fixtures__/sweep-forms/workflows/wf-forms.yaml +67 -0
  125. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-1-noop-state-json.fixture.md +18 -0
  126. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-2-crash-buildworkflowyaml.fixture.md +26 -0
  127. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-3-nasce-verde-skip-modes.fixture.md +29 -0
  128. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-4-guarda-sem-irmao.fixture.md +17 -0
  129. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-5a-diff-stat-sem-guarda.fixture.md +17 -0
  130. package/scripts/__fixtures__/validate-story-acs-corpus/corpus-5b-test-f-sobre-diretorio.fixture.md +20 -0
  131. package/scripts/__fixtures__/veto-checks/copy-clean.md +4 -0
  132. package/scripts/__fixtures__/veto-checks/copy-dashes.md +4 -0
  133. package/scripts/__fixtures__/veto-checks/n8n-bad.md +18 -0
  134. package/scripts/__fixtures__/veto-checks/n8n-ok.md +22 -0
  135. package/scripts/__fixtures__/veto-checks/page-bad.html +7 -0
  136. package/scripts/__fixtures__/veto-checks/phash/copy.png +0 -0
  137. package/scripts/__fixtures__/veto-checks/phash/distinct.png +0 -0
  138. package/scripts/__fixtures__/veto-checks/phash/distinct2.png +0 -0
  139. package/scripts/__fixtures__/veto-checks/phash/make-fixtures.cjs +203 -0
  140. package/scripts/__fixtures__/veto-checks/phash/ref.png +0 -0
  141. package/scripts/__fixtures__/veto-checks/slide-ok.html +15 -0
  142. package/scripts/__fixtures__/veto-checks/slide-overflow.html +14 -0
  143. package/scripts/__fixtures__/veto-checks/sweep-pod/agents/vc-checker.md +13 -0
  144. package/scripts/__fixtures__/veto-checks/sweep-pod/templates/check-tmpl.md +6 -0
  145. package/scripts/__fixtures__/veto-checks/sweep-pod/workflows/wf-vc.smoke.json +10 -0
  146. package/scripts/__fixtures__/veto-checks/sweep-pod/workflows/wf-vc.yaml +19 -0
  147. package/scripts/__fixtures__/voz-do-dono/README.md +23 -0
  148. package/scripts/__fixtures__/voz-do-dono/dono-escalar.yaml +9 -0
  149. package/scripts/__fixtures__/voz-do-dono/dono-guia.yaml +10 -0
  150. package/scripts/__fixtures__/voz-do-dono/peca-3a-pessoa.md +6 -0
  151. package/scripts/__fixtures__/voz-do-dono/peca-com-lexico-proibido.md +6 -0
  152. package/scripts/__fixtures__/voz-do-dono/peca-limpa-1a-pessoa.md +6 -0
  153. package/scripts/__tests__/derive-ready-transitions.test.cjs +269 -0
  154. package/scripts/__tests__/enforce-cycle-authority.test.cjs +869 -0
  155. package/scripts/__tests__/enforce-git-push-authority.test.cjs +701 -0
  156. package/scripts/__tests__/enforce-ready-oracles.test.cjs +745 -0
  157. package/scripts/__tests__/motor-scripts.test.cjs +339 -0
  158. package/scripts/__tests__/pc-run-pod-counter.test.cjs +58 -0
  159. package/scripts/__tests__/pc-run-pod.test.cjs +578 -0
  160. package/scripts/__tests__/validate-pod-workflow.test.cjs +90 -0
  161. package/scripts/__tests__/validate-story-acs.test.cjs +607 -0
  162. package/scripts/anti-path.test.cjs +163 -0
  163. package/scripts/arena.cjs +514 -0
  164. package/scripts/arena.test.cjs +213 -0
  165. package/scripts/brief-leitura-obrigatoria.test.cjs +364 -0
  166. package/scripts/consolidate-knowledge-runner.test.cjs +249 -0
  167. package/scripts/default-funcional.test.cjs +153 -0
  168. package/scripts/derive-ready-transitions.cjs +325 -0
  169. package/scripts/forge-additive.test.cjs +158 -0
  170. package/scripts/forge-assess-tier.cjs +205 -0
  171. package/scripts/forge-assess-tier.test.cjs +114 -0
  172. package/scripts/forge-canonical.test.cjs +624 -0
  173. package/scripts/forge-generate.cjs +1303 -0
  174. package/scripts/forge-harden-learning.cjs +921 -0
  175. package/scripts/forge-harden-learning.test.cjs +242 -0
  176. package/scripts/forge-ingest-memory.cjs +136 -0
  177. package/scripts/forge-upgrade-pod.cjs +368 -0
  178. package/scripts/forge.test.cjs +609 -0
  179. package/scripts/harden-knowledge.test.cjs +612 -0
  180. package/scripts/harness-g5-lite.cjs +243 -0
  181. package/scripts/harness-g5-lite.test.cjs +134 -0
  182. package/scripts/hn-carousel-contrato-entrada.test.cjs +96 -0
  183. package/scripts/migrate-squad-orchestration.test.cjs +146 -0
  184. package/scripts/migration-manifest-sf3.2.test.cjs +382 -0
  185. package/scripts/migration-manifest-sf3.3.test.cjs +170 -0
  186. package/scripts/migration-manifest-sf5.5.test.cjs +189 -0
  187. package/scripts/migration-manifest.cjs +1146 -0
  188. package/scripts/migration-manifest.test.cjs +186 -0
  189. package/scripts/npm-scope-invocation.test.cjs +194 -0
  190. package/scripts/owner-layer.cjs +442 -0
  191. package/scripts/owner-layer.test.cjs +358 -0
  192. package/scripts/pc-run-pipeline.cjs +289 -0
  193. package/scripts/pc-run-pipeline.test.cjs +256 -0
  194. package/scripts/pc-run-pod-countgte.test.cjs +66 -0
  195. package/scripts/pc-run-pod.cjs +1355 -0
  196. package/scripts/phash-gate.test.cjs +433 -0
  197. package/scripts/pod-export-compile.cjs +487 -0
  198. package/scripts/pod-export-compile.test.cjs +312 -0
  199. package/scripts/pod-export-executor.cjs +678 -0
  200. package/scripts/pod-export-executor.test.cjs +1341 -0
  201. package/scripts/pod-export-hardening.test.cjs +531 -0
  202. package/scripts/pod-export-postprocess.cjs +427 -0
  203. package/scripts/pod-export-postprocess.test.cjs +558 -0
  204. package/scripts/pod-export-queue-race.test.cjs +865 -0
  205. package/scripts/pod-export-release.cjs +473 -0
  206. package/scripts/pod-export-release.test.cjs +267 -0
  207. package/scripts/pod-export-service.cjs +1297 -0
  208. package/scripts/pod-export-service.test.cjs +489 -0
  209. package/scripts/pod-export-tools.cjs +470 -0
  210. package/scripts/pod-export-ui.cjs +805 -0
  211. package/scripts/pod-export-ui.test.cjs +301 -0
  212. package/scripts/pod-memory-budget.test.cjs +309 -0
  213. package/scripts/pod-memory-note.cjs +357 -0
  214. package/scripts/pod-memory-note.test.cjs +452 -0
  215. package/scripts/pod-memory.cjs +1252 -0
  216. package/scripts/pod-memory.test.cjs +951 -0
  217. package/scripts/render-png.test.cjs +307 -0
  218. package/scripts/smoke-isolation.test.cjs +100 -0
  219. package/scripts/smoke-pod-workflow.cjs +755 -0
  220. package/scripts/smoke-sweep.test.cjs +170 -0
  221. package/scripts/validate-adopt.js +235 -0
  222. package/scripts/validate-branding.js +84 -0
  223. package/scripts/validate-budgets.js +140 -0
  224. package/scripts/validate-fidelity-output.cjs +267 -0
  225. package/scripts/validate-fidelity-output.test.cjs +101 -0
  226. package/scripts/validate-install.js +230 -0
  227. package/scripts/validate-no-clone.cjs +220 -0
  228. package/scripts/validate-no-clone.test.cjs +77 -0
  229. package/scripts/validate-pipeline.cjs +145 -0
  230. package/scripts/validate-pod-workflow.cjs +878 -0
  231. package/scripts/validate-source-audit.cjs +170 -0
  232. package/scripts/validate-source-audit.test.cjs +90 -0
  233. package/scripts/validate-story-acs.cjs +862 -0
  234. package/scripts/validate-update-scope-motor.js +421 -0
  235. package/scripts/veto-checks/html-valid.cjs +92 -0
  236. package/scripts/veto-checks/lexical-check.cjs +62 -0
  237. package/scripts/veto-checks/phash-gate.cjs +589 -0
  238. package/scripts/veto-checks/render-gate.cjs +165 -0
  239. package/scripts/veto-checks/render-png.cjs +358 -0
  240. package/scripts/veto-checks.test.cjs +219 -0
  241. package/scripts/watcher-audit.cjs +178 -0
  242. package/template/.claude/CLAUDE.md +103 -0
  243. package/template/.claude/agents/pc-analyst.md +100 -0
  244. package/template/.claude/agents/pc-architect.md +32 -0
  245. package/template/.claude/agents/pc-dev.md +27 -0
  246. package/template/.claude/agents/pc-devops.md +45 -0
  247. package/template/.claude/agents/pc-planner.md +32 -0
  248. package/template/.claude/agents/pc-po.md +25 -0
  249. package/template/.claude/agents/pc-qa.md +25 -0
  250. package/template/.claude/commands/power/academy.md +9 -0
  251. package/template/.claude/commands/power/automation.md +9 -0
  252. package/template/.claude/commands/power/content-carousel.md +267 -0
  253. package/template/.claude/commands/power/content.md +9 -0
  254. package/template/.claude/commands/power/dev.md +9 -0
  255. package/template/.claude/commands/power/forge.md +224 -0
  256. package/template/.claude/commands/power/hormozi.md +221 -0
  257. package/template/.claude/commands/power/modo.md +57 -0
  258. package/template/.claude/hooks/README.md +114 -0
  259. package/template/.claude/hooks/context-budget.cjs +64 -0
  260. package/template/.claude/hooks/enforce-cycle-authority.cjs +457 -0
  261. package/template/.claude/hooks/enforce-git-push-authority.cjs +925 -0
  262. package/template/.claude/hooks/enforce-ready-oracles.cjs +502 -0
  263. package/template/.claude/rules/authority.md +76 -0
  264. package/template/.claude/rules/curadoria-de-conhecimento.md +30 -0
  265. package/template/.claude/rules/model-matrix.md +34 -0
  266. package/template/.claude/rules/orchestration.md +133 -0
  267. package/template/.claude/settings.json +50 -0
  268. package/template/.claude/skills/pc-apply-qa-fixes/SKILL.md +108 -0
  269. package/template/.claude/skills/pc-apply-qa-fixes/references/fix-loop.md +40 -0
  270. package/template/.claude/skills/pc-apply-qa-fixes/references/fix-request-template.md +70 -0
  271. package/template/.claude/skills/pc-arena/SKILL.md +96 -0
  272. package/template/.claude/skills/pc-close-story/SKILL.md +105 -0
  273. package/template/.claude/skills/pc-commit/SKILL.md +108 -0
  274. package/template/.claude/skills/pc-develop-story/SKILL.md +116 -0
  275. package/template/.claude/skills/pc-full-cycle/SKILL.md +150 -0
  276. package/template/.claude/skills/pc-pipeline/SKILL.md +63 -0
  277. package/template/.claude/skills/pc-pipeline/references/gate-templates.md +46 -0
  278. package/template/.claude/skills/pc-review-story/SKILL.md +129 -0
  279. package/template/.claude/skills/pc-review-story/references/false-positive-detection.md +50 -0
  280. package/template/.claude/skills/pc-review-story/references/nfr-assess.md +47 -0
  281. package/template/.claude/skills/pc-review-story/references/risk-profile.md +75 -0
  282. package/template/.claude/skills/pc-review-story/references/security-checklist.md +69 -0
  283. package/template/.claude/skills/pc-review-story/references/test-design.md +37 -0
  284. package/template/.claude/skills/pc-review-story/references/trace-requirements.md +46 -0
  285. package/template/.claude/skills/pc-run-pod/SKILL.md +123 -0
  286. package/template/.claude/skills/pc-validate-story/SKILL.md +114 -0
  287. package/template/.claude/skills/pc-wave/SKILL.md +133 -0
  288. package/template/.env.example +10 -0
  289. package/template/knowledge/analyst/brainstorming.md +40 -0
  290. package/template/knowledge/analyst/brief-skeleton.md +32 -0
  291. package/template/knowledge/analyst/competitor-skeleton.md +39 -0
  292. package/template/knowledge/analyst/elicitation-menu.md +49 -0
  293. package/template/knowledge/analyst/market-research-skeleton.md +36 -0
  294. package/template/knowledge/analyst/research-prompt-structure.md +48 -0
  295. package/template/knowledge/analyst/roi-skeleton.md +51 -0
  296. package/template/knowledge/voice-dna/README.md +99 -0
  297. package/template/knowledge/voice-dna/voice-dna.example.yaml +157 -0
  298. package/template/pods/README.md +64 -0
  299. package/template/pods/academy/README.md +37 -0
  300. package/template/pods/academy/agents/academy-chief.md +27 -0
  301. package/template/pods/academy/examples/palestra.example.md +142 -0
  302. package/template/pods/academy/pod-spec.json +44 -0
  303. package/template/pods/academy/templates/materiais-tmpl.md +17 -0
  304. package/template/pods/academy/templates/revisao-didatica-tmpl.md +20 -0
  305. package/template/pods/academy/workflows/wf-materiais-revisao.yaml +30 -0
  306. package/template/pods/authority-content/README.md +43 -0
  307. package/template/pods/authority-content/agents/content-chief.md +28 -0
  308. package/template/pods/authority-content/pod-spec.json +45 -0
  309. package/template/pods/authority-content/templates/criacao-na-voz-tmpl.md +17 -0
  310. package/template/pods/authority-content/templates/red-team-factual-tmpl.md +23 -0
  311. package/template/pods/authority-content/workflows/wf-criacao-redteam.yaml +30 -0
  312. package/template/pods/automation/README.md +37 -0
  313. package/template/pods/automation/agents/langgraph-architect.md +30 -0
  314. package/template/pods/automation/agents/n8n-architect.md +30 -0
  315. package/template/pods/automation/examples/README.md +46 -0
  316. package/template/pods/automation/examples/n8n-content-radar.example.json +380 -0
  317. package/template/pods/automation/knowledge/langgraph-patterns.md +126 -0
  318. package/template/pods/automation/knowledge/n8n-patterns.md +131 -0
  319. package/template/pods/automation/memory/README.md +16 -0
  320. package/template/pods/automation/memory/learnings.consolidated.md +8 -0
  321. package/template/pods/automation/memory/learnings.jsonl +0 -0
  322. package/template/pods/automation/pod-spec.json +109 -0
  323. package/template/pods/automation/specs/wf-langgraph-build.spec.json +107 -0
  324. package/template/pods/automation/squad-io.yaml +28 -0
  325. package/template/pods/automation/templates/lg-build-tmpl.md +17 -0
  326. package/template/pods/automation/templates/lg-design-tmpl.md +23 -0
  327. package/template/pods/automation/templates/lg-discover-tmpl.md +20 -0
  328. package/template/pods/automation/templates/lg-handoff-tmpl.md +20 -0
  329. package/template/pods/automation/templates/lg-test-tmpl.md +20 -0
  330. package/template/pods/automation/templates/n8n-build-tmpl.md +14 -0
  331. package/template/pods/automation/templates/n8n-design-tmpl.md +23 -0
  332. package/template/pods/automation/templates/n8n-discover-tmpl.md +20 -0
  333. package/template/pods/automation/templates/n8n-handoff-tmpl.md +20 -0
  334. package/template/pods/automation/templates/n8n-test-tmpl.md +20 -0
  335. package/template/pods/automation/workflows/wf-langgraph-build.smoke.json +11 -0
  336. package/template/pods/automation/workflows/wf-langgraph-build.yaml +64 -0
  337. package/template/pods/automation/workflows/wf-n8n-build.smoke.json +11 -0
  338. package/template/pods/automation/workflows/wf-n8n-build.yaml +65 -0
  339. package/template/pods/content-carousel/README.md +91 -0
  340. package/template/pods/content-carousel/agents/carousel-builder.md +28 -0
  341. package/template/pods/content-carousel/agents/carousel-visual.md +24 -0
  342. package/template/pods/content-carousel/agents/hn-curator.md +74 -0
  343. package/template/pods/content-carousel/config/heuristic-watcher-rubric.yaml +59 -0
  344. package/template/pods/content-carousel/knowledge/aquisicao-ancora.md +443 -0
  345. package/template/pods/content-carousel/knowledge/cta-brief.md +25 -0
  346. package/template/pods/content-carousel/knowledge/dono.example.yaml +45 -0
  347. package/template/pods/content-carousel/knowledge/identidade-visual-mascote.md +62 -0
  348. package/template/pods/content-carousel/knowledge/image-generation.md +62 -0
  349. package/template/pods/content-carousel/knowledge/selecao-de-ancora.md +60 -0
  350. package/template/pods/content-carousel/knowledge/slides-html.md +56 -0
  351. package/template/pods/content-carousel/memory/README.md +18 -0
  352. package/template/pods/content-carousel/memory/learnings.consolidated.md +6 -0
  353. package/template/pods/content-carousel/memory/learnings.jsonl +0 -0
  354. package/template/pods/content-carousel/pod-spec.json +100 -0
  355. package/template/pods/content-carousel/squad-io.yaml +10 -0
  356. package/template/pods/content-carousel/templates/assembly-tmpl.md +23 -0
  357. package/template/pods/content-carousel/templates/digest-tmpl.md +29 -0
  358. package/template/pods/content-carousel/templates/visuals-tmpl.md +20 -0
  359. package/template/pods/content-carousel/workflows/wf-content-carousel.smoke.json +23 -0
  360. package/template/pods/content-carousel/workflows/wf-content-carousel.yaml +80 -0
  361. package/template/pods/dev-ia/README.md +45 -0
  362. package/template/pods/dev-ia/agents/db-architect.md +33 -0
  363. package/template/pods/dev-ia/agents/ux-architect.md +29 -0
  364. package/template/pods/dev-ia/knowledge/db/migration-protocol.md +95 -0
  365. package/template/pods/dev-ia/knowledge/db/rls-patterns.md +101 -0
  366. package/template/pods/dev-ia/knowledge/db/schema-review-checklist.md +76 -0
  367. package/template/pods/dev-ia/memory/README.md +16 -0
  368. package/template/pods/dev-ia/memory/learnings.consolidated.md +8 -0
  369. package/template/pods/dev-ia/memory/learnings.jsonl +0 -0
  370. package/template/pods/dev-ia/pod-spec.json +34 -0
  371. package/template/pods/dev-ia/templates/schema-review-tmpl.md +23 -0
  372. package/template/pods/dev-ia/templates/ux-flow-review-tmpl.md +23 -0
  373. package/template/pods/dev-ia/tools/db-ops/backup-manager.sh +321 -0
  374. package/template/pods/dev-ia/tools/db-ops/best-practices-auditor.sh +534 -0
  375. package/template/pods/dev-ia/tools/db-ops/bootstrap-runner.sh +255 -0
  376. package/template/pods/dev-ia/tools/db-ops/data-loader.sh +616 -0
  377. package/template/pods/dev-ia/tools/db-ops/detect-database.sh +113 -0
  378. package/template/pods/dev-ia/tools/db-ops/explain-analyzer.sh +285 -0
  379. package/template/pods/dev-ia/tools/db-ops/health-checker.sh +323 -0
  380. package/template/pods/dev-ia/tools/db-ops/migration-runner.sh +308 -0
  381. package/template/pods/dev-ia/tools/db-ops/postgresql-schema-loader.sh +334 -0
  382. package/template/pods/dev-ia/tools/db-ops/query-runner.sh +171 -0
  383. package/template/pods/dev-ia/tools/db-ops/rls-policy-installer.sh +480 -0
  384. package/template/pods/dev-ia/tools/db-ops/rls-test-suite.sh +172 -0
  385. package/template/pods/dev-ia/tools/db-ops/schema-context-loader.sh +176 -0
  386. package/template/pods/hormozi-method/README.md +52 -0
  387. package/template/pods/hormozi-method/agents/acquisition-strategist.md +33 -0
  388. package/template/pods/hormozi-method/agents/conversion-copywriter.md +34 -0
  389. package/template/pods/hormozi-method/agents/monetization-architect.md +35 -0
  390. package/template/pods/hormozi-method/agents/offer-engineer.md +37 -0
  391. package/template/pods/hormozi-method/knowledge/core-four-leads.md +51 -0
  392. package/template/pods/hormozi-method/knowledge/grand-slam-offer.md +66 -0
  393. package/template/pods/hormozi-method/knowledge/growth-decision.md +38 -0
  394. package/template/pods/hormozi-method/knowledge/hooks-and-ads.md +56 -0
  395. package/template/pods/hormozi-method/knowledge/launch-email.md +31 -0
  396. package/template/pods/hormozi-method/knowledge/money-model.md +46 -0
  397. package/template/pods/hormozi-method/knowledge/opportunity-screening.md +44 -0
  398. package/template/pods/hormozi-method/knowledge/pages.md +25 -0
  399. package/template/pods/hormozi-method/knowledge/pos-lancamento-leads.md +56 -0
  400. package/template/pods/hormozi-method/knowledge/pricing.md +36 -0
  401. package/template/pods/hormozi-method/knowledge/retention-ltv.md +37 -0
  402. package/template/pods/hormozi-method/knowledge/scale-roadmap.md +35 -0
  403. package/template/pods/hormozi-method/knowledge/swipefiles-curados.md +44 -0
  404. package/template/pods/hormozi-method/knowledge/value-equation-diagnostic.md +77 -0
  405. package/template/pods/hormozi-method/memory/README.md +16 -0
  406. package/template/pods/hormozi-method/memory/learnings.consolidated.md +6 -0
  407. package/template/pods/hormozi-method/memory/learnings.jsonl +0 -0
  408. package/template/pods/hormozi-method/pod-spec.json +50 -0
  409. package/template/pods/hormozi-method/specs/wf-full-launch-sequence.spec.json +149 -0
  410. package/template/pods/hormozi-method/specs/wf-lead-magnet-pipeline.spec.json +125 -0
  411. package/template/pods/hormozi-method/specs/wf-money-model-design.spec.json +117 -0
  412. package/template/pods/hormozi-method/specs/wf-paid-ads-campaign.spec.json +132 -0
  413. package/template/pods/hormozi-method/specs/wf-scaling-diagnostic.spec.json +121 -0
  414. package/template/pods/hormozi-method/squad-io.yaml +43 -0
  415. package/template/pods/hormozi-method/templates/conversion-copywriter-tmpl.md +20 -0
  416. package/template/pods/hormozi-method/templates/launch-execucao-tmpl.md +17 -0
  417. package/template/pods/hormozi-method/templates/launch-fechamento-tmpl.md +17 -0
  418. package/template/pods/hormozi-method/templates/launch-pos-tmpl.md +17 -0
  419. package/template/pods/hormozi-method/templates/launch-preparacao-tmpl.md +17 -0
  420. package/template/pods/hormozi-method/templates/lm-copy-tmpl.md +17 -0
  421. package/template/pods/hormozi-method/templates/lm-distribuicao-tmpl.md +18 -0
  422. package/template/pods/hormozi-method/templates/lm-estrategia-tmpl.md +17 -0
  423. package/template/pods/hormozi-method/templates/mm-arquitetura-tmpl.md +18 -0
  424. package/template/pods/hormozi-method/templates/mm-copy-tmpl.md +17 -0
  425. package/template/pods/hormozi-method/templates/mm-diagnostico-tmpl.md +14 -0
  426. package/template/pods/hormozi-method/templates/monetization-architect-tmpl.md +17 -0
  427. package/template/pods/hormozi-method/templates/offer-engineer-tmpl.md +20 -0
  428. package/template/pods/hormozi-method/templates/paid-criativos-tmpl.md +19 -0
  429. package/template/pods/hormozi-method/templates/paid-fundacao-tmpl.md +17 -0
  430. package/template/pods/hormozi-method/templates/paid-teste-escala-tmpl.md +17 -0
  431. package/template/pods/hormozi-method/templates/scaling-diagnostico-tmpl.md +17 -0
  432. package/template/pods/hormozi-method/templates/scaling-priorizacao-tmpl.md +17 -0
  433. package/template/pods/hormozi-method/templates/scaling-roadmap-tmpl.md +17 -0
  434. package/template/pods/hormozi-method/workflows/wf-full-launch-sequence.smoke.json +12 -0
  435. package/template/pods/hormozi-method/workflows/wf-full-launch-sequence.yaml +56 -0
  436. package/template/pods/hormozi-method/workflows/wf-grand-slam-offer.smoke.json +11 -0
  437. package/template/pods/hormozi-method/workflows/wf-grand-slam-offer.yaml +45 -0
  438. package/template/pods/hormozi-method/workflows/wf-lead-magnet-pipeline.smoke.json +9 -0
  439. package/template/pods/hormozi-method/workflows/wf-lead-magnet-pipeline.yaml +45 -0
  440. package/template/pods/hormozi-method/workflows/wf-money-model-design.smoke.json +11 -0
  441. package/template/pods/hormozi-method/workflows/wf-money-model-design.yaml +45 -0
  442. package/template/pods/hormozi-method/workflows/wf-paid-ads-campaign.smoke.json +9 -0
  443. package/template/pods/hormozi-method/workflows/wf-paid-ads-campaign.yaml +46 -0
  444. package/template/pods/hormozi-method/workflows/wf-scaling-diagnostic.smoke.json +11 -0
  445. package/template/pods/hormozi-method/workflows/wf-scaling-diagnostic.yaml +44 -0
  446. package/template/pods/squad-forge/README.md +53 -0
  447. package/template/pods/squad-forge/agents/forge-chief.md +31 -0
  448. package/template/pods/squad-forge/agents/mind-extractor.md +29 -0
  449. package/template/pods/squad-forge/agents/pod-critic.md +26 -0
  450. package/template/pods/squad-forge/config/heuristic-watcher-rubric.yaml +74 -0
  451. package/template/pods/squad-forge/knowledge/fidelity-rubric.yaml +176 -0
  452. package/template/pods/squad-forge/knowledge/g6-memory-check.md +17 -0
  453. package/template/pods/squad-forge/knowledge/memory-ingest.md +16 -0
  454. package/template/pods/squad-forge/knowledge/source-audit-rubric.yaml +60 -0
  455. package/template/pods/squad-forge/memory/README.md +16 -0
  456. package/template/pods/squad-forge/memory/learnings.consolidated.md +8 -0
  457. package/template/pods/squad-forge/memory/learnings.jsonl +0 -0
  458. package/template/pods/squad-forge/pod-spec.json +166 -0
  459. package/template/pods/squad-forge/squad-io.yaml +13 -0
  460. package/template/pods/squad-forge/tasks/pipeline.md +158 -0
  461. package/template/pods/squad-forge/templates/discovery-tmpl.md +40 -0
  462. package/template/pods/squad-forge/templates/generation-tmpl.md +18 -0
  463. package/template/pods/squad-forge/templates/red-team-tmpl.md +17 -0
  464. package/template/pods/squad-forge/templates/register-tmpl.md +17 -0
  465. package/template/pods/squad-forge/templates/workflow-tmpl.yaml +101 -0
  466. package/template/pods/squad-forge/workflows/wf-forge.smoke.json +12 -0
  467. package/template/pods/squad-forge/workflows/wf-forge.yaml +60 -0
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: ux-architect
3
+ description: "Arquiteto de UX/UI — fluxos de usuário, revisão UX de stories e telas, acessibilidade essencial e design system leve. Use para: desenhar fluxo e wireframe textual de feature, revisar UX de story/tela, rodar checklist de acessibilidade, decidir tokens/espaçamento/tipografia."
4
+ model: sonnet
5
+ budget_tokens: 1200
6
+ ---
7
+
8
+ # ux-architect
9
+
10
+ ## Papel
11
+
12
+ Arquiteto de UX/UI do pod dev-ia. Guardião da experiência: mobile-first, todo estado desenhado, acessível por default. Critério de qualidade: nenhuma tela chega ao papel Dev sem os 4 estados (loading/empty/error/success) especificados e sem funcionar em 360px.
13
+
14
+ ## Missões
15
+
16
+ | Missão | O que faz |
17
+ |---|---|
18
+ | `*flow` | Fluxo de usuário e wireframe textual de uma feature: jornada passo a passo (entrada → ações → saídas), wireframe em blocos/ASCII por tela, estados de cada passo, pontos de fricção e de decisão. Entrada: story ou SPEC; saída: seção UX anexável à story, consumível pelo Dev sem ferramenta de design. |
19
+ | `*review` | Revisão UX de story/tela: hierarquia visual (1 ação primária por tela), estados vazios/erro/carregando especificados, mobile-first ≥ 360px, feedback visual < 200ms em toda interação (resposta otimista ou skeleton), consistência com padrões já existentes no produto. Veredito com lista acionável por severidade. |
20
+ | `*a11y` | Checklist de acessibilidade essencial: contraste (4.5:1 texto, 3:1 componentes/ícones), foco visível com ordem lógica, semântica (landmarks, hierarquia de headings, labels em inputs, alt em imagens), operável 100% por teclado, alvos de toque ≥ 44px, erros anunciados (`aria-live`). PASS/FAIL por item, com evidência. |
21
+ | `*ds` | Decisões de design system leve: tokens semânticos (nunca hex soltos no código), escala de espaçamento (base 4/8px), tipografia com escala e pesos limitados, raio/elevação e estados de componente (hover/focus/active/disabled). Saída: tabela de tokens. Estende o DS do projeto quando existir — nunca cria um paralelo. |
22
+
23
+ ## Regras de ouro
24
+
25
+ - **Mobile-first sempre:** desenhe para 360px e expanda; layout que só funciona em desktop é NO-GO.
26
+ - **Todo estado da UI desenhado:** loading, empty, error e success especificados antes do dev — "só o caminho feliz" reprova a revisão.
27
+ - **Acessibilidade não é opcional:** item FAIL do `*a11y` bloqueia como bug funcional, não como melhoria futura.
28
+ - **Segue o design system do projeto quando existir;** sem DS, propõe o mínimo via `*ds` antes de inventar estilo tela a tela.
29
+ - **Não implementa nem publica:** especifica e revisa; código é do papel Dev, push é do devops.
@@ -0,0 +1,95 @@
1
+ # Protocolo de Migration Segura (PostgreSQL/Supabase)
2
+
3
+ Toda mudança de schema segue este protocolo. Fases são gates: não avança sem passar na anterior.
4
+
5
+ ## Fase 0 — Plano
6
+
7
+ Antes de escrever SQL, documentar:
8
+
9
+ - **Propósito** da migration e ACs que atende.
10
+ - **Objetos afetados** (tabelas, funções, triggers, policies, índices).
11
+ - **Breaking changes** e impacto na aplicação (o app precisa de deploy antes/depois?).
12
+ - **Plano de rollback** (obrigatório — ver Fase 6). Migration sem rollback documentado não executa.
13
+ - **Janela**: precisa de downtime? Se sim, quanto e quando; se não, qual padrão zero-downtime cobre.
14
+ - **Idempotência**: usar `IF NOT EXISTS`, `CREATE OR REPLACE`, `DROP ... IF EXISTS` — a migration deve ser segura de rodar duas vezes.
15
+
16
+ ## Fase 1 — Verificação de ordem (verify-order)
17
+
18
+ DDL na ordem certa evita falha no meio da execução:
19
+
20
+ ```
21
+ extensions → types/enums → functions → tables (pais antes de filhos/FKs)
22
+ → indexes → triggers → RLS enable → policies → grants → seeds
23
+ ```
24
+
25
+ Checks heurísticos: função chamada antes de criada? RLS/policy antes da tabela existir? Trigger antes da função? View sobre view na ordem errada? FK para tabela ainda não criada?
26
+
27
+ Automático: `tools/db-ops/migration-runner.sh {path} --verify-order`
28
+
29
+ ## Fase 2 — Dry-run (obrigatório)
30
+
31
+ Executar a migration inteira dentro de transação revertida:
32
+
33
+ ```bash
34
+ psql "$DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
35
+ BEGIN;
36
+ \i {path}
37
+ ROLLBACK;
38
+ SQL
39
+ ```
40
+
41
+ Valida: sintaxe, dependências, ordem de execução, violações de constraint. NÃO valida: correção dos dados, performance. Automático: `migration-runner.sh {path} --dry-run`.
42
+
43
+ ## Fase 3 — Snapshot pré-migration
44
+
45
+ ```bash
46
+ TS=$(date +%Y%m%d%H%M%S)
47
+ pg_dump "$DB_URL" --schema-only --clean --if-exists > "supabase/snapshots/${TS}_before.sql"
48
+ ```
49
+
50
+ Sem snapshot recente (<24h para produção), não aplica. `tools/db-ops/backup-manager.sh` automatiza snapshot/restore.
51
+
52
+ ## Fase 4 — Aplicação
53
+
54
+ 1. **Advisory lock** — impede migrations concorrentes:
55
+ `SELECT pg_try_advisory_lock(hashtext('dbops:migrate'))` → se falso, outra migration em curso: PARAR.
56
+ 2. Aplicar com `psql -v ON_ERROR_STOP=1 -f {path}` (transação; falha = rollback automático do PostgreSQL).
57
+ 3. Snapshot pós-migration + diff (`before` vs `after`) para auditoria.
58
+ 4. Liberar o lock: `SELECT pg_advisory_unlock(hashtext('dbops:migrate'))`.
59
+
60
+ Automático (lock + snapshots + diff): `migration-runner.sh {path}`.
61
+
62
+ ## Fase 5 — Smoke-test e pós-checks
63
+
64
+ - Contagens de linhas batem com o esperado; integridade de FKs verificada.
65
+ - `*rls` audit: nenhuma tabela nova sem RLS; policies bloqueiam acesso não autorizado.
66
+ - `ANALYZE` nas tabelas afetadas; checar slow query log e hot paths.
67
+ - Aplicação funciona (queries reais, não só o schema).
68
+
69
+ ## Fase 6 — Rollback (estratégias, em ordem de preferência)
70
+
71
+ 1. **Roll-forward (preferida):** NOVA migration que desfaz a mudança; testar em staging; aplicar pelo mesmo protocolo.
72
+ 2. **PITR:** restaurar para ponto anterior à migration (parar writes → restore → validar integridade → retomar). Para emergências com perda de dados.
73
+ 3. **Manual (última opção):** backup de emergência ANTES; rodar rollback script em transação; arquivar dados antes de dropar; dropar objetos em ordem reversa; smoke-test.
74
+
75
+ Pós-rollback: app funcional, RLS ok, performance normal, `ANALYZE`, documentar incidente + causa-raiz.
76
+
77
+ ## Padrões zero-downtime
78
+
79
+ | Mudança | Padrão seguro |
80
+ |---|---|
81
+ | Adicionar coluna | `ADD COLUMN ... DEFAULT ...` (seguro em PG moderno) |
82
+ | Remover coluna | Expand/contract: app para de usar → deploy → só então `DROP COLUMN` |
83
+ | Renomear coluna | Nunca `RENAME` direto: add nova → backfill → app lê ambas → app só nova → drop antiga |
84
+ | Criar índice | `CREATE INDEX CONCURRENTLY` (fora de transação) |
85
+ | Adicionar constraint | `ADD CONSTRAINT ... NOT VALID` (sem scan) → `VALIDATE CONSTRAINT` depois (cancelável) |
86
+ | Backfill grande | Em lotes com pausa; nunca UPDATE de tabela inteira em uma transação |
87
+
88
+ ## STOPs críticos — NÃO aplicar se
89
+
90
+ - RLS ausente em tabela exposta sem justificativa documentada.
91
+ - Sem backup/snapshot nas últimas 24h (produção).
92
+ - Não testada em staging / dry-run não executado.
93
+ - Sem plano de rollback preparado.
94
+ - Mudança breaking sem plano de deploy coordenado com o app.
95
+ - Ninguém disponível para suportar caso algo quebre.
@@ -0,0 +1,101 @@
1
+ # Padrões de RLS (Row Level Security)
2
+
3
+ Princípio: **RLS habilitada por default em toda tabela acessível por cliente.** Exceções (tabelas operacionais service-role-only) são decisão documentada. Defense in depth: RLS + constraints + defaults + triggers.
4
+
5
+ ## Padrões canônicos
6
+
7
+ ### Dados do próprio usuário (owner) — o padrão KISS
8
+ ```sql
9
+ ALTER TABLE t ENABLE ROW LEVEL SECURITY;
10
+ CREATE POLICY "t_owner" ON t FOR ALL TO authenticated
11
+ USING ((SELECT auth.uid()) = user_id)
12
+ WITH CHECK ((SELECT auth.uid()) = user_id);
13
+ ```
14
+
15
+ ### Acesso por time
16
+ ```sql
17
+ team_id IN (SELECT team_id FROM team_members WHERE user_id = (SELECT auth.uid()))
18
+ ```
19
+
20
+ ### Por papel (role) — sempre app_metadata, NUNCA user_metadata
21
+ ```sql
22
+ (auth.jwt() -> 'app_metadata' ->> 'role') = 'admin'
23
+ ```
24
+
25
+ ### Leitura pública, escrita autenticada
26
+ ```sql
27
+ CREATE POLICY "public_read" ON t FOR SELECT TO anon, authenticated USING (true);
28
+ CREATE POLICY "auth_write" ON t FOR INSERT TO authenticated
29
+ WITH CHECK ((SELECT auth.uid()) = user_id);
30
+ ```
31
+
32
+ ### Multi-tenant (isolamento por organização)
33
+ ```sql
34
+ CREATE POLICY "org_isolation" ON t FOR ALL TO authenticated
35
+ USING (org_id = (auth.jwt() ->> 'org_id')::uuid)
36
+ WITH CHECK (org_id = (auth.jwt() ->> 'org_id')::uuid);
37
+ ```
38
+
39
+ ### Temporal (conteúdo publicado)
40
+ ```sql
41
+ published_at IS NOT NULL AND published_at <= now()
42
+ ```
43
+
44
+ ### Hierárquico (acesso via pai)
45
+ ```sql
46
+ EXISTS (SELECT 1 FROM parent p WHERE p.id = t.parent_id AND p.user_id = (SELECT auth.uid()))
47
+ ```
48
+
49
+ ### SECURITY DEFINER (checagens complexas, rápido)
50
+ ```sql
51
+ CREATE FUNCTION user_has_access(uuid) RETURNS boolean
52
+ LANGUAGE sql SECURITY DEFINER STABLE AS $$ ... $$;
53
+ -- policy: USING (user_has_access(id))
54
+ ```
55
+
56
+ ## Armadilhas (custam caro)
57
+
58
+ - ❌ `auth.uid()` sem embrulhar em `(SELECT ...)` → reavaliado por linha, ordens de magnitude mais lento.
59
+ - ❌ `user_metadata` em policy → editável pelo próprio usuário = escalação de privilégio. Só `app_metadata`.
60
+ - ❌ Colunas de policy sem índice → full scan em toda query.
61
+ - ❌ Sem tratamento de NULL → quebra para anon (auth.uid() é NULL sem sessão).
62
+ - ❌ RLS habilitada com 0 policies → tabela inacessível para todos (parece bug de app).
63
+ - ❌ Service role usada no código do app para "contornar" RLS → buraco de segurança, nunca fazer.
64
+
65
+ ## Cobertura de policies
66
+
67
+ - **Boa:** 1 policy `FOR ALL` (abordagem KISS) OU 4 policies granulares (SELECT/INSERT/UPDATE/DELETE).
68
+ - **Incompleta:** granular com 1–3 policies — operações não cobertas falham silenciosamente.
69
+ - Granular por operação é preferível quando leitura e escrita têm regras diferentes.
70
+
71
+ ## Auditoria de cobertura
72
+
73
+ ```sql
74
+ -- Tabelas sem RLS (risco)
75
+ SELECT tablename FROM pg_tables
76
+ WHERE schemaname='public' AND rowsecurity = false ORDER BY tablename;
77
+
78
+ -- Cobertura por tabela
79
+ SELECT t.tablename, COUNT(p.policyname) AS policies, ARRAY_AGG(p.cmd) AS cmds
80
+ FROM pg_tables t
81
+ LEFT JOIN pg_policies p ON p.tablename = t.tablename AND p.schemaname='public'
82
+ WHERE t.schemaname='public' AND t.rowsecurity
83
+ GROUP BY t.tablename ORDER BY policies;
84
+ ```
85
+
86
+ Automático: `tools/db-ops/rls-test-suite.sh {table}` (matriz de permissões multi-usuário) e `tools/db-ops/rls-policy-installer.sh {table} {kiss|read-only|private|team|custom} [owner_column]`.
87
+
88
+ ## Teste obrigatório: positivo E negativo
89
+
90
+ Toda policy é validada com impersonação de usuário real:
91
+
92
+ ```sql
93
+ BEGIN;
94
+ SET LOCAL role authenticated;
95
+ SET LOCAL request.jwt.claims TO '{"sub":"<user-uuid>","role":"authenticated"}';
96
+ -- caso positivo: o dono vê/edita suas linhas
97
+ -- caso negativo: outro usuário NÃO vê/edita (0 linhas — não erro)
98
+ ROLLBACK;
99
+ ```
100
+
101
+ Sem camada de Auth presente, `auth.uid()` retorna NULL — avisar explicitamente. Rodar auditoria de RLS: após toda migration, antes de todo deploy, ao criar tabela nova.
@@ -0,0 +1,76 @@
1
+ # Checklist de Design e Revisão de Schema
2
+
3
+ Usado em duas direções: desenhar schema novo (`*model`) e auditar schema existente (`*audit`).
4
+
5
+ ## Gate KISS — ANTES de qualquer design (obrigatório)
6
+
7
+ O objetivo é impedir over-engineering. Passos, em ordem:
8
+
9
+ 0. **Contexto primeiro:** carregar o schema vivo (banco é a fonte da verdade). Nunca propor entidade sem saber o que já existe.
10
+ 1. **Validar realidade:** o sistema funciona hoje? Se funciona (filesystem/API ok, nada quebra) → PARAR.
11
+ 2. **Validar dor:** perguntar explicitamente ao usuário. "Não tem problema / funciona bem" → PARAR.
12
+ 3. **Alavancar o existente:** tabelas atuais resolvem? Estender tabela > criar tabela nova.
13
+ 4. **Incremento mínimo:** 0 mudanças > 1 campo > 1 tabela > várias tabelas.
14
+ 5. **Trade-offs:** apresentar opções (REUSE | EXTEND | CREATE | RECONSIDER); o usuário decide.
15
+
16
+ **Red flags (qualquer um = parar e revalidar):** 3+ tabelas sem pedido explícito; 10+ campos sem dor validada; analytics/tracking presumido sem evidência; design para "necessidade futura"; não checou schema existente; <100 registros (considerar JSON/arquivo); usuário único (considerar SQLite); zero relacionamentos (reconsiderar se precisa de DB).
17
+
18
+ **Regra de ouro:** "Se funciona hoje, mudar exige justificativa extraordinária."
19
+
20
+ ## Modelagem de domínio
21
+
22
+ - [ ] Requisitos de negócio entendidos; entidades núcleo identificadas
23
+ - [ ] Relacionamentos mapeados (1:1, 1:N, M:N — junção com PK composta ou própria)
24
+ - [ ] Regras de negócio documentadas (viram CHECK/trigger, não só código de app)
25
+ - [ ] Access patterns analisados ANTES do design (como os dados serão consultados?)
26
+ - [ ] Escala estimada (linhas, QPS, crescimento)
27
+
28
+ ## Tabelas e tipos
29
+
30
+ - [ ] Baseline em toda tabela: `id UUID PK (gen_random_uuid())`, `created_at`, `updated_at`
31
+ - [ ] `TIMESTAMPTZ` (nunca TIMESTAMP) · `JSONB` (nunca JSON) · `TEXT` (não VARCHAR sem limite real) · `NUMERIC` para dinheiro (nunca FLOAT)
32
+ - [ ] Normalização até 3NF, desnormalização só com justificativa de performance
33
+ - [ ] Soft delete (`deleted_at`) quando trilha de auditoria for necessária
34
+ - [ ] JSONB para perfis/metadata flexíveis; colunas para o que é consultado/indexado
35
+
36
+ ## Constraints (integridade no banco, não só no app)
37
+
38
+ - [ ] FKs SEMPRE — com `ON DELETE/ON UPDATE` apropriados (CASCADE/SET NULL conscientes)
39
+ - [ ] `NOT NULL` em campos obrigatórios; `DEFAULT` onde faz sentido
40
+ - [ ] `CHECK` para regras de negócio; `UNIQUE` para chaves naturais
41
+ - [ ] Nomes de constraint significativos (aparecem em erros)
42
+
43
+ ## Índices
44
+
45
+ - [ ] TODA FK indexada (crítico para JOINs — não é automático!)
46
+ - [ ] Colunas de WHERE e ORDER BY dos hot paths
47
+ - [ ] Parciais para queries filtradas; GIN para JSONB/arrays/full-text
48
+ - [ ] Colunas usadas em policies RLS indexadas
49
+ - [ ] Sem índices redundantes/inúteis (verificar `pg_stat_user_indexes`)
50
+ - [ ] Em produção: sempre `CREATE INDEX CONCURRENTLY`
51
+
52
+ ## Segurança
53
+
54
+ - [ ] RLS em toda tabela exposta (ver `rls-patterns.md`); exceções documentadas
55
+ - [ ] `auth.uid()` embrulhado em SELECT; `app_metadata`, nunca `user_metadata`
56
+ - [ ] Policies testadas com impersonação (positivo E negativo)
57
+ - [ ] Credenciais só por env var; SSL (`sslmode=require`) e pooler em produção
58
+ - [ ] Dados sensíveis/PII: criptografia e conformidade (LGPD/GDPR); retenção definida
59
+
60
+ ## Performance e operação
61
+
62
+ - [ ] `EXPLAIN (ANALYZE, BUFFERS)` nos hot paths; `pg_stat_statements` habilitado
63
+ - [ ] Timeouts: `statement_timeout≈30s`, `lock_timeout≈10s`, `idle_in_transaction_session_timeout≈60s`
64
+ - [ ] Pooling de conexões; particionamento se >100M linhas
65
+ - [ ] Autovacuum ativo; `ANALYZE` após operações em massa; bloat monitorado
66
+ - [ ] Backups diários automáticos + PITR; restore testado
67
+
68
+ ## Documentação
69
+
70
+ - [ ] `COMMENT ON TABLE/COLUMN` para tudo que não é óbvio
71
+ - [ ] Policies RLS e propósito de índices documentados
72
+ - [ ] ERD atualizado; plano de migration documentado (ver `migration-protocol.md`)
73
+
74
+ ## Scorecard de auditoria (`*audit`)
75
+
76
+ Para schema existente, gerar scorecard por seção (tabelas/constraints/índices/segurança/performance/docs) com: ✅ conforme, ⚠️ atenção, ❌ crítico. Todo ❌ vira item de ação com fix sugerido. Execução determinística: `tools/db-ops/best-practices-auditor.sh`.
@@ -0,0 +1,16 @@
1
+ # Memória do pod `dev-ia` — OPERANTE (SF2.3)
2
+
3
+ > Instalada por forge-generate.cjs via o motor `scripts/pod-memory.cjs` (SF2.1).
4
+ > Tier: STANDARD/COMPLEX. Esta memória NÃO é scaffold morto: nasce cabeada ao lifecycle.
5
+
6
+ ## Cabeamento (nenhuma ação manual necessária)
7
+
8
+ - `learnings.jsonl` — log cru append-only. O runner (`pc-run-pod`, SF2.2) faz `append()`
9
+ ao fim de cada etapa/run. O AGENTE NUNCA lê este arquivo (auditoria apenas).
10
+ - `learnings.consolidated.md` — top-N curado (`consolidate()`), no path canônico que
11
+ `getConsolidatedForBrief()` entrega ao brief da run. É o ÚNICO que o agente lê.
12
+ - Auditoria de aderência por run: `config/heuristic-watcher-rubric.yaml` +
13
+ `scripts/watcher-audit.cjs` (executado pelo `pod-critic`).
14
+
15
+ Assim que este pod rodar via `pc-run-pod`, injeção do consolidado no brief e append de
16
+ learnings funcionam sem qualquer passo manual — a operância é o cabeamento ao motor pronto.
@@ -0,0 +1,8 @@
1
+ # Memória consolidada — dev-ia
2
+
3
+ > Curado por pod-memory.cjs (SF2.1). Único artefato de memória lido pelo agente.
4
+ > Log cru (learnings.jsonl) NÃO é lido pelo agente — auditoria apenas.
5
+
6
+ ## Heurísticas (top-N)
7
+
8
+ _Nenhuma heurística consolidada ainda._
File without changes
@@ -0,0 +1,34 @@
1
+ {
2
+ "pod": "dev-ia",
3
+ "workflowId": "dev-ia",
4
+ "interface": true,
5
+ "critical": true,
6
+ "handoffs": 0,
7
+ "_adr": "ADR-004 adendo 2026-07-25 (forma STANDARD-interface, caso de fronteira SF6.2). Tier STANDARD/COMPLEX pela criticidade (db-architect: migrations/RLS), com supressão de wf-*.yaml e squad-io.yaml — zero handoff artefato-a-artefato entre os 2 especialistas. O processo do ciclo dev vive nas skills pc-* (validate-story-draft/develop-story/review-story/apply-qa-fixes/close-story/pc-commit), não neste pod. Fabricar um wf db->ux tornaria o pod um segundo orquestrador (anti-padrão 'frankenstein', ADR-001/§G4). Enforcement do crítico: QA adversarial (âncora opus) + gatilho de escalada 'migration de dados' da model-matrix + scripts determinísticos de tools/db-ops/ — tudo DENTRO do ciclo pc-*, onde o db-architect é acionado ad hoc por story.",
8
+ "_sources": {
9
+ "job_interface": "template/pods/dev-ia/README.md:5 — 'O ciclo já existe como skills; este pod é a formalização fina — o mapa de quando usar cada uma.' + README.md:13-20 (o ciclo dev é tabela de SKILLS, não de agentes do pod)",
10
+ "especialistas_ad_hoc": "template/pods/dev-ia/README.md:33-39 (secao 'Quando usar o quê' = condição->entrada: 'Schema, RLS, migration ou performance de banco -> db-architect'; ux-architect por 'Design de fluxo/UI') + agent-authority.md §'Papéis POWER CLAUDE' ('db-architect, ux-architect entram por gatilho registrado na story')",
11
+ "criticality_db": "agents/db-architect.md:19-20 (*migrate: fases verify-order->dry-run->snapshot->apply; *rls: policies RLS) — entregável crítico de persistência (ADR-004). O critical do pod é o MÁX dos 2 especialistas: db-architect critical:true domina ux-architect (critical:false).",
12
+ "agents_reais": "agents/db-architect.md (6 comandos: *model/*migrate/*rls/*optimize/*audit/*ops) + agents/ux-architect.md (4 missões: *flow/*review/*a11y/*ds) — 10 pontos de entrada independentes, nenhuma sequência declarada"
13
+ },
14
+ "interface_evidence": {
15
+ "zero_handoff_artefato": "Nenhum output de db-architect é input de ux-architect (ou vice-versa) no mesmo pedido. db-architect produz schema/DDL/migration/RLS/audit (persistência, agents/db-architect.md:18-23); ux-architect produz seção UX/veredito/a11y/tokens (interface, agents/ux-architect.md:18-21). Camadas ortogonais.",
16
+ "output_consumido_pelo_ciclo_nao_pelo_par": "agents/ux-architect.md:18 — *flow gera 'seção UX anexável à story, consumível pelo Dev sem ferramenta de design': o consumidor é o papel Dev do ciclo pc-*, NÃO o db-architect. Simetricamente, o schema/DDL do db-architect é consumido pela implementação (papel Dev), não pelo ux-architect.",
17
+ "invocacao_condicional_nao_sequencial": "README.md:33-39 é mapa condição->entrada, não pipeline. Nenhuma linha declara 'rode X depois Y' entre os 2 agentes; cada um é acionado ad hoc pela condição da story (agent-authority.md §'Papéis POWER CLAUDE').",
18
+ "processo_do_critico_fora_do_pod": "As etapas checkpointáveis do ciclo (validação de story, QA gate) já são as skills validate-story-draft/review-story (README.md:13-20). Formalizá-las aqui duplicaria o orquestrador (Escopo OUT da story SF6.2)."
19
+ },
20
+ "agents": [
21
+ {
22
+ "name": "db-architect",
23
+ "step": "schema-review",
24
+ "output": "schema-review",
25
+ "sections": ["## Contexto (schema vivo)", "## Modelagem / Mudança proposta", "## Migration (dry-run + rollback)", "## RLS e segurança", "## Índices e performance"]
26
+ },
27
+ {
28
+ "name": "ux-architect",
29
+ "step": "ux-flow-review",
30
+ "output": "ux-flow-review",
31
+ "sections": ["## Contexto (story/tela)", "## Fluxo e wireframe textual", "## Estados (loading/empty/error/success)", "## Acessibilidade essencial", "## Veredito por severidade"]
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,23 @@
1
+ # Template de saída — etapa `schema-review` (agente `db-architect`, artefato `schema-review`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Contexto (schema vivo)
8
+ <!-- preencher: conteúdo de "Contexto (schema vivo)" -->
9
+
10
+ ## Modelagem / Mudança proposta
11
+ <!-- preencher: conteúdo de "Modelagem / Mudança proposta" -->
12
+
13
+ ## Migration (dry-run + rollback)
14
+ <!-- preencher: conteúdo de "Migration (dry-run + rollback)" -->
15
+
16
+ ## RLS e segurança
17
+ <!-- preencher: conteúdo de "RLS e segurança" -->
18
+
19
+ ## Índices e performance
20
+ <!-- preencher: conteúdo de "Índices e performance" -->
21
+
22
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
23
+ confianca: <alta|media|baixa>
@@ -0,0 +1,23 @@
1
+ # Template de saída — etapa `ux-flow-review` (agente `ux-architect`, artefato `ux-flow-review`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Contexto (story/tela)
8
+ <!-- preencher: conteúdo de "Contexto (story/tela)" -->
9
+
10
+ ## Fluxo e wireframe textual
11
+ <!-- preencher: conteúdo de "Fluxo e wireframe textual" -->
12
+
13
+ ## Estados (loading/empty/error/success)
14
+ <!-- preencher: conteúdo de "Estados (loading/empty/error/success)" -->
15
+
16
+ ## Acessibilidade essencial
17
+ <!-- preencher: conteúdo de "Acessibilidade essencial" -->
18
+
19
+ ## Veredito por severidade
20
+ <!-- preencher: conteúdo de "Veredito por severidade" -->
21
+
22
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
23
+ confianca: <alta|media|baixa>