@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Daniel Lins
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,121 @@
1
+ # POWER CLAUDE
2
+
3
+ Framework enxuto de agentes para Claude Code — **pods por job-to-be-done**, com budget de tokens como gate de qualidade.
4
+
5
+ ## Princípios
6
+
7
+ 1. **Pods por job-to-be-done** — em vez de dezenas de agentes genéricos, cada pod resolve um trabalho concreto (criar conteúdo com autoridade, montar aulas, automatizar processos, desenvolver com IA, forjar novos pods). Você instala só o que usa.
8
+ 2. **Budget de tokens como gate** — todo agente declara `budget_tokens` no frontmatter e um validador determinístico (`scripts/validate-budgets.js`) bloqueia qualquer agente que estoure o próprio budget, o teto global (1.500 tokens) ou 150 linhas. Contexto enxuto não é convenção: é gate.
9
+ 3. **Enforcement determinístico** — regras críticas viram hooks e scripts, não pedidos educados no prompt. Exemplo: o hook `enforce-git-push-authority.cjs` bloqueia `git push` fora do fluxo autorizado, direto no `PreToolUse`.
10
+ 4. **Verificação adversarial embutida** — os pods incluem agentes críticos (red-team) que revisam o próprio output antes de você confiar nele.
11
+ 5. **Garantia por código, não por prosa** — um pod é dado declarativo (`workflows/wf-*.yaml` + templates de etapa + `squad-io.yaml`), executado por um runner determinístico (`scripts/pc-run-pod.cjs`, skill `pc-run-pod`) que verifica o artefato EM DISCO — existe, casa com o template, todas as `veto.assertions` passam — antes de liberar a etapa seguinte. A garantia de processo é código, não prosa no prompt do agente.
12
+
13
+ Documentação operacional de cada mecanismo (uso, não só decisão): `docs/mecanismos/`.
14
+
15
+ ## O que mudou na v0.3 (runner, memória evolutiva, migração)
16
+
17
+ **Runner determinístico.** Todo workflow de pod roda por um contrato `wf-*.yaml` validado estaticamente (`scripts/validate-pod-workflow.cjs` — ciclos, handoffs abertos, vetos malformados, templates ausentes) e provado em runtime pelo smoke dinâmico (`scripts/smoke-pod-workflow.cjs`). O runner (`scripts/pc-run-pod.cjs`, skill `pc-run-pod`) despacha um subagente fresco por etapa, aplica checkpoints bloqueantes e retoma por run-id.
18
+
19
+ **Memória evolutiva dos pods.** Um pod aprende do próprio uso, sem virar ruído: log cru append-only + consolidado podado por budget de tokens (`scripts/pod-memory.cjs`), watcher heurístico que audita aderência ao consolidado (`scripts/watcher-audit.cjs`) e ingest inicial de memória com dedupe (`scripts/forge-ingest-memory.cjs`). O runner injeta só o consolidado no brief do agente — nunca o log cru.
20
+
21
+ **`*migrate-squad` — migração squad legado → pod com gates completos.** Comando do `forge-chief` que leva um squad inteiro pelas fases F0 (inventário) → F1 (triagem, para no humano) → F2 (geração + gates por workflow) → F3 (fechamento), com raiz de confiança em código no manifest de migração (`scripts/migration-manifest.cjs`) e paridade decidida pela máquina entre G5-LITE (2 runs) e G5-FULL (5 runs) via `scripts/harness-g5-lite.cjs`.
22
+
23
+ ## Instalação
24
+
25
+ Enquanto o pacote não está publicado no npm, instale direto do GitHub:
26
+
27
+ ```bash
28
+ cd seu-projeto
29
+ npx github:daniellins/power-claude install
30
+ ```
31
+
32
+ Quando publicado no npm:
33
+
34
+ ```bash
35
+ npx @daniellins/power-claude install
36
+ ```
37
+
38
+ O instalador pergunta quais pods instalar, se deve inicializar git e registra tudo em `.power-claude/manifest.json`. Em modo não-interativo:
39
+
40
+ ```bash
41
+ npx @daniellins/power-claude install --yes
42
+ ```
43
+
44
+ O instalador **nunca sobrescreve** arquivos seus: conflitos são perguntados (interativo) ou preservados (`--yes`). O `.claude/settings.json` recebe merge aditivo em `hooks`/`permissions` (a entrada nova do template é acrescentada sem remover nem alterar o que você já tem); nas demais chaves, suas chaves vencem, as do template entram só onde faltam.
45
+
46
+ ## Comandos do CLI
47
+
48
+ | Comando | O que faz |
49
+ |---|---|
50
+ | `power-claude install` | Instala o framework no diretório atual (default) |
51
+ | `power-claude adopt` | Adota uma instalação montada à mão (sem manifest): classifica o disco contra o template (idêntico / modificado / ausente), gera o `.power-claude/manifest.json` sem sobrescrever nada e coloca a instalação ao alcance do `update` |
52
+ | `power-claude update` | Atualiza; arquivos que você modificou são preservados (com diff resumido no modo interativo) |
53
+ | `power-claude doctor` | Diagnóstico: integridade do manifest, hooks, `.gitignore`, gate de budgets, tamanho do CLAUDE.md |
54
+ | `power-claude uninstall` | Remove apenas o que o instalador colocou e continua intacto; o que você modificou fica |
55
+ | `power-claude --help` / `--version` | Ajuda / versão |
56
+
57
+ Flag global: `--yes` (`-y`) para modo não-interativo.
58
+
59
+ ## Estrutura instalada
60
+
61
+ ```text
62
+ seu-projeto/
63
+ ├── .claude/
64
+ │ ├── CLAUDE.md # instruções enxutas (budget ~2.000 tokens)
65
+ │ ├── settings.json # hooks + permissions (merge com o seu)
66
+ │ └── hooks/
67
+ │ └── enforce-git-push-authority.cjs
68
+ ├── pods/
69
+ │ ├── academy/ # aulas, palestras, treinamentos
70
+ │ ├── authority-content/ # conteúdo com voz própria e fact-check
71
+ │ ├── automation/ # N8N + Langgraph
72
+ │ ├── dev-ia/ # ciclo de desenvolvimento com IA
73
+ │ └── squad-forge/ # cria novos agentes e pods
74
+ ├── knowledge/
75
+ │ └── voice-dna/ # DNA de voz para conteúdo autoral
76
+ ├── scripts/
77
+ │ └── validate-budgets.js # gate de budget dos agentes
78
+ └── .power-claude/
79
+ └── manifest.json # estado da instalação (base do update/uninstall)
80
+ ```
81
+
82
+ **Nota honesta sobre o runner/memória/migração:** `power-claude install` copia `template/` inteiro (inclui a skill `pc-run-pod` em `.claude/skills/`) mais `scripts/validate-budgets.js` avulso — **só isso é distribuído automaticamente** (`installer/install.js`/`copy.js`). Os scripts que o runner, a memória e o `*migrate-squad` invocam (`pc-run-pod.cjs`, `pod-memory.cjs`, `migration-manifest.cjs`, `validate-pod-workflow.cjs`, `smoke-pod-workflow.cjs`, `harness-g5-lite.cjs`, `watcher-audit.cjs`, `forge-*.cjs`, `validate-no-clone.cjs`) vivem só em `scripts/` na raiz deste repositório e **não são copiados para o projeto instalado**. Hoje essas capacidades operam via o próprio repositório do framework (dogfooding) ou por sync manual dos scripts para o projeto consumidor — gap registrado em `BACKLOG.md`.
83
+
84
+ ## Personalização — opcional, em três degraus
85
+
86
+ **Nenhum pod exige que você construa um DNA de voz.** Os pods que assinam peças **em seu nome**
87
+ perguntam quem é você — **uma vez, três campos** (nome, handle, uma linha de autoridade). Tudo o
88
+ mais — voz, tom, léxico, objetivos — é opcional, tem default funcional, e vai se ajustando com o
89
+ seu feedback durante o uso.
90
+
91
+ | Degrau | O que você fornece | Onde mora | O que muda |
92
+ |---|---|---|---|
93
+ | **1 — sem voz** | nada | — | Roda. Saída correta, tom neutro. |
94
+ | **2 — guia de estilo** | pessoa gramatical, léxico proibido, uma linha de tom | `pods/<pod>/knowledge/dono.yaml` (cópia de `dono.example.yaml`) | O texto para de soar como assistente. Melhor custo-benefício. |
95
+ | **3 — DNA de voz** | um corpus do que você já escreveu | `knowledge/voice-dna/voice-dna.yaml`, extraído por `/power:forge` → `mind-extractor` → `*extract {corpus}` | O texto passa a soar como você, com evidência citada por campo. |
96
+
97
+ **Uma ressalva honesta, porque os pods não são iguais.** Os pods de **método** (`dev-ia`,
98
+ `automation`, `hormozi-method`) não dependem de quem você é: sem personalizar nenhum campo, a
99
+ saída deles é a mesma. Já os pods de **identidade** (`content-carousel`, `authority-content`,
100
+ `academy`, `squad-forge`) produzem peças assinadas — sem o trio de atribuição, a saída não é
101
+ neutra, é **genérica**, que é exatamente o defeito que esses pods existem para evitar. Por isso o
102
+ trio é a única coisa que um pod pode pedir antes de prosseguir; voz e estilo, nunca.
103
+
104
+ **Nada disso vai para o pacote.** O DNA de voz e a configuração de dono são dado pessoal: o
105
+ template distribui só os `*.example.*`, e um oráculo (`scripts/owner-layer.cjs` +
106
+ `scripts/owner-layer.test.cjs`) reprova o empacotamento se qualquer arquivo dessa camada sair sem
107
+ ser um placeholder marcado. Passo a passo de instanciação: `knowledge/voice-dna/README.md` na sua
108
+ instalação.
109
+
110
+ ## Validação no repositório do framework
111
+
112
+ ```bash
113
+ npm test # suíte completa: instalador, adopt, runner, memória, migração, smoke/sweep
114
+ npm run validate # budgets + branding + validate-no-clone
115
+ ```
116
+
117
+ ## Licença
118
+
119
+ [MIT](./LICENSE) — Copyright (c) 2026 **Daniel Lins**.
120
+
121
+ Use, copie e adapte à vontade, mantendo a atribuição a Daniel Lins conforme a licença.
package/bin/cli.js ADDED
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ /**
4
+ * power-claude — CLI do framework POWER CLAUDE.
5
+ *
6
+ * Uso:
7
+ * npx @daniellins/power-claude [install] [--yes] instala no diretório atual (default)
8
+ * npx @daniellins/power-claude adopt [--yes] adota instalação sem manifest
9
+ * npx @daniellins/power-claude update [--yes] [--scope motor]
10
+ * atualiza uma instalação existente
11
+ * npx @daniellins/power-claude doctor diagnóstico da instalação
12
+ * npx @daniellins/power-claude uninstall [--yes] remove a instalação
13
+ * npx @daniellins/power-claude --help | --version
14
+ *
15
+ * Node >= 18, sem dependências externas.
16
+ */
17
+
18
+ const path = require('node:path');
19
+ const pkg = require(path.join(__dirname, '..', 'package.json'));
20
+
21
+ const COMMANDS = new Set(['install', 'adopt', 'update', 'doctor', 'uninstall']);
22
+
23
+ const HELP = `power-claude ${pkg.version} — ${pkg.description}
24
+
25
+ Uso:
26
+ npx @daniellins/power-claude [comando] [flags]
27
+
28
+ Comandos:
29
+ install Instala o framework no diretório atual (default)
30
+ adopt Adota uma instalação sem manifest (gera o manifest a partir do
31
+ disco para que o update passe a alcançá-la)
32
+ update Atualiza uma instalação existente (preserva suas modificações)
33
+ doctor Diagnóstico: manifest, hooks, .gitignore, budgets, CLAUDE.md
34
+ uninstall Remove apenas o que o instalador colocou (manifest-driven)
35
+
36
+ Flags:
37
+ -y, --yes Modo não-interativo (assume padrões; nunca sobrescreve nem
38
+ remove arquivos modificados por você)
39
+ --scope motor
40
+ Só em "update": restringe a atualização aos scripts do motor
41
+ (installer/motor-scripts.json) com owner instalado, e trata
42
+ divergência como DEFASAGEM — sobrescreve, como o install
43
+ sempre fez. Imprime a tabela sha256 antes→depois e pede UMA
44
+ confirmação para o conjunto. Não toca o template.
45
+ -h, --help Mostra esta ajuda
46
+ -v, --version Mostra a versão
47
+ `;
48
+
49
+ function parseArgs(argv) {
50
+ const args = { command: 'install', yes: false, help: false, version: false, scope: null };
51
+ for (let i = 0; i < argv.length; i++) {
52
+ const raw = argv[i];
53
+ if (raw === '--yes' || raw === '-y') args.yes = true;
54
+ else if (raw === '--help' || raw === '-h') args.help = true;
55
+ else if (raw === '--version' || raw === '-v') args.version = true;
56
+ else if (raw === '--scope') {
57
+ args.scope = argv[++i];
58
+ if (!args.scope) {
59
+ console.error('--scope exige um valor (ex.: --scope motor)\n');
60
+ console.error(HELP);
61
+ process.exit(2);
62
+ }
63
+ } else if (raw.startsWith('--scope=')) args.scope = raw.slice('--scope='.length);
64
+ else if (COMMANDS.has(raw)) args.command = raw;
65
+ else {
66
+ console.error(`Argumento desconhecido: ${raw}\n`);
67
+ console.error(HELP);
68
+ process.exit(2);
69
+ }
70
+ }
71
+ return args;
72
+ }
73
+
74
+ async function main() {
75
+ const args = parseArgs(process.argv.slice(2));
76
+
77
+ if (args.help) {
78
+ console.log(HELP);
79
+ return 0;
80
+ }
81
+ if (args.version) {
82
+ console.log(pkg.version);
83
+ return 0;
84
+ }
85
+
86
+ if (args.scope !== null && args.command !== 'update') {
87
+ console.error(`--scope só se aplica ao comando "update" (recebido em "${args.command}").\n`);
88
+ console.error(HELP);
89
+ return 2;
90
+ }
91
+
92
+ switch (args.command) {
93
+ case 'install': {
94
+ const { install } = require('../installer/install');
95
+ return install({ yes: args.yes });
96
+ }
97
+ case 'adopt': {
98
+ const { adopt } = require('../installer/adopt');
99
+ return adopt({ yes: args.yes });
100
+ }
101
+ case 'update': {
102
+ const { update } = require('../installer/update');
103
+ return update({ yes: args.yes, scope: args.scope });
104
+ }
105
+ case 'doctor': {
106
+ const { doctor } = require('../installer/doctor');
107
+ return doctor();
108
+ }
109
+ case 'uninstall': {
110
+ const { uninstall } = require('../installer/uninstall');
111
+ return uninstall({ yes: args.yes });
112
+ }
113
+ default:
114
+ console.error(HELP);
115
+ return 2;
116
+ }
117
+ }
118
+
119
+ main()
120
+ .then((code) => process.exit(code || 0))
121
+ .catch((error) => {
122
+ console.error(`Erro: ${error.message}`);
123
+ process.exit(1);
124
+ });
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ /**
4
+ * doctor-ready-oracles.test.cjs — a checagem de distribuição da trava de
5
+ * `Ready` no `installer/doctor.js` (story SF13.2, `ADR-032` `DF-SF13.2-4`).
6
+ *
7
+ * ESCOPO DELIBERADAMENTE ESTREITO. Este é o 1º teste de `doctor.js` no repo,
8
+ * e cobre SÓ a checagem desta story — não é mandato para cobrir as outras
9
+ * checagens já existentes no arquivo. Cobri-las por arrasto seria emendar
10
+ * escopo numa story já STANDARD.
11
+ *
12
+ * O que a checagem existe para impedir: o hook e o validador viajam por
13
+ * canais DIFERENTES. Numa instalação em skew (`ADR-019`) o hook chega e
14
+ * `scripts/validate-story-acs.cjs` não — e a trava degrada para `ask` em toda
15
+ * transição `Draft`→`Ready`, para sempre. Guard que sempre pergunta é guard
16
+ * desligado com uma tecla a mais.
17
+ *
18
+ * Os 3 sub-casos são o remédio para o não-bloqueante 4 do `*review`: o
19
+ * controle positivo precisa DISCRIMINAR (linha `[OK ]` explícita), não
20
+ * apenas "não ter FALHA" — que seria vacuamente verdadeiro sem uma linha de
21
+ * código nova.
22
+ */
23
+
24
+ const fs = require('node:fs');
25
+ const os = require('node:os');
26
+ const path = require('node:path');
27
+
28
+ const { doctor } = require(path.resolve(__dirname, '..', 'doctor.js'));
29
+
30
+ const LABEL = 'Validador de ACs presente (exigido pela trava de Ready)';
31
+
32
+ let failures = 0;
33
+ const tmpDirs = [];
34
+
35
+ function assert(ok, msg) {
36
+ if (ok) {
37
+ console.log(`[OK ] ${msg}`);
38
+ } else {
39
+ console.error(`[FALHA] ${msg}`);
40
+ failures++;
41
+ }
42
+ }
43
+
44
+ /** Instalação mínima: `.claude/settings.json` (com ou sem o hook) e `scripts/`. */
45
+ function mkFixture({ withValidator, withHook }) {
46
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'doctor-ero-'));
47
+ tmpDirs.push(dir);
48
+ fs.mkdirSync(path.join(dir, '.claude'), { recursive: true });
49
+ const hooks = withHook
50
+ ? {
51
+ PreToolUse: [{
52
+ matcher: 'Edit|Write',
53
+ hooks: [{ type: 'command', command: 'node "$CLAUDE_PROJECT_DIR/.claude/hooks/enforce-ready-oracles.cjs"' }],
54
+ }],
55
+ }
56
+ : {};
57
+ fs.writeFileSync(path.join(dir, '.claude', 'settings.json'), JSON.stringify({ hooks }));
58
+ if (withValidator) {
59
+ fs.mkdirSync(path.join(dir, 'scripts'), { recursive: true });
60
+ fs.writeFileSync(path.join(dir, 'scripts', 'validate-story-acs.cjs'), 'module.exports = {};\n');
61
+ }
62
+ return dir;
63
+ }
64
+
65
+ /**
66
+ * Roda o `doctor` sobre a fixture capturando `console.log`. A fixture não é
67
+ * uma instalação completa (sem manifest, sem .gitignore), então outras
68
+ * checagens falham — irrelevante: este teste olha SÓ a linha desta story.
69
+ */
70
+ async function runDoctor(dir) {
71
+ const lines = [];
72
+ const origLog = console.log;
73
+ const cwd0 = process.cwd();
74
+ console.log = (...args) => lines.push(args.join(' '));
75
+ process.chdir(dir);
76
+ try {
77
+ await doctor();
78
+ } catch (err) {
79
+ lines.push(`[EXCECAO] ${err && err.message}`);
80
+ } finally {
81
+ process.chdir(cwd0);
82
+ console.log = origLog;
83
+ }
84
+ return lines;
85
+ }
86
+
87
+ function linhaDaChecagem(lines) {
88
+ return lines.filter((l) => l.includes(LABEL));
89
+ }
90
+
91
+ async function main() {
92
+ console.log('POWER CLAUDE — checagem de distribuição da trava de Ready no doctor (SF13.2)');
93
+
94
+ const okLines = await runDoctor(mkFixture({ withValidator: true, withHook: true }));
95
+ const failLines = await runDoctor(mkFixture({ withValidator: false, withHook: true }));
96
+ const skipLines = await runDoctor(mkFixture({ withValidator: false, withHook: false }));
97
+
98
+ const okLine = linhaDaChecagem(okLines);
99
+ const failLine = linhaDaChecagem(failLines);
100
+ const skipLine = linhaDaChecagem(skipLines);
101
+
102
+ assert(okLine.length === 1, 'a checagem emite exatamente 1 linha quando o hook está registrado (positivo)');
103
+ assert(
104
+ okLine.some((l) => /\[OK\s*\]/.test(l)),
105
+ 'hook registrado + validador presente ⇒ [OK ] EXPLÍCITO (a checagem rodou e passou, não foi pulada)',
106
+ );
107
+
108
+ assert(
109
+ failLine.some((l) => /\[FALHA\]/.test(l)),
110
+ 'hook registrado + validador ausente ⇒ [FALHA]',
111
+ );
112
+ assert(
113
+ failLine.some((l) => /adopt/.test(l) && /update/.test(l)),
114
+ 'a FALHA nomeia o comando de conserto (fixCmd: adopt + update --scope motor)',
115
+ );
116
+ assert(
117
+ failLine.some((l) => /Draft.*Ready/.test(l)),
118
+ 'a FALHA explica a CONSEQUÊNCIA — toda transição Draft→Ready passa a pedir aprovação',
119
+ );
120
+
121
+ assert(
122
+ skipLine.some((l) => /\[AVISO\]/.test(l) && /checagem pulada/.test(l)),
123
+ 'hook NÃO registrado ⇒ [AVISO] "checagem pulada" (a checagem é condicional, não incondicional)',
124
+ );
125
+ assert(
126
+ !skipLine.some((l) => /\[FALHA\]/.test(l)),
127
+ 'controle negativo: numa instalação sem a trava, exigir o validador seria FALHA inventada',
128
+ );
129
+
130
+ for (const d of tmpDirs) fs.rmSync(d, { recursive: true, force: true });
131
+
132
+ if (failures > 0) {
133
+ console.error(`\nSuíte FALHOU: ${failures} violação(ões).`);
134
+ process.exit(1);
135
+ }
136
+ console.log('\nSuíte verde.');
137
+ process.exit(0);
138
+ }
139
+
140
+ main();