aiox-core 5.0.2 → 5.0.4
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.
- package/.aiox-core/core/execution/predictive-pipeline.js +1283 -0
- package/.aiox-core/core/memory/decision-memory.js +564 -0
- package/.aiox-core/data/entity-registry.yaml +1068 -1043
- package/.aiox-core/data/registry-update-log.jsonl +2 -2
- package/.aiox-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aiox-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aiox-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aiox-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aiox-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aiox-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aiox-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aiox-core/development/templates/squad-template/LICENSE +21 -21
- package/.aiox-core/infrastructure/templates/aiox-sync.yaml.template +182 -182
- package/.aiox-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aiox-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aiox-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aiox-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-aiox-base.tmpl +63 -63
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aiox-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aiox-core/install-manifest.yaml +63 -55
- package/.aiox-core/local-config.yaml.template +71 -71
- package/.aiox-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aiox-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aiox-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aiox-core/monitor/hooks/notification.py +29 -29
- package/.aiox-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aiox-core/monitor/hooks/pre_compact.py +29 -29
- package/.aiox-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aiox-core/monitor/hooks/stop.py +29 -29
- package/.aiox-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aiox-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aiox-core/product/templates/adr.hbs +125 -125
- package/.aiox-core/product/templates/dbdr.hbs +241 -241
- package/.aiox-core/product/templates/epic.hbs +212 -212
- package/.aiox-core/product/templates/pmdr.hbs +186 -186
- package/.aiox-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aiox-core/product/templates/prd.hbs +201 -201
- package/.aiox-core/product/templates/story.hbs +263 -263
- package/.aiox-core/product/templates/task.hbs +170 -170
- package/.aiox-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aiox-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aiox-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aiox-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aiox-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aiox-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aiox-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aiox-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aiox-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aiox-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aiox-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aiox-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aiox-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aiox-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aiox-core/product/templates/tmpl-view.sql +177 -177
- package/.aiox-core/scripts/pm.sh +0 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/write-path-validation.py +194 -194
- package/LICENSE +33 -33
- package/bin/aiox-graph.js +0 -0
- package/bin/aiox-minimal.js +0 -0
- package/bin/aiox.js +0 -0
- package/package.json +6 -1
- package/packages/aiox-install/bin/aiox-install.js +0 -0
- package/packages/aiox-install/bin/edmcp.js +0 -0
- package/packages/aiox-pro-cli/bin/aiox-pro.js +0 -0
- package/packages/installer/src/wizard/pro-setup.js +28 -0
- package/pro/README.md +66 -66
- package/pro/feature-registry.yaml +225 -0
- package/pro/license/license-api.js +701 -679
- package/pro/package.json +39 -0
- package/pro/pro-config.yaml +63 -0
- package/pro/squads/README.md +24 -0
- package/pro/squads/design/HEADLINE.md +3 -0
- package/pro/squads/design/README.md +109 -0
- package/pro/squads/design/agents/brad-frost.md +1097 -0
- package/pro/squads/design/agents/dan-mall.md +857 -0
- package/pro/squads/design/agents/dave-malouf.md +2272 -0
- package/pro/squads/design/agents/design-chief.md +114 -0
- package/pro/squads/design/agents/ds-foundations-lead.md +194 -0
- package/pro/squads/design/agents/ds-token-architect.md +361 -0
- package/pro/squads/design/agents/nano-banana-generator.md +162 -0
- package/pro/squads/design/agents/storybook-expert.md +809 -0
- package/pro/squads/design/checklists/atomic-refactor-checklist.md +299 -0
- package/pro/squads/design/checklists/component-adaptation-checklist.md +81 -0
- package/pro/squads/design/checklists/design-fidelity-checklist.md +283 -0
- package/pro/squads/design/checklists/design-handoff-checklist.md +55 -0
- package/pro/squads/design/checklists/design-team-health-checklist.md +454 -0
- package/pro/squads/design/checklists/designops-maturity-checklist.md +518 -0
- package/pro/squads/design/checklists/ds-a11y-release-gate-checklist.md +45 -0
- package/pro/squads/design/checklists/ds-accessibility-wcag-checklist.md +147 -0
- package/pro/squads/design/checklists/ds-component-quality-checklist.md +150 -0
- package/pro/squads/design/checklists/ds-critical-eye-review-checklist.md +147 -0
- package/pro/squads/design/checklists/ds-migration-readiness-checklist.md +99 -0
- package/pro/squads/design/checklists/ds-pattern-audit-checklist.md +164 -0
- package/pro/squads/design/checklists/reading-accessibility-checklist.md +275 -0
- package/pro/squads/design/checklists/token-mapping-checklist.md +107 -0
- package/pro/squads/design/config/coding-standards.md +286 -0
- package/pro/squads/design/config/source-tree.md +59 -0
- package/pro/squads/design/config/tech-stack.md +48 -0
- package/pro/squads/design/config.yaml +204 -0
- package/pro/squads/design/data/agentic-design-systems-guide.md +46 -0
- package/pro/squads/design/data/agentic-ds-principles.md +100 -0
- package/pro/squads/design/data/atomic-design-principles.md +108 -0
- package/pro/squads/design/data/atomic-refactor-rules.md +582 -0
- package/pro/squads/design/data/base-component-specs.md +972 -0
- package/pro/squads/design/data/brad-frost-analysis-extract-implicit.yaml +270 -0
- package/pro/squads/design/data/brad-frost-analysis-find-0.8.yaml +176 -0
- package/pro/squads/design/data/brad-frost-analysis-qa-report.yaml +168 -0
- package/pro/squads/design/data/brad-frost-dna.yaml +713 -0
- package/pro/squads/design/data/capability-tools.yaml +124 -0
- package/pro/squads/design/data/component-adaptation-changelog.md +318 -0
- package/pro/squads/design/data/consolidation-algorithms.md +168 -0
- package/pro/squads/design/data/critical-eye-scoring-rules.yaml +240 -0
- package/pro/squads/design/data/design-token-best-practices.md +107 -0
- package/pro/squads/design/data/design-tokens-spec.yaml +418 -0
- package/pro/squads/design/data/ds-reference-architectures.md +93 -0
- package/pro/squads/design/data/f2-qa-report.md +168 -0
- package/pro/squads/design/data/f3-derived-components-changelog.md +100 -0
- package/pro/squads/design/data/f3-qa-report.md +208 -0
- package/pro/squads/design/data/figma-base-components-raw.md +102 -0
- package/pro/squads/design/data/figma-tokens-raw.md +1549 -0
- package/pro/squads/design/data/fluent2-design-principles.md +114 -0
- package/pro/squads/design/data/high-retention-reading-guide.md +349 -0
- package/pro/squads/design/data/integration-patterns.md +207 -0
- package/pro/squads/design/data/internal-quality-chain.yaml +48 -0
- package/pro/squads/design/data/motion-tokens-guide.md +202 -0
- package/pro/squads/design/data/roi-calculation-guide.md +142 -0
- package/pro/squads/design/data/token-mapping-reference.md +213 -0
- package/pro/squads/design/data/w3c-dtcg-spec-reference.md +149 -0
- package/pro/squads/design/data/wcag-compliance-guide.md +267 -0
- package/pro/squads/design/docs/AUDIT_REPORT.md +97 -0
- package/pro/squads/design/docs/DS-CURATION-PIPELINE-PROPOSAL.md +577 -0
- package/pro/squads/design/docs/UPGRADE_PLAN.md +618 -0
- package/pro/squads/design/docs/brad-frost-research-validation.md +372 -0
- package/pro/squads/design/docs/dave-malouf-research-validation.md +391 -0
- package/pro/squads/design/docs/tool-discovery-report.md +87 -0
- package/pro/squads/design/docs/tool-integration-plan.md +44 -0
- package/pro/squads/design/protocols/ai-first-governance.md +56 -0
- package/pro/squads/design/protocols/governance-execution-boundary.md +59 -0
- package/pro/squads/design/protocols/handoff.md +60 -0
- package/pro/squads/design/rules/.claude-rules.md +88 -0
- package/pro/squads/design/scripts/design-system/curate_colors.cjs +447 -0
- package/pro/squads/design/scripts/design-system/curate_components.cjs +217 -0
- package/pro/squads/design/scripts/design-system/curate_radius.cjs +190 -0
- package/pro/squads/design/scripts/design-system/curate_shadows.cjs +208 -0
- package/pro/squads/design/scripts/design-system/curate_spacing.cjs +243 -0
- package/pro/squads/design/scripts/design-system/curate_typography.cjs +404 -0
- package/pro/squads/design/scripts/design-system/design-system-metadata.test.js +49 -0
- package/pro/squads/design/scripts/design-system/design_manifest_lib.cjs +142 -0
- package/pro/squads/design/scripts/design-system/fetch_page_images.cjs +195 -0
- package/pro/squads/design/scripts/design-system/generate_components_metadata.cjs +114 -0
- package/pro/squads/design/scripts/design-system/generate_curation_report.cjs +258 -0
- package/pro/squads/design/scripts/design-system/generate_tokens.cjs +342 -0
- package/pro/squads/design/scripts/design-system/sync_design_manifest.cjs +27 -0
- package/pro/squads/design/scripts/design-system/test_mcp_tools.cjs +232 -0
- package/pro/squads/design/scripts/design-system/validate_components_metadata.cjs +96 -0
- package/pro/squads/design/scripts/design-system/validate_curation.cjs +226 -0
- package/pro/squads/design/scripts/design-system/validate_design_manifest_drift.cjs +72 -0
- package/pro/squads/design/scripts/design-system/validate_mcp_skeleton.cjs +38 -0
- package/pro/squads/design/scripts/design-system/validate_registry.cjs +186 -0
- package/pro/squads/design/scripts/design-system/validate_task_checklist_bindings.cjs +78 -0
- package/pro/squads/design/scripts/dissect-artifact.cjs +806 -0
- package/pro/squads/design/scripts/validate-a11y-integration.cjs +40 -0
- package/pro/squads/design/scripts/validate-design-squad.py +411 -0
- package/pro/squads/design/squad.yaml +714 -0
- package/pro/squads/design/tasks/a11y-audit.md +340 -0
- package/pro/squads/design/tasks/aria-audit.md +525 -0
- package/pro/squads/design/tasks/atomic-refactor-execute.md +391 -0
- package/pro/squads/design/tasks/atomic-refactor-plan.md +262 -0
- package/pro/squads/design/tasks/audit-reading-experience.md +350 -0
- package/pro/squads/design/tasks/audit-tailwind-config.md +101 -0
- package/pro/squads/design/tasks/bootstrap-shadcn-library.md +96 -0
- package/pro/squads/design/tasks/bundle-audit.md +245 -0
- package/pro/squads/design/tasks/contrast-matrix.md +373 -0
- package/pro/squads/design/tasks/create-doc.md +135 -0
- package/pro/squads/design/tasks/dead-code-detection.md +329 -0
- package/pro/squads/design/tasks/design-compare.md +414 -0
- package/pro/squads/design/tasks/design-process-optimization.md +407 -0
- package/pro/squads/design/tasks/design-review-orchestration.md +99 -0
- package/pro/squads/design/tasks/design-team-scaling.md +407 -0
- package/pro/squads/design/tasks/design-tooling-audit.md +404 -0
- package/pro/squads/design/tasks/design-triage.md +89 -0
- package/pro/squads/design/tasks/designops-maturity-assessment.md +364 -0
- package/pro/squads/design/tasks/designops-metrics-setup.md +465 -0
- package/pro/squads/design/tasks/ds-agentic-audit.md +100 -0
- package/pro/squads/design/tasks/ds-agentic-setup.md +103 -0
- package/pro/squads/design/tasks/ds-audit-codebase.md +273 -0
- package/pro/squads/design/tasks/ds-build-component.md +349 -0
- package/pro/squads/design/tasks/ds-build-mcp-server.md +84 -0
- package/pro/squads/design/tasks/ds-calculate-roi.md +282 -0
- package/pro/squads/design/tasks/ds-compose-molecule.md +106 -0
- package/pro/squads/design/tasks/ds-consolidate-patterns.md +253 -0
- package/pro/squads/design/tasks/ds-context-contract.md +194 -0
- package/pro/squads/design/tasks/ds-critical-eye-compare.md +130 -0
- package/pro/squads/design/tasks/ds-critical-eye-decide.md +139 -0
- package/pro/squads/design/tasks/ds-critical-eye-inventory.md +111 -0
- package/pro/squads/design/tasks/ds-critical-eye-report.md +101 -0
- package/pro/squads/design/tasks/ds-critical-eye-score.md +109 -0
- package/pro/squads/design/tasks/ds-designops.md +99 -0
- package/pro/squads/design/tasks/ds-extend-pattern.md +91 -0
- package/pro/squads/design/tasks/ds-extract-tokens.md +312 -0
- package/pro/squads/design/tasks/ds-figma-pipeline.md +95 -0
- package/pro/squads/design/tasks/ds-fluent-audit.md +105 -0
- package/pro/squads/design/tasks/ds-fluent-build.md +110 -0
- package/pro/squads/design/tasks/ds-generate-ai-metadata.md +81 -0
- package/pro/squads/design/tasks/ds-generate-cursor-rules.md +74 -0
- package/pro/squads/design/tasks/ds-generate-documentation.md +101 -0
- package/pro/squads/design/tasks/ds-generate-migration-strategy.md +331 -0
- package/pro/squads/design/tasks/ds-generate-shock-report.md +323 -0
- package/pro/squads/design/tasks/ds-govern-a11y-compliance.md +93 -0
- package/pro/squads/design/tasks/ds-governance.md +187 -0
- package/pro/squads/design/tasks/ds-health-metrics.md +278 -0
- package/pro/squads/design/tasks/ds-integrate-squad.md +130 -0
- package/pro/squads/design/tasks/ds-integrate-workspace.md +100 -0
- package/pro/squads/design/tasks/ds-legacy-modernization.md +302 -0
- package/pro/squads/design/tasks/ds-mcp-status.md +65 -0
- package/pro/squads/design/tasks/ds-motion-audit.md +118 -0
- package/pro/squads/design/tasks/ds-multi-framework.md +96 -0
- package/pro/squads/design/tasks/ds-parallelization-gate.md +246 -0
- package/pro/squads/design/tasks/ds-query.md +90 -0
- package/pro/squads/design/tasks/ds-rebuild-artifact.md +369 -0
- package/pro/squads/design/tasks/ds-reverse-engineer.md +194 -0
- package/pro/squads/design/tasks/ds-scan-artifact.md +131 -0
- package/pro/squads/design/tasks/ds-setup-design-system.md +297 -0
- package/pro/squads/design/tasks/ds-sync-registry.md +287 -0
- package/pro/squads/design/tasks/ds-theme-multi-brand.md +90 -0
- package/pro/squads/design/tasks/ds-token-modes.md +108 -0
- package/pro/squads/design/tasks/ds-token-w3c-extract.md +105 -0
- package/pro/squads/design/tasks/ds-validate-ai-readiness.md +69 -0
- package/pro/squads/design/tasks/ds-visual-regression.md +130 -0
- package/pro/squads/design/tasks/execute-checklist.md +141 -0
- package/pro/squads/design/tasks/export-design-tokens-dtcg.md +97 -0
- package/pro/squads/design/tasks/f1-apply-foundations.md +154 -0
- package/pro/squads/design/tasks/f1-ingest-figma-tokens.md +130 -0
- package/pro/squads/design/tasks/f1-map-tokens-to-shadcn.md +145 -0
- package/pro/squads/design/tasks/f1-qa-foundations.md +95 -0
- package/pro/squads/design/tasks/f2-adapt-shadcn-components.md +155 -0
- package/pro/squads/design/tasks/f2-ingest-base-components.md +148 -0
- package/pro/squads/design/tasks/f2-qa-base-components.md +98 -0
- package/pro/squads/design/tasks/f3-derive-components.md +145 -0
- package/pro/squads/design/tasks/f3-qa-derived-components.md +101 -0
- package/pro/squads/design/tasks/focus-order-audit.md +450 -0
- package/pro/squads/design/tasks/sb-brownfield-migrate.md +367 -0
- package/pro/squads/design/tasks/sb-brownfield-scan.md +318 -0
- package/pro/squads/design/tasks/sb-configure.md +230 -0
- package/pro/squads/design/tasks/sb-expand-shadcn.md +213 -0
- package/pro/squads/design/tasks/sb-generate-all-stories.md +288 -0
- package/pro/squads/design/tasks/sb-install.md +152 -0
- package/pro/squads/design/tasks/sb-sync-workspace.md +239 -0
- package/pro/squads/design/tasks/sb-verify.md +203 -0
- package/pro/squads/design/tasks/tailwind-upgrade.md +117 -0
- package/pro/squads/design/tasks/token-usage-analytics.md +262 -0
- package/pro/squads/design/tasks/ux-rewrite-sixth-grade.md +82 -0
- package/pro/squads/design/tasks/validate-design-fidelity.md +222 -0
- package/pro/squads/design/templates/agent-template.yaml +46 -0
- package/pro/squads/design/templates/clone-mind-template.md +352 -0
- package/pro/squads/design/templates/component-prompt-injection-tmpl.md +236 -0
- package/pro/squads/design/templates/component-visual-spec-tmpl.md +378 -0
- package/pro/squads/design/templates/critical-eye-cycle-report-tmpl.md +165 -0
- package/pro/squads/design/templates/design-fidelity-report-tmpl.md +155 -0
- package/pro/squads/design/templates/ds-ai-component-metadata-schema-tmpl.json +138 -0
- package/pro/squads/design/templates/ds-artifact-analysis.md +70 -0
- package/pro/squads/design/templates/ds-health-report-tmpl.md +236 -0
- package/pro/squads/design/templates/ds-migration-strategy-tmpl.md +524 -0
- package/pro/squads/design/templates/ds-state-persistence-tmpl.yaml +194 -0
- package/pro/squads/design/templates/ds-tokens-schema-tmpl.yaml +139 -0
- package/pro/squads/design/templates/migration-strategy-tmpl.md +524 -0
- package/pro/squads/design/templates/reading-design-tokens.css +26 -0
- package/pro/squads/design/templates/state-persistence-tmpl.yaml +219 -0
- package/pro/squads/design/templates/tokens-schema-tmpl.yaml +305 -0
- package/pro/squads/design/workflows/agentic-readiness.yaml +83 -0
- package/pro/squads/design/workflows/audit-only.yaml +198 -0
- package/pro/squads/design/workflows/brownfield-complete.yaml +257 -0
- package/pro/squads/design/workflows/critical-eye.yaml +184 -0
- package/pro/squads/design/workflows/dtcg-tokens-governance.yaml +64 -0
- package/pro/squads/design/workflows/foundations-pipeline.yaml +192 -0
- package/pro/squads/design/workflows/greenfield-new.yaml +192 -0
- package/pro/squads/design/workflows/motion-quality.yaml +65 -0
- package/pro/squads/design/workflows/self-healing-workflow.yaml +237 -0
- package/pro/squads/design/workflows/storybook-brownfield-migration.yaml +400 -0
- package/pro/squads/design/workflows/storybook-full-setup.yaml +280 -0
- package/pro/squads/index.js +145 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/ARQUITETURA_COGNITIVA_DE_ALEX_HORMOZI_EXTRA/303/207/303/203O_COMPLETA.md +215 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/A_Rotina_de_Alta_Performance_de_Alex_Hormozi_Arquitetura,_Motiva/303/247/303/265es_e_Replica/303/247/303/243o.md +309 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/O_sistema_completo_de_cria/303/247/303/243o_de_conte/303/272do_de_Alex_Hormozi.md +416 -0
- package/pro/squads/mmos-squad/minds/alex_hormozi/artifacts/Processo_Cria/303/247/303/243o_Conte/303/272do_Hormozi.md +0 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
- package/pro/squads/mmos-squad/minds/brad_frost/.backup/2026-01-13/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/DECIS/303/225ES_ESTRAT/303/211GICAS_DE_DESIGN_SYSTEMS_(2022_2025).md +1038 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_ATOMIC_DESIGN.md +797 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/O_Cemit/303/251rio_de_Design_Systems.md +447 -0
- package/pro/squads/mmos-squad/minds/brad_frost/artifacts/PRINC/303/215PIOS_DE_RACIOC/303/215NIO.md +190 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_ELON_MUSK.md +291 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/ASSINATURA_LINGU/303/215STICA_ELON_MUSK.md +485 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/A_Arquitetura_Mental_de_Elon_Musk_Uma_An/303/241lise_Sistem/303/241tica_dos_Frameworks_de_Pensamento.md +907 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Dossi/303/252_Estrat/303/251gico_A_Arquitetura_Psicol/303/263gica_de_Elon_Musk.md +252 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Os_Padr/303/265es_de_Leitura_de_Elon_Musk_e_Sua_Influ/303/252ncia_Sistem/303/241tica.md +287 -0
- package/pro/squads/mmos-squad/minds/elon_musk/artifacts/Uma_an/303/241lise_psicol/303/263gica_abrangente.md +187 -0
- package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_EUGENE_M._SCHWARTZ.md +790 -0
- package/pro/squads/mmos-squad/minds/eugene_schwartz/artifacts/An/303/241lise_Completa_Eugene_Schwartz_Arquitetura_Cognitiva_DEEP.md +210 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/5H_EXTRA/303/207/303/203O_COGNITIVA_COMPLETA_PEDRO_VAL/303/211RIO_LOPEZ.md +226 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_COMPARATIVA_REVISADA_PEDRO_VAL/303/211RIO_LOPEZ.md +246 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_LINGU/303/215STICA_CARIOCA_PEDRO_VAL/303/211RIO_LOPEZ.md +274 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_DEFINITIVA_PEDRO_VAL/303/211RIO_LOPEZ.md +821 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/AN/303/201LISE_PSICOM/303/211TRICA_PROFUNDA_PEDRO_VAL/303/211RIO.md +1844 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/C/303/201LCULO_DE_RARIDADE_ESTAT/303/215STICA_PEDRO_VAL/303/211RIO_LOPEZ.md +154 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/EXTRA/303/207/303/203O_PEDRO_VAL/303/211RIO.md +237 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/MAPEAMENTO_LINGU/303/215STICO_PROFUNDO.md +161 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/META_AXIOMAS_DE_PEDRO_VAL/303/211RIO.md +256 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_PEDRO_VAL/303/211RIO_LOPEZ.md +586 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/SISTEMA_IMUNOL/303/223GICO_COGNITIVO_V2_/342/200/224_CLONE_IA.md +452 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/TABELA_COMPARATIVA_AN/303/201LISE_COMPLETA_DOS_CLONES_IA.md +102 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/WHATSAPP_PADR/303/225ES_LINGU/303/215STICOS_PEDRO_VAL/303/211RIO_LOPEZ.md +286 -0
- package/pro/squads/mmos-squad/minds/pedro_valerio/sources/artifacts_v1.6/heur/303/255sticas_de_decis/303/243o_e_algoritmos_mentais_/303/272nicos.md +268 -0
- package/pro/squads/mmos-squad/minds/ray_kurzweil/sources/books/PROTOCOLO_COMPLETO_DE_INTERROGA/303/207/303/203O_-_NAVAL_RAVIKANT.md +3624 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/FRAMEWORK_COMPLETO_DE_IMPLEMENTA/303/207/303/203O_JOBS.md +488 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Framework_Cabe/303/247a_Steve.md +257 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Relat/303/263rio_Abrangente_sobre_Steve_Jobs_para_Cria/303/247/303/243o_de_Clone_de_IA.md +370 -0
- package/pro/squads/mmos-squad/minds/steve_jobs/artifacts/Steve_Jobs_An/303/241lise_Psicol/303/263gica_Profunda_e_Valida/303/247/303/243o_Comportamental.md +65 -0
- package/pro/squads/squad-creator-pro/.state.json +32 -0
- package/pro/squads/squad-creator-pro/CHANGELOG.md +275 -0
- package/pro/squads/squad-creator-pro/HEADLINE.md +3 -0
- package/pro/squads/squad-creator-pro/README.md +1059 -0
- package/pro/squads/squad-creator-pro/agents/oalanicolas.md +438 -0
- package/pro/squads/squad-creator-pro/agents/pedro-valerio.md +449 -0
- package/pro/squads/squad-creator-pro/agents/squad-chief.md +1651 -0
- package/pro/squads/squad-creator-pro/agents/thiago_finch.md +976 -0
- package/pro/squads/squad-creator-pro/assessments/axioma-assessment-wf-create-squad.yaml +325 -0
- package/pro/squads/squad-creator-pro/checklists/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/checklists/agent-depth-checklist.md +244 -0
- package/pro/squads/squad-creator-pro/checklists/agent-quality-gate.md +434 -0
- package/pro/squads/squad-creator-pro/checklists/create-agent-checklist.md +184 -0
- package/pro/squads/squad-creator-pro/checklists/create-squad-checklist.md +219 -0
- package/pro/squads/squad-creator-pro/checklists/create-workflow-checklist.md +224 -0
- package/pro/squads/squad-creator-pro/checklists/deep-research-quality.md +506 -0
- package/pro/squads/squad-creator-pro/checklists/executor-matrix-checklist.md +260 -0
- package/pro/squads/squad-creator-pro/checklists/mental-model-integration-checklist.md +95 -0
- package/pro/squads/squad-creator-pro/checklists/mind-validation.md +374 -0
- package/pro/squads/squad-creator-pro/checklists/quality-gate-checklist.md +385 -0
- package/pro/squads/squad-creator-pro/checklists/smoke-test-agent.md +313 -0
- package/pro/squads/squad-creator-pro/checklists/sop-validation.md +250 -0
- package/pro/squads/squad-creator-pro/checklists/squad-checklist.md +1014 -0
- package/pro/squads/squad-creator-pro/checklists/squad-overview-checklist.md +393 -0
- package/pro/squads/squad-creator-pro/checklists/task-anatomy-checklist.md +626 -0
- package/pro/squads/squad-creator-pro/config/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/config/axioma-validator.yaml +371 -0
- package/pro/squads/squad-creator-pro/config/heuristics.yaml +753 -0
- package/pro/squads/squad-creator-pro/config/model-routing.yaml +693 -0
- package/pro/squads/squad-creator-pro/config/quality-gates.yaml +415 -0
- package/pro/squads/squad-creator-pro/config/scoring-rubric.yaml +199 -0
- package/pro/squads/squad-creator-pro/config/squad-config.yaml +165 -0
- package/pro/squads/squad-creator-pro/config/task-anatomy.yaml +263 -0
- package/pro/squads/squad-creator-pro/config/veto-conditions.yaml +455 -0
- package/pro/squads/squad-creator-pro/config.yaml +35 -0
- package/pro/squads/squad-creator-pro/data/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/data/an-anchor-words.yaml +78 -0
- package/pro/squads/squad-creator-pro/data/an-clone-anti-patterns.yaml +148 -0
- package/pro/squads/squad-creator-pro/data/an-clone-validation.yaml +190 -0
- package/pro/squads/squad-creator-pro/data/an-diagnostic-framework.yaml +164 -0
- package/pro/squads/squad-creator-pro/data/an-output-examples.yaml +102 -0
- package/pro/squads/squad-creator-pro/data/an-source-signals.yaml +98 -0
- package/pro/squads/squad-creator-pro/data/an-source-tiers.yaml +119 -0
- package/pro/squads/squad-creator-pro/data/best-practices.md +986 -0
- package/pro/squads/squad-creator-pro/data/core-heuristics.md +510 -0
- package/pro/squads/squad-creator-pro/data/decision-heuristics-framework.md +620 -0
- package/pro/squads/squad-creator-pro/data/executor-decision-tree.md +774 -0
- package/pro/squads/squad-creator-pro/data/executor-matrix-framework.md +441 -0
- package/pro/squads/squad-creator-pro/data/fusion-decision-points-analysis.md +397 -0
- package/pro/squads/squad-creator-pro/data/fusion-executor-analysis.md +677 -0
- package/pro/squads/squad-creator-pro/data/hybridops-patterns.md +1351 -0
- package/pro/squads/squad-creator-pro/data/internal-infrastructure-library.yaml +99 -0
- package/pro/squads/squad-creator-pro/data/mental-model-task-matrix.yaml +692 -0
- package/pro/squads/squad-creator-pro/data/pipeline-patterns.md +352 -0
- package/pro/squads/squad-creator-pro/data/pm-best-practices.md +440 -0
- package/pro/squads/squad-creator-pro/data/pv-anchor-words.yaml +64 -0
- package/pro/squads/squad-creator-pro/data/pv-authenticity-markers.yaml +200 -0
- package/pro/squads/squad-creator-pro/data/pv-meta-axiomas.yaml +162 -0
- package/pro/squads/squad-creator-pro/data/pv-output-examples.yaml +342 -0
- package/pro/squads/squad-creator-pro/data/pv-workflow-validation.yaml +318 -0
- package/pro/squads/squad-creator-pro/data/quality-dimensions-framework.md +405 -0
- package/pro/squads/squad-creator-pro/data/squad-analytics-guide.md +252 -0
- package/pro/squads/squad-creator-pro/data/squad-kb.md +987 -0
- package/pro/squads/squad-creator-pro/data/squad-registry.yaml +841 -0
- package/pro/squads/squad-creator-pro/data/squad-type-definitions.yaml +578 -0
- package/pro/squads/squad-creator-pro/data/tier-system-framework.md +475 -0
- package/pro/squads/squad-creator-pro/data/tool-evaluation-framework.md +847 -0
- package/pro/squads/squad-creator-pro/data/tool-registry.yaml +700 -0
- package/pro/squads/squad-creator-pro/docs/ADR-001-model-tier-qualification.md +344 -0
- package/pro/squads/squad-creator-pro/docs/AGENT-COLLABORATION.md +609 -0
- package/pro/squads/squad-creator-pro/docs/ARCHITECTURE-DIAGRAMS.md +1466 -0
- package/pro/squads/squad-creator-pro/docs/COMMANDS.md +544 -0
- package/pro/squads/squad-creator-pro/docs/CONCEPTS.md +584 -0
- package/pro/squads/squad-creator-pro/docs/FAQ.md +731 -0
- package/pro/squads/squad-creator-pro/docs/HITL-FLOW.md +255 -0
- package/pro/squads/squad-creator-pro/docs/MIGRATION-PLAN-AGENT-CONFORMITY.md +861 -0
- package/pro/squads/squad-creator-pro/docs/MIGRATION-ROADMAP-HYBRIDOPS.md +1161 -0
- package/pro/squads/squad-creator-pro/docs/MODEL-TIER-QUALIFICATION.md +337 -0
- package/pro/squads/squad-creator-pro/docs/PATTERN-LIBRARY.md +333 -0
- package/pro/squads/squad-creator-pro/docs/PEDRO-VALERIO-ARCHITECTURE.md +456 -0
- package/pro/squads/squad-creator-pro/docs/POR-ONDE-COMECAR.md +210 -0
- package/pro/squads/squad-creator-pro/docs/QUICK-START.md +205 -0
- package/pro/squads/squad-creator-pro/docs/RFC-001-deterministic-refactoring.md +463 -0
- package/pro/squads/squad-creator-pro/docs/TOOL-RECOMMENDATIONS.md +379 -0
- package/pro/squads/squad-creator-pro/docs/TROUBLESHOOTING.md +412 -0
- package/pro/squads/squad-creator-pro/docs/TUTORIAL-COMPLETO.md +458 -0
- package/pro/squads/squad-creator-pro/docs/optimize-v4-proposal.md +354 -0
- package/pro/squads/squad-creator-pro/docs/session-report-2026-02-01.md +411 -0
- package/pro/squads/squad-creator-pro/docs/sop-extraction-process.md +674 -0
- package/pro/squads/squad-creator-pro/docs/squad-chief-agent-flow.md +981 -0
- package/pro/squads/squad-creator-pro/docs/squad-creation-pipeline-workflow.md +937 -0
- package/pro/squads/squad-creator-pro/docs/task-optimization-framework.md +229 -0
- package/pro/squads/squad-creator-pro/docs/validation-report-2026-02-01.md +439 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/HANDOFF_PROTOCOL.md +269 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/artifacts/SOURCE_CLASSIFICATION.md +258 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_001.md +166 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_002.md +206 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_003.md +239 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_004.md +153 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_005.md +161 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_006.md +166 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_007.md +190 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_008.md +191 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_009.md +234 -0
- package/pro/squads/squad-creator-pro/minds/oalanicolas/heuristics/AN_KE_010.md +240 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/Assinatura_Linguistica.md +355 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/artifacts/META_AXIOMAS.md +277 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_BS_001.md +144 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PA_001.md +174 -0
- package/pro/squads/squad-creator-pro/minds/pedro_valerio/heuristics/PV_PM_001.md +191 -0
- package/pro/squads/squad-creator-pro/package.json +26 -0
- package/pro/squads/squad-creator-pro/protocols/ai-first-governance.md +63 -0
- package/pro/squads/squad-creator-pro/scripts/README.md +246 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/dependency_check.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/inventory.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/naming_validator.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/quality_gate.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/scoring.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/__pycache__/yaml_validator.cpython-314.pyc +0 -0
- package/pro/squads/squad-creator-pro/scripts/assess-sources.sh +443 -0
- package/pro/squads/squad-creator-pro/scripts/checklist_validator.py +451 -0
- package/pro/squads/squad-creator-pro/scripts/clone-review.sh +394 -0
- package/pro/squads/squad-creator-pro/scripts/coherence-validator.py +836 -0
- package/pro/squads/squad-creator-pro/scripts/create-agent-preflight.py +243 -0
- package/pro/squads/squad-creator-pro/scripts/cross-provider/compare-results.js +281 -0
- package/pro/squads/squad-creator-pro/scripts/cross-provider/cross-provider-runner.js +462 -0
- package/pro/squads/squad-creator-pro/scripts/dependency_check.py +333 -0
- package/pro/squads/squad-creator-pro/scripts/fidelity-score.sh +519 -0
- package/pro/squads/squad-creator-pro/scripts/generate-squad-greeting.js +426 -0
- package/pro/squads/squad-creator-pro/scripts/generate-squad-guide.js +558 -0
- package/pro/squads/squad-creator-pro/scripts/inventory.py +269 -0
- package/pro/squads/squad-creator-pro/scripts/lib/config-loader.js +151 -0
- package/pro/squads/squad-creator-pro/scripts/model-tier-validator.cjs +369 -0
- package/pro/squads/squad-creator-pro/scripts/model-usage-logger.cjs +245 -0
- package/pro/squads/squad-creator-pro/scripts/modernization-score.sh +308 -0
- package/pro/squads/squad-creator-pro/scripts/naming_validator.py +299 -0
- package/pro/squads/squad-creator-pro/scripts/on-specialist-complete.py +98 -0
- package/pro/squads/squad-creator-pro/scripts/quality_gate.py +413 -0
- package/pro/squads/squad-creator-pro/scripts/refresh-registry.py +270 -0
- package/pro/squads/squad-creator-pro/scripts/save-session-metrics.py +136 -0
- package/pro/squads/squad-creator-pro/scripts/scaffold-squad.cjs +281 -0
- package/pro/squads/squad-creator-pro/scripts/scoring.py +395 -0
- package/pro/squads/squad-creator-pro/scripts/security_scanner.py +378 -0
- package/pro/squads/squad-creator-pro/scripts/squad-analytics.py +585 -0
- package/pro/squads/squad-creator-pro/scripts/squad-context-loader.cjs +205 -0
- package/pro/squads/squad-creator-pro/scripts/squad-state-manager.cjs +451 -0
- package/pro/squads/squad-creator-pro/scripts/squad-workflow-runner.cjs +471 -0
- package/pro/squads/squad-creator-pro/scripts/squad_utils.py +261 -0
- package/pro/squads/squad-creator-pro/scripts/sync-ide-command.py +590 -0
- package/pro/squads/squad-creator-pro/scripts/tests/__init__.py +1 -0
- package/pro/squads/squad-creator-pro/scripts/tests/conftest.py +309 -0
- package/pro/squads/squad-creator-pro/scripts/tests/run_bash_tests.sh +29 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_assess_sources.sh +216 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_checklist_validator.py +396 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_clone_review.sh +239 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_coherence_validator.py +212 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_dependency_check.py +361 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_fidelity_score.sh +298 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_inventory.py +307 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_modernization_score.sh +211 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_naming_validator.py +373 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_quality_gate.py +280 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_refresh_registry.py +338 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_scoring.py +366 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_security_scanner.py +354 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_squad_analytics.py +450 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_validate_clone.sh +252 -0
- package/pro/squads/squad-creator-pro/scripts/tests/test_yaml_validator.py +412 -0
- package/pro/squads/squad-creator-pro/scripts/validate-agent-output.py +115 -0
- package/pro/squads/squad-creator-pro/scripts/validate-all.sh +49 -0
- package/pro/squads/squad-creator-pro/scripts/validate-squad-structure.py +535 -0
- package/pro/squads/squad-creator-pro/scripts/validate-squad.sh +944 -0
- package/pro/squads/squad-creator-pro/scripts/yaml_validator.py +528 -0
- package/pro/squads/squad-creator-pro/skills/squad.md +301 -0
- package/pro/squads/squad-creator-pro/squad.yaml +36 -0
- package/pro/squads/squad-creator-pro/tasks/CHANGELOG.md +80 -0
- package/pro/squads/squad-creator-pro/tasks/an-assess-sources.md +78 -0
- package/pro/squads/squad-creator-pro/tasks/an-clone-review.md +104 -0
- package/pro/squads/squad-creator-pro/tasks/an-compare-outputs.md +354 -0
- package/pro/squads/squad-creator-pro/tasks/an-design-clone.md +79 -0
- package/pro/squads/squad-creator-pro/tasks/an-diagnose-clone.md +87 -0
- package/pro/squads/squad-creator-pro/tasks/an-extract-dna.md +90 -0
- package/pro/squads/squad-creator-pro/tasks/an-extract-framework.md +100 -0
- package/pro/squads/squad-creator-pro/tasks/an-fidelity-score.md +108 -0
- package/pro/squads/squad-creator-pro/tasks/an-validate-clone.md +96 -0
- package/pro/squads/squad-creator-pro/tasks/auto-acquire-sources.md +349 -0
- package/pro/squads/squad-creator-pro/tasks/collect-sources.md +533 -0
- package/pro/squads/squad-creator-pro/tasks/create-agent.md +768 -0
- package/pro/squads/squad-creator-pro/tasks/create-documentation.md +258 -0
- package/pro/squads/squad-creator-pro/tasks/create-pipeline.md +296 -0
- package/pro/squads/squad-creator-pro/tasks/create-squad.md +933 -0
- package/pro/squads/squad-creator-pro/tasks/create-task.md +1148 -0
- package/pro/squads/squad-creator-pro/tasks/create-template.md +474 -0
- package/pro/squads/squad-creator-pro/tasks/create-workflow.md +720 -0
- package/pro/squads/squad-creator-pro/tasks/deconstruct.md +167 -0
- package/pro/squads/squad-creator-pro/tasks/deep-research-pre-agent.md +566 -0
- package/pro/squads/squad-creator-pro/tasks/detect-squad-context.md +81 -0
- package/pro/squads/squad-creator-pro/tasks/discover-tools.md +944 -0
- package/pro/squads/squad-creator-pro/tasks/extract-implicit.md +352 -0
- package/pro/squads/squad-creator-pro/tasks/extract-knowledge.md +577 -0
- package/pro/squads/squad-creator-pro/tasks/extract-sop.md +320 -0
- package/pro/squads/squad-creator-pro/tasks/extract-thinking-dna.md +653 -0
- package/pro/squads/squad-creator-pro/tasks/extract-voice-dna.md +619 -0
- package/pro/squads/squad-creator-pro/tasks/find-0.8.md +222 -0
- package/pro/squads/squad-creator-pro/tasks/install-commands.md +373 -0
- package/pro/squads/squad-creator-pro/tasks/lookup-model.md +78 -0
- package/pro/squads/squad-creator-pro/tasks/migrate-workflows-to-yaml.md +259 -0
- package/pro/squads/squad-creator-pro/tasks/next-squad.md +487 -0
- package/pro/squads/squad-creator-pro/tasks/optimize-workflow.md +851 -0
- package/pro/squads/squad-creator-pro/tasks/optimize.md +1082 -0
- package/pro/squads/squad-creator-pro/tasks/parallel-discovery.md +58 -0
- package/pro/squads/squad-creator-pro/tasks/pv-audit.md +244 -0
- package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment-wf-clone-mind.yaml +256 -0
- package/pro/squads/squad-creator-pro/tasks/pv-axioma-assessment.md +83 -0
- package/pro/squads/squad-creator-pro/tasks/pv-modernization-score.md +83 -0
- package/pro/squads/squad-creator-pro/tasks/qa-after-creation.md +475 -0
- package/pro/squads/squad-creator-pro/tasks/qualify-task.md +265 -0
- package/pro/squads/squad-creator-pro/tasks/reexecute-squad-phase.md +64 -0
- package/pro/squads/squad-creator-pro/tasks/refresh-registry.md +403 -0
- package/pro/squads/squad-creator-pro/tasks/smoke-test-model-routing.md +167 -0
- package/pro/squads/squad-creator-pro/tasks/squad-analytics.md +265 -0
- package/pro/squads/squad-creator-pro/tasks/squad-fusion.md +817 -0
- package/pro/squads/squad-creator-pro/tasks/squad-overview.md +683 -0
- package/pro/squads/squad-creator-pro/tasks/sync-ide-command.md +392 -0
- package/pro/squads/squad-creator-pro/tasks/update-mind.md +428 -0
- package/pro/squads/squad-creator-pro/tasks/upgrade-squad.md +919 -0
- package/pro/squads/squad-creator-pro/tasks/validate-extraction.md +209 -0
- package/pro/squads/squad-creator-pro/tasks/validate-final-artifacts.md +80 -0
- package/pro/squads/squad-creator-pro/tasks/validate-squad.md +1385 -0
- package/pro/squads/squad-creator-pro/templates/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/templates/agent-flow-doc-tmpl.md +512 -0
- package/pro/squads/squad-creator-pro/templates/agent-tmpl.md +697 -0
- package/pro/squads/squad-creator-pro/templates/config-tmpl.yaml +352 -0
- package/pro/squads/squad-creator-pro/templates/handoff-insumos-tmpl.yaml +112 -0
- package/pro/squads/squad-creator-pro/templates/orchestrator-tmpl.md +74 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-progress-tmpl.py +373 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-runner-tmpl.py +444 -0
- package/pro/squads/squad-creator-pro/templates/pipeline-state-tmpl.py +413 -0
- package/pro/squads/squad-creator-pro/templates/pop-extractor-prompt.md +549 -0
- package/pro/squads/squad-creator-pro/templates/quality-dashboard-tmpl.md +286 -0
- package/pro/squads/squad-creator-pro/templates/quality-gate-tmpl.yaml +589 -0
- package/pro/squads/squad-creator-pro/templates/readme-tmpl.md +231 -0
- package/pro/squads/squad-creator-pro/templates/research-output-tmpl.md +625 -0
- package/pro/squads/squad-creator-pro/templates/research-prompt-tmpl.md +479 -0
- package/pro/squads/squad-creator-pro/templates/squad-prd-tmpl.md +464 -0
- package/pro/squads/squad-creator-pro/templates/squad-readme-tmpl.md +170 -0
- package/pro/squads/squad-creator-pro/templates/story-create-agent-tmpl.md +284 -0
- package/pro/squads/squad-creator-pro/templates/task-tmpl.md +461 -0
- package/pro/squads/squad-creator-pro/templates/template-tmpl.yaml +227 -0
- package/pro/squads/squad-creator-pro/templates/workflow-doc-tmpl.md +860 -0
- package/pro/squads/squad-creator-pro/templates/workflow-tmpl.yaml +394 -0
- package/pro/squads/squad-creator-pro/test-cases/BATCH-PROGRESS.md +268 -0
- package/pro/squads/squad-creator-pro/test-cases/QUALIFICATION-DASHBOARD.yaml +13 -0
- package/pro/squads/squad-creator-pro/test-cases/_template.yaml +147 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT-SUMMARY.md +275 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/ASSESSMENT_SUMMARY.md +140 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/CHECKPOINT_MATRIX.md +202 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION-REPORT.md +413 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/EXECUTION_NOTES.md +358 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README-v2.2.2.md +299 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/README.md +320 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/TEST-REPORT-v2.1.md +351 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/VERIFICATION-CHECKLIST.txt +247 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/formal-qualification-report.yaml +389 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-output.yaml +366 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.1-output.yaml +452 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.1-output.yaml +281 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/haiku-v2.2.2-output.yaml +332 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/opus-baseline.yaml +517 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/qualification-report.yaml +213 -0
- package/pro/squads/squad-creator-pro/test-cases/an-assess-sources/test-case.yaml +69 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/haiku-round-1.yaml +213 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/opus-baseline.yaml +566 -0
- package/pro/squads/squad-creator-pro/test-cases/an-clone-review/qualification-report.yaml +82 -0
- package/pro/squads/squad-creator-pro/test-cases/an-design-clone/test-case.yaml +102 -0
- package/pro/squads/squad-creator-pro/test-cases/an-extract-dna/test-case.yaml +105 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/haiku-round-1.yaml +262 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/opus-baseline.yaml +266 -0
- package/pro/squads/squad-creator-pro/test-cases/an-fidelity-score/qualification-report.yaml +94 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/haiku-round-1.yaml +282 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/opus-baseline.yaml +470 -0
- package/pro/squads/squad-creator-pro/test-cases/an-validate-clone/qualification-report.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/collect-sources/test-case.yaml +105 -0
- package/pro/squads/squad-creator-pro/test-cases/create-task/test-case.yaml +104 -0
- package/pro/squads/squad-creator-pro/test-cases/cross-provider/DASHBOARD.yaml +11 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-audit/test-case.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/haiku-output.yaml +209 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/opus-baseline.yaml +96 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/sonnet-output.yaml +30 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-axioma-assessment/test-case.yaml +129 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/comparison-round-1.yaml +242 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/haiku-round-1.yaml +393 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/opus-baseline.yaml +488 -0
- package/pro/squads/squad-creator-pro/test-cases/pv-modernization-score/qualification-report.yaml +74 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/haiku-round-1.yaml +292 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/opus-baseline.yaml +603 -0
- package/pro/squads/squad-creator-pro/test-cases/qa-after-creation/qualification-report.yaml +97 -0
- package/pro/squads/squad-creator-pro/test-cases/smoke-test-model-routing/test-case.yaml +100 -0
- package/pro/squads/squad-creator-pro/test-cases/upgrade-squad/test-case.yaml +106 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/comparison-round-1.yaml +223 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1-MINE.yaml +36 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-1.yaml +193 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-2.yaml +303 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/haiku-round-3-v4-task.yaml +149 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-baseline.yaml +529 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/opus-round-3-v4-task.yaml +132 -0
- package/pro/squads/squad-creator-pro/test-cases/validate-squad/qualification-report.yaml +104 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output-v2-calibrated.yaml +200 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/haiku-output.yaml +183 -0
- package/pro/squads/squad-creator-pro/test-cases/wf-clone-mind/opus-baseline.yaml +112 -0
- package/pro/squads/squad-creator-pro/utils/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/workflows/.gitkeep +1 -0
- package/pro/squads/squad-creator-pro/workflows/create-squad.yaml +348 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-discovery.yaml +16 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-integration.yaml +16 -0
- package/pro/squads/squad-creator-pro/workflows/modules/module-quality-gates.yaml +15 -0
- package/pro/squads/squad-creator-pro/workflows/validate-squad.yaml +582 -0
- package/pro/squads/squad-creator-pro/workflows/wf-auto-acquire-sources.yaml +518 -0
- package/pro/squads/squad-creator-pro/workflows/wf-brownfield-upgrade-squad.yaml +46 -0
- package/pro/squads/squad-creator-pro/workflows/wf-clone-mind.yaml +521 -0
- package/pro/squads/squad-creator-pro/workflows/wf-context-aware-create-squad.yaml +47 -0
- package/pro/squads/squad-creator-pro/workflows/wf-create-squad.yaml +1619 -0
- package/pro/squads/squad-creator-pro/workflows/wf-cross-provider-qualification.yaml +711 -0
- package/pro/squads/squad-creator-pro/workflows/wf-discover-tools.yaml +1439 -0
- package/pro/squads/squad-creator-pro/workflows/wf-extraction-pipeline.yaml +486 -0
- package/pro/squads/squad-creator-pro/workflows/wf-mind-research-loop.yaml +668 -0
- package/pro/squads/squad-creator-pro/workflows/wf-model-tier-qualification.yaml +800 -0
- package/pro/squads/squad-creator-pro/workflows/wf-optimize-squad.yaml +684 -0
- package/pro/squads/squad-creator-pro/workflows/wf-research-then-create-agent.yaml +921 -0
- package/pro/squads/squad-creator-pro/workflows/wf-squad-fusion.yaml +1684 -0
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/.claude/hooks/code-intel-pretool.cjs +0 -107
- package/docs/guides/aios-workflows/README.md +0 -247
- package/docs/guides/aios-workflows/bob-orchestrator-workflow.md +0 -1536
- package/scripts/glue/README.md +0 -355
- package/scripts/glue/compose-agent-prompt.cjs +0 -362
|
@@ -0,0 +1,1684 @@
|
|
|
1
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
2
|
+
# WORKFLOW: SQUAD FUSION v2.0 (Dragon Ball Style)
|
|
3
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
4
|
+
# Fusão de múltiplos squads similares em um único squad otimizado
|
|
5
|
+
# Baseado em padrões de: Git Merge, Database Migration, ETL, M&A, Microservices
|
|
6
|
+
#
|
|
7
|
+
# PRINCÍPIOS FUNDAMENTAIS:
|
|
8
|
+
# 1. IDEMPOTENCY: Rodar 2x = mesmo resultado (sem duplicatas)
|
|
9
|
+
# 2. PROVENANCE: Todo componente rastreável à origem
|
|
10
|
+
# 3. ROLLBACK: Cada fase reversível
|
|
11
|
+
# 4. QUALITY GATES: Validação entre cada fase
|
|
12
|
+
# 5. INCREMENTAL: Nunca Big Bang
|
|
13
|
+
#
|
|
14
|
+
# MODOS:
|
|
15
|
+
# - YOLO: Execução automática com decisões padrão (60-75% qualidade)
|
|
16
|
+
# - QUALITY: Checkpoints humanos em cada fase (85-95% qualidade)
|
|
17
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
18
|
+
|
|
19
|
+
workflow:
|
|
20
|
+
id: wf-squad-fusion
|
|
21
|
+
name: "Squad Fusion Workflow"
|
|
22
|
+
version: "2.2.0"
|
|
23
|
+
author: "Squad Architect"
|
|
24
|
+
icon: "🐉"
|
|
25
|
+
|
|
26
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
27
|
+
# EXECUTOR DISTRIBUTION (após análise com *optimize)
|
|
28
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
29
|
+
executor_summary:
|
|
30
|
+
total_steps: 56
|
|
31
|
+
distribution:
|
|
32
|
+
Worker: { count: 44, percent: 79, description: "Determinístico, bash/template" }
|
|
33
|
+
Agent: { count: 5, percent: 9, description: "Requer LLM para decisão semântica" }
|
|
34
|
+
Hybrid: { count: 6, percent: 11, description: "Worker + Agent validation" }
|
|
35
|
+
Human: { count: 1, percent: 1, description: "Aprovação para ações irreversíveis" }
|
|
36
|
+
|
|
37
|
+
agent_decision_points:
|
|
38
|
+
- id: semantic_match_detection
|
|
39
|
+
reason: "Comparar função real de agents com nomes diferentes"
|
|
40
|
+
- id: quality_comparison
|
|
41
|
+
reason: "Avaliar qualidade além de métricas quantitativas"
|
|
42
|
+
- id: create_golden_records
|
|
43
|
+
reason: "Decidir versão canônica entre variantes"
|
|
44
|
+
- id: define_tiers
|
|
45
|
+
reason: "Organizar agents por função/propósito"
|
|
46
|
+
- id: define_routing_rules
|
|
47
|
+
reason: "Mapear especialidades para cenários de uso"
|
|
48
|
+
- id: create_orchestrator_if_needed
|
|
49
|
+
reason: "Criar orchestrator com conhecimento dos agents"
|
|
50
|
+
|
|
51
|
+
patterns_applied:
|
|
52
|
+
- "Three-Way Merge (Git)"
|
|
53
|
+
- "Expand-Contract (Database)"
|
|
54
|
+
- "ETL Quality Gates"
|
|
55
|
+
- "Strangler Fig (Microservices)"
|
|
56
|
+
- "Due Diligence (M&A)"
|
|
57
|
+
- "Entity Resolution (Deduplication)"
|
|
58
|
+
- "CDC Event Logging"
|
|
59
|
+
|
|
60
|
+
description: |
|
|
61
|
+
Workflow para fusão de múltiplos squads em um único squad consolidado.
|
|
62
|
+
Segue o princípio "Dragon Ball Fusion" - combina o melhor de cada fonte.
|
|
63
|
+
|
|
64
|
+
GARANTIAS:
|
|
65
|
+
- Zero perda de componentes (auditado)
|
|
66
|
+
- Zero duplicatas não-intencionais
|
|
67
|
+
- 100% rastreabilidade (provenance)
|
|
68
|
+
- Rollback possível até Phase 6
|
|
69
|
+
|
|
70
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
71
|
+
# CONFIGURATION
|
|
72
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
73
|
+
config:
|
|
74
|
+
modes:
|
|
75
|
+
yolo:
|
|
76
|
+
description: "Execução automática, decisões padrão"
|
|
77
|
+
human_checkpoints: false
|
|
78
|
+
default_decisions:
|
|
79
|
+
duplicate_resolution: "keep_highest_quality"
|
|
80
|
+
scope_filtering: "strict"
|
|
81
|
+
naming: "auto"
|
|
82
|
+
cleanup_sources: false # YOLO nunca deleta fontes
|
|
83
|
+
|
|
84
|
+
quality:
|
|
85
|
+
description: "Checkpoints humanos, decisões validadas"
|
|
86
|
+
human_checkpoints: true
|
|
87
|
+
requires_approval:
|
|
88
|
+
- phase_1_discovery
|
|
89
|
+
- phase_2_deduplication
|
|
90
|
+
- phase_3_scope
|
|
91
|
+
- phase_5_validation
|
|
92
|
+
|
|
93
|
+
# Diretórios padrão
|
|
94
|
+
paths:
|
|
95
|
+
workspace: "/tmp/fusion-{target_name}-{timestamp}"
|
|
96
|
+
backup: "backups/squads/pre-fusion-{timestamp}"
|
|
97
|
+
audit_log: "{workspace}/fusion-audit.yaml"
|
|
98
|
+
|
|
99
|
+
# Limiares de qualidade
|
|
100
|
+
quality_thresholds:
|
|
101
|
+
min_agent_lines: 300
|
|
102
|
+
min_task_lines: 100
|
|
103
|
+
similarity_threshold: 0.85 # Para fuzzy matching
|
|
104
|
+
|
|
105
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
106
|
+
# UNIVERSAL ANTI-PATTERNS (NUNCA FAZER)
|
|
107
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
108
|
+
anti_patterns:
|
|
109
|
+
critical:
|
|
110
|
+
- id: AP_001
|
|
111
|
+
name: "Big Bang Migration"
|
|
112
|
+
description: "Tentar fundir tudo de uma vez"
|
|
113
|
+
risk: "Falha total, impossível debugar"
|
|
114
|
+
mitigation: "Fases incrementais com validação"
|
|
115
|
+
|
|
116
|
+
- id: AP_002
|
|
117
|
+
name: "Silent Data Loss"
|
|
118
|
+
description: "Componentes desaparecem sem log"
|
|
119
|
+
risk: "Funcionalidade perdida descoberta tarde"
|
|
120
|
+
mitigation: "Audit log de cada operação"
|
|
121
|
+
|
|
122
|
+
- id: AP_003
|
|
123
|
+
name: "Force Override"
|
|
124
|
+
description: "Resolver conflitos sem análise"
|
|
125
|
+
risk: "Perda de contexto e funcionalidade"
|
|
126
|
+
mitigation: "Documentar rationale de cada decisão"
|
|
127
|
+
|
|
128
|
+
- id: AP_004
|
|
129
|
+
name: "No Rollback Plan"
|
|
130
|
+
description: "Sem backup ou checkpoint"
|
|
131
|
+
risk: "Preso com erros"
|
|
132
|
+
mitigation: "Snapshot antes de cada fase destrutiva"
|
|
133
|
+
|
|
134
|
+
- id: AP_005
|
|
135
|
+
name: "Assumption Over Count"
|
|
136
|
+
description: "Assumir contagens ao invés de executar comandos"
|
|
137
|
+
risk: "Inventário errado → fusão errada"
|
|
138
|
+
mitigation: "SEMPRE executar comandos de contagem"
|
|
139
|
+
|
|
140
|
+
- id: AP_006
|
|
141
|
+
name: "Orphaned References"
|
|
142
|
+
description: "Links quebrados após fusão"
|
|
143
|
+
risk: "Erros em runtime"
|
|
144
|
+
mitigation: "Validar todas referências pós-merge"
|
|
145
|
+
|
|
146
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
147
|
+
# PHASE 0: INITIALIZATION
|
|
148
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
149
|
+
phases:
|
|
150
|
+
- id: phase_0_init
|
|
151
|
+
name: "Initialization"
|
|
152
|
+
description: "Setup workspace e validação inicial"
|
|
153
|
+
pattern: "Pre-flight checks"
|
|
154
|
+
rollback: "Trivial - nada modificado ainda"
|
|
155
|
+
|
|
156
|
+
inputs:
|
|
157
|
+
required:
|
|
158
|
+
- name: source_squads
|
|
159
|
+
type: "list[string]"
|
|
160
|
+
description: "Lista de squads a serem fusionados"
|
|
161
|
+
validation: "Cada squad deve existir em squads/"
|
|
162
|
+
example: '["media-buy", "media-squad", "meta-ads"]'
|
|
163
|
+
|
|
164
|
+
- name: target_name
|
|
165
|
+
type: "string"
|
|
166
|
+
description: "Nome do squad resultante (snake_case)"
|
|
167
|
+
validation: "^[a-z0-9]+(-[a-z0-9]+)*$"
|
|
168
|
+
example: "traffic-masters"
|
|
169
|
+
|
|
170
|
+
- name: target_domain
|
|
171
|
+
type: "string"
|
|
172
|
+
description: "Domínio principal"
|
|
173
|
+
example: "paid_traffic"
|
|
174
|
+
|
|
175
|
+
optional:
|
|
176
|
+
- name: mode
|
|
177
|
+
type: "enum[yolo, quality]"
|
|
178
|
+
default: "quality"
|
|
179
|
+
|
|
180
|
+
- name: exclude_patterns
|
|
181
|
+
type: "list[string]"
|
|
182
|
+
description: "Patterns de agents a excluir"
|
|
183
|
+
example: '["brand-*", "pr-*", "*-organic"]'
|
|
184
|
+
|
|
185
|
+
steps:
|
|
186
|
+
- id: validate_inputs
|
|
187
|
+
action: "Validar todos os inputs"
|
|
188
|
+
checks:
|
|
189
|
+
- "target_name não existe em squads/"
|
|
190
|
+
- "source_squads tem pelo menos 2 itens"
|
|
191
|
+
- "Nenhum squad fonte é igual ao target"
|
|
192
|
+
|
|
193
|
+
- id: validate_sources
|
|
194
|
+
action: "Verificar existência de cada squad fonte"
|
|
195
|
+
command_template: |
|
|
196
|
+
for squad in {source_squads}:
|
|
197
|
+
if not exists("squads/{squad}"):
|
|
198
|
+
ABORT("Squad não existe: {squad}")
|
|
199
|
+
if not exists("squads/{squad}/agents") and not exists("squads/{squad}/skills"):
|
|
200
|
+
WARN("Squad sem agents nem skills: {squad}")
|
|
201
|
+
|
|
202
|
+
- id: create_workspace
|
|
203
|
+
action: "Criar workspace isolado"
|
|
204
|
+
commands:
|
|
205
|
+
- "mkdir -p {workspace}/agents"
|
|
206
|
+
- "mkdir -p {workspace}/tasks"
|
|
207
|
+
- "mkdir -p {workspace}/skills"
|
|
208
|
+
- "mkdir -p {workspace}/data"
|
|
209
|
+
- "mkdir -p {workspace}/templates"
|
|
210
|
+
- "mkdir -p {workspace}/checklists"
|
|
211
|
+
- "mkdir -p {workspace}/workflows"
|
|
212
|
+
- "mkdir -p {workspace}/_audit"
|
|
213
|
+
- "mkdir -p {workspace}/_conflicts"
|
|
214
|
+
|
|
215
|
+
- id: init_audit_log
|
|
216
|
+
action: "Inicializar log de auditoria"
|
|
217
|
+
creates: "{workspace}/fusion-audit.yaml"
|
|
218
|
+
template: |
|
|
219
|
+
# Fusion Audit Log
|
|
220
|
+
# Gerado automaticamente - NÃO EDITAR MANUALMENTE
|
|
221
|
+
|
|
222
|
+
fusion:
|
|
223
|
+
id: "{fusion_id}"
|
|
224
|
+
started_at: "{timestamp}"
|
|
225
|
+
mode: "{mode}"
|
|
226
|
+
target: "{target_name}"
|
|
227
|
+
sources: {source_squads}
|
|
228
|
+
|
|
229
|
+
events: []
|
|
230
|
+
|
|
231
|
+
- id: create_backup
|
|
232
|
+
action: "Backup dos squads fonte (pattern: snapshot before)"
|
|
233
|
+
command_template: |
|
|
234
|
+
mkdir -p {backup_path}
|
|
235
|
+
for squad in {source_squads}:
|
|
236
|
+
tar -czf {backup_path}/{squad}.tar.gz squads/{squad}
|
|
237
|
+
rationale: "Permite rollback completo até o final"
|
|
238
|
+
|
|
239
|
+
output:
|
|
240
|
+
workspace_path: "string"
|
|
241
|
+
backup_path: "string"
|
|
242
|
+
fusion_id: "string"
|
|
243
|
+
audit_log_path: "string"
|
|
244
|
+
|
|
245
|
+
quality_gate:
|
|
246
|
+
name: "Init Gate"
|
|
247
|
+
checks:
|
|
248
|
+
- "Workspace criado com todas subpastas"
|
|
249
|
+
- "Backup de todos squads fonte existe"
|
|
250
|
+
- "Audit log inicializado"
|
|
251
|
+
veto_on: "Qualquer check falhar"
|
|
252
|
+
|
|
253
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
254
|
+
# PHASE 1: DISCOVERY (Due Diligence - M&A Pattern)
|
|
255
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
256
|
+
- id: phase_1_discovery
|
|
257
|
+
name: "Discovery (Due Diligence)"
|
|
258
|
+
description: "Inventário COMPLETO de todos os assets"
|
|
259
|
+
pattern: "M&A Due Diligence + Schema Discovery"
|
|
260
|
+
rollback: "Trivial - apenas leitura"
|
|
261
|
+
|
|
262
|
+
critical_rule: |
|
|
263
|
+
🚨 REGRA ABSOLUTA: EXECUTAR COMANDOS, NUNCA ASSUMIR
|
|
264
|
+
|
|
265
|
+
A IA DEVE executar CADA comando listado abaixo.
|
|
266
|
+
NÃO é permitido:
|
|
267
|
+
- Estimar baseado em um squad
|
|
268
|
+
- Pular squads "similares"
|
|
269
|
+
- Arredondar números
|
|
270
|
+
- Usar contagens de sessões anteriores
|
|
271
|
+
|
|
272
|
+
CADA número deve vir de um comando executado NESTA sessão.
|
|
273
|
+
|
|
274
|
+
steps:
|
|
275
|
+
- id: inventory_agents
|
|
276
|
+
action: "Contar e listar agents de CADA squad"
|
|
277
|
+
executor: Worker
|
|
278
|
+
command_per_squad: |
|
|
279
|
+
echo "=== {squad} AGENTS ===" && \
|
|
280
|
+
find squads/{squad}/agents -name '*.md' 2>/dev/null | wc -l && \
|
|
281
|
+
find squads/{squad}/agents -name '*.md' -exec basename {} .md \; 2>/dev/null | sort
|
|
282
|
+
store_as: "inventory.{squad}.agents"
|
|
283
|
+
|
|
284
|
+
- id: inventory_tasks
|
|
285
|
+
action: "Contar tasks (MÚLTIPLOS LOCAIS)"
|
|
286
|
+
executor: Worker
|
|
287
|
+
rationale: "Tasks podem estar em /tasks, /skills/tasks, ou outros locais"
|
|
288
|
+
command_per_squad: |
|
|
289
|
+
echo "=== {squad} TASKS ===" && \
|
|
290
|
+
find squads/{squad} -path '*/tasks/*.md' -type f 2>/dev/null | wc -l && \
|
|
291
|
+
find squads/{squad} -path '*/tasks/*.md' -type f -exec basename {} .md \; 2>/dev/null | sort
|
|
292
|
+
store_as: "inventory.{squad}.tasks"
|
|
293
|
+
|
|
294
|
+
- id: inventory_skills
|
|
295
|
+
action: "Contar skills (estrutura especial)"
|
|
296
|
+
executor: Worker
|
|
297
|
+
rationale: "Skills usam SKILL.md dentro de subpastas"
|
|
298
|
+
command_per_squad: |
|
|
299
|
+
echo "=== {squad} SKILLS ===" && \
|
|
300
|
+
find squads/{squad} -name 'SKILL.md' -type f 2>/dev/null | wc -l && \
|
|
301
|
+
find squads/{squad} -name 'SKILL.md' -type f 2>/dev/null | xargs -I {} dirname {} | xargs -I {} basename {}
|
|
302
|
+
store_as: "inventory.{squad}.skills"
|
|
303
|
+
|
|
304
|
+
- id: inventory_data
|
|
305
|
+
action: "Contar data/knowledge files"
|
|
306
|
+
executor: Worker
|
|
307
|
+
command_per_squad: |
|
|
308
|
+
echo "=== {squad} DATA ===" && \
|
|
309
|
+
count_data=$(find squads/{squad}/data -name '*.md' -type f 2>/dev/null | wc -l) && \
|
|
310
|
+
count_knowledge=$(find squads/{squad}/knowledge -name '*.md' -type f 2>/dev/null | wc -l) && \
|
|
311
|
+
echo "Data: $count_data, Knowledge: $count_knowledge, Total: $((count_data + count_knowledge))"
|
|
312
|
+
store_as: "inventory.{squad}.data"
|
|
313
|
+
|
|
314
|
+
- id: inventory_other
|
|
315
|
+
action: "Contar templates, checklists, workflows"
|
|
316
|
+
executor: Worker
|
|
317
|
+
command_per_squad: |
|
|
318
|
+
echo "=== {squad} OTHER ===" && \
|
|
319
|
+
echo "Templates: $(find squads/{squad} -path '*/templates/*.md' -type f 2>/dev/null | wc -l)" && \
|
|
320
|
+
echo "Checklists: $(find squads/{squad} -path '*/checklists/*.md' -type f 2>/dev/null | wc -l)" && \
|
|
321
|
+
echo "Workflows: $(find squads/{squad} -path '*/workflows/*.yaml' -o -path '*/workflows/*.md' -type f 2>/dev/null | wc -l)"
|
|
322
|
+
store_as: "inventory.{squad}.other"
|
|
323
|
+
|
|
324
|
+
- id: inventory_quality
|
|
325
|
+
action: "Medir qualidade dos agents (linhas de código)"
|
|
326
|
+
executor: Worker
|
|
327
|
+
rationale: "Linhas = proxy para completude"
|
|
328
|
+
command_per_squad: |
|
|
329
|
+
echo "=== {squad} QUALITY ===" && \
|
|
330
|
+
wc -l squads/{squad}/agents/*.md 2>/dev/null | sort -n
|
|
331
|
+
store_as: "inventory.{squad}.quality"
|
|
332
|
+
|
|
333
|
+
- id: build_inventory_table
|
|
334
|
+
action: "Construir tabela consolidada"
|
|
335
|
+
executor: Worker
|
|
336
|
+
template: |
|
|
337
|
+
## 📊 INVENTÁRIO COMPLETO (Discovery)
|
|
338
|
+
|
|
339
|
+
| Squad | Agents | Tasks | Skills | Data | Templates | Checklists | Workflows |
|
|
340
|
+
|-------|--------|-------|--------|------|-----------|------------|-----------|
|
|
341
|
+
{{#each squads}}
|
|
342
|
+
| {{name}} | {{agents}} | {{tasks}} | {{skills}} | {{data}} | {{templates}} | {{checklists}} | {{workflows}} |
|
|
343
|
+
{{/each}}
|
|
344
|
+
| **TOTAL** | **{{sum.agents}}** | **{{sum.tasks}}** | **{{sum.skills}}** | **{{sum.data}}** | **{{sum.templates}}** | **{{sum.checklists}}** | **{{sum.workflows}}** |
|
|
345
|
+
|
|
346
|
+
### Validação de Soma
|
|
347
|
+
- Soma calculada: {{sum.agents}} agents
|
|
348
|
+
- Soma por comando: `{{sum_command_result}}`
|
|
349
|
+
- Match: {{match_status}}
|
|
350
|
+
|
|
351
|
+
- id: cross_reference_map
|
|
352
|
+
action: "Mapear referências cruzadas entre componentes"
|
|
353
|
+
executor: Worker
|
|
354
|
+
rationale: "Pattern: Foreign Key Reconciliation"
|
|
355
|
+
command: |
|
|
356
|
+
# Encontrar referências a outros agents/tasks nos arquivos
|
|
357
|
+
for squad in {source_squads}:
|
|
358
|
+
grep -r "handoff_to\|depends_on\|uses\|calls" squads/{squad} --include="*.md" --include="*.yaml"
|
|
359
|
+
store_as: "cross_references"
|
|
360
|
+
|
|
361
|
+
- id: log_discovery
|
|
362
|
+
action: "Registrar no audit log"
|
|
363
|
+
executor: Worker
|
|
364
|
+
audit_event:
|
|
365
|
+
type: "discovery_complete"
|
|
366
|
+
data: "inventory"
|
|
367
|
+
timestamp: "{now}"
|
|
368
|
+
|
|
369
|
+
checkpoint:
|
|
370
|
+
type: "human_review"
|
|
371
|
+
condition: "mode == 'quality'"
|
|
372
|
+
prompt: |
|
|
373
|
+
## Discovery Complete
|
|
374
|
+
|
|
375
|
+
{{inventory_table}}
|
|
376
|
+
|
|
377
|
+
### Validação
|
|
378
|
+
- [ ] Todas as contagens estão corretas?
|
|
379
|
+
- [ ] Algum squad parece incompleto?
|
|
380
|
+
- [ ] Cross-references mapeadas?
|
|
381
|
+
|
|
382
|
+
Aprovar para continuar?
|
|
383
|
+
options:
|
|
384
|
+
- "Aprovar"
|
|
385
|
+
- "Refazer contagem de squad específico"
|
|
386
|
+
- "Abortar fusão"
|
|
387
|
+
|
|
388
|
+
quality_gate:
|
|
389
|
+
name: "Discovery Gate"
|
|
390
|
+
checks:
|
|
391
|
+
- "Todos squads têm pelo menos 1 agent OU 1 skill"
|
|
392
|
+
- "Soma manual = soma automática"
|
|
393
|
+
- "Nenhum squad com 0 assets"
|
|
394
|
+
veto_on: "Discrepância de contagem > 0"
|
|
395
|
+
|
|
396
|
+
output:
|
|
397
|
+
inventory: "InventoryTable"
|
|
398
|
+
total_assets: "AssetCounts"
|
|
399
|
+
cross_references: "list[Reference]"
|
|
400
|
+
|
|
401
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
402
|
+
# PHASE 2: DEDUPLICATION (Entity Resolution Pattern)
|
|
403
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
404
|
+
- id: phase_2_deduplication
|
|
405
|
+
name: "Deduplication (Entity Resolution)"
|
|
406
|
+
description: "Identificar e resolver duplicatas"
|
|
407
|
+
pattern: "Entity Resolution + Fuzzy Matching + Golden Record"
|
|
408
|
+
rollback: "Trivial - apenas análise"
|
|
409
|
+
|
|
410
|
+
steps:
|
|
411
|
+
- id: exact_match_detection
|
|
412
|
+
action: "Detectar duplicatas por nome exato"
|
|
413
|
+
executor: Worker
|
|
414
|
+
algorithm: |
|
|
415
|
+
1. Criar set de todos os nomes de agents/tasks
|
|
416
|
+
2. Identificar nomes que aparecem em múltiplos squads
|
|
417
|
+
3. Para cada duplicata:
|
|
418
|
+
a. Comparar conteúdo (hash)
|
|
419
|
+
b. Se hash igual → duplicata exata
|
|
420
|
+
c. Se hash diferente → variantes
|
|
421
|
+
command: |
|
|
422
|
+
# Listar todos agents de todos squads
|
|
423
|
+
for squad in {source_squads}:
|
|
424
|
+
find squads/{squad}/agents -name '*.md' -exec basename {} .md \;
|
|
425
|
+
# Encontrar duplicados
|
|
426
|
+
| sort | uniq -d
|
|
427
|
+
|
|
428
|
+
- id: semantic_match_detection
|
|
429
|
+
action: "Detectar duplicatas semânticas (mesma função, nomes diferentes)"
|
|
430
|
+
executor: Agent
|
|
431
|
+
rationale: |
|
|
432
|
+
Pattern: Fuzzy Matching
|
|
433
|
+
Mapa estático de sinônimos é INSUFICIENTE.
|
|
434
|
+
LLM precisa ler descrições e comparar função real.
|
|
435
|
+
semantic_groups:
|
|
436
|
+
- group: "analyst"
|
|
437
|
+
patterns: ["ads-analyst", "performance-analyst", "analyst", "metrics-analyst"]
|
|
438
|
+
- group: "scaler"
|
|
439
|
+
patterns: ["scale-optimizer", "scaling-specialist", "scaler", "growth-optimizer"]
|
|
440
|
+
- group: "auditor"
|
|
441
|
+
patterns: ["fiscal", "compliance-auditor", "auditor", "validator"]
|
|
442
|
+
- group: "creative"
|
|
443
|
+
patterns: ["creative-analyst", "creative-strategist", "creative-director", "creative-generator"]
|
|
444
|
+
- group: "traffic"
|
|
445
|
+
patterns: ["traffic-manager", "traffic-head", "media-buyer", "ads-manager"]
|
|
446
|
+
|
|
447
|
+
- id: quality_comparison
|
|
448
|
+
action: "Comparar qualidade das variantes"
|
|
449
|
+
executor: Agent
|
|
450
|
+
rationale: |
|
|
451
|
+
Linhas != Qualidade. LLM precisa ler AMBOS os agents e avaliar:
|
|
452
|
+
- Profundidade do voice_dna
|
|
453
|
+
- Qualidade dos output_examples
|
|
454
|
+
- Frameworks documentados
|
|
455
|
+
- Anti-patterns definidos
|
|
456
|
+
metrics:
|
|
457
|
+
- name: "lines"
|
|
458
|
+
description: "Linhas de código (mais = mais completo)"
|
|
459
|
+
weight: 0.4
|
|
460
|
+
- name: "voice_dna"
|
|
461
|
+
description: "Presença de voice_dna section"
|
|
462
|
+
weight: 0.2
|
|
463
|
+
- name: "output_examples"
|
|
464
|
+
description: "Número de output_examples"
|
|
465
|
+
weight: 0.2
|
|
466
|
+
- name: "frameworks"
|
|
467
|
+
description: "Frameworks documentados"
|
|
468
|
+
weight: 0.1
|
|
469
|
+
- name: "recency"
|
|
470
|
+
description: "Data de última modificação"
|
|
471
|
+
weight: 0.1
|
|
472
|
+
command_per_duplicate: |
|
|
473
|
+
# Para cada par de duplicatas
|
|
474
|
+
echo "=== Comparando {agent_a} vs {agent_b} ===" && \
|
|
475
|
+
echo "Linhas A: $(wc -l < squads/{squad_a}/agents/{agent_a}.md)" && \
|
|
476
|
+
echo "Linhas B: $(wc -l < squads/{squad_b}/agents/{agent_b}.md)" && \
|
|
477
|
+
echo "voice_dna A: $(grep -c 'voice_dna' squads/{squad_a}/agents/{agent_a}.md)" && \
|
|
478
|
+
echo "voice_dna B: $(grep -c 'voice_dna' squads/{squad_b}/agents/{agent_b}.md)"
|
|
479
|
+
|
|
480
|
+
- id: create_golden_records
|
|
481
|
+
action: "Criar registros dourados (versão canônica)"
|
|
482
|
+
executor: Hybrid
|
|
483
|
+
rationale: |
|
|
484
|
+
Pattern: Golden Record Creation
|
|
485
|
+
- YOLO mode: Agent decide baseado em heurísticas
|
|
486
|
+
- QUALITY mode: Agent recomenda, Human aprova
|
|
487
|
+
rules:
|
|
488
|
+
yolo_mode:
|
|
489
|
+
- "Escolher agent com mais linhas"
|
|
490
|
+
- "Em empate, escolher mais recente"
|
|
491
|
+
quality_mode:
|
|
492
|
+
- "Apresentar comparação ao humano"
|
|
493
|
+
- "Humano escolhe ou pede merge manual"
|
|
494
|
+
|
|
495
|
+
- id: build_dedup_table
|
|
496
|
+
action: "Construir tabela de deduplicação"
|
|
497
|
+
executor: Worker
|
|
498
|
+
template: |
|
|
499
|
+
## 🔴 DUPLICATAS DETECTADAS
|
|
500
|
+
|
|
501
|
+
### Duplicatas Exatas (mesmo nome)
|
|
502
|
+
| Agent | Squad A | Squad B | Linhas A | Linhas B | 🏆 Vencedor | Rationale |
|
|
503
|
+
|-------|---------|---------|----------|----------|-------------|-----------|
|
|
504
|
+
{{#each exact_duplicates}}
|
|
505
|
+
| {{name}} | {{squad_a}} | {{squad_b}} | {{lines_a}} | {{lines_b}} | **{{winner}}** | {{rationale}} |
|
|
506
|
+
{{/each}}
|
|
507
|
+
|
|
508
|
+
### Duplicatas Semânticas (função similar)
|
|
509
|
+
| Função | Agent A (Squad) | Agent B (Squad) | Score A | Score B | 🏆 Vencedor |
|
|
510
|
+
|--------|-----------------|-----------------|---------|---------|-------------|
|
|
511
|
+
{{#each semantic_duplicates}}
|
|
512
|
+
| {{function}} | {{agent_a}} ({{squad_a}}) | {{agent_b}} ({{squad_b}}) | {{score_a}} | {{score_b}} | **{{winner}}** |
|
|
513
|
+
{{/each}}
|
|
514
|
+
|
|
515
|
+
### Decisões de Merge
|
|
516
|
+
Total duplicatas: {{total_duplicates}}
|
|
517
|
+
- Resolvidas automaticamente: {{auto_resolved}}
|
|
518
|
+
- Requerem revisão humana: {{needs_review}}
|
|
519
|
+
|
|
520
|
+
- id: log_deduplication
|
|
521
|
+
action: "Registrar decisões no audit log"
|
|
522
|
+
executor: Worker
|
|
523
|
+
audit_event:
|
|
524
|
+
type: "deduplication_complete"
|
|
525
|
+
decisions: "dedup_decisions"
|
|
526
|
+
timestamp: "{now}"
|
|
527
|
+
|
|
528
|
+
checkpoint:
|
|
529
|
+
type: "human_review"
|
|
530
|
+
condition: "mode == 'quality'"
|
|
531
|
+
prompt: |
|
|
532
|
+
## Deduplication Results
|
|
533
|
+
|
|
534
|
+
{{dedup_table}}
|
|
535
|
+
|
|
536
|
+
### Revisão Necessária
|
|
537
|
+
{{#each needs_review}}
|
|
538
|
+
- {{agent_a}} vs {{agent_b}}: Qual manter?
|
|
539
|
+
{{/each}}
|
|
540
|
+
|
|
541
|
+
Aprovar resoluções?
|
|
542
|
+
options:
|
|
543
|
+
- "Aprovar todas"
|
|
544
|
+
- "Revisar caso a caso"
|
|
545
|
+
- "Abortar fusão"
|
|
546
|
+
|
|
547
|
+
quality_gate:
|
|
548
|
+
name: "Deduplication Gate"
|
|
549
|
+
checks:
|
|
550
|
+
- "Todas duplicatas têm decisão"
|
|
551
|
+
- "Nenhum conflito não-resolvido"
|
|
552
|
+
- "Winners existem no disco"
|
|
553
|
+
veto_on: "Duplicata sem resolução"
|
|
554
|
+
|
|
555
|
+
output:
|
|
556
|
+
duplicates_found: "number"
|
|
557
|
+
duplicates_resolved: "list[DedupDecision]"
|
|
558
|
+
agents_to_keep: "list[{agent, source_squad}]"
|
|
559
|
+
agents_to_exclude: "list[{agent, reason}]"
|
|
560
|
+
|
|
561
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
562
|
+
# PHASE 3: SCOPE FILTERING
|
|
563
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
564
|
+
- id: phase_3_scope
|
|
565
|
+
name: "Scope Filtering"
|
|
566
|
+
description: "Filtrar componentes fora do domínio target"
|
|
567
|
+
pattern: "Domain-Driven Filtering"
|
|
568
|
+
rollback: "Trivial - apenas classificação"
|
|
569
|
+
|
|
570
|
+
steps:
|
|
571
|
+
- id: define_domain_keywords
|
|
572
|
+
action: "Definir keywords do domínio target"
|
|
573
|
+
executor: Worker
|
|
574
|
+
example:
|
|
575
|
+
domain: "paid_traffic"
|
|
576
|
+
include_keywords:
|
|
577
|
+
primary: ["ads", "traffic", "campaign", "pixel", "tracking", "attribution"]
|
|
578
|
+
secondary: ["creative", "copy", "scaling", "optimization", "roas", "cpa", "ctr"]
|
|
579
|
+
platforms: ["meta", "google", "youtube", "tiktok", "linkedin"]
|
|
580
|
+
exclude_keywords:
|
|
581
|
+
explicit: ["brand", "pr", "organic", "seo", "content-marketing"]
|
|
582
|
+
ambiguous: ["social", "web-design", "email"] # Requer análise
|
|
583
|
+
|
|
584
|
+
- id: classify_agents
|
|
585
|
+
action: "Classificar cada agent como IN_SCOPE ou OUT_OF_SCOPE"
|
|
586
|
+
executor: Hybrid
|
|
587
|
+
rationale: |
|
|
588
|
+
- Score >= 2 ou < 0: Worker decide (determinístico)
|
|
589
|
+
- Score 0-2: Agent analisa conteúdo e decide
|
|
590
|
+
algorithm: |
|
|
591
|
+
Para cada agent não-excluído por deduplicação:
|
|
592
|
+
1. Extrair nome e primeiro parágrafo
|
|
593
|
+
2. Calcular score de relevância:
|
|
594
|
+
- +2 por cada primary keyword
|
|
595
|
+
- +1 por cada secondary keyword
|
|
596
|
+
- -2 por cada exclude keyword
|
|
597
|
+
3. Se score >= 2: IN_SCOPE
|
|
598
|
+
Se score < 0: OUT_OF_SCOPE
|
|
599
|
+
Se 0 <= score < 2: NEEDS_REVIEW
|
|
600
|
+
command_per_agent: |
|
|
601
|
+
echo "=== Classificando {agent} ===" && \
|
|
602
|
+
head -50 squads/{squad}/agents/{agent}.md | \
|
|
603
|
+
grep -iE "ads|traffic|campaign|pixel|scaling|roas|meta|google" | wc -l
|
|
604
|
+
|
|
605
|
+
- id: classify_tasks
|
|
606
|
+
action: "Classificar tasks pelo mesmo critério"
|
|
607
|
+
executor: Hybrid
|
|
608
|
+
note: "Tasks geralmente são mais específicas, menos ambiguidade"
|
|
609
|
+
|
|
610
|
+
- id: build_scope_table
|
|
611
|
+
action: "Construir tabela de classificação"
|
|
612
|
+
executor: Worker
|
|
613
|
+
template: |
|
|
614
|
+
## 🎯 CLASSIFICAÇÃO DE ESCOPO
|
|
615
|
+
|
|
616
|
+
### ✅ IN_SCOPE ({{in_scope_count}} componentes)
|
|
617
|
+
{{#each in_scope}}
|
|
618
|
+
- **{{name}}** ({{squad}}) - Score: {{score}} - {{keywords_matched}}
|
|
619
|
+
{{/each}}
|
|
620
|
+
|
|
621
|
+
### ❌ OUT_OF_SCOPE ({{out_scope_count}} componentes)
|
|
622
|
+
{{#each out_of_scope}}
|
|
623
|
+
- ~~{{name}}~~ ({{squad}}) - Motivo: {{reason}}
|
|
624
|
+
{{/each}}
|
|
625
|
+
|
|
626
|
+
### ⚠️ NEEDS_REVIEW ({{review_count}} componentes)
|
|
627
|
+
{{#each needs_review}}
|
|
628
|
+
- **{{name}}** ({{squad}}) - Score: {{score}} - Ambíguo: {{ambiguity_reason}}
|
|
629
|
+
{{/each}}
|
|
630
|
+
|
|
631
|
+
- id: log_scope
|
|
632
|
+
action: "Registrar no audit log"
|
|
633
|
+
executor: Worker
|
|
634
|
+
audit_event:
|
|
635
|
+
type: "scope_filtering_complete"
|
|
636
|
+
in_scope: "in_scope_count"
|
|
637
|
+
out_of_scope: "out_scope_count"
|
|
638
|
+
timestamp: "{now}"
|
|
639
|
+
|
|
640
|
+
checkpoint:
|
|
641
|
+
type: "human_review"
|
|
642
|
+
condition: "mode == 'quality'"
|
|
643
|
+
prompt: |
|
|
644
|
+
## Scope Classification
|
|
645
|
+
|
|
646
|
+
{{scope_table}}
|
|
647
|
+
|
|
648
|
+
### Decisões pendentes
|
|
649
|
+
{{#each needs_review}}
|
|
650
|
+
- {{name}}: Incluir ou excluir?
|
|
651
|
+
{{/each}}
|
|
652
|
+
|
|
653
|
+
Opções:
|
|
654
|
+
1. Aprovar como está
|
|
655
|
+
2. Incluir todos ambíguos
|
|
656
|
+
3. Excluir todos ambíguos
|
|
657
|
+
4. Decidir caso a caso
|
|
658
|
+
options:
|
|
659
|
+
- "1"
|
|
660
|
+
- "2"
|
|
661
|
+
- "3"
|
|
662
|
+
- "4"
|
|
663
|
+
|
|
664
|
+
quality_gate:
|
|
665
|
+
name: "Scope Gate"
|
|
666
|
+
checks:
|
|
667
|
+
- "Pelo menos 5 agents IN_SCOPE"
|
|
668
|
+
- "Nenhum componente sem classificação"
|
|
669
|
+
- "Exclusões têm rationale"
|
|
670
|
+
veto_on: "Menos de 5 agents no escopo"
|
|
671
|
+
|
|
672
|
+
output:
|
|
673
|
+
final_components:
|
|
674
|
+
agents: "list[{name, source}]"
|
|
675
|
+
tasks: "list[{name, source}]"
|
|
676
|
+
skills: "list[{name, source}]"
|
|
677
|
+
data: "list[{name, source}]"
|
|
678
|
+
excluded_components: "list[{name, reason}]"
|
|
679
|
+
|
|
680
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
681
|
+
# PHASE 4: COLLECTION (ETL Extract + Transform)
|
|
682
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
683
|
+
- id: phase_4_collection
|
|
684
|
+
name: "Collection (ETL Extract)"
|
|
685
|
+
description: "Copiar componentes selecionados para workspace"
|
|
686
|
+
pattern: "ETL Extract + Idempotency + Exactly-Once"
|
|
687
|
+
rollback: "Deletar workspace e recomeçar"
|
|
688
|
+
|
|
689
|
+
critical_rule: |
|
|
690
|
+
🚨 IDEMPOTENCY: Rodar esta fase 2x deve dar o mesmo resultado
|
|
691
|
+
|
|
692
|
+
Cada cópia deve:
|
|
693
|
+
1. Verificar se já existe no destino
|
|
694
|
+
2. Se existe E é idêntico → skip
|
|
695
|
+
3. Se existe E é diferente → CONFLICT (mover para _conflicts/)
|
|
696
|
+
4. Se não existe → copiar
|
|
697
|
+
|
|
698
|
+
steps:
|
|
699
|
+
- id: collect_agents
|
|
700
|
+
action: "Copiar agents selecionados"
|
|
701
|
+
executor: Worker
|
|
702
|
+
command_per_agent: |
|
|
703
|
+
source="squads/{source_squad}/agents/{agent}.md"
|
|
704
|
+
dest="{workspace}/agents/{agent}.md"
|
|
705
|
+
|
|
706
|
+
if [ -f "$dest" ]; then
|
|
707
|
+
if diff -q "$source" "$dest" > /dev/null; then
|
|
708
|
+
echo "SKIP: {agent} já existe (idêntico)"
|
|
709
|
+
else
|
|
710
|
+
echo "CONFLICT: {agent} existe com conteúdo diferente"
|
|
711
|
+
mv "$dest" "{workspace}/_conflicts/{agent}-{source_squad}.md"
|
|
712
|
+
cp "$source" "$dest"
|
|
713
|
+
fi
|
|
714
|
+
else
|
|
715
|
+
cp "$source" "$dest"
|
|
716
|
+
echo "COPIED: {agent}"
|
|
717
|
+
fi
|
|
718
|
+
audit_each: true
|
|
719
|
+
|
|
720
|
+
- id: collect_tasks
|
|
721
|
+
action: "Copiar tasks (com dedup por nome)"
|
|
722
|
+
executor: Worker
|
|
723
|
+
command: |
|
|
724
|
+
for squad in {source_squads}:
|
|
725
|
+
find squads/{squad} -path '*/tasks/*.md' -type f | while read task; do
|
|
726
|
+
name=$(basename "$task")
|
|
727
|
+
dest="{workspace}/tasks/$name"
|
|
728
|
+
# Mesmo padrão de idempotency
|
|
729
|
+
...
|
|
730
|
+
done
|
|
731
|
+
|
|
732
|
+
- id: collect_skills
|
|
733
|
+
action: "Copiar estrutura de skills preservando hierarquia"
|
|
734
|
+
executor: Worker
|
|
735
|
+
command: |
|
|
736
|
+
for squad in {source_squads}:
|
|
737
|
+
if [ -d "squads/{squad}/skills" ]; then
|
|
738
|
+
cp -rn squads/{squad}/skills/* {workspace}/skills/ 2>/dev/null || true
|
|
739
|
+
fi
|
|
740
|
+
|
|
741
|
+
- id: collect_data
|
|
742
|
+
action: "Copiar data e knowledge bases"
|
|
743
|
+
executor: Worker
|
|
744
|
+
command: |
|
|
745
|
+
for squad in {source_squads}:
|
|
746
|
+
find squads/{squad}/data squads/{squad}/knowledge -name '*.md' -type f 2>/dev/null | while read file; do
|
|
747
|
+
name=$(basename "$file")
|
|
748
|
+
cp -n "$file" "{workspace}/data/$name" 2>/dev/null || echo "SKIP: $name exists"
|
|
749
|
+
done
|
|
750
|
+
|
|
751
|
+
- id: collect_templates
|
|
752
|
+
action: "Copiar templates"
|
|
753
|
+
executor: Worker
|
|
754
|
+
command: |
|
|
755
|
+
for squad in {source_squads}:
|
|
756
|
+
find squads/{squad} -path '*/templates/*.md' -type f 2>/dev/null | while read file; do
|
|
757
|
+
name=$(basename "$file")
|
|
758
|
+
cp -n "$file" "{workspace}/templates/$name" 2>/dev/null || echo "SKIP: $name exists"
|
|
759
|
+
done
|
|
760
|
+
|
|
761
|
+
- id: collect_checklists
|
|
762
|
+
action: "Copiar checklists"
|
|
763
|
+
executor: Worker
|
|
764
|
+
command: |
|
|
765
|
+
for squad in {source_squads}:
|
|
766
|
+
find squads/{squad} -path '*/checklists/*.md' -type f 2>/dev/null | while read file; do
|
|
767
|
+
name=$(basename "$file")
|
|
768
|
+
cp -n "$file" "{workspace}/checklists/$name" 2>/dev/null || echo "SKIP: $name exists"
|
|
769
|
+
done
|
|
770
|
+
|
|
771
|
+
- id: collect_workflows
|
|
772
|
+
action: "Copiar workflows"
|
|
773
|
+
executor: Worker
|
|
774
|
+
command: |
|
|
775
|
+
for squad in {source_squads}:
|
|
776
|
+
find squads/{squad} -path '*/workflows/*.yaml' -o -path '*/workflows/*.md' -type f 2>/dev/null | while read file; do
|
|
777
|
+
name=$(basename "$file")
|
|
778
|
+
cp -n "$file" "{workspace}/workflows/$name" 2>/dev/null || echo "SKIP: $name exists"
|
|
779
|
+
done
|
|
780
|
+
|
|
781
|
+
- id: handle_conflicts
|
|
782
|
+
action: "Listar conflitos para resolução"
|
|
783
|
+
executor: Hybrid
|
|
784
|
+
rationale: |
|
|
785
|
+
- Listar: Worker (ls)
|
|
786
|
+
- Resolver: Agent decide ou Human aprova
|
|
787
|
+
command: |
|
|
788
|
+
ls {workspace}/_conflicts/ 2>/dev/null | wc -l
|
|
789
|
+
if_conflicts: "Apresentar ao humano para resolução"
|
|
790
|
+
|
|
791
|
+
- id: verify_collection
|
|
792
|
+
action: "Verificar contagens pós-coleta"
|
|
793
|
+
executor: Worker
|
|
794
|
+
command: |
|
|
795
|
+
echo "=== WORKSPACE CONTENTS ===" && \
|
|
796
|
+
echo "Agents: $(find {workspace}/agents -name '*.md' | wc -l)" && \
|
|
797
|
+
echo "Tasks: $(find {workspace}/tasks -name '*.md' | wc -l)" && \
|
|
798
|
+
echo "Skills: $(find {workspace}/skills -name 'SKILL.md' | wc -l)" && \
|
|
799
|
+
echo "Data: $(find {workspace}/data -name '*.md' | wc -l)" && \
|
|
800
|
+
echo "Templates: $(find {workspace}/templates -name '*.md' | wc -l)" && \
|
|
801
|
+
echo "Checklists: $(find {workspace}/checklists -name '*.md' | wc -l)" && \
|
|
802
|
+
echo "Workflows: $(find {workspace}/workflows -name '*.yaml' -o -name '*.md' | wc -l)" && \
|
|
803
|
+
echo "Conflicts: $(find {workspace}/_conflicts -name '*.md' | wc -l)"
|
|
804
|
+
|
|
805
|
+
- id: reconciliation
|
|
806
|
+
action: "Reconciliação: comparar esperado vs coletado"
|
|
807
|
+
executor: Worker
|
|
808
|
+
rationale: "Pattern: ETL Reconciliation"
|
|
809
|
+
check: |
|
|
810
|
+
expected_agents = len(final_components.agents)
|
|
811
|
+
collected_agents = count({workspace}/agents/*.md)
|
|
812
|
+
if expected_agents != collected_agents:
|
|
813
|
+
ALERT("Discrepância: esperado {expected}, coletado {collected}")
|
|
814
|
+
|
|
815
|
+
- id: log_collection
|
|
816
|
+
action: "Registrar no audit log"
|
|
817
|
+
executor: Worker
|
|
818
|
+
audit_event:
|
|
819
|
+
type: "collection_complete"
|
|
820
|
+
collected: "workspace_contents"
|
|
821
|
+
conflicts: "conflict_count"
|
|
822
|
+
timestamp: "{now}"
|
|
823
|
+
|
|
824
|
+
quality_gate:
|
|
825
|
+
name: "Collection Gate"
|
|
826
|
+
checks:
|
|
827
|
+
- "Contagem coletada = contagem esperada (ou diferença explicada)"
|
|
828
|
+
- "Zero conflitos não-resolvidos"
|
|
829
|
+
- "Todos arquivos copiados são válidos (não vazios)"
|
|
830
|
+
veto_on: "Discrepância não explicada OU conflito não resolvido"
|
|
831
|
+
|
|
832
|
+
output:
|
|
833
|
+
workspace_contents:
|
|
834
|
+
agents: "number"
|
|
835
|
+
tasks: "number"
|
|
836
|
+
skills: "number"
|
|
837
|
+
data: "number"
|
|
838
|
+
templates: "number"
|
|
839
|
+
checklists: "number"
|
|
840
|
+
workflows: "number"
|
|
841
|
+
conflicts_resolved: "number"
|
|
842
|
+
provenance_map: "map[component -> source_squad]"
|
|
843
|
+
|
|
844
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
845
|
+
# PHASE 5: VALIDATION (Quality Gates)
|
|
846
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
847
|
+
- id: phase_5_validation
|
|
848
|
+
name: "Validation (Quality Gates)"
|
|
849
|
+
description: "Validar integridade antes de criar estrutura final"
|
|
850
|
+
pattern: "ETL Quality Gates + Data Validation"
|
|
851
|
+
rollback: "Voltar para Phase 4 e corrigir"
|
|
852
|
+
|
|
853
|
+
steps:
|
|
854
|
+
- id: structural_validation
|
|
855
|
+
action: "Validar estrutura de cada componente"
|
|
856
|
+
executor: Worker
|
|
857
|
+
checks:
|
|
858
|
+
agents:
|
|
859
|
+
- "Arquivo não vazio"
|
|
860
|
+
- "YAML frontmatter válido (se presente)"
|
|
861
|
+
- "Seções obrigatórias presentes"
|
|
862
|
+
tasks:
|
|
863
|
+
- "Arquivo não vazio"
|
|
864
|
+
- "Estrutura de task válida"
|
|
865
|
+
skills:
|
|
866
|
+
- "SKILL.md existe em cada pasta de skill"
|
|
867
|
+
|
|
868
|
+
- id: reference_validation
|
|
869
|
+
action: "Validar todas as referências"
|
|
870
|
+
executor: Worker
|
|
871
|
+
rationale: "Pattern: Foreign Key Validation"
|
|
872
|
+
checks:
|
|
873
|
+
- "handoff_to referencia agents existentes"
|
|
874
|
+
- "depends_on referencia tasks existentes"
|
|
875
|
+
- "uses referencia data existente"
|
|
876
|
+
command: |
|
|
877
|
+
# Extrair todas referências
|
|
878
|
+
grep -rh "handoff_to\|depends_on\|uses" {workspace} --include="*.md" | \
|
|
879
|
+
# Verificar se targets existem
|
|
880
|
+
while read ref; do
|
|
881
|
+
target=$(echo "$ref" | extract_target)
|
|
882
|
+
if ! exists("{workspace}/*/$target*"); then
|
|
883
|
+
echo "BROKEN REF: $ref"
|
|
884
|
+
fi
|
|
885
|
+
done
|
|
886
|
+
|
|
887
|
+
- id: quality_validation
|
|
888
|
+
action: "Validar qualidade mínima"
|
|
889
|
+
executor: Worker
|
|
890
|
+
checks:
|
|
891
|
+
- name: "Agent Lines"
|
|
892
|
+
rule: "Agents >= 300 linhas (exceto orchestrators)"
|
|
893
|
+
command: |
|
|
894
|
+
for agent in {workspace}/agents/*.md; do
|
|
895
|
+
lines=$(wc -l < "$agent")
|
|
896
|
+
if [ $lines -lt 300 ]; then
|
|
897
|
+
echo "WARN: $(basename $agent) tem apenas $lines linhas"
|
|
898
|
+
fi
|
|
899
|
+
done
|
|
900
|
+
|
|
901
|
+
- name: "Task Lines"
|
|
902
|
+
rule: "Tasks >= 100 linhas"
|
|
903
|
+
|
|
904
|
+
- name: "Required Sections"
|
|
905
|
+
rule: "Agents têm voice_dna, output_examples, anti_patterns"
|
|
906
|
+
command: |
|
|
907
|
+
for agent in {workspace}/agents/*.md; do
|
|
908
|
+
if ! grep -q "voice_dna" "$agent"; then
|
|
909
|
+
echo "MISSING voice_dna: $(basename $agent)"
|
|
910
|
+
fi
|
|
911
|
+
if ! grep -q "output_examples" "$agent"; then
|
|
912
|
+
echo "MISSING output_examples: $(basename $agent)"
|
|
913
|
+
fi
|
|
914
|
+
done
|
|
915
|
+
|
|
916
|
+
- id: build_validation_report
|
|
917
|
+
action: "Construir relatório de validação"
|
|
918
|
+
executor: Worker
|
|
919
|
+
template: |
|
|
920
|
+
## ✅ VALIDATION REPORT
|
|
921
|
+
|
|
922
|
+
### Structural Validation
|
|
923
|
+
- Agents válidos: {{valid_agents}}/{{total_agents}}
|
|
924
|
+
- Tasks válidas: {{valid_tasks}}/{{total_tasks}}
|
|
925
|
+
- Skills válidas: {{valid_skills}}/{{total_skills}}
|
|
926
|
+
|
|
927
|
+
### Reference Validation
|
|
928
|
+
- Referências válidas: {{valid_refs}}/{{total_refs}}
|
|
929
|
+
- Referências quebradas: {{broken_refs}}
|
|
930
|
+
{{#if broken_refs}}
|
|
931
|
+
#### Broken References
|
|
932
|
+
{{#each broken_ref_details}}
|
|
933
|
+
- {{source}} → {{target}} ({{type}})
|
|
934
|
+
{{/each}}
|
|
935
|
+
{{/if}}
|
|
936
|
+
|
|
937
|
+
### Quality Validation
|
|
938
|
+
| Metric | Pass | Fail | Warn |
|
|
939
|
+
|--------|------|------|------|
|
|
940
|
+
| Agent Lines (>=300) | {{agent_lines.pass}} | {{agent_lines.fail}} | {{agent_lines.warn}} |
|
|
941
|
+
| Task Lines (>=100) | {{task_lines.pass}} | {{task_lines.fail}} | - |
|
|
942
|
+
| Required Sections | {{sections.pass}} | {{sections.fail}} | - |
|
|
943
|
+
|
|
944
|
+
### Overall Status
|
|
945
|
+
{{#if all_pass}}
|
|
946
|
+
✅ **PASS** - Pronto para criar estrutura final
|
|
947
|
+
{{else}}
|
|
948
|
+
⚠️ **WARN** - {{warn_count}} avisos, {{fail_count}} falhas
|
|
949
|
+
{{/if}}
|
|
950
|
+
|
|
951
|
+
- id: log_validation
|
|
952
|
+
action: "Registrar no audit log"
|
|
953
|
+
executor: Worker
|
|
954
|
+
audit_event:
|
|
955
|
+
type: "validation_complete"
|
|
956
|
+
status: "pass|warn|fail"
|
|
957
|
+
details: "validation_report"
|
|
958
|
+
timestamp: "{now}"
|
|
959
|
+
|
|
960
|
+
checkpoint:
|
|
961
|
+
type: "human_review"
|
|
962
|
+
condition: "mode == 'quality' OR validation_status != 'pass'"
|
|
963
|
+
prompt: |
|
|
964
|
+
## Validation Results
|
|
965
|
+
|
|
966
|
+
{{validation_report}}
|
|
967
|
+
|
|
968
|
+
{{#if has_failures}}
|
|
969
|
+
### ⚠️ Atenção: Existem falhas
|
|
970
|
+
|
|
971
|
+
Opções:
|
|
972
|
+
1. Ignorar falhas e continuar (não recomendado)
|
|
973
|
+
2. Corrigir falhas manualmente e re-validar
|
|
974
|
+
3. Abortar fusão
|
|
975
|
+
{{else}}
|
|
976
|
+
Aprovar e continuar para criação da estrutura final?
|
|
977
|
+
{{/if}}
|
|
978
|
+
|
|
979
|
+
quality_gate:
|
|
980
|
+
name: "Validation Gate"
|
|
981
|
+
checks:
|
|
982
|
+
- "Zero referências quebradas (HARD FAIL)"
|
|
983
|
+
- "Zero arquivos vazios (HARD FAIL)"
|
|
984
|
+
- "90% agents com >= 300 linhas (SOFT FAIL)"
|
|
985
|
+
veto_on: "Qualquer HARD FAIL"
|
|
986
|
+
|
|
987
|
+
output:
|
|
988
|
+
validation_status: "pass|warn|fail"
|
|
989
|
+
validation_report: "markdown"
|
|
990
|
+
issues_to_fix: "list[Issue]"
|
|
991
|
+
|
|
992
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
993
|
+
# PHASE 6: STRUCTURE CREATION (ETL Load)
|
|
994
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
995
|
+
- id: phase_6_structure
|
|
996
|
+
name: "Structure Creation (ETL Load)"
|
|
997
|
+
description: "Criar estrutura final do squad fusionado"
|
|
998
|
+
pattern: "ETL Load + Expand-Contract"
|
|
999
|
+
rollback: "Deletar squads/{target_name} e workspace permanece intacto"
|
|
1000
|
+
|
|
1001
|
+
steps:
|
|
1002
|
+
- id: create_target_directory
|
|
1003
|
+
action: "Criar estrutura de diretórios"
|
|
1004
|
+
executor: Worker
|
|
1005
|
+
command: |
|
|
1006
|
+
mkdir -p squads/{target_name}/agents
|
|
1007
|
+
mkdir -p squads/{target_name}/tasks
|
|
1008
|
+
mkdir -p squads/{target_name}/skills
|
|
1009
|
+
mkdir -p squads/{target_name}/data
|
|
1010
|
+
mkdir -p squads/{target_name}/templates
|
|
1011
|
+
mkdir -p squads/{target_name}/checklists
|
|
1012
|
+
mkdir -p squads/{target_name}/workflows
|
|
1013
|
+
|
|
1014
|
+
- id: move_components
|
|
1015
|
+
action: "Mover componentes do workspace para destino"
|
|
1016
|
+
executor: Worker
|
|
1017
|
+
rationale: "Move (não copy) para garantir exactly-once"
|
|
1018
|
+
command: |
|
|
1019
|
+
mv {workspace}/agents/* squads/{target_name}/agents/ 2>/dev/null || true
|
|
1020
|
+
mv {workspace}/tasks/* squads/{target_name}/tasks/ 2>/dev/null || true
|
|
1021
|
+
mv {workspace}/skills/* squads/{target_name}/skills/ 2>/dev/null || true
|
|
1022
|
+
mv {workspace}/data/* squads/{target_name}/data/ 2>/dev/null || true
|
|
1023
|
+
mv {workspace}/templates/* squads/{target_name}/templates/ 2>/dev/null || true
|
|
1024
|
+
mv {workspace}/checklists/* squads/{target_name}/checklists/ 2>/dev/null || true
|
|
1025
|
+
mv {workspace}/workflows/* squads/{target_name}/workflows/ 2>/dev/null || true
|
|
1026
|
+
|
|
1027
|
+
# ─────────────────────────────────────────────────────────────────────────
|
|
1028
|
+
# STEPS CRÍTICOS: Definir estrutura semântica (requer LLM)
|
|
1029
|
+
# ─────────────────────────────────────────────────────────────────────────
|
|
1030
|
+
- id: define_tiers
|
|
1031
|
+
action: "Organizar agents em tiers baseado em função"
|
|
1032
|
+
executor: Agent
|
|
1033
|
+
rationale: |
|
|
1034
|
+
Precisa entender o PROPÓSITO de cada agent para classificar:
|
|
1035
|
+
- Tier 0: Diagnóstico/Estratégia (pensar antes de agir)
|
|
1036
|
+
- Tier 1: Especialistas de Plataforma (execução especializada)
|
|
1037
|
+
- Tier 2: Execução/Operação (trabalho do dia-a-dia)
|
|
1038
|
+
prompt: |
|
|
1039
|
+
Analise os agents coletados em {workspace}/agents/ e organize em tiers.
|
|
1040
|
+
|
|
1041
|
+
Para cada agent:
|
|
1042
|
+
1. Leia o arquivo completo
|
|
1043
|
+
2. Identifique sua função principal
|
|
1044
|
+
3. Classifique no tier apropriado
|
|
1045
|
+
|
|
1046
|
+
Output esperado (YAML):
|
|
1047
|
+
```yaml
|
|
1048
|
+
tiers:
|
|
1049
|
+
tier_0:
|
|
1050
|
+
name: "Strategic/Diagnostic"
|
|
1051
|
+
agents: [agent1, agent2]
|
|
1052
|
+
when_to_use: "Quando precisa de diagnóstico ou estratégia"
|
|
1053
|
+
tier_1:
|
|
1054
|
+
name: "Platform Specialists"
|
|
1055
|
+
agents: [agent3, agent4]
|
|
1056
|
+
when_to_use: "Quando precisa de expertise em plataforma específica"
|
|
1057
|
+
tier_2:
|
|
1058
|
+
name: "Execution/Operations"
|
|
1059
|
+
agents: [agent5, agent6]
|
|
1060
|
+
when_to_use: "Quando precisa de execução operacional"
|
|
1061
|
+
```
|
|
1062
|
+
store_as: "tiers"
|
|
1063
|
+
|
|
1064
|
+
- id: define_routing_rules
|
|
1065
|
+
action: "Criar regras de routing por especialidade"
|
|
1066
|
+
executor: Agent
|
|
1067
|
+
rationale: |
|
|
1068
|
+
Precisa mapear especialidades de cada agent para criar routing:
|
|
1069
|
+
- Qual agent usar para Meta Ads?
|
|
1070
|
+
- Qual agent usar para Google Ads?
|
|
1071
|
+
- Qual agent usar para scaling?
|
|
1072
|
+
prompt: |
|
|
1073
|
+
Analise os agents em {workspace}/agents/ e crie regras de routing.
|
|
1074
|
+
|
|
1075
|
+
Para cada agent:
|
|
1076
|
+
1. Identifique suas especialidades
|
|
1077
|
+
2. Mapeie para cenários de uso
|
|
1078
|
+
|
|
1079
|
+
Output esperado (YAML):
|
|
1080
|
+
```yaml
|
|
1081
|
+
routing:
|
|
1082
|
+
meta_ads: [agent-especialista-meta]
|
|
1083
|
+
google_ads: [agent-especialista-google]
|
|
1084
|
+
youtube_ads: [agent-especialista-youtube]
|
|
1085
|
+
scaling: [agent-scaling-1, agent-scaling-2]
|
|
1086
|
+
creative: [agent-creative]
|
|
1087
|
+
analytics: [agent-analytics]
|
|
1088
|
+
compliance: [agent-compliance]
|
|
1089
|
+
```
|
|
1090
|
+
store_as: "routing_rules"
|
|
1091
|
+
|
|
1092
|
+
- id: generate_config
|
|
1093
|
+
action: "Gerar config.yaml"
|
|
1094
|
+
executor: Worker
|
|
1095
|
+
depends_on: [define_tiers, define_routing_rules]
|
|
1096
|
+
template: |
|
|
1097
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1098
|
+
# {target_name} - Squad Fusion Result
|
|
1099
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1100
|
+
# Gerado por wf-squad-fusion v2.0
|
|
1101
|
+
# Data: {timestamp}
|
|
1102
|
+
# Modo: {mode}
|
|
1103
|
+
|
|
1104
|
+
pack:
|
|
1105
|
+
name: "{target_name}"
|
|
1106
|
+
title: "{target_title}"
|
|
1107
|
+
version: "1.0.0"
|
|
1108
|
+
author: "Squad Architect (Fusion)"
|
|
1109
|
+
description: |
|
|
1110
|
+
Fusão de {source_count} squads: {source_list}
|
|
1111
|
+
Domínio: {target_domain}
|
|
1112
|
+
icon: "{icon}"
|
|
1113
|
+
slash_prefix: "{prefix}"
|
|
1114
|
+
|
|
1115
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1116
|
+
# FUSION METADATA (Provenance)
|
|
1117
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1118
|
+
fusion:
|
|
1119
|
+
workflow: "wf-squad-fusion"
|
|
1120
|
+
workflow_version: "2.0.0"
|
|
1121
|
+
fusion_id: "{fusion_id}"
|
|
1122
|
+
fusion_date: "{timestamp}"
|
|
1123
|
+
fusion_mode: "{mode}"
|
|
1124
|
+
source_squads:
|
|
1125
|
+
{{#each sources}}
|
|
1126
|
+
- name: "{{name}}"
|
|
1127
|
+
contributed:
|
|
1128
|
+
agents: {{agents}}
|
|
1129
|
+
tasks: {{tasks}}
|
|
1130
|
+
skills: {{skills}}
|
|
1131
|
+
{{/each}}
|
|
1132
|
+
assets_total:
|
|
1133
|
+
agents: {final_agents}
|
|
1134
|
+
tasks: {final_tasks}
|
|
1135
|
+
skills: {final_skills}
|
|
1136
|
+
data: {final_data}
|
|
1137
|
+
templates: {final_templates}
|
|
1138
|
+
checklists: {final_checklists}
|
|
1139
|
+
workflows: {final_workflows}
|
|
1140
|
+
deduplication:
|
|
1141
|
+
duplicates_found: {duplicates_found}
|
|
1142
|
+
duplicates_resolved: {duplicates_resolved}
|
|
1143
|
+
scope_filtering:
|
|
1144
|
+
in_scope: {in_scope}
|
|
1145
|
+
excluded: {excluded}
|
|
1146
|
+
|
|
1147
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1148
|
+
# ORCHESTRATOR
|
|
1149
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1150
|
+
orchestrator:
|
|
1151
|
+
agent: "{target_name}-chief"
|
|
1152
|
+
activation: "@{target_name}"
|
|
1153
|
+
|
|
1154
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1155
|
+
# TIER STRUCTURE
|
|
1156
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1157
|
+
tiers:
|
|
1158
|
+
{{#each tiers}}
|
|
1159
|
+
tier_{{level}}:
|
|
1160
|
+
name: "{{name}}"
|
|
1161
|
+
agents:
|
|
1162
|
+
{{#each agents}}
|
|
1163
|
+
- {{this}}
|
|
1164
|
+
{{/each}}
|
|
1165
|
+
when_to_use: "{{when}}"
|
|
1166
|
+
{{/each}}
|
|
1167
|
+
|
|
1168
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1169
|
+
# ROUTING
|
|
1170
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1171
|
+
routing:
|
|
1172
|
+
{{#each routing_rules}}
|
|
1173
|
+
{{key}}: {{agents}}
|
|
1174
|
+
{{/each}}
|
|
1175
|
+
|
|
1176
|
+
- id: generate_readme
|
|
1177
|
+
action: "Gerar README.md"
|
|
1178
|
+
executor: Worker
|
|
1179
|
+
template: |
|
|
1180
|
+
# {target_name}
|
|
1181
|
+
|
|
1182
|
+
> 🐉 Fusão Dragon Ball de {source_count} squads
|
|
1183
|
+
|
|
1184
|
+
## Origem
|
|
1185
|
+
|
|
1186
|
+
Este squad foi criado pela fusão de:
|
|
1187
|
+
{{#each sources}}
|
|
1188
|
+
- **{{name}}**: {{agents}} agents, {{tasks}} tasks
|
|
1189
|
+
{{/each}}
|
|
1190
|
+
|
|
1191
|
+
## 📊 Composição Final
|
|
1192
|
+
|
|
1193
|
+
| Tipo | Quantidade |
|
|
1194
|
+
|------|------------|
|
|
1195
|
+
| Agents | {agents_count} |
|
|
1196
|
+
| Tasks | {tasks_count} |
|
|
1197
|
+
| Skills | {skills_count} |
|
|
1198
|
+
| Data | {data_count} |
|
|
1199
|
+
| Templates | {templates_count} |
|
|
1200
|
+
| Checklists | {checklists_count} |
|
|
1201
|
+
| Workflows | {workflows_count} |
|
|
1202
|
+
|
|
1203
|
+
## 🎯 Agents por Tier
|
|
1204
|
+
|
|
1205
|
+
{{#each tiers}}
|
|
1206
|
+
### Tier {{level}}: {{name}}
|
|
1207
|
+
{{#each agents}}
|
|
1208
|
+
- `@{{this}}`
|
|
1209
|
+
{{/each}}
|
|
1210
|
+
{{/each}}
|
|
1211
|
+
|
|
1212
|
+
## 🔧 Comandos Disponíveis
|
|
1213
|
+
|
|
1214
|
+
{{#each tasks}}
|
|
1215
|
+
- `*{{name}}` - {{description}}
|
|
1216
|
+
{{/each}}
|
|
1217
|
+
|
|
1218
|
+
## 📈 Skills
|
|
1219
|
+
|
|
1220
|
+
{{#each skills}}
|
|
1221
|
+
- `{{name}}` - {{description}}
|
|
1222
|
+
{{/each}}
|
|
1223
|
+
|
|
1224
|
+
## 🔗 Provenance
|
|
1225
|
+
|
|
1226
|
+
Cada componente mantém rastreabilidade à sua origem.
|
|
1227
|
+
Ver `config.yaml` seção `fusion` para detalhes completos.
|
|
1228
|
+
|
|
1229
|
+
---
|
|
1230
|
+
|
|
1231
|
+
*Gerado por wf-squad-fusion v2.0 em {timestamp}*
|
|
1232
|
+
|
|
1233
|
+
- id: create_orchestrator_if_needed
|
|
1234
|
+
action: "Criar orchestrator se não existe"
|
|
1235
|
+
executor: Agent
|
|
1236
|
+
condition: "!exists(squads/{target_name}/agents/{target_name}-chief.md)"
|
|
1237
|
+
rationale: |
|
|
1238
|
+
Orchestrator precisa conhecer TODOS os agents do squad e saber:
|
|
1239
|
+
- Quando acionar cada um
|
|
1240
|
+
- Como fazer handoff entre eles
|
|
1241
|
+
- Quais comandos disponibilizar
|
|
1242
|
+
prompt: |
|
|
1243
|
+
Crie um orchestrator para o squad {target_name}.
|
|
1244
|
+
|
|
1245
|
+
Context:
|
|
1246
|
+
- Agents disponíveis: {agent_list}
|
|
1247
|
+
- Tiers definidos: {tiers}
|
|
1248
|
+
- Routing rules: {routing_rules}
|
|
1249
|
+
- Domínio: {target_domain}
|
|
1250
|
+
|
|
1251
|
+
O orchestrator deve:
|
|
1252
|
+
1. Ter voice_dna próprio (profissional, direto)
|
|
1253
|
+
2. Conhecer todos os agents e suas especialidades
|
|
1254
|
+
3. Saber quando delegar para qual agent
|
|
1255
|
+
4. Ter comandos que façam sentido para o domínio
|
|
1256
|
+
|
|
1257
|
+
Use o template base de:
|
|
1258
|
+
squads/squad-creator-pro/templates/orchestrator-tmpl.md
|
|
1259
|
+
|
|
1260
|
+
Output: Markdown completo do orchestrator
|
|
1261
|
+
output_path: "squads/{target_name}/agents/{target_name}-chief.md"
|
|
1262
|
+
|
|
1263
|
+
- id: preserve_audit_log
|
|
1264
|
+
action: "Mover audit log para destino"
|
|
1265
|
+
executor: Worker
|
|
1266
|
+
command: |
|
|
1267
|
+
mv {workspace}/fusion-audit.yaml squads/{target_name}/fusion-audit.yaml
|
|
1268
|
+
mv {workspace}/_audit/* squads/{target_name}/_audit/ 2>/dev/null || true
|
|
1269
|
+
|
|
1270
|
+
- id: final_count_verification
|
|
1271
|
+
action: "Verificação final de contagem"
|
|
1272
|
+
executor: Worker
|
|
1273
|
+
command: |
|
|
1274
|
+
echo "=== FINAL SQUAD CONTENTS ===" && \
|
|
1275
|
+
echo "Agents: $(find squads/{target_name}/agents -name '*.md' | wc -l)" && \
|
|
1276
|
+
echo "Tasks: $(find squads/{target_name}/tasks -name '*.md' | wc -l)" && \
|
|
1277
|
+
echo "Skills: $(find squads/{target_name}/skills -name 'SKILL.md' | wc -l)" && \
|
|
1278
|
+
echo "Data: $(find squads/{target_name}/data -name '*.md' | wc -l)"
|
|
1279
|
+
|
|
1280
|
+
- id: log_structure_creation
|
|
1281
|
+
action: "Registrar no audit log"
|
|
1282
|
+
executor: Worker
|
|
1283
|
+
audit_event:
|
|
1284
|
+
type: "structure_created"
|
|
1285
|
+
path: "squads/{target_name}"
|
|
1286
|
+
timestamp: "{now}"
|
|
1287
|
+
|
|
1288
|
+
quality_gate:
|
|
1289
|
+
name: "Structure Gate"
|
|
1290
|
+
checks:
|
|
1291
|
+
- "config.yaml existe e é válido"
|
|
1292
|
+
- "README.md existe"
|
|
1293
|
+
- "Pelo menos 1 agent existe"
|
|
1294
|
+
- "Orchestrator existe"
|
|
1295
|
+
- "Contagem final = contagem esperada"
|
|
1296
|
+
veto_on: "Qualquer check falhar"
|
|
1297
|
+
|
|
1298
|
+
output:
|
|
1299
|
+
squad_path: "string"
|
|
1300
|
+
config_valid: "boolean"
|
|
1301
|
+
final_counts: "AssetCounts"
|
|
1302
|
+
|
|
1303
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1304
|
+
# PHASE 7: INTEGRATION TEST (Strangler Fig Pattern)
|
|
1305
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1306
|
+
- id: phase_7_integration
|
|
1307
|
+
name: "Integration Test"
|
|
1308
|
+
description: "Testar squad fusionado antes de cleanup"
|
|
1309
|
+
pattern: "Strangler Fig - Parallel Run"
|
|
1310
|
+
rollback: "Squad fonte ainda existe, pode reverter"
|
|
1311
|
+
|
|
1312
|
+
steps:
|
|
1313
|
+
- id: smoke_test_activation
|
|
1314
|
+
action: "Testar ativação do orchestrator"
|
|
1315
|
+
executor: Hybrid
|
|
1316
|
+
rationale: "Verificar estrutura=Worker, testar comportamento=Agent"
|
|
1317
|
+
test: |
|
|
1318
|
+
# Simular: @{target_name}
|
|
1319
|
+
# Verificar que orchestrator responde
|
|
1320
|
+
|
|
1321
|
+
- id: smoke_test_routing
|
|
1322
|
+
action: "Testar routing entre agents"
|
|
1323
|
+
executor: Hybrid
|
|
1324
|
+
rationale: "Verificar existência=Worker, testar funcionamento=Agent"
|
|
1325
|
+
test: |
|
|
1326
|
+
# Para cada tier, verificar que agents são alcançáveis
|
|
1327
|
+
|
|
1328
|
+
- id: smoke_test_tasks
|
|
1329
|
+
action: "Testar que tasks são executáveis"
|
|
1330
|
+
executor: Worker
|
|
1331
|
+
test: |
|
|
1332
|
+
# Para cada task, verificar sintaxe e dependências
|
|
1333
|
+
|
|
1334
|
+
- id: generate_test_report
|
|
1335
|
+
action: "Gerar relatório de testes"
|
|
1336
|
+
executor: Worker
|
|
1337
|
+
template: |
|
|
1338
|
+
## 🧪 INTEGRATION TEST REPORT
|
|
1339
|
+
|
|
1340
|
+
### Activation Tests
|
|
1341
|
+
- Orchestrator activation: {{orchestrator_status}}
|
|
1342
|
+
- Agent count visible: {{agents_visible}}
|
|
1343
|
+
|
|
1344
|
+
### Routing Tests
|
|
1345
|
+
{{#each routing_tests}}
|
|
1346
|
+
- {{route}}: {{status}}
|
|
1347
|
+
{{/each}}
|
|
1348
|
+
|
|
1349
|
+
### Task Tests
|
|
1350
|
+
{{#each task_tests}}
|
|
1351
|
+
- *{{task}}: {{status}}
|
|
1352
|
+
{{/each}}
|
|
1353
|
+
|
|
1354
|
+
### Overall: {{overall_status}}
|
|
1355
|
+
|
|
1356
|
+
- id: log_integration
|
|
1357
|
+
action: "Registrar no audit log"
|
|
1358
|
+
executor: Worker
|
|
1359
|
+
audit_event:
|
|
1360
|
+
type: "integration_test_complete"
|
|
1361
|
+
status: "pass|fail"
|
|
1362
|
+
timestamp: "{now}"
|
|
1363
|
+
|
|
1364
|
+
checkpoint:
|
|
1365
|
+
type: "human_review"
|
|
1366
|
+
condition: "mode == 'quality'"
|
|
1367
|
+
prompt: |
|
|
1368
|
+
## Integration Test Results
|
|
1369
|
+
|
|
1370
|
+
{{test_report}}
|
|
1371
|
+
|
|
1372
|
+
Squad fusionado está funcional?
|
|
1373
|
+
Aprovar para finalizar (opcional: cleanup de fontes)?
|
|
1374
|
+
|
|
1375
|
+
quality_gate:
|
|
1376
|
+
name: "Integration Gate"
|
|
1377
|
+
checks:
|
|
1378
|
+
- "Orchestrator ativa sem erro"
|
|
1379
|
+
- "Pelo menos 80% dos routing tests passam"
|
|
1380
|
+
- "Pelo menos 90% das tasks são válidas"
|
|
1381
|
+
veto_on: "Orchestrator não ativa"
|
|
1382
|
+
|
|
1383
|
+
output:
|
|
1384
|
+
test_status: "pass|warn|fail"
|
|
1385
|
+
test_report: "markdown"
|
|
1386
|
+
|
|
1387
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1388
|
+
# PHASE 7.5: COMMAND SYNC (IDE Integration)
|
|
1389
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1390
|
+
- id: phase_7_5_command_sync
|
|
1391
|
+
name: "Command Sync (IDE Integration)"
|
|
1392
|
+
description: "Sincronizar commands para .claude/commands/ e remover commands antigos"
|
|
1393
|
+
pattern: "Deploy + Cleanup"
|
|
1394
|
+
rollback: "Re-sync from squads/"
|
|
1395
|
+
|
|
1396
|
+
critical_rule: |
|
|
1397
|
+
🚨 OBRIGATÓRIO: Sempre executar após criar squad fusionado
|
|
1398
|
+
|
|
1399
|
+
Esta fase garante que:
|
|
1400
|
+
1. Novos commands do target squad estão disponíveis
|
|
1401
|
+
2. Commands dos squads fonte removidos são limpos
|
|
1402
|
+
3. IDE reconhece o novo squad imediatamente
|
|
1403
|
+
|
|
1404
|
+
steps:
|
|
1405
|
+
- id: remove_old_commands
|
|
1406
|
+
action: "Remover commands dos squads fonte"
|
|
1407
|
+
executor: Worker
|
|
1408
|
+
command: |
|
|
1409
|
+
for squad in {source_squads}:
|
|
1410
|
+
if [ -d ".claude/commands/{squad}" ]; then
|
|
1411
|
+
rm -rf ".claude/commands/{squad}"
|
|
1412
|
+
echo "✅ Removed: .claude/commands/{squad}"
|
|
1413
|
+
fi
|
|
1414
|
+
if [ -f ".claude/commands/{squad}.md" ]; then
|
|
1415
|
+
rm -f ".claude/commands/{squad}.md"
|
|
1416
|
+
echo "✅ Removed: .claude/commands/{squad}.md"
|
|
1417
|
+
fi
|
|
1418
|
+
|
|
1419
|
+
- id: create_command_structure
|
|
1420
|
+
action: "Criar estrutura de commands do target"
|
|
1421
|
+
executor: Worker
|
|
1422
|
+
command: |
|
|
1423
|
+
mkdir -p .claude/commands/{target_name}/agents
|
|
1424
|
+
mkdir -p .claude/commands/{target_name}/tasks
|
|
1425
|
+
mkdir -p .claude/commands/{target_name}/skills
|
|
1426
|
+
|
|
1427
|
+
- id: copy_agents_to_commands
|
|
1428
|
+
action: "Copiar agents para .claude/commands/"
|
|
1429
|
+
executor: Worker
|
|
1430
|
+
command: |
|
|
1431
|
+
cp squads/{target_name}/agents/*.md .claude/commands/{target_name}/agents/
|
|
1432
|
+
echo "✅ Copied $(ls -1 .claude/commands/{target_name}/agents/*.md | wc -l) agents"
|
|
1433
|
+
|
|
1434
|
+
- id: copy_tasks_to_commands
|
|
1435
|
+
action: "Copiar tasks para .claude/commands/"
|
|
1436
|
+
executor: Worker
|
|
1437
|
+
command: |
|
|
1438
|
+
cp squads/{target_name}/tasks/*.md .claude/commands/{target_name}/tasks/
|
|
1439
|
+
echo "✅ Copied $(ls -1 .claude/commands/{target_name}/tasks/*.md | wc -l) tasks"
|
|
1440
|
+
|
|
1441
|
+
- id: copy_skills_to_commands
|
|
1442
|
+
action: "Copiar skills para .claude/commands/"
|
|
1443
|
+
executor: Worker
|
|
1444
|
+
command: |
|
|
1445
|
+
find squads/{target_name}/skills -name 'SKILL.md' -exec cp {} .claude/commands/{target_name}/skills/ \; 2>/dev/null
|
|
1446
|
+
echo "✅ Copied skills"
|
|
1447
|
+
|
|
1448
|
+
- id: create_main_command
|
|
1449
|
+
action: "Criar arquivo de comando principal"
|
|
1450
|
+
executor: Worker
|
|
1451
|
+
template: |
|
|
1452
|
+
# /{target_name} - {target_title}
|
|
1453
|
+
|
|
1454
|
+
Activate the {target_title} squad.
|
|
1455
|
+
|
|
1456
|
+
## Instructions
|
|
1457
|
+
|
|
1458
|
+
**Read and follow `squads/{target_name}/agents/{target_name}-chief.md` activation-instructions exactly.**
|
|
1459
|
+
|
|
1460
|
+
Do NOT search for files. Do NOT load additional files on activation.
|
|
1461
|
+
Only read the agent file above and execute its greeting script.
|
|
1462
|
+
output_path: ".claude/commands/{target_name}.md"
|
|
1463
|
+
|
|
1464
|
+
- id: verify_command_sync
|
|
1465
|
+
action: "Verificar sincronização"
|
|
1466
|
+
executor: Worker
|
|
1467
|
+
command: |
|
|
1468
|
+
echo "=== COMMAND SYNC VERIFICATION ==="
|
|
1469
|
+
echo "Main command: $(test -f .claude/commands/{target_name}.md && echo '✅' || echo '❌')"
|
|
1470
|
+
echo "Agents dir: $(test -d .claude/commands/{target_name}/agents && echo '✅' || echo '❌')"
|
|
1471
|
+
echo "Tasks dir: $(test -d .claude/commands/{target_name}/tasks && echo '✅' || echo '❌')"
|
|
1472
|
+
echo "Agent count: $(ls -1 .claude/commands/{target_name}/agents/*.md 2>/dev/null | wc -l)"
|
|
1473
|
+
echo "Task count: $(ls -1 .claude/commands/{target_name}/tasks/*.md 2>/dev/null | wc -l)"
|
|
1474
|
+
|
|
1475
|
+
- id: log_command_sync
|
|
1476
|
+
action: "Registrar no audit log"
|
|
1477
|
+
executor: Worker
|
|
1478
|
+
audit_event:
|
|
1479
|
+
type: "command_sync_complete"
|
|
1480
|
+
target: ".claude/commands/{target_name}"
|
|
1481
|
+
sources_removed: "{source_squads}"
|
|
1482
|
+
timestamp: "{now}"
|
|
1483
|
+
|
|
1484
|
+
quality_gate:
|
|
1485
|
+
name: "Command Sync Gate"
|
|
1486
|
+
checks:
|
|
1487
|
+
- ".claude/commands/{target_name}.md existe"
|
|
1488
|
+
- ".claude/commands/{target_name}/agents/ tem agents"
|
|
1489
|
+
- ".claude/commands/{target_name}/tasks/ tem tasks"
|
|
1490
|
+
- "Commands dos squads fonte foram removidos"
|
|
1491
|
+
veto_on: "Main command não existe"
|
|
1492
|
+
|
|
1493
|
+
output:
|
|
1494
|
+
commands_synced: "boolean"
|
|
1495
|
+
old_commands_removed: "list[string]"
|
|
1496
|
+
|
|
1497
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1498
|
+
# PHASE 8: CLEANUP (Optional)
|
|
1499
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1500
|
+
- id: phase_8_cleanup
|
|
1501
|
+
name: "Cleanup (Optional)"
|
|
1502
|
+
description: "Remover squads fonte após fusão bem-sucedida"
|
|
1503
|
+
pattern: "Expand-Contract - Contract Phase"
|
|
1504
|
+
rollback: "Restaurar do backup"
|
|
1505
|
+
|
|
1506
|
+
prerequisite: "Phase 7 status == pass"
|
|
1507
|
+
|
|
1508
|
+
steps:
|
|
1509
|
+
- id: confirm_cleanup
|
|
1510
|
+
action: "Confirmar com usuário antes de deletar"
|
|
1511
|
+
executor: Human
|
|
1512
|
+
rationale: "Decisão irreversível requer aprovação humana"
|
|
1513
|
+
prompt: |
|
|
1514
|
+
## ⚠️ CLEANUP CONFIRMATION
|
|
1515
|
+
|
|
1516
|
+
A fusão foi bem-sucedida. Deseja remover os squads fonte?
|
|
1517
|
+
|
|
1518
|
+
Squads a remover:
|
|
1519
|
+
{{#each source_squads}}
|
|
1520
|
+
- squads/{{this}}/
|
|
1521
|
+
{{/each}}
|
|
1522
|
+
|
|
1523
|
+
Backup disponível em: {{backup_path}}
|
|
1524
|
+
|
|
1525
|
+
**Esta ação é irreversível (exceto via restore do backup).**
|
|
1526
|
+
|
|
1527
|
+
Confirmar remoção?
|
|
1528
|
+
options:
|
|
1529
|
+
- "Sim, remover fontes"
|
|
1530
|
+
- "Não, manter fontes (recomendado para teste)"
|
|
1531
|
+
- "Remover apenas depois de X dias"
|
|
1532
|
+
|
|
1533
|
+
- id: remove_sources
|
|
1534
|
+
action: "Remover squads fonte"
|
|
1535
|
+
executor: Worker
|
|
1536
|
+
condition: "user_confirmed_cleanup == true"
|
|
1537
|
+
command: |
|
|
1538
|
+
for squad in {source_squads}:
|
|
1539
|
+
rm -rf squads/{squad}
|
|
1540
|
+
echo "REMOVED: squads/{squad}"
|
|
1541
|
+
|
|
1542
|
+
- id: update_registry
|
|
1543
|
+
action: "Atualizar squad-registry.yaml"
|
|
1544
|
+
executor: Worker
|
|
1545
|
+
command: "Execute *refresh-registry"
|
|
1546
|
+
|
|
1547
|
+
- id: cleanup_workspace
|
|
1548
|
+
action: "Remover workspace temporário"
|
|
1549
|
+
executor: Worker
|
|
1550
|
+
command: "rm -rf {workspace}"
|
|
1551
|
+
|
|
1552
|
+
- id: log_cleanup
|
|
1553
|
+
action: "Registrar no audit log final"
|
|
1554
|
+
executor: Worker
|
|
1555
|
+
audit_event:
|
|
1556
|
+
type: "fusion_complete"
|
|
1557
|
+
sources_removed: "boolean"
|
|
1558
|
+
timestamp: "{now}"
|
|
1559
|
+
|
|
1560
|
+
output:
|
|
1561
|
+
sources_removed: "boolean"
|
|
1562
|
+
final_status: "complete"
|
|
1563
|
+
|
|
1564
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1565
|
+
# HEURISTICS (Decision Rules)
|
|
1566
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1567
|
+
heuristics:
|
|
1568
|
+
- id: H_FUSION_001
|
|
1569
|
+
name: "Sempre Contar, Nunca Assumir"
|
|
1570
|
+
rule: "Executar comandos de contagem para CADA squad"
|
|
1571
|
+
rationale: "IAs erram ao extrapolar de um squad para outros"
|
|
1572
|
+
applies_to: ["phase_1"]
|
|
1573
|
+
|
|
1574
|
+
- id: H_FUSION_002
|
|
1575
|
+
name: "Maior Ganha (Dedup)"
|
|
1576
|
+
rule: "Em duplicatas, agent com mais linhas vence"
|
|
1577
|
+
rationale: "Linhas = proxy para completude"
|
|
1578
|
+
applies_to: ["phase_2"]
|
|
1579
|
+
override: "Humano pode escolher diferente em quality mode"
|
|
1580
|
+
|
|
1581
|
+
- id: H_FUSION_003
|
|
1582
|
+
name: "Escopo Strict"
|
|
1583
|
+
rule: "Na dúvida, EXCLUIR do escopo"
|
|
1584
|
+
rationale: "Mais fácil adicionar depois do que remover"
|
|
1585
|
+
applies_to: ["phase_3"]
|
|
1586
|
+
|
|
1587
|
+
- id: H_FUSION_004
|
|
1588
|
+
name: "Idempotency Always"
|
|
1589
|
+
rule: "Operações devem ser seguras para re-executar"
|
|
1590
|
+
rationale: "Permite recovery de falhas parciais"
|
|
1591
|
+
applies_to: ["phase_4"]
|
|
1592
|
+
|
|
1593
|
+
- id: H_FUSION_005
|
|
1594
|
+
name: "Validate Before Load"
|
|
1595
|
+
rule: "Nunca criar estrutura final sem validação"
|
|
1596
|
+
rationale: "Erros são mais fáceis de corrigir no workspace"
|
|
1597
|
+
applies_to: ["phase_5"]
|
|
1598
|
+
|
|
1599
|
+
- id: H_FUSION_006
|
|
1600
|
+
name: "Parallel Run Before Cutover"
|
|
1601
|
+
rule: "Manter fontes até integration test passar"
|
|
1602
|
+
rationale: "Pattern Strangler Fig - rollback fácil"
|
|
1603
|
+
applies_to: ["phase_7", "phase_8"]
|
|
1604
|
+
|
|
1605
|
+
- id: H_FUSION_007
|
|
1606
|
+
name: "Provenance Sempre"
|
|
1607
|
+
rule: "Todo componente deve ser rastreável à origem"
|
|
1608
|
+
rationale: "Debugging e auditoria futura"
|
|
1609
|
+
applies_to: ["all"]
|
|
1610
|
+
|
|
1611
|
+
- id: H_FUSION_008
|
|
1612
|
+
name: "Log Tudo"
|
|
1613
|
+
rule: "Cada decisão registrada no audit log"
|
|
1614
|
+
rationale: "Reprodutibilidade e accountability"
|
|
1615
|
+
applies_to: ["all"]
|
|
1616
|
+
|
|
1617
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1618
|
+
# QUICK REFERENCE
|
|
1619
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1620
|
+
quick_reference:
|
|
1621
|
+
phases_summary:
|
|
1622
|
+
- "Phase 0: Init - Setup workspace e backup"
|
|
1623
|
+
- "Phase 1: Discovery - Inventário COMPLETO"
|
|
1624
|
+
- "Phase 2: Deduplication - Resolver duplicatas"
|
|
1625
|
+
- "Phase 3: Scope - Filtrar por domínio"
|
|
1626
|
+
- "Phase 4: Collection - Copiar para workspace"
|
|
1627
|
+
- "Phase 5: Validation - Quality gates"
|
|
1628
|
+
- "Phase 6: Structure - Criar squad final"
|
|
1629
|
+
- "Phase 7: Integration - Testar funcionamento"
|
|
1630
|
+
- "Phase 7.5: Command Sync - Sincronizar .claude/commands/"
|
|
1631
|
+
- "Phase 8: Cleanup - Remover fontes (opcional)"
|
|
1632
|
+
|
|
1633
|
+
checkpoints:
|
|
1634
|
+
yolo_mode: "Nenhum (decisões automáticas)"
|
|
1635
|
+
quality_mode:
|
|
1636
|
+
- "After Phase 1 (inventário)"
|
|
1637
|
+
- "After Phase 2 (duplicatas)"
|
|
1638
|
+
- "After Phase 3 (escopo)"
|
|
1639
|
+
- "After Phase 5 (validação)"
|
|
1640
|
+
- "After Phase 7 (integração)"
|
|
1641
|
+
- "After Phase 7.5 (command sync)"
|
|
1642
|
+
- "Before Phase 8 (cleanup)"
|
|
1643
|
+
|
|
1644
|
+
rollback_points:
|
|
1645
|
+
- "Phase 0-3: Trivial (apenas análise)"
|
|
1646
|
+
- "Phase 4: Delete workspace, retry"
|
|
1647
|
+
- "Phase 5: Fix issues, re-validate"
|
|
1648
|
+
- "Phase 6: Delete target squad, workspace intact"
|
|
1649
|
+
- "Phase 7: Keep sources, don't cleanup"
|
|
1650
|
+
- "Phase 7.5: Re-sync commands from squads/"
|
|
1651
|
+
- "Phase 8: Restore from backup"
|
|
1652
|
+
|
|
1653
|
+
time_estimates:
|
|
1654
|
+
yolo_mode: "15-30 minutos"
|
|
1655
|
+
quality_mode: "45-90 minutos"
|
|
1656
|
+
|
|
1657
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1658
|
+
# CHANGELOG
|
|
1659
|
+
# ═══════════════════════════════════════════════════════════════════════════════
|
|
1660
|
+
changelog:
|
|
1661
|
+
- version: "2.1.0"
|
|
1662
|
+
date: "2026-02-04"
|
|
1663
|
+
changes:
|
|
1664
|
+
- "Adicionado Phase 7.5: Command Sync (IDE Integration)"
|
|
1665
|
+
- "Sincronização automática de .claude/commands/"
|
|
1666
|
+
- "Remoção automática de commands dos squads fonte"
|
|
1667
|
+
- "Atualizado quick_reference com nova fase"
|
|
1668
|
+
|
|
1669
|
+
- version: "2.0.0"
|
|
1670
|
+
date: "2026-02-03"
|
|
1671
|
+
changes:
|
|
1672
|
+
- "Reescrita completa baseada em research de boas práticas"
|
|
1673
|
+
- "Adicionado patterns: Three-Way Merge, Expand-Contract, ETL, Strangler Fig, Entity Resolution"
|
|
1674
|
+
- "8 fases com checkpoints detalhados"
|
|
1675
|
+
- "Heuristics documentadas"
|
|
1676
|
+
- "Anti-patterns documentados"
|
|
1677
|
+
- "Audit log integrado"
|
|
1678
|
+
- "Provenance tracking"
|
|
1679
|
+
- "Idempotency garantida"
|
|
1680
|
+
|
|
1681
|
+
- version: "1.0.0"
|
|
1682
|
+
date: "2026-02-03"
|
|
1683
|
+
changes:
|
|
1684
|
+
- "Versão inicial"
|