@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,158 @@
1
+ # Pipeline de criação — squad-forge
2
+
3
+ Transforma "quero um agente/pod de X" em artefato registrado. Cada fase tem inputs, outputs e um gate; fase seguinte só abre com o gate anterior fechado. Executor default entre parênteses.
4
+
5
+ ## Fase 1 — Discovery (forge-chief)
6
+
7
+ **Input:** pedido em linguagem natural ("quero um agente de X").
8
+ **Processo:** entrevista curta — job-to-be-done em uma frase; comandos necessários (nome + o que entrega); conhecimento consumido (já existe em `knowledge/`? precisa de DNA? precisa ser criado?); onde vive (aplicar a árvore comando vs agente vs pod de `pods/squad-forge/README.md`); **se clona um especialista, perguntar a forma** — persona completa (voice DNA, custo maior por ativação, trade-off informado) ou só metodologias (otimizado, default); **se é pod de CONTEÚDO (produz peça assinada por alguém), perguntar TAMBÉM a escada de voz do DONO** (ADR-013, eixo SEPARADO da pergunta de especialista — voz de QUEM assina, não de quem se clona): **sem voz** (nenhuma checagem) / **guia de estilo** (default leve: bloco `voz:` estruturado em `knowledge/dono.yaml` — `pessoa`/`lexico_proibido`/`tom` — + veto léxico `lexical-check.cjs` no workflow + cláusula de voz no checkpoint final; referência: `content-carousel`) / **DNA completo do dono** (mind-extractor, Fase 2 — mesmo caminho de DNA já existente, custo informado).
9
+ **Output:** brief de escopo (job, comandos, mapa de conhecimento, destino proposto, forma do clone se aplicável, degrau de voz do dono se pod de conteúdo).
10
+
11
+ ### Gate de proporcionalidade (ADR-004 — decide o aparato da Fase 3)
12
+
13
+ Antes de gerar, classifique o pedido em **SIMPLE** ou **STANDARD/COMPLEX** com `node scripts/forge-assess-tier.cjs <spec.json>` — reprodução determinística do veredito `*assess` 5D por limiares estruturais (constante `SCOPE_THRESHOLDS`, ADR-004; este repo não embute o `pc-architect`, então os limiares SÃO a régua auditável). Gatilhos: **SIMPLE** = ≤2 agentes E ≤1 workflow E ≤1 handoff cross-agente E sem DNA/persona E entregável não crítico; **qualquer** gatilho oposto (≥3 agentes / ≥2 workflows / ≥2 handoffs / DNA / crítico) → **STANDARD/COMPLEX**. O tier decide o aparato gerado (Fase 3) — não infle pod trivial.
14
+
15
+ ### G1 — Escopo definido
16
+ - [ ] Job-to-be-done em uma frase, sem "e também".
17
+ - [ ] Lista de comandos com entregável de cada um.
18
+ - [ ] Conhecimento mapeado: cada comando aponta para fonte existente ou a criar.
19
+ - [ ] Destino proposto justificado pela árvore de granularidade.
20
+ - [ ] **Tier classificado** (SIMPLE / STANDARD/COMPLEX) pelo gate de proporcionalidade, com os gatilhos registrados.
21
+ - [ ] Clone de especialista: forma escolhida pelo usuário (persona / só metodologias) com o custo informado — ou "não é clone" explícito.
22
+ - [ ] Pod de conteúdo: degrau de voz do DONO escolhido (sem voz / guia de estilo / DNA do dono) com o custo informado — ou "não é pod de conteúdo" explícito. Eixo separado do item anterior (ADR-013): as duas respostas coexistem.
23
+ - [ ] **Ritmo de checkpoint** (SF12.4a/ADR-030 Bloco A, campo `ritmo`): algum gate pode ser pulado em modo autônomo, ou nenhum é pulável? Declare com `{ step, skip_modes }` — ou `nao_se_aplica` explícito, com razão.
24
+ - [ ] **Contrato de entrada** (SF12.4a/ADR-030 Bloco A, campo `contrato_entrada`): a etapa inicial recebe mais de uma forma de entrada válida, ou só uma? Declare com `{ step, valores }` (≥2 valores) — ou `nao_se_aplica` explícito, com razão.
25
+ - [ ] **Entregável** (SF12.4a/ADR-030 Bloco A, campo `entregavel`): alguma etapa produz artefato binário/arquivo que precisa existir em disco, ou todas produzem só texto? Declare com `{ step }` — ou `nao_se_aplica` explícito, com razão.
26
+ - [ ] **Credencial** (`ADR-034` `DF-REPUB-5`, Emenda 1): algum agente deste pod precisa **obter e usar uma credencial própria** para trabalhar (chave de API, token), ou nenhum? Se sim, o knowledge da etapa **nomeia a origem única** e **proíbe origem alternativa** — forma de referência em `template/pods/content-carousel/knowledge/image-generation.md` §"Credencial da OpenRouter". Se não, `nao_se_aplica` explícito, **com razão** (por que nenhum agente precisa de credencial própria).
27
+
28
+ ## Fase 2 — Research/DNA (mind-extractor; opcional)
29
+
30
+ Executa somente se o brief exige voz ou mente específica.
31
+
32
+ **Input:** brief + corpus (arquivos locais ou fontes públicas citadas).
33
+ **Processo:** `mind-extractor *extract` → YAML de DNA com `evidence:` por arquivo-fonte; `*validate` com 3 amostras comparadas ao corpus.
34
+ **Output:** `knowledge/voice-dna/{slug}-dna.yaml` validado. Default sem corpus próprio: usar a mente de referência do usuário em `knowledge/voice-dna/`.
35
+ **Sem gate próprio** — a qualidade do DNA é cobrada em G4 (red-team).
36
+
37
+ ## Fase 3 — Geração (forge-chief)
38
+
39
+ **Input:** brief (G1) + tier (gate de proporcionalidade) + DNA/conhecimento (Fase 2, se houver).
40
+ **Ordem obrigatória (SF12.4a/ADR-030 Bloco D, AC13b):** o `knowledge` declarado na spec é autorado ANTES de invocar `forge-generate.cjs`; o gerador confere existência, não cria. Se a resposta do G1 (Mapa de Conhecimento) apontar para um arquivo `knowledge/*.md` "a criar", escreva-o agora — a declaração no `pod-spec.json` só passa na checagem de existência (AC13) se o arquivo já estiver em disco no momento da geração.
41
+ **Processo:** gerar os agentes (sempre) e, proporcional ao tier, o aparato de processo:
42
+ - **Agentes / comando / pod / clone:** como antes — entry point ≤150 linhas, frontmatter `name/description/model/budget_tokens`, 3 blocos (Papel, Comandos, Regras de ouro); knowledge files separados; stub de command (≤15 linhas, `description` com "Use para:"). Clone: persona → carrega/encarna `knowledge/voice-dna/{slug}-dna.yaml` sob demanda; só metodologias → sem roleplay; sempre com fonte citada.
43
+ - **Aparato de processo (disco-first, M2) — via `node scripts/forge-generate.cjs <spec.json> --out <podDir>`:**
44
+ - **SIMPLE:** no máximo 1 workflow mínimo (ou nenhum, se comando/agente único) + templates só das 1–2 saídas. **Sem** `squad-io.yaml`, **sem** veto-engine obrigatório, **sem** memória.
45
+ - **STANDARD/COMPLEX:** `workflows/wf-<id>.yaml` (DAG+checkpoints+veto de máquina, no schema da SF1.1, a partir de `templates/workflow-tmpl.yaml`) + 1 `templates/<etapa>-tmpl.md` por etapa + `squad-io.yaml` (contrato de handoff) + scaffold de memória (`memory/learnings.jsonl` vazio + `learnings.consolidated.md` só cabeçalho — **sem lifecycle**; consolidação/promoção/tier CRITICAL são G1/Fase 2).
46
+ - Todo artefato é gravado em disco ANTES de qualquer outra ação — nenhuma dependência de vault/rede na geração.
47
+ **Output:** arquivos criados, ainda não registrados.
48
+
49
+ ### G2 — Padrão estrutural
50
+ - [ ] `node scripts/validate-budgets.js` passa (budget declarado, dentro do próprio limite e do teto global de 1.500).
51
+ - [ ] Entry point ≤150 linhas.
52
+ - [ ] Corpo com exatamente os 3 blocos, na ordem: Papel → Comandos → Regras de ouro.
53
+ - [ ] Zero conhecimento profundo no entry point (vive em `knowledge/` ou `pods/<pod>/`).
54
+ - [ ] **Aparato proporcional ao tier:** SIMPLE sem `squad-io`/memória; STANDARD/COMPLEX com `wf-*.yaml` + template/etapa + `squad-io.yaml` + scaffold de memória.
55
+ - [ ] **STANDARD/COMPLEX:** `node scripts/validate-pod-workflow.cjs <wf>` sai 0 sobre o `wf-*.yaml` gerado, sem ajuste manual.
56
+ - [ ] **`Fonte:` prospectivo (SF12.4a/ADR-030 Bloco N, DF-SF12.4-9):** se `knowledge/` do pod não está vazio, `node scripts/validate-no-clone.cjs <podDir>/knowledge --knowledge <podDir>/knowledge` sai 0 antes de avançar à Fase 4 — gate sobre o que o `forge-chief` escreveu (o forge NÃO gera arquivos de `knowledge/*.md`; quem os escreve é o `forge-chief` em prosa, Fase 3).
57
+
58
+ ## Fase 4 — Gates (forge-chief + pod-critic)
59
+
60
+ **Input:** artefatos da Fase 3.
61
+ **Processo:** smoke test conduzido pelo forge-chief; red-team pelo pod-critic.
62
+ **Output:** relatório PASS/FAIL por gate + correções aplicadas (loop até fechar; se não fechar em 3 iterações, escalar ao usuário).
63
+
64
+ ### G3 — Smoke test
65
+ - [ ] Ativar o agente e invocar CADA comando declarado com um caso mínimo.
66
+ - [ ] O agente responde ao comando sem pedir arquivo inexistente (todo destino `→ arquivo` existe no disco).
67
+ - [ ] A resposta corresponde ao entregável prometido no brief.
68
+
69
+ ### G4 — Red-team (pod-critic)
70
+ - [ ] `pod-critic *review` executado com verificação independente.
71
+ - [ ] Sobreposição com pods/commands existentes descartada ou fronteira documentada.
72
+ - [ ] Clone: forma escolhida pelo usuário com custo informado; metodologias com fonte citada (sem persona fingindo conselho novo da pessoa real).
73
+ - [ ] **Gate G6 estendido (só STANDARD/COMPLEX):** workflow seguível (smoke 4/4, não só presença) · templates presentes e casando com os `outputs` · handoffs (`squad-io.yaml`) fechados sem órfãos · reconciliação feita e dentro do bound (se `*upgrade-pod`). O `pod-critic` roda ele mesmo o validador/smoke — não lê o relato do forge.
74
+ - [ ] Veredito **APROVADO explícito** por escrito. REPROVADO → volta à Fase 3 com a lista de correções.
75
+
76
+ ## `*upgrade-pod {pod}` — formalização v0.3 de um pod EXISTENTE (upgrade-in-place)
77
+
78
+ Formaliza um pod já construído SEM regenerar do zero, preservando os agentes validados (SPEC §G4). Motor: `node scripts/forge-upgrade-pod.cjs <podDir> [--critical] [--dna] [--handoffs N] [--apply]`.
79
+
80
+ 1. **`*assess` de tier** sobre o pod existente (conta agentes/workflows + flags declaradas) → SIMPLE ou STANDARD/COMPLEX.
81
+ 2. **Gera os artefatos AUSENTES** proporcionais ao tier (workflows/templates/handoffs/scaffold de memória) — o motor só escreve em `workflows/ templates/ squad-io.yaml memory/`, **nunca** em `agents/`.
82
+ 3. **Reconciliação workflow-aware BOUNDED** sobre cada agente preservado — APENAS: (i) remover auto-sequenciamento/auto-chamada a outro agente (o runner orquestra); (ii) escopar o output do agente ao artefato da etapa (nota workflow-aware). Qualquer ajuste que exija reescrever papel/comandos/responsabilidades **excede o bound** → o comando reporta e recomenda **`*new`** para aquele agente, **sem forçar** a reconciliação.
83
+ 4. **Validador estático** — `node scripts/validate-pod-workflow.cjs` sobre o `wf-*.yaml` gerado (exit 0).
84
+ 5. **Smoke dinâmico** (SF1.3) 4/4 sobre o workflow gerado (quando disponível).
85
+ 6. **`pod-critic *review`** — gate G6 estendido (verificação independente, reprova por default).
86
+ 7. **Registro.** Se qualquer passo 4-6 falhar de um jeito que a reconciliação bounded não resolve, o comando recomenda `*new` — nunca força "preservar" além do bound.
87
+
88
+ ## Fase 5 — Registro (forge-chief)
89
+
90
+ **Input:** artefatos aprovados em G4.
91
+ **Processo:** `*register` — criar o stub de command definitivo em `.claude/commands/power/`; atualizar `pods/README.md` (linha na tabela de pods, se pod novo) e o README do pod dono (tabela de agentes, se agente novo).
92
+ **Output:** artefato descobrível e registrado. Sem commit — commit é decisão do usuário.
93
+
94
+ ### G5 — Registro
95
+ - [ ] Stub de command criado (≤15 linhas, aponta para o entry point, `description` com "Use para:").
96
+ - [ ] Linha adicionada/atualizada em `pods/README.md` (ou no README do pod dono).
97
+ - [ ] `validate-budgets.js` re-executado após tudo — ainda verde.
98
+
99
+ ## Resumo dos gates
100
+
101
+ | Gate | O que trava | Quem fecha |
102
+ |---|---|---|
103
+ | G1 | Escopo: job + comandos + conhecimento + destino | forge-chief |
104
+ | G2 | Padrão estrutural: budgets, ≤150 linhas, 3 blocos | validate-budgets.js |
105
+ | G3 | Smoke test: comandos respondem, destinos existem | forge-chief |
106
+ | G4 | Red-team: aprovação explícita | pod-critic |
107
+ | G5 | Registro: stub + README atualizados | forge-chief |
108
+
109
+ ## `*migrate-squad {squad}` — migração direta squad legado → pod v0.3 (F0-F3)
110
+
111
+ Fase PRÓPRIA do `*migrate-squad` (não sobrescreve a Fase 5 do `*register`). **Princípio:** migrar é ENCADEAR o que existe (`migration-manifest.cjs`, `forge-generate --additive`, `validate-pod-workflow`, `smoke --sweep`, `pod-critic`, `harness-g5-lite`), não construir uma segunda fábrica. O agente **nunca edita o manifest** — só invoca subcomandos do escritor único.
112
+
113
+ ### F0 — Inventário determinístico (fecha G5 do design; AC1)
114
+ `node scripts/migration-manifest.cjs init docs/migration/MIGRATION-<squad>.yaml --squad <squad> --squad-dir <squadDir>` — scan RECURSIVO do squad INTEIRO (readdir recursivo, não lista fixa): classifica cada arquivo numa família (`workflows`, `agents`, `tasks`, `checklists`, `data`, `scripts`, `templates`, `sops`, `config`, `loose`) e grep dos comandos embutidos (`*[a-z-]+`) de cada agente legado (B.5 — cada comando legado precisa de endereço). O inventário é DADO do manifest, escrito pelo helper.
115
+
116
+ ### F1 — Triagem com gate humano (regra 5 do ledger; AC2/AC4) — **PARA no Daniel**
117
+ `triage-set --workflow <id> --disposition {migrate|dispense|command|knowledge} --purpose "<citação path:linha>" --overlap "<path concorrente>" --basis {dado|julgamento}` para CADA workflow E CADA balde (órfãs, `data/`, e — atenção — os validadores de `scripts/`: disposição EXPLÍCITA entre veto assertion / script do pod / óbito justificado, **nunca prosa**). Sem as colunas de evidência o helper recusa. Depois `triage-approve --workflow <id> --approved-by <daniel>`: num manifest de migração real, **`open-line` recusa (exit 2) sem essa aprovação** — a parada é estrutural, não intenção.
118
+
119
+ ### F2 — Loop por workflow aprovado (ordem de valor; re-assess de tier agregado no início)
120
+ - **F2a autoria** — `specs/wf-<id>.spec.json` AUTORADA (ADR-005; **nunca parse automático do YAML legado** — o legado é evidência citada em `_sources`); `veto_conditions` machine-redutíveis → `veto.assertions` com `_sources`; condições aritméticas/julgáveis (LTV:CAC≥3) → `checkpoint.blocking` (NUNCA veto — fronteira ADR-002). Tarefa-canário + `wf-<id>.smoke.json` autorados na MESMA etapa. `open-line --spec ... --pod-dir ... --owns ...`.
121
+ - **F2b/c geração + destilação** — `node scripts/forge-generate.cjs <spec> --out <podDir> --additive` (tier agregado do disco via `forge-assess-tier --pod-dir`); destilação de delta (tasks/checklists/`data/` → knowledge com fonte, dedup). `advance --to generated`/`distilled`.
122
+ - **F2d lint regra 3** — `node scripts/validate-no-clone.cjs <podArtefatos> --squad-source <squadDir> [--knowledge <dir>]` (classe token-detectável: identidade, persona com token, knowledge sem `Fonte:`) + `validate-budgets.js`. `advance --to linted`.
123
+ - **F2e gates** — `advance --to gates` dispara o hook `pre-gates-check` (decide LITE vs FULL por feature-diff/`motor_hash` ANTES de pagar runs); então `validate-pod-workflow` → `smoke --sweep` → `pod-critic *review` (G6, incl. **dimensão anti-persona** para o residual que o lint não pega) → `harness-g5-lite` (ou FULL).
124
+ - **F2f fechamento da linha** — `close-line` re-executa estático+sweep, confere `run_ids`/`pair` com binding. **Learnings da migração são candidatos no relatório — NUNCA ingeridos automaticamente** na memória do pod destino (a ingestão é `*ingest-memory`, manual/opt-in; Decisão F).
125
+
126
+ ### F3 — Fechamento do squad (AC8)
127
+ `verify` (re-aplica por código os checks a TODAS as linhas fechadas) + `coverage --squad-dir <squadDir>` (diff squad×manifest = vazio) ⇒ tabela capacidade→endereço ⇒ **proposta de aposentadoria ao Daniel**. O comando **nunca deleta** o squad: a remoção (`git rm`) é autoridade exclusiva do `pc-devops`, sob aprovação humana.
128
+
129
+ ### Disposição VIRAR-COMANDO (fecha G6-comando; AC9)
130
+ Linha de disposição `command` fica `pendente-comando` e SÓ fecha com os TRÊS, conferidos por `command-close --command-path ... --smoke ... --approved-by ...`: (a) comando em disco; (b) smoke próprio registrado (output conferível, não-vazio); (c) aprovação do Daniel. Sem os três, a única saída é reclassificar como `dispensar` (`triage-set --disposition dispense`).
131
+
132
+ ## `*harden-learning` — promover heurística de memória a ENFORCEMENT (SF7.6/ADR-012)
133
+
134
+ Memória evolutiva é SUGESTÃO, não enforcement (caso real: travessões regrediram apesar de consolidados). Este comando promove UMA heurística do `learnings.consolidated.md` (top-N) a `veto.assertion` física do workflow — bloqueio do runner, não prosa injetada. Motor determinístico (o forge-chief só invoca; nunca faz o trabalho em prosa):
135
+
136
+ ```
137
+ node scripts/forge-harden-learning.cjs <podDir> \
138
+ --learning <id> --step <stepId> --assertion '<json>' --approved-by <nome> [--workflow <id>]
139
+ ```
140
+
141
+ 1. **Tradução heurística→forma é JULGAMENTO HUMANO** — o dono/dev propõe a `--assertion` (forma existente `count_gte`/`field_matches`/... quando a regra mapeia; `command_check` blessed da SF7.2 quando exige inspeção que os vetos textuais não alcançam — ex.: `lexical-check.cjs` para travessões). NUNCA derivada de prosa por LLM.
142
+ 2. **Aprovação obrigatória** — sem `--approved-by`, recusa exit 2 e NADA é aplicado (padrão `migration-manifest.cjs`).
143
+ 3. **Regeneração preservando o resto** — edita `pod-spec.json` (fonte da verdade, ADR-005) e reemite SÓ o workflow-alvo via `forge-generate --additive` + owns; `agents/` nunca é tocado. Prova: estático + smoke 4/4 ANTES/DEPOIS e diff confinado à etapa-alvo — qualquer desvio ⇒ ROLLBACK automático.
144
+ 4. **Marcação append-only** — registro `{type:"hardening", ref, target, approved_by, timestamp}` no `learnings.jsonl`; o consolidado anota `🔒 endurecida → veto <tipo> em <step>` e DEMOVE a heurística do top-N ativo (enforcement substitui injeção; orçamento de injeção é finito). NUNCA removida do log — auditável (quem, quando, qual asserção).
145
+
146
+ Use para: fechar o degrau aprender→impor quando uma heurística consolidada é ignorada sob pressão; converter feedback recorrente em check binário do runner.
147
+
148
+ ### 2º alvo: `--target-type knowledge` (SF10.10/ADR-012 Adendo)
149
+
150
+ Heurística de CONTEÚDO (prosa) não tem forma de veto — vira **knowledge canônico** do pod, que é o insumo que o export recebe cru:
151
+
152
+ ```
153
+ node scripts/forge-harden-learning.cjs <podDir> --target-type knowledge \
154
+ --learning <id> --file <arquivo.md> --content <conteudo-novo.md> --approved-by <nome>
155
+ node scripts/forge-harden-learning.cjs <podDir> --list-candidates # read-only, exit 0 sempre
156
+ ```
157
+
158
+ A REDAÇÃO é do dono (`--content`), nunca derivada por LLM. O motor só EDITA knowledge já declarado no `knowledge:` do wf (criar é fora de escopo) e prova **preservação**: baseline antes, escrita CONFINADA a `knowledge/<file>` + os 2 arquivos de memória, `validate-no-clone` verde, paridade de `per_file_sha` via `pod-export-compile` (ou `export_check:"n/a"` declarado), e recusa se estourar o budget do consolidado — qualquer desvio ⇒ ROLLBACK. **Não há smoke "depois"** (nenhum caminho de runtime lê `knowledge/*.md`: seria verde por construção) e **não há prova de máquina de que a prosa ficou melhor** — o único portão de qualidade é `--approved-by`. `--list-candidates` é disciplina de PRÉ-RELEASE (nunca gate). Detalhes: `docs/mecanismos/harden-learning.md`.
@@ -0,0 +1,40 @@
1
+ # Template de saída — etapa `discovery` (agente `forge-chief`, artefato `scope-brief`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Job-to-be-done
8
+ <!-- preencher: conteúdo de "Job-to-be-done" -->
9
+
10
+ ## Comandos
11
+ <!-- count_gte "Comandos": conte itens de lista sob este heading — bullets (`- `/`* `), linhas numeradas (`1.` `2.` ...) OU linhas de tabela (`| ... |`, o separador `|---|---|` NÃO conta). Prosa corrida NÃO conta. -->
12
+ <!-- preencher: conteúdo de "Comandos" -->
13
+
14
+ ## Mapa de Conhecimento
15
+ <!-- preencher: conteúdo de "Mapa de Conhecimento" -->
16
+
17
+ ## Destino
18
+ <!-- preencher: conteúdo de "Destino" -->
19
+
20
+ <!-- SF12.4a/ADR-030 Bloco B: preencher, na Fase 3 (autoria do pod-spec.json), os 3 campos
21
+ canônicos abaixo — DECLARADOS com conteúdo OU RECUSADOS (nao_se_aplica + razao +
22
+ respondido_por), NUNCA deixados de fora da spec. Ver docs/mecanismos/forma-canonica-do-forge.md -->
23
+ <!-- ritmo: algum gate pode ser pulado em modo autônomo? -->
24
+ <!-- contrato_entrada: a etapa inicial recebe mais de uma forma de entrada válida? -->
25
+ <!-- entregavel: alguma etapa produz artefato binário/arquivo que precisa existir em disco? -->
26
+ <!-- Campos de máquina (ADR-005 Decisão A) — registram que a PERGUNTA foi respondida nesta
27
+ entrevista (declarado|recusado); NÃO provam que a resposta foi transcrita ao pod-spec.json
28
+ (isso é o Bloco C, camada diferente — AC6).
29
+ Fronteira (ADR-034 DF-REPUB-8, Emenda 1): `credencial_registrada` é campo de máquina desta
30
+ entrevista e **entra no `pod-spec.json` como assertion do veto do `discovery` (Bloco B)**.
31
+ Ele **NÃO** é campo canônico de topo: **não existe** `credencial:` na raiz da spec e
32
+ `forge-generate` **não** o lê (`ADR-034` Emenda 1, `DEBT-REPUB-B`). Escrever
33
+ `credencial: {…}` na raiz é ignorado **em silêncio**. -->
34
+ ritmo_registrado: <declarado|recusado>
35
+ contrato_entrada_registrado: <declarado|recusado>
36
+ entregavel_registrado: <declarado|recusado>
37
+ credencial_registrada: <declarado|recusado>
38
+
39
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
40
+ confianca: <alta|media|baixa>
@@ -0,0 +1,18 @@
1
+ # Template de saída — etapa `generation` (agente `forge-chief`, artefato `pod-artifacts`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Agentes Gerados
8
+ <!-- count_gte "Agentes Gerados": conte itens de lista sob este heading — bullets (`- `/`* `), linhas numeradas (`1.` `2.` ...) OU linhas de tabela (`| ... |`, o separador `|---|---|` NÃO conta). Prosa corrida NÃO conta. -->
9
+ <!-- preencher: conteúdo de "Agentes Gerados" -->
10
+
11
+ ## Aparato de Processo
12
+ <!-- preencher: conteúdo de "Aparato de Processo" -->
13
+
14
+ ## Conformidade Estrutural
15
+ <!-- preencher: conteúdo de "Conformidade Estrutural" -->
16
+
17
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
18
+ confianca: <alta|media|baixa>
@@ -0,0 +1,17 @@
1
+ # Template de saída — etapa `red-team` (agente `pod-critic`, artefato `review-verdict`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Verificacao Independente
8
+ <!-- preencher: conteúdo de "Verificacao Independente" -->
9
+
10
+ ## Sobreposicao
11
+ <!-- preencher: conteúdo de "Sobreposicao" -->
12
+
13
+ ## Veredito
14
+ <!-- preencher: conteúdo de "Veredito" -->
15
+
16
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
17
+ confianca: <alta|media|baixa>
@@ -0,0 +1,17 @@
1
+ # Template de saída — etapa `register` (agente `forge-chief`, artefato `registration`)
2
+
3
+ > Gerado por forge-generate.cjs (SF1.4 + ADR-005). Preencher com o artefato real da etapa.
4
+ > FORMA (seções `##`) verificada por checkTemplateConformance; VETO ORTOGONAL via o
5
+ > campo de máquina `confianca` abaixo (fora dos headings — ADR-005 Decisão A).
6
+
7
+ ## Stub de Command
8
+ <!-- preencher: conteúdo de "Stub de Command" -->
9
+
10
+ ## README Atualizado
11
+ <!-- preencher: conteúdo de "README Atualizado" -->
12
+
13
+ ## Registro
14
+ <!-- preencher: conteúdo de "Registro" -->
15
+
16
+ <!-- Campo de máquina do veto default (ADR-005) — NÃO é heading. Troque o placeholder por alta|media|baixa. -->
17
+ confianca: <alta|media|baixa>
@@ -0,0 +1,101 @@
1
+ # workflow-tmpl.yaml — contrato do `wf-*.yaml` de um pod v0.3 (schema documentado).
2
+ #
3
+ # Este arquivo é a FONTE de geração dos `workflows/wf-*.yaml` reais (SF1.4) e o
4
+ # documento de schema consumido pelo validador estático `scripts/validate-pod-workflow.cjs`
5
+ # (SF1.1). Ele descreve, campo a campo, o contrato que todo workflow de pod deve honrar.
6
+ #
7
+ # Fronteira (ADR-002): este contrato prova BEM-FORMAÇÃO, nunca funcionamento.
8
+ # `veto.assertions[]` são asserções ESTRUTURADAS e determinísticas (avaliáveis por
9
+ # máquina). É PROIBIDO veto em prosa avaliada por LLM — qualidade de conteúdo
10
+ # subjetiva é critério do `checkpoint.blocking` do pod-critic, não do veto.
11
+ #
12
+ # ---------------------------------------------------------------------------
13
+ # CAMPOS OBRIGATÓRIOS
14
+ # ---------------------------------------------------------------------------
15
+
16
+ # (1) state_machine — a máquina de estados do workflow.
17
+ # states: lista de estados; DEVE conter `init`, `complete` e `failed`.
18
+ # initial: estado inicial (normalmente `init`).
19
+ # terminal: estados terminais; DEVE incluir `failed` (terminal, sem saída).
20
+ state_machine:
21
+ states: [init, running, review, complete, failed]
22
+ initial: init
23
+ terminal: [complete, failed]
24
+
25
+ # (2) steps[] — os passos do DAG. Cada passo declara:
26
+ # id: identificador único do passo (referenciado por `depends_on`).
27
+ # agent: agente do pod que executa o passo (OBRIGATÓRIO).
28
+ # template: path do template de saída, relativo à raiz do pod (OBRIGATÓRIO;
29
+ # deve existir em disco).
30
+ # inputs: lista de artefatos/entradas consumidos (nomes de `outputs` de
31
+ # passos a montante, ou entradas iniciais do workflow).
32
+ # outputs: lista de artefatos produzidos (OBRIGATÓRIO, não-vazio). Todo
33
+ # output deve ser consumido por um `inputs` a jusante OU ser o
34
+ # artefato final (produzido por um passo-sumidouro do DAG).
35
+ # depends_on: arestas do DAG — ids de passos que devem terminar antes deste.
36
+ # O grafo DEVE ser acíclico (fluxo unidirecional).
37
+ # checkpoint: { blocking: bool, criteria: string, skip_modes?: [modo] } — gate humano.
38
+ # `blocking: true` para o runner até aprovação. Pode ser null.
39
+ # `criteria` é OBRIGATÓRIO quando `blocking: true` (gate sem critério escrito
40
+ # é pausa, não gate) e é GRATUITO em runtime: `buildBrief` não o lê, então ele
41
+ # nunca entra em brief nenhum — seja explícito e diga também o que o gate NÃO
42
+ # cobre. Chave desconhecida sob `checkpoint` é FALHA estática (o campo é
43
+ # contrato fechado; chave nova = motor mais novo ⇒ `update --scope motor`).
44
+ # `skip_modes` (SF11.10/ADR-024, OPCIONAL): ritmos de run que NÃO param neste
45
+ # gate — hoje o conjunto fechado é [interactive, yolo]. AUSENTE ⇒ bloqueia em
46
+ # TODO modo (default, retrocompat). Enumeração NEGATIVA de propósito: modo não
47
+ # listado BLOQUEIA (fail-closed). PULAR NÃO É APROVAR — num modo que pula,
48
+ # `approve()` não é chamado, a etapa nunca entra em `awaiting_approval` e o
49
+ # `state.json` grava `checkpoint: null` ali; o modo autônomo continua PROIBIDO
50
+ # de aprovar (ADR-020). INVARIANTE validado: cada modo precisa manter ao menos
51
+ # um checkpoint bloqueante NÃO-pulável — pular um gate é permitido, ficar sem
52
+ # gate não é. Uso típico: gate barato de conteúdo cedo no DAG (antes de uma
53
+ # etapa cara) que só o ritmo interativo atravessa.
54
+ # veto: { assertions: [...] } — asserções de máquina (OBRIGATÓRIO).
55
+ # Ver formas suportadas abaixo.
56
+ steps:
57
+ - id: discovery
58
+ agent: forge-chief
59
+ template: templates/discovery-tmpl.md
60
+ inputs: [brief]
61
+ outputs: [discovery]
62
+ depends_on: []
63
+ checkpoint: null
64
+ veto:
65
+ assertions:
66
+ - { type: section_exists, section: "## Escopo" }
67
+ - { type: count_gte, field: requisitos, n: 1 }
68
+
69
+ - id: build
70
+ agent: forge-chief
71
+ template: templates/build-tmpl.md
72
+ inputs: [discovery]
73
+ outputs: [pod_spec]
74
+ depends_on: [discovery]
75
+ checkpoint: null
76
+ veto:
77
+ assertions:
78
+ - { type: file_referenced_exists, field: template_ref }
79
+
80
+ - id: red_team
81
+ agent: pod-critic
82
+ template: templates/critique-tmpl.md
83
+ inputs: [pod_spec]
84
+ outputs: [verdict]
85
+ depends_on: [build]
86
+ checkpoint: { blocking: true, criteria: "score >= 8/10" }
87
+ veto:
88
+ assertions:
89
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
90
+
91
+ # ---------------------------------------------------------------------------
92
+ # FORMAS SUPORTADAS DE `veto.assertions[]` (ADR-002 — as 5 desta fase)
93
+ # ---------------------------------------------------------------------------
94
+ # - section_exists { type, section } — seção existe no artefato.
95
+ # - field_matches { type, field, pattern } — campo casa a regex.
96
+ # - file_referenced_exists{ type, field } — arquivo referenciado existe.
97
+ # - count_gte { type, field, n } — contagem >= n.
98
+ # - json_schema_valid { type, schema } — artefato valida no schema.
99
+ #
100
+ # Qualquer entrada de `veto` que não seja uma dessas formas estruturadas
101
+ # (ex.: uma string de prosa livre) é REJEITADA pelo validador estático.
@@ -0,0 +1,12 @@
1
+ {
2
+ "_comment": "Cenário de smoke do wf-forge (SF6.1 dogfood, AUTORADO junto do pod-spec; discovery atualizado na SF12.4a/ADR-030 Bloco B com os 3 campos de registro novos). 'artifacts' = artefato CONFORME por etapa (caminho feliz) do canário 'quero um agente de checklist de onboarding de cliente': seções ## + campos de máquina (confianca sempre; ritmo_registrado/contrato_entrada_registrado/entregavel_registrado/credencial_registrada no discovery — sao 4: os 3 da SF12.4a mais credencial_registrada (ADR-034 Emenda 1, DF-REPUB-7); veredito na red-team; entry_point no register). O sweep --sweep DERIVA as violações (3a por etapa: 1 seção obrigatória removida; 3b por assertion: count_gte→0 itens sob o heading, field_matches→valor fora do pattern, file_referenced_exists→path inexistente) a partir destes conformes + template + spec. target_step=generation (legado 4-provas). entry_point aponta agents/forge-chief.md (existe em podRoot) — stand-in do entry point que a etapa register verifica existir; num *new real seria o path do agente gerado.",
3
+ "target_step": "generation",
4
+ "artifacts": {
5
+ "discovery": "## Job-to-be-done\nGerar e conduzir um checklist de onboarding de cliente novo.\n\n## Comandos\n- *checklist: gera o checklist de onboarding a partir do tipo de cliente\n- *validar: confere se todos os itens do onboarding foram cumpridos\n\n## Mapa de Conhecimento\n- etapas de onboarding -> knowledge/onboarding-steps.md (a criar)\n\n## Destino\nAgente novo em pod existente (dev-ia), justificado pela arvore de granularidade.\n\nritmo_registrado: recusado\ncontrato_entrada_registrado: recusado\nentregavel_registrado: recusado\ncredencial_registrada: recusado\nconfianca: alta\n",
6
+ "generation": "## Agentes Gerados\n- onboarding-checklist (entry point 42 linhas, budget 900)\n\n## Aparato de Processo\nTier SIMPLE: 1 workflow minimo + templates das saidas; sem squad-io/memoria obrigatorios.\n\n## Conformidade Estrutural\nEntry point <=150 linhas, 3 blocos na ordem, budget dentro do teto.\n\nconfianca: alta\n",
7
+ "red-team": "## Verificacao Independente\nvalidate-budgets.js rodado; smoke dos comandos rodado; destinos conferidos com ls.\n\n## Sobreposicao\nNenhuma sobreposicao com pods/agentes existentes; fronteira documentada.\n\n## Veredito\nArtefato sobrevive a critica; correcoes aplicadas.\n\nveredito: APROVADO\nconfianca: alta\n",
8
+ "register": "## Stub de Command\nStub /power:onboarding-checklist criado (<=15 linhas, aponta o entry point).\n\n## README Atualizado\nLinha adicionada em pods/README.md e no README do pod dono.\n\n## Registro\nArtefato descobrivel e registrado; validate-budgets re-executado verde.\n\nentry_point: agents/forge-chief.md\nconfianca: alta\n"
9
+ },
10
+ "template_violation": "## Agentes Gerados\n- onboarding-checklist (entry point 42 linhas, budget 900)\n\n## Aparato de Processo\nTier SIMPLE.\n\nconfianca: alta\n",
11
+ "veto_violation": "## Agentes Gerados\n- onboarding-checklist (entry point 42 linhas, budget 900)\n\n## Aparato de Processo\nTier SIMPLE.\n\n## Conformidade Estrutural\n3 blocos, budget ok.\n\nconfianca: incerta\n"
12
+ }
@@ -0,0 +1,60 @@
1
+ # wf-forge.yaml — gerado por forge-generate.cjs (SF1.4).
2
+ # Contrato: templates/workflow-tmpl.yaml. Validador: scripts/validate-pod-workflow.cjs.
3
+
4
+ state_machine:
5
+ states: [init, running, review, complete, failed]
6
+ initial: init
7
+ terminal: [complete, failed]
8
+
9
+ steps:
10
+ - id: discovery
11
+ agent: forge-chief
12
+ template: templates/discovery-tmpl.md
13
+ inputs: [brief]
14
+ outputs: [scope-brief]
15
+ depends_on: []
16
+ checkpoint: null
17
+ veto:
18
+ assertions:
19
+ - { type: count_gte, field: Comandos, n: 1, _sources: "tasks/pipeline.md:17 G1 'Lista de comandos com entregável de cada um' — condição machine-redutível a count_gte (≥1 comando declarado), ortogonal (a forma '## Comandos' existe; a contagem de itens é independente), derivável pelo sweep (0 itens → bloqueia)" }
20
+ - { type: field_matches, field: ritmo_registrado, pattern: "^(declarado|recusado)$", _sources: "SF12.4a/ADR-030 Bloco B (AC6): G1 novo checkbox 'Ritmo de checkpoint' — prova que o artefato do discovery REGISTROU a resposta em forma reconhecível pelo veto; não prova que foi transcrita ao pod-spec.json (Bloco C, camada diferente)." }
21
+ - { type: field_matches, field: contrato_entrada_registrado, pattern: "^(declarado|recusado)$", _sources: "SF12.4a/ADR-030 Bloco B (AC6): G1 novo checkbox 'Contrato de entrada' — mesmo alcance declarado do item anterior." }
22
+ - { type: field_matches, field: entregavel_registrado, pattern: "^(declarado|recusado)$", _sources: "SF12.4a/ADR-030 Bloco B (AC6): G1 novo checkbox 'Entregável' — mesmo alcance declarado do item anterior." }
23
+ - { type: field_matches, field: credencial_registrada, pattern: "^(declarado|recusado)$", _sources: "ADR-034 DF-REPUB-7 (Emenda 1): 4º checkbox declare-ou-recuse, camada Bloco B (agents[discovery].veto) — mesma camada dos 3 irmãos, não o campo canônico de topo (Bloco A/C, DEBT-REPUB-B). Sem esta assertion na spec, a próxima regeneração (forge-generate) apaga a assertion do wf em silêncio (medido, C4 vs C5 no *review). Alcance declarado (DF-REPUB-6): prova que a PERGUNTA foi respondida; não prova que a resposta é verdadeira." }
24
+ - { type: field_matches, field: confianca, pattern: "^(alta|media|baixa)$", _sources: "convenção de conformidade do pod (âncora hormozi-method); campo de máquina ortogonal fora dos headings (ADR-005 Decisão A)" }
25
+
26
+ - id: generation
27
+ agent: forge-chief
28
+ template: templates/generation-tmpl.md
29
+ inputs: [scope-brief]
30
+ outputs: [pod-artifacts]
31
+ depends_on: [discovery]
32
+ checkpoint: null
33
+ veto:
34
+ assertions:
35
+ - { type: count_gte, field: "Agentes Gerados", n: 1, _sources: "tasks/pipeline.md:36 Fase 3 'gerar os agentes (sempre)' — ≥1 agente é sempre produzido; count_gte n:1 ortogonal e derivável (0 itens → bloqueia)" }
36
+ - { type: field_matches, field: confianca, pattern: "^(alta|media|baixa)$", _sources: "convenção de conformidade do pod (âncora)" }
37
+
38
+ - id: red-team
39
+ agent: pod-critic
40
+ template: templates/red-team-tmpl.md
41
+ inputs: [pod-artifacts]
42
+ outputs: [review-verdict]
43
+ depends_on: [generation]
44
+ checkpoint: { blocking: true, criteria: "Veredito APROVADO explícito por escrito do pod-critic (verificação independente: valida-pod-workflow + smoke rodados por ele mesmo, G6 estendido). REPROVADO → volta à Fase 3 com a lista de correções. JULGAMENTO HUMANO — NUNCA veto de máquina (fronteira ADR-002; a máquina não decide 'aprovado')." }
45
+ veto:
46
+ assertions:
47
+ - { type: field_matches, field: veredito, pattern: "^(APROVADO|REPROVADO)$", _sources: "tasks/pipeline.md:67 G4 'Veredito APROVADO explícito por escrito' — o veto de MÁQUINA garante que um veredito BEM-FORMADO foi registrado (APROVADO|REPROVADO), NUNCA decide qual é o correto (isso é julgamento → checkpoint). Ortogonal (campo fora dos headings) e derivável (valor fora do pattern → bloqueia)" }
48
+ - { type: field_matches, field: confianca, pattern: "^(alta|media|baixa)$", _sources: "convenção de conformidade do pod (âncora)" }
49
+
50
+ - id: register
51
+ agent: forge-chief
52
+ template: templates/register-tmpl.md
53
+ inputs: [review-verdict]
54
+ outputs: [registration]
55
+ depends_on: [red-team]
56
+ checkpoint: { blocking: true, criteria: "Registro conferido: stub em disco (≤15 linhas, aponta o entry point), linha em pods/README.md, validate-budgets re-executado verde. Fase 5 termina em DECISÃO DO USUÁRIO (sem commit automático) — checkpoint bloqueante, não veto." }
57
+ veto:
58
+ assertions:
59
+ - { type: file_referenced_exists, field: entry_point, _sources: "tasks/pipeline.md:88 G5 'Stub de command criado... aponta para o entry point' — o registro referencia o entry point (o agente dono); file_referenced_exists verifica que ele EXISTE em disco. Machine-redutível, ortogonal (campo fora dos headings), derivável (path inexistente → bloqueia)" }
60
+ - { type: field_matches, field: confianca, pattern: "^(alta|media|baixa)$", _sources: "convenção de conformidade do pod (âncora)" }