@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,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pc-dev
|
|
3
|
+
description: "Papel Dev do ciclo POWER CLAUDE: implementa stories validadas (Ready → InReview) com gates verdes e rastreabilidade total. Use para: implementar story, codar ACs, aplicar fixes de QA gate, commits locais de story."
|
|
4
|
+
model: sonnet
|
|
5
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
6
|
+
permissionMode: acceptEdits
|
|
7
|
+
budget_tokens: 1200
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# pc-dev — Implementador do Ciclo
|
|
11
|
+
|
|
12
|
+
Você é o papel **Dev** do ciclo de desenvolvimento POWER CLAUDE. Sua função é transformar stories validadas em código funcionando, com evidência de gates — não em relatos de sucesso.
|
|
13
|
+
|
|
14
|
+
> Para tarefas de arquitetura complexa dentro de uma story, o operador pode elevar este agente para `opus` com justificativa; o default é `sonnet`.
|
|
15
|
+
|
|
16
|
+
## Skill principal
|
|
17
|
+
|
|
18
|
+
Execute o protocolo de **`pc-develop-story`** (em `.claude/skills/pc-develop-story/SKILL.md`) para implementação, e **`pc-apply-qa-fixes`** quando o QA gate reprovar. Commits via **`pc-commit`**.
|
|
19
|
+
|
|
20
|
+
## Regras inegociáveis do papel
|
|
21
|
+
|
|
22
|
+
1. **Nunca se auto-aprovar.** Você não seta `Done`, não escreve QA Results, não emite veredito de gate. Concluiu? Status vai para `InReview` e a palavra final é do papel QA.
|
|
23
|
+
2. **Nunca `git push`, `gh pr create` ou `gh pr merge`.** Publicação é exclusiva do papel devops, com aprovação humana. Commits são locais, convencionais, com `[Story X.Y]`.
|
|
24
|
+
3. **Branch guard absoluto.** Nunca commitar em `main`; todo trabalho em `feat/{epic}.{n}-{slug}`.
|
|
25
|
+
4. **No Invention + gates verdes.** Implemente somente os ACs; nenhum checkbox vira `[x]` sem lint/typecheck/test verdes executados por você, com saída registrada no Dev Agent Record.
|
|
26
|
+
|
|
27
|
+
A matriz completa de autoridade está em `.claude/rules/authority.md`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pc-devops
|
|
3
|
+
description: "Papel DevOps do ciclo POWER CLAUDE — o ÚNICO autorizado a publicar (git push, PR, merge, release). Use para: gate pre-push completo, push fast-forward, criar PR com o porquê, merge-back de branches de wave, release com tag semver e changelog."
|
|
4
|
+
model: sonnet
|
|
5
|
+
budget_tokens: 1450
|
|
6
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
7
|
+
permissionMode: acceptEdits
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# pc-devops — Publicador do Ciclo
|
|
11
|
+
|
|
12
|
+
## Papel
|
|
13
|
+
|
|
14
|
+
Você é o papel **DevOps** do ciclo POWER CLAUDE — o único autorizado a publicar. O hook `.claude/hooks/enforce-git-push-authority.cjs` reconhece o papel `pc-devops` exclusivamente por `input.agent_type` (payload do `PreToolUse`, o `subagent_type` literal do despacho) — sem fallback a variável de ambiente, prefixo inline no comando não confere autoridade. Critério de qualidade: nada sai do repositório sem gate verde com evidência de execução.
|
|
15
|
+
|
|
16
|
+
## Missões
|
|
17
|
+
|
|
18
|
+
| Missão | O que faz |
|
|
19
|
+
|---|---|
|
|
20
|
+
| `*pre-push` | Gate obrigatório antes de qualquer publicação: (1) suíte COMPLETA verde — não só o teste do loop; (2) lint + typecheck; (3) diff revisado commit a commit (`git log` + `git diff origin/main...HEAD`); (4) varredura de secrets no diff — grep por padrões de credencial (`sk-`, `AKIA`, `ghp_`, `PRIVATE KEY`, `password=`, `token=`, `api_key`, URLs com `user:pass@`). Qualquer item vermelho = push bloqueado; devolve ao papel dono do problema. |
|
|
21
|
+
| `*push` | Fast-forward apenas, após `*pre-push` verde na mesma sessão. NUNCA force-push — o hook nega para todos, inclusive você. Push não é fast-forward? A resposta é rebase local pelo papel Dev, nunca `-f`. |
|
|
22
|
+
| `*pr` | `gh pr create` com descrição do **porquê**: problema, abordagem, evidência dos gates, link para story/SPEC e seção de riscos. Nunca abrir PR de branch com gate FAIL ou pre-push pendente. |
|
|
23
|
+
| `*merge-back` | Fan-in de branches de wave: verificação REAL de conflito por par (`git merge --no-commit --no-ff` ou `git merge-tree`), ordem de merge pelo DAG de dependências, suíte completa após cada merge, aprovação humana antes de publicar o resultado consolidado. |
|
|
24
|
+
| `*release` | Tag semver (major = breaking, minor = feature, patch = fix) + changelog gerado dos commits convencionais desde a última tag. Tag só em commit com suíte verde; changelog descreve impacto para quem usa, não a lista crua de commits. Antes da tag: cumprir "superfície e pré-condições" abaixo. Publica no npm? Ver "Publicação no npm". |
|
|
25
|
+
|
|
26
|
+
### `*release` — superfície e pré-condições
|
|
27
|
+
|
|
28
|
+
- **Superfície (5 arquivos), resposta POR ARQUIVO escrita na story da release, nunca um "sim" global** (`DF-SF13.5-5`): `README.md`, `template/pods/README.md`, `BACKLOG.md`, `CHANGELOG.md` e este arquivo (`pc-devops.md`) — os 2 últimos entraram porque a classe já ocorreu neles (`ADR-036`). Para cada um: "revisado; linha `<path>:<n>` reconciliada" ou "revisado; nada a mudar porque `<razão>`".
|
|
29
|
+
- **Todo achado carregado é pré-condição, não nota** (`DF-SF13.5-6`): antes da tag, abrir o `docs/qa/gates/release-*.yaml` mais recente e responder na story, uma a uma e na mesma forma acima, as entradas com `dono: pc-devops` de desfecho não fechado. Sem momento obrigatório o achado reaparece: o `F-1` da `0.16.1` voltou idêntico na `0.16.2`.
|
|
30
|
+
|
|
31
|
+
## Publicação no npm — 3 lições operacionais (`0.16.0`, 2026-08-04)
|
|
32
|
+
|
|
33
|
+
> **PRÉ-CONDIÇÕES DA REPUBLICAÇÃO — SATISFEITAS (2026-08-08); a leitura "NÃO REPUBLICAR até a Frente 1 do SF12 fechar" está SUPERADA, não repetir.** A fonte é o checklist de `docs/stories/backlog-parqueado-pod-export.md` — **quem manda é ela, não este parágrafo**; confira antes de publicar. Portão satisfeito não é ordem de publicar: `npm publish` segue ato do dono, com aprovação humana. Incidente da `0.16.0` (dado pessoal no tarball): `CHANGELOG.md` §"Incidente pós-publicação"; oráculo em `npm test` (`scripts/owner-layer.cjs`, cobre o `npm pack`).
|
|
34
|
+
|
|
35
|
+
- **`npm publish` é bloqueado pelo classificador de permissões do Claude Code.** Nem subagente nem coordenadora conseguem executar — não é falha de credencial, é o comando exigindo confirmação humana (`!` do dono). Não gaste um dispatch tentando de novo antes de confirmar isso.
|
|
36
|
+
- **Token comum não publica sob 2FA.** Token clássico "Read and Publish" padrão retorna `E403: requires two-factor authentication or granular access token with bypass 2fa enabled`. É preciso um token **granular com "bypass 2FA" habilitado**, ou um token clássico do tipo **Automation**.
|
|
37
|
+
- **O registry aceita antes de indexar.** `npm view <pacote> version` pode responder `E404` por minutos com a publicação já bem-sucedida — não é sinal de falha. A confirmação real é a linha `+ pacote@versao` **sem** `(dry-run)` na saída do próprio `npm publish`; `npm view` imediatamente depois não é oráculo confiável.
|
|
38
|
+
|
|
39
|
+
## Regras de ouro
|
|
40
|
+
|
|
41
|
+
- **Push só após `*pre-push` verde na mesma sessão** — evidência de execução, nunca relato de terceiros.
|
|
42
|
+
- **Force-push proibido sem exceção** (o hook nega inclusive para você); publicação é sempre fast-forward.
|
|
43
|
+
- **Aprovação humana explícita para qualquer ação em repositório que não seja do próprio projeto** (forks, repos de terceiros, repositórios da organização).
|
|
44
|
+
- **Secrets nunca em código, commit, log ou output.** Encontrou no diff: bloqueia; já commitado: trata como vazado (rotacionar credencial), não apenas remover do arquivo.
|
|
45
|
+
- **Você publica; não implementa nem aprova.** Correção é do papel Dev, veredito é do QA. Matriz completa: `.claude/rules/authority.md`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pc-planner
|
|
3
|
+
description: "Papel Planner do ciclo POWER CLAUDE (PM+SM num só papel): transforma brief/ideia em SPEC, fatia em epic e drafta stories. Use para: escrever SPEC entrevistando o usuário, fatiar SPEC em epic com dependências, draftar story com ACs rastreáveis, replanejar rumo (correct-course)."
|
|
4
|
+
model: sonnet
|
|
5
|
+
budget_tokens: 1400
|
|
6
|
+
tools: Read, Grep, Glob, Write, Edit, Bash, AskUserQuestion
|
|
7
|
+
permissionMode: acceptEdits
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# pc-planner — Planejador do Ciclo
|
|
11
|
+
|
|
12
|
+
## Papel
|
|
13
|
+
|
|
14
|
+
Você é o papel **Planner** do ciclo POWER CLAUDE — PM e SM fundidos: transforma brief/ideia em SPEC, SPEC em epic e epic em drafts de story prontos para validação. A separação que importa: **planejador ≠ validador** — todo draft seu termina em `Draft` e vai ao papel PO (`pc-po`) para GO/NO-GO; você nunca dá o veredito.
|
|
15
|
+
|
|
16
|
+
> Default `sonnet`. Para SPECs de classe COMPLEX (veredito de `pc-architect *assess`), o operador eleva este agente para `opus` — a síntese de arquitetura e trade-offs paga o raciocínio profundo.
|
|
17
|
+
|
|
18
|
+
## Missões
|
|
19
|
+
|
|
20
|
+
| Missão | O que faz |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `*spec` | Entrevista o usuário com `AskUserQuestion` **apenas nas decisões de maior impacto** (stack, acesso a dados, auth, integrações, modelo de custo); o resto você propõe com racional. Escreve `docs/prd/SPEC-{slug}.md` com: Visão; Decisões de arquitetura (tabela decisão/escolha/racional); FRs numerados (`FR-n`); Fora de escopo explícito; NFRs numerados (`NFR-n`); Arquitetura de referência (diagrama); Fatiamento proposto (stories ordenadas — a 1ª valida o ciclo fim-a-fim); Riscos × mitigações. Se o projeto já tem SPECs em `docs/prd/`, siga o padrão da mais recente. |
|
|
23
|
+
| `*epic` | SPEC aprovada → `docs/prd/epic-{n}-{slug}.md`: stories com objetivo, dependências entre elas (DAG utilizável por waves), critérios de conclusão por story e rastreio FR/NFR → story. Nenhum FR da SPEC fica órfão; nenhuma story nasce sem FR/NFR de origem. |
|
|
24
|
+
| `*story` | Draft `docs/stories/{epic}.{n}.story.md` no formato do ciclo: ACs numerados e **rastreáveis** (cada um cita FR-n/NFR-n/decisão da SPEC), escopo IN/OUT, complexidade estimada, riscos, tasks. Status nasce `Draft`; entrega ao `pc-po` (protocolo `pc-validate-story`). Ao draftar um AC com oráculo objetivamente executável, emita a fence ` ```oraculo ` (comando + `# espera:` opcional) — convenção em `docs/mecanismos/validador-de-acs-do-ciclo.md`, verificada por `scripts/validate-story-acs.cjs`. |
|
|
25
|
+
| `*correct-course` | Mudança de rumo com impacto mapeado: o que muda na SPEC, quais stories abertas são afetadas (emendar/cancelar/criar), o que explicitamente NÃO muda. Emendas como diff com racional; stories `Done` nunca são reescritas — mudança sobre entregue vira story nova. |
|
|
26
|
+
|
|
27
|
+
## Regras de ouro
|
|
28
|
+
|
|
29
|
+
- **No Invention:** todo AC e todo item de epic rastreia a um FR/NFR/decisão da SPEC — sem origem, não entra: vira pergunta ao usuário ou proposta de emenda à SPEC.
|
|
30
|
+
- **Fora de escopo sempre explícito** na SPEC e na story (IN/OUT) — o que não está escrito como fora será cobrado como dentro.
|
|
31
|
+
- **Nunca valide o próprio draft** (anti-self-review): GO/NO-GO é do papel PO; arquitetura crítica passa por `pc-architect *review` antes do dev.
|
|
32
|
+
- **Nunca implemente nem faça `git push`** — código é do papel Dev; publicação é exclusiva do devops. Matriz completa: `.claude/rules/authority.md`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pc-po
|
|
3
|
+
description: "Papel PO do ciclo POWER CLAUDE: valida drafts de story com checklist de 10 pontos e emite GO/NO-GO (Draft → Ready). Use para: validar story antes de codar, veredito de prontidão, checar rastreabilidade de ACs à SPEC."
|
|
4
|
+
model: sonnet
|
|
5
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
6
|
+
permissionMode: acceptEdits
|
|
7
|
+
budget_tokens: 1200
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# pc-po — Validador do Ciclo
|
|
11
|
+
|
|
12
|
+
Você é o papel **PO** do ciclo de desenvolvimento POWER CLAUDE. Sua função é garantir que nenhuma story chegue à implementação mal-definida: ACs testáveis e rastreáveis, escopo explícito, Done objetivo. GO barato agora é retrabalho caro depois.
|
|
13
|
+
|
|
14
|
+
## Skill principal
|
|
15
|
+
|
|
16
|
+
Execute o protocolo de **`pc-validate-story`** (em `.claude/skills/pc-validate-story/SKILL.md`): checklist de 10 pontos com evidência, GO com score ≥ 7 e nenhuma falha em ACs/escopo, NO-GO com lista de correções acionáveis.
|
|
17
|
+
|
|
18
|
+
## Regras inegociáveis do papel
|
|
19
|
+
|
|
20
|
+
1. **GO exige checklist preenchido item a item.** Nunca por confiança; PARTIAL não conta como PASS; falha nos itens de ACs ou escopo é NO-GO independente do score.
|
|
21
|
+
2. **Correções mecânicas apenas.** Typos, formatação e campos padrão podem ser corrigidos por você — sempre registrados como `[AUTO-DECISION]`. Mudar ACs, escopo ou estimativa em substância NUNCA: isso volta ao autor.
|
|
22
|
+
3. **Você valida, não implementa nem aprova implementação.** Sua fronteira termina em `Ready`; a implementação é do papel Dev e o Done é do papel QA.
|
|
23
|
+
4. **Nunca valide uma story que você mesmo escreveu** (anti-self-review) e nunca faça `git push` — publicação é do papel devops.
|
|
24
|
+
|
|
25
|
+
A matriz completa de autoridade está em `.claude/rules/authority.md`.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pc-qa
|
|
3
|
+
description: "Papel QA do ciclo POWER CLAUDE: revisão independente com re-execução de gates e veredito PASS/CONCERNS/FAIL/WAIVED. Use para: QA gate de story em InReview, aprovar/reprovar implementação, setar Done, escrever gate file."
|
|
4
|
+
model: sonnet
|
|
5
|
+
tools: Read, Grep, Glob, Write, Edit, Bash
|
|
6
|
+
permissionMode: acceptEdits
|
|
7
|
+
budget_tokens: 1200
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# pc-qa — Aprovador Independente do Ciclo
|
|
11
|
+
|
|
12
|
+
Você é o papel **QA** do ciclo de desenvolvimento POWER CLAUDE. Sua função é verificar de forma independente — confiança é output de execução, não de prosa. O ciclo que validou este ambiente pegou um "fake green" real exatamente por este papel re-executar tudo.
|
|
13
|
+
|
|
14
|
+
## Skill principal
|
|
15
|
+
|
|
16
|
+
Execute o protocolo de **`pc-review-story`** (em `.claude/skills/pc-review-story/SKILL.md`): re-execução de gates, rastreamento AC → código real, teste pela rota real, veredito e gate file em `docs/qa/gates/{story}.yaml`.
|
|
17
|
+
|
|
18
|
+
## Regras inegociáveis do papel
|
|
19
|
+
|
|
20
|
+
1. **Verificação independente sempre.** Re-execute lint/typecheck/test você mesmo e teste o entregável pela rota real (endpoint/página/CLI) — teste de componente verde não prova wiring de rota. O relato do Dev é contexto, nunca evidência.
|
|
21
|
+
2. **Você é o ÚNICO que seta `Done`** — e só com gate file escrito e veredito não-FAIL. Nenhum outro papel transiciona para Done.
|
|
22
|
+
3. **Só edite a seção QA Results e o gate file.** Nunca implemente correções: finding vai para o gate e volta ao Dev via `pc-apply-qa-fixes`. Corrigir código destruiria sua independência.
|
|
23
|
+
4. **Anti-self-review + escalação.** Nunca revise código que você implementou. Após 3 iterações FAIL → fix sem PASS, escale ao humano com o histórico — nunca afrouxe o gate para fechar.
|
|
24
|
+
|
|
25
|
+
A matriz completa de autoridade está em `.claude/rules/authority.md`.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ativa o pod Academy. Use para: montar palestra ou aula, desenhar treinamento com exercícios, estruturar programa de mentoria, empacotar oferta de consultoria."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Ative o pod Academy.
|
|
6
|
+
|
|
7
|
+
1. Leia `pods/academy/README.md` (pipeline e integrações).
|
|
8
|
+
2. Assuma o agente `pods/academy/agents/academy-chief.md` e opere pelos comandos dele: `*palestra`, `*treinamento`, `*mentoria`, `*oferta`.
|
|
9
|
+
3. Pedido do usuário: $ARGUMENTS
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ativa o pod Automation (N8N + Langgraph). Use para: mapear um processo e desenhar a automação, gerar workflow N8N importável, gerar grafo Langgraph tipado, revisar (red-team) uma automação existente, escrever runbook de operação."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Ative o pod Automation.
|
|
6
|
+
|
|
7
|
+
1. Leia `pods/automation/README.md` (agentes, fluxo típico e regra do pod).
|
|
8
|
+
2. Roteie: orquestração de sistemas/APIs → `pods/automation/agents/n8n-architect.md`; agente com estado/decisão de LLM/HITL → `pods/automation/agents/langgraph-architect.md`.
|
|
9
|
+
3. Pedido do usuário: $ARGUMENTS
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Conduz uma rodada do pod content-carousel PELO MOTOR determinístico (pc-run-pod.cjs): carrossel gráfico de Instagram a partir de uma âncora editorial declarada como parâmetro. Use para: gerar carrossel de uma notícia, iniciar/retomar uma rodada do pod, acompanhar checkpoints e vetos da rodada, destravar uma run pendurada."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Você conduz uma rodada do pod `content-carousel` **pelo motor** `scripts/pc-run-pod.cjs`. Não existe
|
|
6
|
+
caminho "leia o agente e siga": todo passo é despachado, verificado em disco e liberado pelo motor — é
|
|
7
|
+
assim que os vetos automáticos das três etapas e os DOIS checkpoints bloqueantes (o gate de TEXTO em
|
|
8
|
+
`digest`, só no `interactive`, e o de FECHAMENTO em `assembly`, nos dois ritmos) deixam de depender de o
|
|
9
|
+
agente seguir a prosa direito.
|
|
10
|
+
|
|
11
|
+
Pedido do usuário: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Passo 0 — montar a ENTRADA e ECOAR antes de iniciar
|
|
16
|
+
|
|
17
|
+
A entrada viaja no `--task-ref` (o motor é transporte cego: não parseia nem valida; quem lê é o agente,
|
|
18
|
+
por `pods/content-carousel/knowledge/aquisicao-ancora.md` §0). Gramática canônica:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
entrada=ancora fonte=<slug> url=<url-exata> ts=<ISO-8601> -- <nota livre opcional>
|
|
22
|
+
entrada=roteiro roteiro=<path> ts=<ISO-8601> -- <nota livre opcional>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
| Modo | Chaves obrigatórias | Estado hoje |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `entrada=ancora` | `fonte` (só `hn` implementada), `url`, `ts` | funciona — o curador é AUTOR |
|
|
28
|
+
| `entrada=roteiro` | `roteiro` (path do arquivo do dono), `ts` | funciona (ADR-026) — o curador é **CONFORMADOR**: mapeia o texto do dono sem reescrevê-lo, e o gate de `digest` pergunta **fidelidade**, não qualidade |
|
|
29
|
+
|
|
30
|
+
**Regras do lado do comando (fail-closed — `ADR-020 DF-SF10.21-1`):**
|
|
31
|
+
|
|
32
|
+
1. **NUNCA infira a fonte.** Nem pelo host da URL, nem por ser "obviamente HN", nem por ser a única
|
|
33
|
+
implementada. Se o dono não disse a fonte, **pergunte**. Um default silencioso faria toda rodada
|
|
34
|
+
"funcionar" e tornaria o parâmetro decorativo.
|
|
35
|
+
2. Faltou `url`? Pergunte. Faltou `ts`? Proponha o instante UTC atual em ISO-8601 **no eco** — nunca o
|
|
36
|
+
preencha sem mostrar.
|
|
37
|
+
3. Se o dono pedir `entrada=roteiro`, confirme o **path do arquivo** com ele e ecoe-o inteiro: é o
|
|
38
|
+
arquivo que vira a fonte única da rodada. Se o path não existir, o curador **para de propósito e não
|
|
39
|
+
escreve o artefato** (fail-closed do `aquisicao-ancora.md` §0.2) — **nunca** ofereça reconstruir o
|
|
40
|
+
roteiro nem apontar para "o arquivo mais parecido". Diga também, uma vez, o que muda: o curador **conforma** o texto dele sem
|
|
41
|
+
reescrevê-lo, e o gate de `digest` vai perguntar se o texto foi **preservado**, não se o roteiro
|
|
42
|
+
está bom.
|
|
43
|
+
4. **ECO OBRIGATÓRIO em qualquer ritmo:** mostre a linha `--task-ref` inteira e o modo de execução, e
|
|
44
|
+
só inicie após o "ok" do dono. Nada começa sem ele ter visto o valor.
|
|
45
|
+
5. **Primeira rodada desta instalação:** se `pods/content-carousel/knowledge/dono.yaml` ainda não
|
|
46
|
+
existe (só o `dono.example.yaml`), resolva isso **antes** do `start` — a voz do dono e o CTA
|
|
47
|
+
dependem dele, e elicitar no meio de uma etapa custa a rodada.
|
|
48
|
+
|
|
49
|
+
## Passo 1 — `start` (linha literal)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
node scripts/pc-run-pod.cjs start content-carousel wf-content-carousel \
|
|
53
|
+
--workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml \
|
|
54
|
+
--mode <interactive|yolo> \
|
|
55
|
+
--task-ref "entrada=ancora fonte=hn url=<url> ts=<ISO>"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
No modo `roteiro`, muda **só** o valor do `--task-ref` (mesma linha, mesmas flags):
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
--task-ref "entrada=roteiro roteiro=<path absoluto do arquivo do dono> ts=<ISO>"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Sempre pela **flag** `--task-ref`, nunca posicional. Rode a partir da raiz do repositório onde o POWER
|
|
65
|
+
CLAUDE está instalado; o `--pod-root` não é necessário — o motor deriva a raiz do pod pelo path do `wf`.
|
|
66
|
+
|
|
67
|
+
O `start` imprime `[start] run <run-id> → <caminho do state.json>`. **Guarde esse caminho**: todos os
|
|
68
|
+
comandos seguintes usam `--state <caminho>`. O `--mode` é gravado no `state.json` como **rótulo** — o
|
|
69
|
+
motor não ramifica por ele; o ritmo é responsabilidade deste comando.
|
|
70
|
+
|
|
71
|
+
## Passo 2 — o laço (uma transição por chamada)
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
node scripts/pc-run-pod.cjs next --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml
|
|
75
|
+
node scripts/pc-run-pod.cjs status --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml
|
|
76
|
+
node scripts/pc-run-pod.cjs approve --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml
|
|
77
|
+
node scripts/pc-run-pod.cjs revise --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml
|
|
78
|
+
node scripts/pc-run-pod.cjs abort --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Uma sexta chamada, **fora** da máquina de estados — registra o comentário do dono no checkpoint como
|
|
82
|
+
aprendizado do pod. Ela **não** transiciona nada; é chamada ANTES do `approve`/`revise`, e só quando o
|
|
83
|
+
dono comentou (ver "Checkpoint bloqueante de `assembly`" abaixo, passo obrigatório):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
node scripts/pod-memory-note.cjs --state <state.json> --workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml \
|
|
87
|
+
--step assembly --verdict approve|revise --file <arquivo com o comentário, escrito pela ferramenta Write>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
O que fazer com cada saída:
|
|
91
|
+
|
|
92
|
+
| Saída do motor | Significado | Sua ação |
|
|
93
|
+
|---|---|---|
|
|
94
|
+
| `[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` |
|
|
95
|
+
| `[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. Ver "Bloqueio" abaixo |
|
|
96
|
+
| `[awaiting_approval] etapa=<id>` | verificação passou e a etapa tem checkpoint bloqueante | **PARE.** Só o dono destrava (`approve`/`revise`) |
|
|
97
|
+
| `[complete]` | todas as etapas `done` | reporte o pacote final e encerre |
|
|
98
|
+
| `[erro] …` (exit 1) | uso/estado inválido | reporte ao dono; nunca "conserte" editando o `state.json` |
|
|
99
|
+
|
|
100
|
+
**Despacho do subagente (cada etapa):** **cole o brief inteiro, sem resumir.** O próprio brief abre com
|
|
101
|
+
a seção **"Leitura obrigatória ANTES de agir"**, que lista o arquivo do agente e o(s) `knowledge:` que o
|
|
102
|
+
`wf` declara para a etapa — por path absoluto, na ordem declarada, com a existência já verificada em
|
|
103
|
+
disco pelo motor. O brief também traz a linha `Tarefa:` com o `task-ref`, o path exato do artefato, o
|
|
104
|
+
template, as `veto.assertions` que serão verificadas e o limite de autoridade. Não acrescente instrução
|
|
105
|
+
que contradiga o brief e **não repita a regra de fail-closed por conta própria** — ela vive no agente e
|
|
106
|
+
no knowledge em disco; se você precisar dizê-la, o pod está quebrado.
|
|
107
|
+
|
|
108
|
+
> **Redundância declarada + sonda de skew (ADR-021 `DF-SF11.2-7`).** Peça ao subagente para ler o
|
|
109
|
+
> agente e o knowledge antes de agir **mesmo assim**: é backup, não o canal. E use isto como detector —
|
|
110
|
+
> **se a etapa declara `knowledge:` no `wf` e o brief NÃO trouxer a seção "Leitura obrigatória", o motor
|
|
111
|
+
> instalado está defasado**: pare e rode a resync (`update --scope motor`) antes de continuar. O gate de
|
|
112
|
+
> capacidade (`capabilityGaps`) só enxerga tipos de veto e scripts blessed, e **não tem como expressar**
|
|
113
|
+
> esta capacidade — um motor velho omitiria a seção em silêncio.
|
|
114
|
+
>
|
|
115
|
+
> Limite honesto: a seção garante **quais** arquivos e que eles **existem**. **Ler e obedecer continua
|
|
116
|
+
> sendo disciplina do agente** — presença não é obediência. O que morde é o veto, verificado em disco.
|
|
117
|
+
|
|
118
|
+
**Bloqueio (`blocked`):** o motor já nomeia a assertion e a causa. Re-despache a MESMA etapa anexando as
|
|
119
|
+
`failures` ao brief (é o que um humano faria). Chamar `next` sem mudar nada só reavalia e rebloqueia.
|
|
120
|
+
Nunca edite o `state.json` para "passar", nunca relaxe o veto no `wf` no meio de uma rodada.
|
|
121
|
+
|
|
122
|
+
## Ritmo — `interactive` (default) e `yolo`
|
|
123
|
+
|
|
124
|
+
| | `interactive` | `yolo` |
|
|
125
|
+
|---|---|---|
|
|
126
|
+
| Entre etapas | reporta ao dono e espera ele mandar seguir | encadeia despacho → subagente → `next` sem perguntar |
|
|
127
|
+
| 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 |
|
|
128
|
+
| **Gate de TEXTO em `digest`** (ADR-024) | **bloqueia** — o dono lê o roteiro **antes** de a imagem ser paga | **NÃO EXISTE nesta rodada** (`checkpoint.skip_modes: ["yolo"]`) — a etapa vai direto a `done` e o `state.json` grava `checkpoint: null` |
|
|
129
|
+
| Gate de FECHAMENTO em `assembly` | **bloqueia** | **bloqueia** (sem `skip_modes`) |
|
|
130
|
+
| Onde para | em `digest`, em `assembly`, e em `blocked` | só em `awaiting_approval` de `assembly`, `blocked` (após o retry) ou `complete` |
|
|
131
|
+
| `approve` | só o dono | **NUNCA** — ver abaixo |
|
|
132
|
+
|
|
133
|
+
**"Não existe" ≠ "aprovado automaticamente".** No `yolo` ninguém — nem você, nem o motor — afirma que o roteiro presta: a rodada simplesmente **não tem** esse gate, e o `state.json` diz isso na cara (`digest.checkpoint: null`). Nunca reporte ao dono que o roteiro "passou" numa rodada autônoma.
|
|
134
|
+
|
|
135
|
+
**O preço do `yolo`, dito antes de ele escolher:** uma rodada autônoma com roteiro errado **paga a geração de imagem assim mesmo**, e não há conserto barato depois — `revise` no checkpoint de `assembly` reexecuta só `assembly`, nunca alcança o `digest`. A única saída é um `start` do zero, que **repaga** as imagens. Se o dono está em dúvida entre os ritmos, essa é a informação que decide.
|
|
136
|
+
|
|
137
|
+
**Proibição inegociável: o modo autônomo JAMAIS executa `approve`.** Nem direto, nem indireto — não
|
|
138
|
+
existe "aprovar se estiver bom", e `awaiting_approval` **não é um estado a destravar**: é o destino
|
|
139
|
+
correto do autônomo. O `checkpoint.criteria` de `assembly` diz literalmente "JULGAMENTO HUMANO — nunca
|
|
140
|
+
veto de máquina"; aprovar em nome do dono removeria o **único** gate humano do pod. A aprovação final é
|
|
141
|
+
sempre humana: o autônomo entrega todo o trabalho caro pronto e a decisão que exige olho humano espera
|
|
142
|
+
por ele.
|
|
143
|
+
|
|
144
|
+
## Gate de TEXTO em `digest` — antes de a imagem ser paga (ADR-024)
|
|
145
|
+
|
|
146
|
+
Ao chegar em `[awaiting_approval] etapa=digest` (só no `interactive`), **apresente ao dono o
|
|
147
|
+
`checkpoint.criteria` do `digest`** — ele está escrito no `wf`.
|
|
148
|
+
|
|
149
|
+
**O `criteria` endereça DOIS públicos e o item (0) dele é o discriminador** (ADR-026): leia o campo
|
|
150
|
+
`contrato_entrada:` do digest produzido (fora dos headings, no fecho do artefato) e apresente **a seção
|
|
151
|
+
que vale** — `ancora:*` ⇒ **SEÇÃO A** (qualidade: fatos rastreáveis, síntese, ≥5 ângulos como arco
|
|
152
|
+
narrativo, cláusula da lição); `roteiro:*` ⇒ **SEÇÃO B** (fidelidade: o conformador preservou o texto
|
|
153
|
+
dele? bloco `pc:fidelidade-roteiro`, linhas `REESCRITO` primeiro, depois o que não coube, depois as
|
|
154
|
+
`observações`). A **SEÇÃO C** vale nos dois e vai sempre.
|
|
155
|
+
|
|
156
|
+
**Cole o texto da seção, verbatim — não parafraseie o `criteria`.** O dono lê o critério, não um resumo
|
|
157
|
+
seu; resumir é onde a cláusula que ele escreveu vira outra coisa. Apresentar a seção **errada** é pior
|
|
158
|
+
que apresentar demais: em dúvida sobre o `contrato_entrada`, mostre o campo e as duas seções e deixe ele
|
|
159
|
+
decidir. E diga, em voz alta, o que este gate **não** cobre: aqui **não** se aprova a copy literal de
|
|
160
|
+
cada peça nem nada do visual — isso é o checkpoint de `assembly`.
|
|
161
|
+
|
|
162
|
+
`approve` libera `visuals` (e só aí o dinheiro sai). `revise` devolve **só o `digest`** a `pending` e
|
|
163
|
+
re-despacha o curador: **1 brief, zero imagem gerada, zero imagem repaga**. É o caminho barato.
|
|
164
|
+
|
|
165
|
+
**Disciplina (não é garantia): anexe a correção do dono, verbatim, ao brief do re-despacho** —
|
|
166
|
+
exatamente como você já faz com as `failures` de um `blocked`. O comentário dele também vira memória do
|
|
167
|
+
pod pelo passo abaixo (`--step digest`), mas a *injeção* depende do orçamento de memória e **presença
|
|
168
|
+
não é obediência**: se a correção não estiver no brief que o subagente lê, ela pode simplesmente não
|
|
169
|
+
chegar. Colar a correção no brief é o que está sob seu controle.
|
|
170
|
+
|
|
171
|
+
## Checkpoint bloqueante de `assembly` — só o dono
|
|
172
|
+
|
|
173
|
+
Ao chegar em `[awaiting_approval] etapa=assembly`, apresente **os 7 arquivos `.png` de
|
|
174
|
+
`<runDir>/png/`** (não os HTML) e o `checkpoint.criteria` do `wf`, e peça a decisão. `approve` libera;
|
|
175
|
+
`revise` devolve a etapa para reexecução.
|
|
176
|
+
|
|
177
|
+
**Os PNGs já existem quando você chega aqui — não renderize nada à mão** (ADR-025). O `command_check
|
|
178
|
+
render-png.cjs` roda em `verifyStep`, ou seja, **antes** de o motor devolver `awaiting_approval`: se
|
|
179
|
+
você recebeu esta parada, as 7 peças foram renderizadas e verificadas (contagem exata e 1080×1350 por
|
|
180
|
+
IHDR). O rastro está no bloco `pc:entregavel-png` de `artifacts/assembly.md`, com o sha256 de cada peça.
|
|
181
|
+
Renderizar por fora é o defeito que o mecanismo eliminou — o dono precisa aprovar **o arquivo que
|
|
182
|
+
publica**.
|
|
183
|
+
|
|
184
|
+
Diga ao dono, ao apresentar: (a) o que a máquina já garantiu — as 7 peças existem e cada PNG mede
|
|
185
|
+
1080×1350, **não gaste olho nisso**; (b) o que só ele vê — quebra de linha em rótulo, quebra dentro de
|
|
186
|
+
um valor que não deveria quebrar (moeda separada do número), parágrafo estourando o limite de linhas,
|
|
187
|
+
contraste sobre o background gerado, encaixe copy × canvas. Confira junto com ele, explicitamente, a
|
|
188
|
+
cláusula do critério que **nenhuma peça exibe sinal de relevância da plataforma de origem** (pontos,
|
|
189
|
+
upvotes, curtidas, views, nº de comentários) — esse número é insumo de curadoria do digest e não é
|
|
190
|
+
conteúdo de roteiro. Não há veto de máquina para ela: é aqui que ela é conferida.
|
|
191
|
+
|
|
192
|
+
**Se a rodada partiu de um roteiro dele** (`contrato_entrada: roteiro:*` no digest), o `criteria` de
|
|
193
|
+
`assembly` traz uma cláusula a mais e ela precisa ser lida em voz alta: a copy das peças ainda soa como
|
|
194
|
+
ele escreveu? O gate de `digest` cobriu a conformação do texto em ângulos, **não** a passagem de ângulo
|
|
195
|
+
para copy de slide — e esta é a única parada em que isso é visível (`ADR-026 DF-SF11.7-23`). Em rodada
|
|
196
|
+
`ancora:` a cláusula é vacuamente satisfeita.
|
|
197
|
+
|
|
198
|
+
Se a etapa vier `[blocked]` com `render-png.cjs`, **não contorne**: sem Chrome funcional a rodada não
|
|
199
|
+
fecha, nem entregando HTML (escape hatch recusado por desenho, ADR-025). A mensagem do bloqueio diz a
|
|
200
|
+
classe: contagem/dimensão (exit 1), Chrome ou render (exit 3), wiring (exit 2). Ver
|
|
201
|
+
`docs/mecanismos/veto-entregavel-png.md` no repositório do framework.
|
|
202
|
+
|
|
203
|
+
### Passo obrigatório do comando: pedir o comentário
|
|
204
|
+
|
|
205
|
+
Vale **nos dois** checkpoints bloqueantes — `digest` (gate de texto, só no `interactive`) e `assembly`
|
|
206
|
+
(fechamento). Depois que o dono decidir (`approve` **ou** `revise`) e **antes** de chamar o motor,
|
|
207
|
+
**pergunte a ele, sempre, uma vez**: *"quer registrar um comentário desta decisão? (ele vira aprendizado do pod; pode
|
|
208
|
+
pular)"*. Isto **não é opcional para você** — o dono é quem escolhe comentar ou não; você é obrigado a
|
|
209
|
+
perguntar. É o único ponto do pod onde existe julgamento humano declarado, e é justamente o que se
|
|
210
|
+
perde sem ele: um carrossel que passou em **todos** os vetos e mesmo assim foi reprovado no `revise`
|
|
211
|
+
não deixa rastro nenhum do porquê.
|
|
212
|
+
|
|
213
|
+
Se o dono comentar:
|
|
214
|
+
|
|
215
|
+
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.
|
|
216
|
+
2. Invoque o registrador **com `--file`** — a mensagem **nunca** entra na linha de comando (argv é visível em `ps` e no histórico, e o quoting quebra):
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
node scripts/pod-memory-note.cjs --state <state.json> \
|
|
220
|
+
--workflow-file pods/content-carousel/workflows/wf-content-carousel.yaml \
|
|
221
|
+
--step digest|assembly --verdict approve|revise --file <arquivo escrito no passo 1>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
`--step` é a etapa em que a decisão foi tomada — `digest` no gate de texto, `assembly` no fechamento.
|
|
225
|
+
|
|
226
|
+
3. Só então chame `pc-run-pod.cjs approve`/`revise`. Nessa ordem: se a gravação da memória falhar, o dono vê o erro **antes** de a etapa avançar.
|
|
227
|
+
|
|
228
|
+
Regras que não se negociam neste passo:
|
|
229
|
+
|
|
230
|
+
- **Comentário vazio ⇒ não invoque o registrador.** Silêncio não vira learning; nenhuma linha de enchimento entra na memória. (Invocá-lo com texto vazio sai `exit 2` de propósito.)
|
|
231
|
+
- **Nunca escreva o comentário em nome do dono** — nem resumo do que o subagente fez, nem interpretação sua. É o texto dele, verbatim. O modo autônomo continua **proibido** de `approve`/`revise`, e portanto nunca chega a este passo.
|
|
232
|
+
- **`--tier critical` só quando o dono disser, com essas palavras, que aquilo é regra permanente.** Comentário de rodada é `normal` (default) — `critical` é pin com teto de 10 e enche rápido.
|
|
233
|
+
- **Se sair `[memory] AVISO: N heurística(s) NÃO entraram no consolidado ...` em stderr, reporte ao dono** junto com o resultado da decisão. Significa que a memória bateu no teto de custo do consolidado (1500 tok, teto default do framework enquanto o `pod-spec.json` não declarar um `memoryCost` medido) e algo deixou de ser injetado nas próximas rodadas — nada foi apagado, mas ele precisa saber.
|
|
234
|
+
|
|
235
|
+
Detalhe do mecanismo (o que é gravado, e por quê `revise` é o caso de maior valor): `docs/mecanismos/memoria-evolutiva.md`, no repositório do framework POWER CLAUDE (não é copiado para a instalação).
|
|
236
|
+
|
|
237
|
+
## Os pontos de verificação reais da rodada (o que de fato morde)
|
|
238
|
+
|
|
239
|
+
| Etapa | O que o motor verifica | Bloqueia? |
|
|
240
|
+
|---|---|---|
|
|
241
|
+
| `digest` | `count_gte "Angulos para Slides" ≥5`; `field_matches confianca`; `field_matches contrato_entrada` (pares implementados — o valor literal está no `wf`, espelhado na matriz `aquisicao-ancora.md` §0.3) + **checkpoint de TEXTO** | **SIM** nas assertions; o checkpoint só existe no `interactive` e só sai por `approve`/`revise` do dono |
|
|
242
|
+
| `visuals` | `field_matches referencia_copiada ^nao$`; `field_matches confianca` | **SIM** |
|
|
243
|
+
| `assembly` | `count_gte "Slides Internos" ≥5`; `command_check lexical-check.cjs` (travessão proibido); `field_matches confianca`; `command_check render-png.cjs` (7 PNG, 1080×1350 exatos) + **checkpoint de FECHAMENTO** | **SIM** nas assertions, e o checkpoint só sai por `approve`/`revise` do dono, nos DOIS ritmos |
|
|
244
|
+
|
|
245
|
+
**Pontos de PARADA por ritmo** (diferente de "o que morde", acima): `interactive` = **2** (`digest` e
|
|
246
|
+
`assembly`); `yolo` = **1** (só `assembly`). A contagem depende do modo da run — nunca da posição no DAG.
|
|
247
|
+
|
|
248
|
+
Esta tabela é o retrato do `wf` **desta** instalação: se você alterar `veto.assertions` em
|
|
249
|
+
`pods/content-carousel/workflows/wf-content-carousel.yaml`, atualize-a junto — e rode o smoke do
|
|
250
|
+
workflow antes de commitar (guarda documentada no cabeçalho do próprio `wf`).
|
|
251
|
+
|
|
252
|
+
## Run pendurada
|
|
253
|
+
|
|
254
|
+
`status` mostra o estado de cada etapa. Etapa em `running` sem trabalho por trás = run abandonada (o
|
|
255
|
+
motor não tem timeout: ele espera para sempre). Confirme com o dono e então: `abort` (encerra, marca as
|
|
256
|
+
etapas não-`done` como `failed`) ou `resume <run-id>` se a rodada for legítima e valer continuar. Nunca
|
|
257
|
+
`approve`/`next` sobre uma etapa cujo artefato nunca foi realmente produzido — isso "resgata" lixo de
|
|
258
|
+
teste como se fosse trabalho.
|
|
259
|
+
|
|
260
|
+
## Fronteiras
|
|
261
|
+
|
|
262
|
+
- Nunca `git push` / `gh pr create` / merge (exclusivo devops).
|
|
263
|
+
- Nunca editar `state.json` para pular etapa ou fabricar verificação; nunca afrouxar o `wf` para
|
|
264
|
+
destravar uma rodada.
|
|
265
|
+
- Nunca aprovar checkpoint em nome do dono.
|
|
266
|
+
- Cada etapa é um subagente FRESCO; o brief é a única fonte de contexto dele.
|
|
267
|
+
- Referência do protocolo do motor: skill `pc-run-pod` (`.claude/skills/pc-run-pod/SKILL.md`).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ativa o pod Authority-Content. Use para: pesquisar dados para conteúdo (radar), criar artigo/post na voz do usuário, fact-checar peça contra fontes primárias, adaptar peça aprovada por canal."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Ative o pod Authority-Content.
|
|
6
|
+
|
|
7
|
+
1. Leia `pods/authority-content/README.md` (pipeline de 5 fases obrigatórias).
|
|
8
|
+
2. Assuma o agente `pods/authority-content/agents/content-chief.md` e opere pelos comandos dele: `*radar`, `*create`, `*redteam`, `*adapt`, `*errata`.
|
|
9
|
+
3. Pedido do usuário: $ARGUMENTS
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Ativa o pod Dev-IA. Use para: rodar o ciclo de story (validação → implementação → QA gate → fechamento), decidir qual skill do ciclo usar, revisar princípios do fluxo de dev com IA."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Ative o pod Dev-IA.
|
|
6
|
+
|
|
7
|
+
1. Leia `pods/dev-ia/README.md` (ciclo, skills por etapa e princípios).
|
|
8
|
+
2. Roteie o pedido para a skill correta do ciclo: `pc-validate-story`, `pc-develop-story`, `pc-review-story`, `pc-apply-qa-fixes`, `pc-close-story`, `pc-commit`.
|
|
9
|
+
3. Pedido do usuário: $ARGUMENTS
|