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