@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,83 @@
1
+ {"id":"1785363178305-qk0aa8","ts":1785363178305,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
2
+ {"id":"1785363292076-w4apno","ts":1785363292076,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
3
+ {"id":"1785363292082-c72jgi","ts":1785363292082,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
4
+ {"id":"1785363292084-6j5chf","ts":1785363292084,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
5
+ {"id":"1785363292087-wd69zc","ts":1785363292087,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
6
+ {"id":"1785363292089-7n275y","ts":1785363292089,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
7
+ {"id":"1785363292091-l8pm15","ts":1785363292091,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
8
+ {"id":"1785363450285-elsp63","ts":1785363450285,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
9
+ {"id":"1785363450290-efktd6","ts":1785363450290,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
10
+ {"id":"1785363450292-4ftqnm","ts":1785363450292,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
11
+ {"id":"1785363450294-l6xhz1","ts":1785363450294,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
12
+ {"id":"1785363450296-jms8we","ts":1785363450296,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
13
+ {"id":"1785363450298-ofvd0o","ts":1785363450298,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
14
+ {"id":"1785363661813-yrgjxl","ts":1785363661813,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
15
+ {"id":"1785363661818-mptl8b","ts":1785363661818,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
16
+ {"id":"1785363661820-hem3nl","ts":1785363661820,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
17
+ {"id":"1785363661822-2ptv5l","ts":1785363661822,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
18
+ {"id":"1785363661824-1e9pxx","ts":1785363661824,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
19
+ {"id":"1785363661826-g068ig","ts":1785363661826,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
20
+ {"id":"1785363717606-unab38","ts":1785363717606,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
21
+ {"id":"1785363717650-qamwtz","ts":1785363717650,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
22
+ {"id":"1785363717655-obgh6h","ts":1785363717655,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
23
+ {"id":"1785363717657-01tawh","ts":1785363717657,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
24
+ {"id":"1785363717659-4iu227","ts":1785363717659,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
25
+ {"id":"1785363717660-osae0q","ts":1785363717660,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
26
+ {"id":"1785363717699-effjwy","ts":1785363717699,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
27
+ {"id":"1785363717704-889ruw","ts":1785363717704,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
28
+ {"id":"1785363717705-gwvorw","ts":1785363717705,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
29
+ {"id":"1785363717708-g6osvm","ts":1785363717708,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
30
+ {"id":"1785363717710-h11t0i","ts":1785363717710,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
31
+ {"id":"1785363717713-xhujn3","ts":1785363717713,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
32
+ {"id":"1785363717754-n7j420","ts":1785363717754,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
33
+ {"id":"1785363717800-hw8m8h","ts":1785363717800,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
34
+ {"id":"1785363717805-2usdi1","ts":1785363717805,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
35
+ {"id":"1785363717807-5jyl70","ts":1785363717807,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
36
+ {"id":"1785363717809-sppt5m","ts":1785363717809,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
37
+ {"id":"1785363717811-n06e66","ts":1785363717811,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
38
+ {"id":"1785363717813-5wzvfk","ts":1785363717813,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
39
+ {"id":"1785363742992-ssma82","ts":1785363742992,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
40
+ {"id":"1785363743035-s82e8s","ts":1785363743035,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
41
+ {"id":"1785363743039-yxdc7r","ts":1785363743039,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
42
+ {"id":"1785363743041-tzx3py","ts":1785363743041,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
43
+ {"id":"1785363743043-znzxok","ts":1785363743043,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
44
+ {"id":"1785363743046-31p3yi","ts":1785363743046,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
45
+ {"id":"1785363743087-2s095z","ts":1785363743087,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
46
+ {"id":"1785363743092-j9971c","ts":1785363743092,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
47
+ {"id":"1785363743094-o6oy2s","ts":1785363743094,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
48
+ {"id":"1785363743096-y7pnsi","ts":1785363743096,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
49
+ {"id":"1785363743098-vlvphu","ts":1785363743098,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
50
+ {"id":"1785363743100-c8tnui","ts":1785363743100,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
51
+ {"id":"1785363743143-3gyxy3","ts":1785363743143,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
52
+ {"id":"1785363743190-l5wmg8","ts":1785363743190,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
53
+ {"id":"1785363743195-ab9uus","ts":1785363743195,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
54
+ {"id":"1785363743197-h19cqb","ts":1785363743197,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
55
+ {"id":"1785363743200-61ci3g","ts":1785363743200,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
56
+ {"id":"1785363743202-kzmu1w","ts":1785363743202,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
57
+ {"id":"1785363743205-4sppbe","ts":1785363743205,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
58
+ {"id":"1785363801392-semruy","ts":1785363801392,"trigger":"etapa \"make\" bloqueada por verification_failed","recommendation":"corrigir antes de reexecutar: seção obrigatória do template ausente no artefato: \"## Body\" | veto.assertions[0] (field_matches) falhou: campo \"status\" ausente","evidence":{"step":"make","veto":["seção obrigatória do template ausente no artefato: \"## Body\"","veto.assertions[0] (field_matches) falhou: campo \"status\" ausente"],"causa":"2 verificação(ões) de veto/template falharam"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a"}
59
+ {"id":"1785363852447-i4mrtq","ts":1785363852447,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
60
+ {"id":"1785364867563-pl89ew","ts":1785364867563,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
61
+ {"id":"1785364867569-as4jxd","ts":1785364867569,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
62
+ {"id":"1785364867571-azszyd","ts":1785364867571,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
63
+ {"id":"1785364867574-cv24zs","ts":1785364867574,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
64
+ {"id":"1785364867576-fgr372","ts":1785364867576,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
65
+ {"id":"1785364867578-ertkxl","ts":1785364867578,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
66
+ {"id":"1785365065704-7t1itp","ts":1785365065704,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
67
+ {"id":"1785365065709-0t8bew","ts":1785365065709,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
68
+ {"id":"1785365065711-tv2vnf","ts":1785365065711,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
69
+ {"id":"1785365065714-l9e6ca","ts":1785365065714,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
70
+ {"id":"1785365065716-oa9v64","ts":1785365065716,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
71
+ {"id":"1785365065718-g9felu","ts":1785365065718,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
72
+ {"id":"1785365907898-d4uso0","ts":1785365907898,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
73
+ {"id":"1785365907903-o6no9w","ts":1785365907903,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
74
+ {"id":"1785365907905-vtrxtu","ts":1785365907905,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
75
+ {"id":"1785365907907-hcmb2t","ts":1785365907907,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
76
+ {"id":"1785365907910-hhjmg9","ts":1785365907910,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
77
+ {"id":"1785365907912-jcbwr8","ts":1785365907912,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
78
+ {"id":"1785366171335-46vtu9","ts":1785366171335,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
79
+ {"id":"1785366171340-eai314","ts":1785366171340,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
80
+ {"id":"1785366171342-c11kpm","ts":1785366171342,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
81
+ {"id":"1785366171344-3hbngw","ts":1785366171344,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
82
+ {"id":"1785366171346-ltivox","ts":1785366171346,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
83
+ {"id":"1785366171348-8ed7vg","ts":1785366171348,"trigger":"workflow \"wf-a\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-a"},"tier":"normal","attributed_by":null,"source_run_id":"phase-a","type":"ok_pattern"}
@@ -0,0 +1,8 @@
1
+ # Artefato da fase A (`make`)
2
+
3
+ ## Body
4
+
5
+ Conteúdo produzido pela fase A. A FORMA (`## Body`) é verificada por
6
+ checkTemplateConformance; o veto INTERNO do pod confere `status`. O portão do
7
+ PIPELINE (cross-pod) confere `quality` — ortogonal ao veto interno, para separar
8
+ "run-filho done" de "portão do pipeline GO".
@@ -0,0 +1,16 @@
1
+ # wf-a — pod-fixture da FASE A do pipeline (Story SF9.1). 1 step, veto INTERNO sobre `status`.
2
+ state_machine:
3
+ states: [init, running, complete, failed]
4
+ initial: init
5
+ terminal: [complete, failed]
6
+ steps:
7
+ - id: make
8
+ agent: maker
9
+ template: templates/make-tmpl.md
10
+ inputs: [pedido]
11
+ outputs: [doc]
12
+ depends_on: []
13
+ checkpoint: null
14
+ veto:
15
+ assertions:
16
+ - { type: field_matches, field: status, pattern: "^ok$" }
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: user
3
+ description: "Agente de FIXTURE da etapa \"use\" de pipe-b. Existe para satisfazer a leitura obrigatória da etapa (SF11.2/ADR-021 DF-SF11.2-4): agente declarado no wf tem de existir em disco."
4
+ model: sonnet
5
+ budget_tokens: 200
6
+ ---
7
+
8
+ # user — agente de fixture (etapa "use")
9
+
10
+ Fixture de teste, não é agente de produção. O conteúdo é irrelevante para as provas
11
+ que usam este pod; o que importa é que o arquivo EXISTA, porque desde a Story SF11.2
12
+ o runner resolve e verifica `agents/<step.agent>.md` antes de despachar a etapa, e o
13
+ validador estático checa a mesma existência (paridade com `pod-export-compile.cjs:214`).
@@ -0,0 +1,8 @@
1
+ # Memória consolidada — pipe-b
2
+
3
+ > Curado por pod-memory.cjs (SF2.1). Único artefato de memória lido pelo agente.
4
+ > Log cru (learnings.jsonl) NÃO é lido pelo agente — auditoria apenas.
5
+
6
+ ## Heurísticas (top-N)
7
+
8
+ _Nenhuma heurística consolidada ainda._
@@ -0,0 +1,14 @@
1
+ {"id":"1785363178308-nfr5zk","ts":1785363178308,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
2
+ {"id":"1785363292079-ypkohe","ts":1785363292079,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
3
+ {"id":"1785363450288-78tcel","ts":1785363450288,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
4
+ {"id":"1785363661816-kjbyhs","ts":1785363661816,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
5
+ {"id":"1785363717653-xe5p9p","ts":1785363717653,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
6
+ {"id":"1785363717701-jp4rxv","ts":1785363717701,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
7
+ {"id":"1785363717803-byh4zw","ts":1785363717803,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
8
+ {"id":"1785363743037-7y14l6","ts":1785363743037,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
9
+ {"id":"1785363743090-6jswru","ts":1785363743090,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
10
+ {"id":"1785363743193-4uly95","ts":1785363743193,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
11
+ {"id":"1785364867567-113alb","ts":1785364867567,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
12
+ {"id":"1785365065707-bnqup3","ts":1785365065707,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
13
+ {"id":"1785365907901-u3u5j7","ts":1785365907901,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
14
+ {"id":"1785366171338-slfrk3","ts":1785366171338,"trigger":"workflow \"wf-b\" completou sem bloqueio","recommendation":"caminho seguido (1 etapa(s) verificadas em disco) é válido; repetir a sequência","evidence":{"steps_done":1,"run_id":"phase-b"},"tier":"normal","attributed_by":null,"source_run_id":"phase-b","type":"ok_pattern"}
@@ -0,0 +1,6 @@
1
+ # Artefato da fase B (`use`)
2
+
3
+ ## Body
4
+
5
+ Conteúdo da fase B, que consome o output da fase A por REFERÊNCIA (path recebido
6
+ via task-ref no brief — sem cópia). Veto interno confere `status`.
@@ -0,0 +1,16 @@
1
+ # wf-b — pod-fixture da FASE B do pipeline (Story SF9.1). Consome o output da fase A via task-ref.
2
+ state_machine:
3
+ states: [init, running, complete, failed]
4
+ initial: init
5
+ terminal: [complete, failed]
6
+ steps:
7
+ - id: use
8
+ agent: user
9
+ template: templates/use-tmpl.md
10
+ inputs: [upstream]
11
+ outputs: [final]
12
+ depends_on: []
13
+ checkpoint: null
14
+ veto:
15
+ assertions:
16
+ - { type: field_matches, field: status, pattern: "^ok$" }
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: forge-chief
3
+ description: "Agente de FIXTURE da etapa \"build\" de pod-run. Existe para satisfazer a leitura obrigatória da etapa (SF11.2/ADR-021 DF-SF11.2-4): agente declarado no wf tem de existir em disco."
4
+ model: sonnet
5
+ budget_tokens: 200
6
+ ---
7
+
8
+ # forge-chief — agente de fixture (etapa "build")
9
+
10
+ Fixture de teste, não é agente de produção. O conteúdo é irrelevante para as provas
11
+ que usam este pod; o que importa é que o arquivo EXISTA, porque desde a Story SF11.2
12
+ o runner resolve e verifica `agents/<step.agent>.md` antes de despachar a etapa, e o
13
+ validador estático checa a mesma existência (paridade com `pod-export-compile.cjs:214`).
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: pod-critic
3
+ description: "Agente de FIXTURE da etapa \"gate\" de pod-run. Existe para satisfazer a leitura obrigatória da etapa (SF11.2/ADR-021 DF-SF11.2-4): agente declarado no wf tem de existir em disco."
4
+ model: sonnet
5
+ budget_tokens: 200
6
+ ---
7
+
8
+ # pod-critic — agente de fixture (etapa "gate")
9
+
10
+ Fixture de teste, não é agente de produção. O conteúdo é irrelevante para as provas
11
+ que usam este pod; o que importa é que o arquivo EXISTA, porque desde a Story SF11.2
12
+ o runner resolve e verifica `agents/<step.agent>.md` antes de despachar a etapa, e o
13
+ validador estático checa a mesma existência (paridade com `pod-export-compile.cjs:214`).
@@ -0,0 +1,8 @@
1
+ # Template de build (fixture do runner)
2
+
3
+ Template estrutural das etapas `build` e `finalize` do wf-min. A conformidade
4
+ pós-etapa exige que o artefato contenha TODAS as seções abaixo.
5
+
6
+ ## Escopo
7
+
8
+ ## Contexto
@@ -0,0 +1,6 @@
1
+ # Template de gate (fixture do runner)
2
+
3
+ Template da etapa `gate` (checkpoint bloqueante). O artefato deve conter a seção
4
+ de veredito e um campo `veredito:` casando /^(GO|NO-GO)$/.
5
+
6
+ ## Veredito
@@ -0,0 +1,43 @@
1
+ # wf-min — workflow SINTÉTICO mínimo para a suíte do motor pc-run-pod (Story SF1.2).
2
+ # NÃO é um pod de produção (isso é SF1.4). Exercita: DAG linear, checkpoint bloqueante,
3
+ # fix_cycle, e as 3 classes de não-fake-green (artefato ausente / veto violado /
4
+ # template não-conforme). build usa veto de CAMPO e template de SEÇÕES distintas, para
5
+ # que "veto violado" e "template não-conforme" sejam caminhos de teste separáveis.
6
+ state_machine:
7
+ states: [init, running, complete, failed]
8
+ initial: init
9
+ terminal: [complete, failed]
10
+ steps:
11
+ - id: build
12
+ agent: forge-chief
13
+ template: templates/build-tmpl.md
14
+ inputs: [brief]
15
+ outputs: [draft]
16
+ depends_on: []
17
+ checkpoint: null
18
+ veto:
19
+ assertions:
20
+ - { type: field_matches, field: status, pattern: "^rascunho$" }
21
+ - id: gate
22
+ agent: pod-critic
23
+ template: templates/gate-tmpl.md
24
+ inputs: [draft]
25
+ outputs: [verdict]
26
+ depends_on: [build]
27
+ checkpoint: { blocking: true, criteria: "score >= 8" }
28
+ fix_cycle: { to: build, max_iterations: 2 }
29
+ veto:
30
+ assertions:
31
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
32
+ - id: finalize
33
+ agent: forge-chief
34
+ template: templates/build-tmpl.md
35
+ inputs: [verdict]
36
+ outputs: [final]
37
+ depends_on: [gate]
38
+ checkpoint: null
39
+ veto:
40
+ # ADR-005: veto ORTOGONAL (campo de máquina `confianca`) — o antigo
41
+ # section_exists "## Escopo" duplicava heading do build-tmpl.md (degenerado).
42
+ assertions:
43
+ - { type: field_matches, field: confianca, pattern: "^(alta|media|baixa)$" }
@@ -0,0 +1,50 @@
1
+ # wf-skip-modes — fixture SINTÉTICO da SF11.10/ADR-024 para a suíte do motor.
2
+ #
3
+ # Reproduz a TOPOLOGIA exata do caso real (`wf-hn-carousel`) que motivou a story, sem
4
+ # depender do pod de produção:
5
+ # script — gate de TEXTO, bloqueante, `skip_modes: ["yolo"]` (o `digest` real)
6
+ # costly — a etapa CARA que se quer evitar pagar em vão (o `visuals` real)
7
+ # final — gate de FECHAMENTO, bloqueante, SEM `skip_modes` (o `assembly` real)
8
+ #
9
+ # O que este fixture existe para provar (o smoke NÃO prova: ele roda em `yolo` e por
10
+ # construção nunca visita o gate de `script`):
11
+ # (a) em `interactive`, a run PARA em `script` e `costly` continua `pending`/`started_at:
12
+ # null` — o oposto do 1 ms medido hoje entre `digest.verified_at` e `visuals.started_at`;
13
+ # (b) em `yolo`, `script` vai direto a `done`, `state.steps.script.checkpoint === null`, e a
14
+ # run estaciona em `final` — sem NENHUM `approve` ter sido chamado (pular ≠ aprovar);
15
+ # (c) `revise` no gate de `script` devolve SÓ `script` (não há `fix_cycle`) — zero custo.
16
+ state_machine:
17
+ states: [init, running, complete, failed]
18
+ initial: init
19
+ terminal: [complete, failed]
20
+ steps:
21
+ - id: script
22
+ agent: forge-chief
23
+ template: templates/build-tmpl.md
24
+ inputs: [brief]
25
+ outputs: [draft]
26
+ depends_on: []
27
+ checkpoint: { blocking: true, skip_modes: ["yolo"], criteria: "roteiro conferido ANTES da etapa cara" }
28
+ veto:
29
+ assertions:
30
+ - { type: field_matches, field: status, pattern: "^rascunho$" }
31
+ - id: costly
32
+ agent: forge-chief
33
+ template: templates/build-tmpl.md
34
+ inputs: [draft]
35
+ outputs: [assets]
36
+ depends_on: [script]
37
+ checkpoint: null
38
+ veto:
39
+ assertions:
40
+ - { type: field_matches, field: status, pattern: "^rascunho$" }
41
+ - id: final
42
+ agent: pod-critic
43
+ template: templates/gate-tmpl.md
44
+ inputs: [assets]
45
+ outputs: [verdict]
46
+ depends_on: [costly]
47
+ checkpoint: { blocking: true, criteria: "pacote completo conferido — gate de fechamento, sem skip_modes" }
48
+ veto:
49
+ assertions:
50
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
@@ -0,0 +1,30 @@
1
+ # Fixture INVÁLIDO (SF11.10/ADR-024 DF-SF11.10-3) — TESTE NEGATIVO do invariante do gate
2
+ # humano: TODO checkpoint bloqueante deste workflow lista "yolo" em skip_modes, logo uma run
3
+ # em `yolo` rodaria do início ao fim SEM NENHUM gate humano. `skip_modes` existe para pular UM
4
+ # gate, nunca para ficar sem gate (ADR-020: o modo autônomo JAMAIS aprova — se não sobra gate,
5
+ # não sobra nada para ele esperar). Sem este fixture o invariante seria decorativo.
6
+ state_machine:
7
+ states: [init, running, complete, failed]
8
+ initial: init
9
+ terminal: [complete, failed]
10
+ steps:
11
+ - id: build
12
+ agent: forge-chief
13
+ template: templates/step-tmpl.md
14
+ inputs: [brief]
15
+ outputs: [draft]
16
+ depends_on: []
17
+ checkpoint: { blocking: true, skip_modes: ["yolo"], criteria: "roteiro conferido" }
18
+ veto:
19
+ assertions:
20
+ - { type: section_exists, section: "## Resultado" }
21
+ - id: review
22
+ agent: pod-critic
23
+ template: templates/step-tmpl.md
24
+ inputs: [draft]
25
+ outputs: [verdict]
26
+ depends_on: [build]
27
+ checkpoint: { blocking: true, skip_modes: ["yolo"], criteria: "score >= 8" }
28
+ veto:
29
+ assertions:
30
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
@@ -0,0 +1,40 @@
1
+ # Fixture INVÁLIDO (SF11.10/ADR-024 DF-SF11.10-17) — `criteria` escrito como escalar de bloco.
2
+ # É o idioma YAML mais natural para texto longo, e é exatamente onde o parser YAML-lite falha em
3
+ # SILÊNCIO: `criteria: |` vira a string "|" e as três linhas abaixo somem. A checagem de
4
+ # "não-vazia" aceitaria ("|" é não-vazia) e o gate humano desta etapa nasceria MUDO — o oposto do
5
+ # que o guard desta story existe para impedir. O validador recusa NOMEANDO a causa e dizendo o
6
+ # que fazer (uma linha física, entre aspas), em vez de aceitar calado.
7
+ state_machine:
8
+ states: [init, running, complete, failed]
9
+ initial: init
10
+ terminal: [complete, failed]
11
+ steps:
12
+ - id: build
13
+ agent: forge-chief
14
+ template: templates/step-tmpl.md
15
+ inputs: [brief]
16
+ outputs: [draft]
17
+ depends_on: []
18
+ checkpoint: null
19
+ veto:
20
+ assertions:
21
+ - { type: section_exists, section: "## Resultado" }
22
+ - id: review
23
+ agent: pod-critic
24
+ template: templates/step-tmpl.md
25
+ inputs: [draft]
26
+ outputs: [verdict]
27
+ depends_on: [build]
28
+ veto:
29
+ assertions:
30
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
31
+ # `checkpoint` vem POR ÚLTIMO de propósito: quando o escalar de bloco é seguido de uma chave
32
+ # irmã, o parser YAML-lite engole essa irmã junto (aqui, `veto`), e a run reprovaria por
33
+ # "campo obrigatório ausente: veto" — fail-closed, mas com a causa ERRADA. Com o bloco no fim
34
+ # da etapa, o dano fica isolado no próprio `criteria` e o fixture prova esta recusa, e só ela.
35
+ checkpoint:
36
+ blocking: true
37
+ criteria: |
38
+ O humano confirma que o roteiro carrega um ENSINAMENTO EMPRESARIAL —
39
+ análise de circunstância não é lição.
40
+ Rejeita se o texto apenas descreve o caso sem extrair a regra.
@@ -0,0 +1,30 @@
1
+ # Fixture INVÁLIDO (SF11.10/ADR-024 DF-SF11.10-5) — `skip_modes` com valor fora do conjunto
2
+ # fechado de ritmos. "YOLO" em maiúscula é o caso REAL de armadilha: em runtime ele não
3
+ # casaria `skip_modes` (fail-closed: o gate bloquearia também na rodada autônoma) e a run
4
+ # travaria esperando um humano que o modo autônomo está PROIBIDO de substituir. O erro tem
5
+ # que aparecer estaticamente, com os valores válidos na mensagem.
6
+ state_machine:
7
+ states: [init, running, complete, failed]
8
+ initial: init
9
+ terminal: [complete, failed]
10
+ steps:
11
+ - id: build
12
+ agent: forge-chief
13
+ template: templates/step-tmpl.md
14
+ inputs: [brief]
15
+ outputs: [draft]
16
+ depends_on: []
17
+ checkpoint: { blocking: true, skip_modes: ["YOLO"], criteria: "roteiro conferido" }
18
+ veto:
19
+ assertions:
20
+ - { type: section_exists, section: "## Resultado" }
21
+ - id: review
22
+ agent: pod-critic
23
+ template: templates/step-tmpl.md
24
+ inputs: [draft]
25
+ outputs: [verdict]
26
+ depends_on: [build]
27
+ checkpoint: { blocking: true, criteria: "score >= 8" }
28
+ veto:
29
+ assertions:
30
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
@@ -0,0 +1,29 @@
1
+ # Fixture INVÁLIDO (SF11.10/ADR-024 DF-SF11.10-6) — chave desconhecida sob `checkpoint`.
2
+ # É o formato do SKEW para frente: um `wf` escrito para um motor mais novo. O validador
3
+ # recusa nomeando a chave, e `capabilityGaps` (pc-run-pod.cjs) atribui a falha à INSTALAÇÃO
4
+ # defasada em vez de acusar o `wf`. Sem isso, a run estacionaria sem causa nomeada.
5
+ state_machine:
6
+ states: [init, running, complete, failed]
7
+ initial: init
8
+ terminal: [complete, failed]
9
+ steps:
10
+ - id: build
11
+ agent: forge-chief
12
+ template: templates/step-tmpl.md
13
+ inputs: [brief]
14
+ outputs: [draft]
15
+ depends_on: []
16
+ checkpoint: null
17
+ veto:
18
+ assertions:
19
+ - { type: section_exists, section: "## Resultado" }
20
+ - id: review
21
+ agent: pod-critic
22
+ template: templates/step-tmpl.md
23
+ inputs: [draft]
24
+ outputs: [verdict]
25
+ depends_on: [build]
26
+ checkpoint: { blocking: true, criteria: "score >= 8", futuro_desconhecido: 1 }
27
+ veto:
28
+ assertions:
29
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
@@ -0,0 +1,26 @@
1
+ # INVÁLIDO (AC3 ciclo no DAG): depends_on forma ciclo a -> b -> a.
2
+ state_machine:
3
+ states: [init, running, complete, failed]
4
+ initial: init
5
+ terminal: [complete, failed]
6
+ steps:
7
+ - id: a
8
+ agent: forge-chief
9
+ template: templates/step-tmpl.md
10
+ inputs: [brief]
11
+ outputs: [x]
12
+ depends_on: [b]
13
+ checkpoint: null
14
+ veto:
15
+ assertions:
16
+ - { type: section_exists, section: "## Escopo" }
17
+ - id: b
18
+ agent: pod-critic
19
+ template: templates/step-tmpl.md
20
+ inputs: [x]
21
+ outputs: [y]
22
+ depends_on: [a]
23
+ checkpoint: null
24
+ veto:
25
+ assertions:
26
+ - { type: section_exists, section: "## Escopo" }
@@ -0,0 +1,29 @@
1
+ # Fixture INVÁLIDO: tentativa de fix-loop DISFARÇADA de aresta para trás via
2
+ # depends_on (build depende de gate, gate depende de build). Isso é exatamente o
3
+ # que o fix_cycle existe para evitar: uma aresta para trás em depends_on é CICLO e
4
+ # continua reprovada por checkDag → exit 1. Fix-loop legítimo usa o campo fix_cycle.
5
+ state_machine:
6
+ states: [init, running, complete, failed]
7
+ initial: init
8
+ terminal: [complete, failed]
9
+ steps:
10
+ - id: build
11
+ agent: forge-chief
12
+ template: templates/step-tmpl.md
13
+ inputs: [verdict]
14
+ outputs: [draft]
15
+ depends_on: [gate]
16
+ checkpoint: null
17
+ veto:
18
+ assertions:
19
+ - { type: section_exists, section: "## Escopo" }
20
+ - id: gate
21
+ agent: pod-critic
22
+ template: templates/step-tmpl.md
23
+ inputs: [draft]
24
+ outputs: [verdict]
25
+ depends_on: [build]
26
+ checkpoint: { blocking: true, criteria: "score >= 8" }
27
+ veto:
28
+ assertions:
29
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }
@@ -0,0 +1,29 @@
1
+ # Fixture INVÁLIDO: fix_cycle.to aponta para uma etapa A JUSANTE (forward), não um
2
+ # ancestral. Um fix-loop volta para trás para reexecução; apontar para frente não é
3
+ # fix-loop e seria uma segunda forma de burlar a unidirecionalidade → exit 1.
4
+ state_machine:
5
+ states: [init, running, complete, failed]
6
+ initial: init
7
+ terminal: [complete, failed]
8
+ steps:
9
+ - id: build
10
+ agent: forge-chief
11
+ template: templates/step-tmpl.md
12
+ inputs: [brief]
13
+ outputs: [draft]
14
+ depends_on: []
15
+ checkpoint: null
16
+ fix_cycle: { to: gate, max_iterations: 3 }
17
+ veto:
18
+ assertions:
19
+ - { type: section_exists, section: "## Escopo" }
20
+ - id: gate
21
+ agent: pod-critic
22
+ template: templates/step-tmpl.md
23
+ inputs: [draft]
24
+ outputs: [verdict]
25
+ depends_on: [build]
26
+ checkpoint: { blocking: true, criteria: "score >= 8" }
27
+ veto:
28
+ assertions:
29
+ - { type: field_matches, field: veredito, pattern: "^(GO|NO-GO)$" }