@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,224 @@
1
+ ---
2
+ description: "Conduz `*new` do pod squad-forge PELO MOTOR determinístico (pc-run-pod.cjs): cria agente/pod/skill novo com entrevista de escopo, veto de discovery, checkpoint de red-team e checkpoint de registro, e memória curada. Use para: criar agente, pod ou skill novo a partir de um pedido de negócio."
3
+ ---
4
+
5
+ Você conduz `*new` do pod `squad-forge` **pelo motor** `scripts/pc-run-pod.cjs`.
6
+ Não existe caminho "leia `forge-chief.md` e siga o pedido": todo passo é despachado, verificado
7
+ em disco e liberado pelo motor — é assim que o veto da etapa `discovery` (escopo registrado, os 3
8
+ campos canônicos preenchidos) e os 2 checkpoints bloqueantes (`red-team`, `register`) deixam de
9
+ depender de o agente seguir a prosa direito. `squad-forge` fabrica os outros pods do framework — é
10
+ por isso que ele próprio passa a nascer sob o mesmo padrão que impõe aos demais.
11
+
12
+ Pedido do usuário: $ARGUMENTS
13
+
14
+ ---
15
+
16
+ ## Passo 0 — a entrevista de escopo (G1) + ECO, self-contida
17
+
18
+ **Aviso de persistência, ANTES de qualquer pergunta:** tudo que o dono responder abaixo viaja
19
+ **verbatim** para o `--task-ref` e fica **gravado permanentemente** no `state.json` da run, em
20
+ disco — inclusive as respostas do item 6 (forma de clone) e do item 7 (degrau de voz do PRÓPRIO
21
+ dono, se o pod for de conteúdo), que podem carregar material de voz/persona. Calibre o que responde
22
+ sabendo disso agora — o ECO ao final é confirmação, não a sua primeira chance de decidir o que
23
+ revelar.
24
+
25
+ Pergunte, na ordem, os **7 itens do G1** (`pods/squad-forge/tasks/pipeline.md`, réplica self-contida
26
+ — não é preciso ler o arquivo para conduzir esta entrevista):
27
+
28
+ 1. **Job-to-be-done** em uma frase, sem "e também".
29
+ 2. **Comandos necessários** — nome de cada um e o que entrega.
30
+ 3. **Conhecimento consumido** por comando — já existe em `knowledge/`? precisa de DNA? precisa ser
31
+ criado?
32
+ 4. **Onde vive** — aplicando a árvore comando × agente × pod (`pods/squad-forge/README.md`).
33
+ 5. **Tier** — classificação SIMPLE / STANDARD/COMPLEX pelo gate de proporcionalidade
34
+ (`node scripts/forge-assess-tier.cjs <spec.json>`), com os gatilhos registrados.
35
+ 6. **Forma do clone**, se clona um especialista — persona completa (voice DNA, custo maior por
36
+ ativação, trade-off informado) ou só metodologias (otimizado, default) — ou "não é clone"
37
+ explícito.
38
+ 7. **Degrau de voz do DONO**, se o pod é de CONTEÚDO (produz peça assinada por alguém) — eixo
39
+ SEPARADO do item 6 (`ADR-013`/`ADR-027`: voz de QUEM assina, não de quem se clona): sem voz
40
+ (nenhuma checagem) / guia de estilo (bloco `voz:` em `knowledge/dono.yaml` + veto léxico) / DNA
41
+ completo do dono (`mind-extractor`, custo informado) — ou "não é pod de conteúdo" explícito.
42
+
43
+ Mais os **3 campos canônicos** que o veto da etapa `discovery` do `wf-forge.yaml` já verifica — para
44
+ o **POD SENDO CRIADO**, não para o `squad-forge` — cada um **DECLARADO com conteúdo OU RECUSADO com
45
+ razão**, nunca deixado de fora:
46
+
47
+ 8. **Ritmo** — algum checkpoint do pod novo pode ser pulado em modo autônomo, ou nenhum é pulável?
48
+ `{ step, skip_modes }` — ou `nao_se_aplica` explícito, com razão.
49
+ 9. **Contrato de entrada** — a etapa inicial do pod novo recebe mais de uma forma de entrada válida,
50
+ ou só uma? `{ step, valores }` (≥2 valores) — ou `nao_se_aplica` explícito, com razão.
51
+ 10. **Entregável** — alguma etapa do pod novo produz artefato binário/arquivo que precisa existir em
52
+ disco, ou todas produzem só texto? `{ step }` — ou `nao_se_aplica` explícito, com razão.
53
+
54
+ **ECO OBRIGATÓRIO em qualquer ritmo:** depois de colher os 10 itens, mostre o `--task-ref` inteiro
55
+ que você vai usar (a entrevista completa, formatada) e só inicie após o "ok" do dono. Nada começa
56
+ sem ele ter visto o valor exato — e sem já ter sido avisado, no início, do que acontece com o que ele
57
+ disse.
58
+
59
+ ## Passo 1 — `start` (linha literal)
60
+
61
+ ```bash
62
+ node scripts/pc-run-pod.cjs start squad-forge forge \
63
+ --workflow-file pods/squad-forge/workflows/wf-forge.yaml \
64
+ --mode <interactive|yolo> \
65
+ --task-ref "<entrevista completa do G1 + 3 campos canônicos, já ecoada e confirmada>"
66
+ ```
67
+
68
+ Sempre pela **flag** `--task-ref`, nunca posicional. Rode a partir da raiz do repo
69
+ (`second-brain`); o `--pod-root` não é necessário — o motor deriva a raiz do pod pelo path do `wf`.
70
+
71
+ O `start` imprime `[start] run <run-id> → <caminho do state.json>` e já emite o `[dispatch]` da
72
+ etapa `discovery`, com o bloco `--- BRIEF ---` (o `next` NÃO é necessário para ver o brief — ele só
73
+ avança a máquina depois que o subagente escrever o artefato). **Guarde o caminho do `state.json`**:
74
+ todos os comandos seguintes usam `--state <caminho>`. O `--mode` é gravado no `state.json` como
75
+ **rótulo** — o motor não ramifica por ele; o ritmo é responsabilidade deste comando.
76
+
77
+ ## Passo 2 — o laço (uma transição por chamada)
78
+
79
+ ```bash
80
+ node scripts/pc-run-pod.cjs next --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml
81
+ node scripts/pc-run-pod.cjs status --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml
82
+ node scripts/pc-run-pod.cjs approve --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml
83
+ node scripts/pc-run-pod.cjs revise --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml
84
+ node scripts/pc-run-pod.cjs abort --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml
85
+ ```
86
+
87
+ Uma sexta chamada, **fora** da máquina de estados — registra o comentário do dono no checkpoint como
88
+ aprendizado do pod (SF11.5). Ela **não** transiciona nada; é chamada ANTES do `approve`/`revise`, e
89
+ só quando o dono comentou (ver "Passo obrigatório do comando: pedir o comentário" abaixo):
90
+
91
+ ```bash
92
+ node scripts/pod-memory-note.cjs --state <state.json> --workflow-file pods/squad-forge/workflows/wf-forge.yaml \
93
+ --step red-team|register --verdict approve|revise --file <arquivo com o comentário, escrito pela ferramenta Write>
94
+ ```
95
+
96
+ O que fazer com cada saída:
97
+
98
+ | Saída do motor | Significado | Sua ação |
99
+ |---|---|---|
100
+ | `[dispatch] etapa=<id>` + bloco `--- BRIEF ---` | o motor abriu a etapa e emitiu o brief | despache um **subagente FRESCO** (um por etapa, nunca reaproveitado) com o brief **VERBATIM**; quando ele voltar, chame `next` |
101
+ | `[blocked] etapa=<id> motivo=verification_failed` + lista de falhas | o artefato em disco reprovou (forma ou veto) | a etapa continua `running` e a seguinte NÃO roda. Re-despache a MESMA etapa anexando as `failures` ao brief |
102
+ | `[awaiting_approval] etapa=<id>` | verificação passou e a etapa tem checkpoint bloqueante | **PARE.** Só o dono destrava (`approve`/`revise`) — acontece em `red-team` e em `register` |
103
+ | `[complete]` | todas as etapas `done` | reporte o pod registrado e encerre |
104
+ | `[erro] …` (exit 1) | uso/estado inválido | reporte ao dono; nunca "conserte" editando o `state.json` |
105
+
106
+ **Despacho do subagente (cada etapa): cole o brief inteiro, sem resumir.** O brief abre com a seção
107
+ **"Leitura obrigatória ANTES de agir"**, que lista o arquivo do agente e o(s) `knowledge:` que o `wf`
108
+ declara para a etapa — por path absoluto, na ordem declarada, com a existência já verificada em
109
+ disco pelo motor. O brief também traz a linha `Tarefa:` com o `task-ref`, o path exato do artefato,
110
+ o template, as `veto.assertions` que serão verificadas e o limite de autoridade. Não acrescente
111
+ instrução que contradiga o brief.
112
+
113
+ **Acréscimo obrigatório, só no despacho da etapa `discovery` — NÃO REENTREVISTE.** As respostas dos
114
+ 10 itens do Passo 0 já estão na linha `Tarefa:` do brief (colada verbatim, junto com o resto do
115
+ brief). O trabalho do subagente despachado para `discovery` é **transcrever** o que já foi ecoado e
116
+ confirmado para `templates/discovery-tmpl.md` — não colher a entrevista de novo. Esta instrução é um
117
+ **acréscimo do comando, escrito DEPOIS de colar o brief verbatim**, rotulada como instrução do
118
+ comando (nunca embutida no próprio brief — ele é gerado pelo motor, não editável — nem em
119
+ `agents/forge-chief.md`, que esta story não toca).
120
+
121
+ **Bloqueio (`blocked`):** o motor já nomeia a assertion e a causa. Chamar `next` sem mudar nada só
122
+ reavalia e rebloqueia. Nunca edite o `state.json` para "passar", nunca relaxe o veto no `wf` no meio
123
+ de uma rodada.
124
+
125
+ ## Ritmo — `interactive` (default) e `yolo`
126
+
127
+ `wf-forge.yaml` tem **2 checkpoints bloqueantes** (`red-team`, `register`) — os dois **param nos
128
+ MESMOS pontos**, nos dois ritmos (`pod-spec.json → ritmo: nao_se_aplica`; sem `skip_modes` no `wf` —
129
+ tornar qualquer um pulável violaria o invariante do gate humano, `ADR-024 DF-SF11.10-3`).
130
+
131
+ | | `interactive` | `yolo` |
132
+ |---|---|---|
133
+ | Entre etapas | reporta ao dono e espera ele mandar seguir | encadeia despacho → subagente → `next` sem perguntar |
134
+ | Retry em `blocked` | zero automático (o dono decide) | **no máximo 1** re-despacho da mesma etapa, **sempre reportado**; segundo bloqueio PARA e chama o dono |
135
+ | Checkpoint de `red-team` | **bloqueia** | **bloqueia** (sem `skip_modes` — mesmo gate nos dois ritmos) |
136
+ | Checkpoint de `register` | **bloqueia** | **bloqueia** (sem `skip_modes` — mesmo gate nos dois ritmos) |
137
+ | Onde para | em `red-team`/`register`, e em `blocked` | só em `awaiting_approval` de `red-team`/`register`, `blocked` (após o retry) ou `complete` |
138
+ | `approve` | só o dono | **NUNCA** — ver abaixo |
139
+
140
+ **Proibição inegociável: o modo autônomo (`yolo`) JAMAIS executa `approve`.** Não existe "aprovar se
141
+ estiver bom" — a aprovação final é sempre humana: o autônomo entrega todo o trabalho pronto e as duas
142
+ decisões que exigem olho humano (veredito do red-team, registro) esperam por ele.
143
+
144
+ ## Checkpoint de `red-team` — só o dono
145
+
146
+ Ao chegar em `[awaiting_approval] etapa=red-team`, apresente o `checkpoint.criteria` do `wf` e o
147
+ artefato produzido, e peça a decisão: **"Veredito APROVADO explícito por escrito do pod-critic
148
+ (verificação independente: valida-pod-workflow + smoke rodados por ele mesmo, G6 estendido).
149
+ REPROVADO → volta à Fase 3 com a lista de correções. JULGAMENTO HUMANO — NUNCA veto de máquina
150
+ (fronteira `ADR-002`; a máquina não decide 'aprovado')."** `REPROVADO` → `revise` devolve a
151
+ `generation` com a lista de correções.
152
+
153
+ ## Checkpoint de `register` — só o dono
154
+
155
+ Ao chegar em `[awaiting_approval] etapa=register`, apresente o `checkpoint.criteria` do `wf` e o
156
+ artefato produzido, e peça a decisão: **"Registro conferido: stub em disco (≤15 linhas, aponta o
157
+ entry point), linha em `pods/README.md`, `validate-budgets` reexecutado verde. Fase 5 termina em
158
+ DECISÃO DO USUÁRIO (sem commit automático) — checkpoint bloqueante, não veto."**
159
+
160
+ ### Passo obrigatório do comando: pedir o comentário (SF11.5) — nos 2 checkpoints
161
+
162
+ Depois que o dono decidir (`approve` **ou** `revise`) em **`red-team`** ou em **`register`**, e
163
+ **antes** de chamar o motor, **pergunte a ele, sempre, uma vez**: *"quer registrar um comentário
164
+ desta decisão? (ele vira aprendizado do pod; pode pular)"*. Isto **não é opcional para você** — o
165
+ dono é quem escolhe comentar ou não; você é obrigado a perguntar, nos dois checkpoints.
166
+
167
+ Se o dono comentar:
168
+
169
+ 1. **Escreva o texto dele num arquivo temporário com a ferramenta Write**
170
+ (`.power-claude/pod-runs/squad-forge/<run-id>/checkpoint-note.txt` serve). **NUNCA** por
171
+ `heredoc`, `echo`, `cat <<EOF` ou qualquer forma de shell: o comentário tem aspas, acentos e
172
+ quebras de linha, e o shell corrompe algum caractere justamente na rodada que importa.
173
+ 2. Invoque o registrador **com `--file`** — a mensagem **nunca** entra na linha de comando:
174
+
175
+ ```bash
176
+ node scripts/pod-memory-note.cjs --state <state.json> \
177
+ --workflow-file pods/squad-forge/workflows/wf-forge.yaml \
178
+ --step red-team|register --verdict approve|revise --file <arquivo escrito no passo 1>
179
+ ```
180
+
181
+ 3. Só então chame `pc-run-pod.cjs approve`/`revise`. Nessa ordem: se a gravação da memória falhar, o
182
+ dono vê o erro **antes** de a etapa avançar.
183
+
184
+ Regras que não se negociam neste passo:
185
+
186
+ - **Comentário vazio ⇒ não invoque o registrador.** Silêncio não vira learning.
187
+ - **Nunca escreva o comentário em nome do dono** — é o texto dele, verbatim. O modo autônomo continua
188
+ **proibido** de `approve`/`revise`, e portanto nunca chega a este passo.
189
+ - **`--tier critical` só quando o dono disser, com essas palavras, que aquilo é regra permanente.**
190
+ Comentário de rodada é `normal` (default).
191
+
192
+ ## Só `*new` está no motor por este comando
193
+
194
+ `squad-forge` tem `discovery` → `generation` → `red-team` → `register`, o **único** fluxo que
195
+ `wf-forge.yaml` modela, e é o que este comando conduz pelo motor. **`*upgrade-pod {pod}`**,
196
+ **`*migrate-squad {squad}`**, e a invocação **standalone** de `*discovery`/`*gates`/`*register`/
197
+ `*ingest-memory` (fora do `wf-forge.yaml` inteiro) **continuam fora do motor por este comando** —
198
+ decisão já registrada em `pods/squad-forge/pod-spec.json`
199
+ (`_sources.wf_upgrade_migrate_nao_formalizados`): são sequências de chamada de script determinístico
200
+ (`forge-upgrade-pod.cjs` / `migration-manifest.cjs`) orquestradas por UM agente via CLI, não handoffs
201
+ artefato-a-artefato — formalizá-los como `wf` seria um 2º mecanismo de orquestração para o mesmo
202
+ comportamento.
203
+
204
+ **Capacidade não regride:** `forge-chief *upgrade-pod {pod}` / `*migrate-squad {squad}` /
205
+ `*discovery` / `*gates` / `*register` / `*ingest-memory` continuam disponíveis exatamente como hoje,
206
+ por invocação direta do `forge-chief` — só o roteamento livre de PROSA do `*new` some, que era o
207
+ defeito que este comando existe para consertar.
208
+
209
+ ## Run pendurada
210
+
211
+ `status` mostra o estado de cada etapa. Etapa em `running` sem trabalho por trás = run abandonada (o
212
+ motor não tem timeout: ele espera para sempre). Confirme com o dono e então: `abort` (encerra, marca
213
+ as etapas não-`done` como `failed`) ou `resume <run-id>` se a rodada for legítima e valer continuar.
214
+ Nunca `approve`/`next` sobre uma etapa cujo artefato nunca foi realmente produzido — isso "resgata"
215
+ lixo de teste como se fosse trabalho.
216
+
217
+ ## Fronteiras
218
+
219
+ - Nunca `git push` / `gh pr create` / merge (exclusivo devops).
220
+ - Nunca editar `state.json` para pular etapa ou fabricar verificação; nunca afrouxar o `wf` para
221
+ destravar uma rodada.
222
+ - Nunca aprovar checkpoint em nome do dono.
223
+ - Cada etapa é um subagente FRESCO; o brief é a única fonte de contexto dele.
224
+ - Referência do protocolo do motor: skill `pc-run-pod` (`.claude/skills/pc-run-pod/SKILL.md`).
@@ -0,0 +1,221 @@
1
+ ---
2
+ description: "Conduz uma rodada de Grand Slam Offer do pod hormozi-method PELO MOTOR determinístico (pc-run-pod.cjs): diagnóstico, oferta, money model/pricing e copy de vendas, com checkpoint humano e memória curada. Use para: diagnosticar e desenhar uma oferta, precificar e montar money model, escrever a copy de vendas final, iniciar/retomar/acompanhar uma rodada."
3
+ ---
4
+
5
+ Você conduz uma rodada de `grand-slam-offer` do pod `hormozi-method` **pelo motor** `scripts/pc-run-pod.cjs`.
6
+ Não existe caminho "leia o README e escolha o agente pelo pedido": todo passo é despachado, verificado
7
+ em disco e liberado pelo motor — é assim que o veto de `offer-engineer` (Value Stack ≥5 componentes) e o checkpoint
8
+ bloqueante de `conversion-copywriter` deixam de depender de o agente seguir a prosa direito.
9
+
10
+ Pedido do usuário: $ARGUMENTS
11
+
12
+ ---
13
+
14
+ ## Passo 0 — montar a ENTRADA e ECOAR antes de iniciar
15
+
16
+ A entrada viaja no `--task-ref` como **descrição livre do negócio/oferta** — não há gramática
17
+ `entrada=`/`fonte=` aqui (isso é de `hn-carousel`; `grand-slam-offer` não tem 2º modo de entrada, ver
18
+ "Ritmo" abaixo e a recusa de `contrato_entrada` no `pod-spec.json`). Peça ao dono, em texto livre: que
19
+ negócio/produto é, para quem, e o que ele já sabe sobre a oferta atual (se houver).
20
+
21
+ ```
22
+ <descrição livre do negócio/produto/oferta, tudo que o dono já trouxer>
23
+ ```
24
+
25
+ **Aviso de segurança, uma frase, sempre:** a linha que você montar fica **gravada permanentemente** no
26
+ `state.json` da run — não inclua nada que o dono não queira persistido em disco.
27
+
28
+ **ECO OBRIGATÓRIO em qualquer ritmo:** mostre o `--task-ref` inteiro que você vai usar e só inicie após
29
+ o "ok" do dono. Nada começa sem ele ter visto o valor exato.
30
+
31
+ ## Passo 1 — `start` (linha literal)
32
+
33
+ ```bash
34
+ node scripts/pc-run-pod.cjs start hormozi-method wf-grand-slam-offer \
35
+ --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml \
36
+ --mode <interactive|yolo> \
37
+ --task-ref "<descrição livre do negócio/oferta>"
38
+ ```
39
+
40
+ Sempre pela **flag** `--task-ref`, nunca posicional. Rode a partir da raiz do repo (`second-brain`); o
41
+ `--pod-root` não é necessário — o motor deriva a raiz do pod pelo path do `wf`.
42
+
43
+ O `start` imprime `[start] run <run-id> → <caminho do state.json>`. **Guarde esse caminho**: todos os
44
+ comandos seguintes usam `--state <caminho>`. O `--mode` é gravado no `state.json` como **rótulo** — o
45
+ motor não ramifica por ele; o ritmo é responsabilidade deste comando.
46
+
47
+ ## Passo 2 — o laço (uma transição por chamada)
48
+
49
+ ```bash
50
+ node scripts/pc-run-pod.cjs next --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml
51
+ node scripts/pc-run-pod.cjs status --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml
52
+ node scripts/pc-run-pod.cjs approve --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml
53
+ node scripts/pc-run-pod.cjs revise --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml
54
+ node scripts/pc-run-pod.cjs abort --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml
55
+ ```
56
+
57
+ Uma sexta chamada, **fora** da máquina de estados — registra o comentário do dono no checkpoint como
58
+ aprendizado do pod (SF11.5). Ela **não** transiciona nada; é chamada ANTES do `approve`/`revise`, e só
59
+ quando o dono comentou (ver "Passo obrigatório do comando: pedir o comentário" abaixo):
60
+
61
+ ```bash
62
+ node scripts/pod-memory-note.cjs --state <state.json> --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml \
63
+ --step conversion-copywriter --verdict approve|revise --file <arquivo com o comentário, escrito pela ferramenta Write>
64
+ ```
65
+
66
+ O que fazer com cada saída:
67
+
68
+ | Saída do motor | Significado | Sua ação |
69
+ |---|---|---|
70
+ | `[dispatch] etapa=<id>` + bloco `--- BRIEF ---` | o motor abriu a etapa e emitiu o brief | despache um **subagente FRESCO** (um por etapa, nunca reaproveitado) com o brief **VERBATIM**; quando ele voltar, chame `next` |
71
+ | `[blocked] etapa=<id> motivo=verification_failed` + lista de falhas | o artefato em disco reprovou (forma ou veto) | a etapa continua `running` e a seguinte NÃO roda. Re-despache a MESMA etapa anexando as `failures` ao brief |
72
+ | `[awaiting_approval] etapa=<id>` | verificação passou e a etapa tem checkpoint bloqueante | **PARE.** Só o dono destrava (`approve`/`revise`) — só acontece em `conversion-copywriter`, a etapa final |
73
+ | `[complete]` | todas as etapas `done` | reporte o pacote final e encerre |
74
+ | `[erro] …` (exit 1) | uso/estado inválido | reporte ao dono; nunca "conserte" editando o `state.json` |
75
+
76
+ **Despacho do subagente (cada etapa):** **cole o brief inteiro, sem resumir.** O brief abre com a seção
77
+ **"Leitura obrigatória ANTES de agir"**, que lista o arquivo do agente e o(s) `knowledge:` que o `wf`
78
+ declara para a etapa — por path absoluto, na ordem declarada, com a existência já verificada em disco
79
+ pelo motor. O brief também traz a linha `Tarefa:` com o `task-ref`, o path exato do artefato, o
80
+ template, as `veto.assertions` que serão verificadas e o limite de autoridade. Não acrescente instrução
81
+ que contradiga o brief.
82
+
83
+ **Bloqueio (`blocked`):** o motor já nomeia a assertion e a causa. Chamar `next` sem mudar nada só
84
+ reavalia e rebloqueia. Nunca edite o `state.json` para "passar", nunca relaxe o veto no `wf` no meio de
85
+ uma rodada.
86
+
87
+ ## Ritmo — `interactive` (default) e `yolo`
88
+
89
+ Diferente de `hn-carousel`, os dois ritmos **param no MESMO ponto** — `wf-grand-slam-offer` tem **1
90
+ único** checkpoint bloqueante, em `conversion-copywriter` (a etapa final). `skip_modes` foi **recusado**
91
+ nesta forma do `wf` (`pod-spec.json → ritmo`, `nao_se_aplica`): com um único gate, torná-lo pulável em
92
+ qualquer modo deixaria aquele modo sem nenhum checkpoint não-pulável, e o validador reprova o invariante
93
+ do gate humano (`ADR-024 DF-SF11.10-3`).
94
+
95
+ | | `interactive` | `yolo` |
96
+ |---|---|---|
97
+ | Entre etapas | reporta ao dono e espera ele mandar seguir | encadeia despacho → subagente → `next` sem perguntar |
98
+ | Retry em `blocked` | zero automático (o dono decide) | **no máximo 1** re-despacho da mesma etapa, **sempre reportado**; segundo bloqueio PARA e chama o dono |
99
+ | Checkpoint de `conversion-copywriter` | **bloqueia** | **bloqueia** (sem `skip_modes` — mesmo gate nos dois ritmos) |
100
+ | Onde para | em `conversion-copywriter`, e em `blocked` | só em `awaiting_approval` de `conversion-copywriter`, `blocked` (após o retry) ou `complete` |
101
+ | `approve` | só o dono | **NUNCA** — ver abaixo |
102
+
103
+ **Proibição inegociável: o modo autônomo JAMAIS executa `approve`.** Não existe "aprovar se estiver
104
+ bom" — a aprovação final é sempre humana: o autônomo entrega todo o trabalho pronto e a decisão que
105
+ exige olho humano espera por ele.
106
+
107
+ **Dito honestamente, antes de o dono escolher (`DEBT-SF12.5a-A`):** o único gate humano deste `wf` vem
108
+ **depois** de `offer-engineer` **e** `monetization-architect` já terem rodado — o dono aprova a *copy*
109
+ sem nunca ter aprovado a *oferta* (value stack, garantia, âncora de preço) sobre a qual a copy foi
110
+ construída. É a assimetria inversa de `hn-carousel` (lá, o `digest` existe para o dono julgar cedo). Se
111
+ um gate intermediário for adicionado no futuro, `ritmo` volta a ter pergunta real — não é o caso hoje.
112
+
113
+ ## Checkpoint bloqueante de `conversion-copywriter` — só o dono
114
+
115
+ Ao chegar em `[awaiting_approval] etapa=conversion-copywriter`, apresente o `checkpoint.criteria` do
116
+ `wf` e o artefato produzido, e peça a decisão. O que o dono aprova: a copy final — nome da oferta
117
+ (MAGICO), headline, copy do value stack, copy da garantia — **rastreável** ao que `offer-engineer` e
118
+ `monetization-architect` produziram a montante (nenhum número, promessa ou componente que não veio de
119
+ lá). Este é o **único** gate da rodada, e ele vem depois de toda a oferta já decidida (ver "Ritmo"
120
+ acima) — não invente cláusula de conteúdo que o `wf` não tem; o `criteria` em si não muda nesta story.
121
+
122
+ ### Passo obrigatório do comando: pedir o comentário (SF11.5)
123
+
124
+ Depois que o dono decidir (`approve` **ou** `revise`) e **antes** de chamar o motor, **pergunte a ele,
125
+ sempre, uma vez**: *"quer registrar um comentário desta decisão? (ele vira aprendizado do pod; pode
126
+ pular)"*. Isto **não é opcional para você** — o dono é quem escolhe comentar ou não; você é obrigado a
127
+ perguntar.
128
+
129
+ Se o dono comentar:
130
+
131
+ 1. **Escreva o texto dele num arquivo temporário com a ferramenta Write** (`.power-claude/pod-runs/<pod>/<run-id>/checkpoint-note.txt` serve). **NUNCA** por `heredoc`, `echo`, `cat <<EOF` ou qualquer forma de shell: o comentário tem aspas, acentos e quebras de linha, e o shell corrompe algum caractere justamente na rodada que importa.
132
+ 2. Invoque o registrador **com `--file`** — a mensagem **nunca** entra na linha de comando:
133
+
134
+ ```bash
135
+ node scripts/pod-memory-note.cjs --state <state.json> \
136
+ --workflow-file pods/hormozi-method/workflows/wf-grand-slam-offer.yaml \
137
+ --step conversion-copywriter --verdict approve|revise --file <arquivo escrito no passo 1>
138
+ ```
139
+
140
+ 3. Só então chame `pc-run-pod.cjs approve`/`revise`. Nessa ordem: se a gravação da memória falhar, o
141
+ dono vê o erro **antes** de a etapa avançar.
142
+
143
+ Regras que não se negociam neste passo:
144
+
145
+ - **Comentário vazio ⇒ não invoque o registrador.** Silêncio não vira learning.
146
+ - **Nunca escreva o comentário em nome do dono** — é o texto dele, verbatim. O modo autônomo continua
147
+ **proibido** de `approve`/`revise`, e portanto nunca chega a este passo.
148
+ - **`--tier critical` só quando o dono disser, com essas palavras, que aquilo é regra permanente.**
149
+ Comentário de rodada é `normal` (default).
150
+
151
+ ## Só `grand-slam-offer` está no motor por este comando
152
+
153
+ `hormozi-method` tem **6 workflows**; este comando conduz **apenas** `wf-grand-slam-offer`
154
+ (`*diagnose` → `*offer`/`*guarantee`/`*bonus`/`*scarcity` → `*money-model`/`*price` → `*name`/`*sales-page`)
155
+ pelo motor, com loop completo (`start`/`next`/`status`/`approve`/`revise`/`abort` + checkpoint +
156
+ `pod-memory-note.cjs`). Os outros **5** ficam de fora do loop deste comando, por decisão de escopo — os
157
+ 6/6 já têm `knowledge:`/`contrato_entrada`/`entregavel` governados pelo motor (`SF12.5b`), mas só
158
+ disponíveis por CLI direto (sem `approve`/`revise` pelo comando — `ritmo` fica deferido nos 5, Bloco B):
159
+
160
+ - `wf-money-model-design`
161
+ - `wf-full-launch-sequence`
162
+ - `wf-lead-magnet-pipeline`
163
+ - `wf-paid-ads-campaign`
164
+ - `wf-scaling-diagnostic`
165
+
166
+ **`acquisition-strategist` fica sem porta neste comando** — ele não participa de `wf-grand-slam-offer`.
167
+ As famílias de pedido que ele cobre (leads/hooks/ads: `*core-four`, `*lead-magnet`, `*hooks`, `*ads`)
168
+ não têm caminho aqui. Se o dono pedir uma delas, rode o `wf` que a cobre por CLI direto (mesmo padrão do
169
+ Passo 1, trocando `workflowId`/`--workflow-file`/`--task-ref`):
170
+
171
+ ```bash
172
+ # money model / pricing (*money-model, *upsell, *downsell, *continuity)
173
+ node scripts/pc-run-pod.cjs start hormozi-method wf-money-model-design \
174
+ --workflow-file pods/hormozi-method/workflows/wf-money-model-design.yaml \
175
+ --mode <interactive|yolo> --task-ref "<descrição livre>"
176
+
177
+ # lançamento completo (*launch, *nurture, *retention)
178
+ node scripts/pc-run-pod.cjs start hormozi-method wf-full-launch-sequence \
179
+ --workflow-file pods/hormozi-method/workflows/wf-full-launch-sequence.yaml \
180
+ --mode <interactive|yolo> --task-ref "<descrição livre>"
181
+
182
+ # leads / lead magnet (*lead-magnet, *core-four)
183
+ node scripts/pc-run-pod.cjs start hormozi-method wf-lead-magnet-pipeline \
184
+ --workflow-file pods/hormozi-method/workflows/wf-lead-magnet-pipeline.yaml \
185
+ --mode <interactive|yolo> --task-ref "<descrição livre>"
186
+
187
+ # hooks / ads pagos (*hooks, *ads)
188
+ node scripts/pc-run-pod.cjs start hormozi-method wf-paid-ads-campaign \
189
+ --workflow-file pods/hormozi-method/workflows/wf-paid-ads-campaign.yaml \
190
+ --mode <interactive|yolo> --task-ref "<descrição livre>"
191
+
192
+ # diagnóstico e roadmap de escala (*scale-check, *growth-decision)
193
+ node scripts/pc-run-pod.cjs start hormozi-method wf-scaling-diagnostic \
194
+ --workflow-file pods/hormozi-method/workflows/wf-scaling-diagnostic.yaml \
195
+ --mode <interactive|yolo> --task-ref "<descrição livre>"
196
+ ```
197
+
198
+ **Capacidade não regride:** `node scripts/pc-run-pod.cjs start hormozi-method <qualquer um dos 6 wf>, ...`
199
+ continua disponível por CLI direto, exatamente como hoje — só o roteamento livre de PROSA some, que era
200
+ o defeito que este comando existe para consertar. Levar o loop completo (`approve`/`revise`/checkpoint
201
+ pelo comando) aos 5 workflows restantes depende de `ritmo` decidido (Bloco B/`_ritmo_deferido`,
202
+ `DEBT-SF12.5b-A`/`-C` fechadas sem essa implementação) — fora do escopo de `SF12.5b`, gatilho de retorno
203
+ nomeado, não promessa solta.
204
+
205
+ ## Run pendurada
206
+
207
+ `status` mostra o estado de cada etapa. Etapa em `running` sem trabalho por trás = run abandonada (o
208
+ motor não tem timeout: ele espera para sempre). Confirme com o dono e então: `abort` (encerra, marca as
209
+ etapas não-`done` como `failed`) ou `resume <run-id>` se a rodada for legítima e valer continuar. Nunca
210
+ `approve`/`next` sobre uma etapa cujo artefato nunca foi realmente produzido — isso "resgata" lixo de
211
+ teste como se fosse trabalho.
212
+
213
+ ## Fronteiras
214
+
215
+ - Nunca `git push` / `gh pr create` / merge (exclusivo devops).
216
+ - Nunca editar `state.json` para pular etapa ou fabricar verificação; nunca afrouxar o `wf` para
217
+ destravar uma rodada.
218
+ - Nunca aprovar checkpoint em nome do dono.
219
+ - Cada etapa é um subagente FRESCO; o brief é a única fonte de contexto dele.
220
+ - Metodologia SEMPRE com fonte citada ("$100M Playbooks, Alex Hormozi"); nunca encarnar a pessoa.
221
+ - Referência do protocolo do motor: skill `pc-run-pod` (`.claude/skills/pc-run-pod/SKILL.md`).
@@ -0,0 +1,57 @@
1
+ ---
2
+ description: Alterna entre modo econômico e modo desempenho na matriz de modelos dos papéis (economico | desempenho | status)
3
+ ---
4
+
5
+ # /power:modo — alternar matriz de modelos dos papéis
6
+
7
+ Argumento recebido: `$ARGUMENTS`
8
+
9
+ O estado do modo é a **existência do arquivo** `$CLAUDE_PROJECT_DIR/.claude/rules/economy-mode.md`:
10
+ - Arquivo EXISTE → modo econômico ativo (carrega como regra em toda sessão enquanto existir)
11
+ - Arquivo NÃO existe → modo desempenho (matriz padrão em `.claude/rules/model-matrix.md`)
12
+
13
+ ## Ações por argumento
14
+
15
+ ### `economico` (ou `eco`)
16
+ 1. Escreva (Write, sobrescrevendo se existir) o arquivo `$CLAUDE_PROJECT_DIR/.claude/rules/economy-mode.md` com o conteúdo canônico abaixo — **SEM frontmatter** (o arquivo deve carregar sempre, enquanto existir).
17
+ 2. Aplique a matriz econômica IMEDIATAMENTE nesta sessão (não só nas próximas).
18
+ 3. Confirme ao usuário: "Modo econômico ativado" + resumo da matriz em 3 linhas.
19
+
20
+ ### `desempenho` (ou `perf`, `padrao`)
21
+ 1. Delete o arquivo `$CLAUDE_PROJECT_DIR/.claude/rules/economy-mode.md` (via Bash `rm`; se não existir, apenas informe que já estava em desempenho).
22
+ 2. Volte a aplicar a matriz padrão IMEDIATAMENTE nesta sessão (`.claude/rules/model-matrix.md`: coordenadora e architect no modelo de topo, qa e dev em opus, devops/planner/analyst/po em sonnet, escalada um degrau acima por gatilho).
23
+ 3. Confirme ao usuário: "Modo desempenho restaurado".
24
+
25
+ ### `status` (ou vazio)
26
+ Verifique se o arquivo existe e informe o modo ativo + a matriz vigente em tabela curta. Não altere nada.
27
+
28
+ ## Conteúdo canônico do arquivo economy-mode.md
29
+
30
+ ```markdown
31
+ # MODO ECONÔMICO ATIVO — alternável via /power:modo
32
+
33
+ > Ativado pelo usuário via `/power:modo economico`. Para desativar: `/power:modo desempenho` (remove este arquivo).
34
+ > **NÃO altera a matriz padrão** (`.claude/rules/model-matrix.md`) — apenas a suspende parcialmente enquanto este arquivo existir. A coordenadora aplica via override `model:` nas chamadas do Agent tool.
35
+
36
+ ## Matriz econômica
37
+
38
+ | Papel | Padrão | Econômico |
39
+ |---|---|---|
40
+ | qa (gate adversarial) | opus | **opus — INTOCADO** |
41
+ | architect | modelo de topo | opus |
42
+ | dev | opus | sonnet |
43
+ | devops / planner / analyst / po | sonnet | sonnet |
44
+ | Etapas mecânicas | effort low | haiku + effort low |
45
+
46
+ ## Gatilhos de escalada (um degrau abaixo do normal)
47
+
48
+ Story que toca segurança/auth · migration de dados · dinheiro/cobrança · compliance/dados pessoais · desempate entre especialistas → executores sobem para **opus** (não para o modelo de topo). O modelo de topo fica reservado para desempate crítico de segurança.
49
+
50
+ ## O que NÃO muda (âncoras de qualidade)
51
+
52
+ 1. Gate adversarial do qa em opus, com todos os checks.
53
+ 2. Validação do po e verificação pós-fase em disco do pc-full-cycle.
54
+ 3. As 3 regras de eficiência de tokens (agente fresco por story, relatórios ≤15 linhas, effort low mecânico).
55
+
56
+ Racional: os executores podem errar mais barato porque o funil de detecção permanece na potência integral.
57
+ ```
@@ -0,0 +1,114 @@
1
+ # Hooks — POWER CLAUDE
2
+
3
+ Enforcement determinístico dos não-negociáveis do ambiente. O que é inegociável vira hook, não prosa.
4
+
5
+ ## enforce-git-push-authority.cjs
6
+
7
+ Hook `PreToolUse` para o tool `Bash`. Intercepta operações remotas de git/GitHub antes da execução e decide, com **3 níveis de autoridade** (D4, story SF12.3):
8
+
9
+ | Comando | `agent_type === "pc-devops"` | Qualquer outro |
10
+ |---|---|---|
11
+ | `git push --force` / `-f` / `--force-with-lease` | **deny** — incondicional | **deny** — incondicional |
12
+ | `git push`, `gh pr create` | **allow** (passa direto) | **ask** — exige aprovação humana |
13
+ | `gh pr merge` | **ask** — sempre, mesmo para devops | **ask** — exige aprovação humana |
14
+
15
+ Merge em `main` espera aprovação humana explícita como regra permanente do dono — isso não muda com este hook, nem para o papel devops. Força-push é a única operação sempre negada, para qualquer agente.
16
+
17
+ **Fronteira real (D6/D7, fix rounds F3/F5 — não prometer mais do que o instrumento entrega):** este hook é **guard-rail contra erro, não barreira contra evasão deliberada**. O que ele PEGA: `git`/`gh` em qualquer sintaxe de flags (curtas combinadas, longas, opções globais antes do subcomando), comandos encadeados (`;`/`&&`/`||`/`|`), e **alias em AMBOS os branches** — `git` (`git config --get alias.<nome>`) e `gh` (`gh alias list`, alias NATIVO da ferramenta, ex. `gh alias set qm 'pr merge --auto'`) — inclusive um alias já configurado, sem nenhuma pista no texto do comando; se a consulta falhar (git/gh ausente, timeout, config corrompida), o resultado vira `ask`, nunca silêncio. **Até o fix round F5 só o `git` tinha essa resolução** — o `gh` casava `pr create`/`pr merge` de forma literal, uma assimetria que abria bypass via alias nativo do `gh` mesmo com força-push do `git` já fechada; os 2 branches agora usam a mesma disciplina (lógica de expansão/recursão compartilhada). O que ele **NÃO pega, por desenho**: indireção via `sh -c`/`bash -c`/`eval`/`npm run`/`node -e`/scripts externos (`./deploy.sh`) que por sua vez rodem git/gh — qualquer uma dessas contorna o hook. Perseguir essas variantes de evasão deliberada foi avaliado e rejeitado (não converge, e não é o problema que este guard-rail resolve).
18
+
19
+ **Identidade do agente:** lida exclusivamente de `input.agent_type` (payload do `PreToolUse` — o `subagent_type` literal do despacho, ex. `"pc-devops"`). **SEM fallback a variáveis de ambiente**: `PC_ACTIVE_AGENT`/`CLAUDE_AGENT_NAME`/`CLAUDE_CODE_AGENT` não existem no produto (medido: 0 ocorrências no binário da plataforma), e `.claude/settings.json` tem chave `env` que alcança subprocessos — manter o fallback reabriria a autoproclamação que este hook existe para fechar. Um prefixo inline no comando (ex.: `PC_ACTIVE_AGENT=devops git push`) e uma env var no processo do hook NÃO funcionam — nenhum dos dois é fonte de identidade.
20
+
21
+ **Fail-closed proporcional:** se o input JSON do hook vier malformado, só bloqueia comandos cujo texto bruto aparente ser uma operação remota; o restante do Bash segue normal.
22
+
23
+ Teste manual:
24
+
25
+ ```bash
26
+ echo '{"agent_id":"s","agent_type":"pc-devops","tool_input":{"command":"git push origin main"}}' \
27
+ | node .claude/hooks/enforce-git-push-authority.cjs
28
+ ```
29
+
30
+ ## enforce-cycle-authority.cjs
31
+
32
+ Hook `PreToolUse` para os tools `Edit`/`Write`. Mecaniza as 2 garantias de autoridade do ciclo que não podem depender só de disciplina (`DF-SF12.3-2`): só QA marca `Status: Done` / escreve `docs/qa/gates/*.yaml`; Dev não edita código enquanto a story associada (derivada da branch) está `Draft`.
33
+
34
+ | Predicado | Alvo | Papel exigido | Decisão quando errado |
35
+ |---|---|---|---|
36
+ | 1 — Done | `*.story.md`, seção `## Status` transiciona para Done | `pc-qa` | `deny` (papel conhecido e errado) / `ask` (ambíguo) |
37
+ | 2 — gate file | `docs/qa/gates/*.yaml`, qualquer Edit/Write | `pc-qa` | `deny` (papel conhecido e errado) / `ask` (ambíguo) |
38
+ | 3 — Dev × Draft | qualquer arquivo (exceto `*.story.md` e sob `docs/`) | qualquer papel ≠ `pc-dev` | `ask` (nunca `deny` — ver `docs/mecanismos/hooks-de-autoridade-do-ciclo.md`) |
39
+
40
+ **Alcance declarado:** tool calls `Edit`/`Write` apenas — `Bash` (`sed -i`, heredoc, `python -c`) e `MultiEdit` estão fora. Documentação completa (matriz allow/deny/ask, canal de identidade, destravamento): `docs/mecanismos/hooks-de-autoridade-do-ciclo.md`.
41
+
42
+ Teste manual:
43
+
44
+ ```bash
45
+ echo '{"agent_id":"s","agent_type":"pc-dev","tool_name":"Edit","tool_input":{"file_path":"docs/qa/gates/1.1.yaml","old_string":"a","new_string":"b"}}' \
46
+ | node .claude/hooks/enforce-cycle-authority.cjs
47
+ ```
48
+
49
+ ## context-budget.cjs
50
+
51
+ Hook `PostToolUse` para o tool `Read`. Sentinela de orçamento de contexto: após cada leitura de arquivo, verifica o tamanho de `tool_input.file_path`.
52
+
53
+ | Situação | Comportamento |
54
+ |---|---|
55
+ | Arquivo lido > 32KB (~8k tokens) | Emite `additionalContext` avisando o excesso e sugerindo ler por `offset`/`limit` ou extrair o essencial para `knowledge/` |
56
+ | Arquivo pequeno / inexistente / input malformado | Silêncio total (sem output, exit 0) |
57
+
58
+ **Advisory-only:** nunca bloqueia nada. Qualquer erro interno → exit 0 silencioso; timeout interno curto (~2,5s) impede travamento. Node puro, sem dependências.
59
+
60
+ Teste manual:
61
+
62
+ ```bash
63
+ echo '{"tool_name":"Read","tool_input":{"file_path":"/caminho/arquivo-grande.md"}}' \
64
+ | node .claude/hooks/context-budget.cjs
65
+ ```
66
+
67
+ ## Como registrar
68
+
69
+ Já registrados em `.claude/settings.json`:
70
+
71
+ ```json
72
+ "hooks": {
73
+ "PreToolUse": [
74
+ {
75
+ "matcher": "Bash",
76
+ "hooks": [
77
+ {
78
+ "type": "command",
79
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/enforce-git-push-authority.cjs\"",
80
+ "timeout": 10
81
+ }
82
+ ]
83
+ },
84
+ {
85
+ "matcher": "Edit|Write",
86
+ "hooks": [
87
+ {
88
+ "type": "command",
89
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/enforce-cycle-authority.cjs\"",
90
+ "timeout": 10
91
+ }
92
+ ]
93
+ }
94
+ ],
95
+ "PostToolUse": [
96
+ {
97
+ "matcher": "Read",
98
+ "hooks": [
99
+ {
100
+ "type": "command",
101
+ "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/context-budget.cjs\"",
102
+ "timeout": 10
103
+ }
104
+ ]
105
+ }
106
+ ]
107
+ }
108
+ ```
109
+
110
+ Requer Node.js 18+ no PATH. Sem dependências externas. Para testar manualmente:
111
+
112
+ ```bash
113
+ echo '{"tool_input":{"command":"git push --force"}}' | node .claude/hooks/enforce-git-push-authority.cjs
114
+ ```