sinapse-ai 9.3.0 → 9.5.0
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/.claude/CLAUDE.md +60 -341
- package/.claude/hooks/enforce-architecture-first.py +197 -197
- package/.claude/hooks/enforce-git-push-authority.sh +25 -4
- package/.claude/hooks/mind-clone-governance.py +193 -193
- package/.claude/hooks/read-protection.py +152 -152
- package/.claude/hooks/sql-governance.py +183 -183
- package/.claude/hooks/verify-packages.cjs +83 -0
- package/.claude/hooks/write-path-validation.py +195 -195
- package/.claude/rules/agent-authority.md +6 -0
- package/.claude/rules/agent-handoff.md +5 -0
- package/.claude/rules/cross-squad-routing.md +5 -0
- package/.claude/rules/hook-governance.md +7 -0
- package/.claude/rules/mandatory-delegation.md +24 -0
- package/.claude/rules/mcp-usage.md +3 -1
- package/.claude/rules/project-intelligence.md +63 -0
- package/.claude/rules/response-format.md +4 -0
- package/.claude/rules/safe-collaboration.md +14 -2
- package/.claude/rules/security-data-protection.md +27 -0
- package/.claude/rules/squad-awareness.md +96 -68
- package/.claude/rules/token-economy.md +148 -0
- package/.claude/rules/tool-examples.md +6 -0
- package/.claude/rules/workflow-execution.md +7 -0
- package/.codex/agents/analyst.md +342 -71
- package/.codex/agents/architect.md +533 -68
- package/.codex/agents/data-engineer.md +530 -106
- package/.codex/agents/developer.md +657 -0
- package/.codex/agents/devops.md +639 -69
- package/.codex/agents/product-lead.md +362 -0
- package/.codex/agents/project-lead.md +405 -0
- package/.codex/agents/quality-gate.md +538 -0
- package/.codex/agents/sinapse-orqx.md +9 -7
- package/.codex/agents/sprint-lead.md +315 -0
- package/.codex/agents/squad-creator.md +402 -0
- package/.codex/agents/ux-design-expert.md +523 -0
- package/.codex/delegation-matrix.json +756 -44
- package/.codex/handoff-packet.schema.json +30 -6
- package/.sinapse-ai/core/code-intel/registry-syncer.js +56 -3
- package/.sinapse-ai/core/doctor/checks/agent-memory.js +5 -1
- package/.sinapse-ai/core/doctor/checks/claude-md.js +4 -1
- package/.sinapse-ai/core/doctor/checks/code-intel.js +5 -1
- package/.sinapse-ai/core/doctor/checks/commands-count.js +4 -1
- package/.sinapse-ai/core/doctor/checks/constitution-consistency.js +4 -1
- package/.sinapse-ai/core/doctor/checks/core-config.js +4 -1
- package/.sinapse-ai/core/doctor/checks/entity-registry.js +6 -1
- package/.sinapse-ai/core/doctor/checks/git-hooks.js +5 -1
- package/.sinapse-ai/core/doctor/checks/graph-dashboard.js +4 -1
- package/.sinapse-ai/core/doctor/checks/hooks-claude-count.js +5 -1
- package/.sinapse-ai/core/doctor/checks/ide-sync.js +4 -1
- package/.sinapse-ai/core/doctor/checks/node-version.js +4 -1
- package/.sinapse-ai/core/doctor/checks/npm-packages.js +4 -1
- package/.sinapse-ai/core/doctor/checks/rules-files.js +4 -1
- package/.sinapse-ai/core/doctor/checks/settings-json.js +4 -1
- package/.sinapse-ai/core/doctor/checks/skills-count.js +4 -1
- package/.sinapse-ai/core/doctor/index.js +157 -50
- package/.sinapse-ai/core/ids/registry-updater.js +6 -1
- package/.sinapse-ai/core/logger/index.js +319 -0
- package/.sinapse-ai/core/orchestration/terminal-spawner.js +2 -2
- package/.sinapse-ai/core/telemetry/index.js +247 -0
- package/.sinapse-ai/data/entity-registry.yaml +1060 -808
- package/.sinapse-ai/development/agents/analyst.md +90 -0
- package/.sinapse-ai/development/agents/architect.md +78 -0
- package/.sinapse-ai/development/agents/data-engineer.md +38 -0
- package/.sinapse-ai/development/agents/developer.md +97 -0
- package/.sinapse-ai/development/agents/devops.md +121 -0
- package/.sinapse-ai/development/agents/product-lead.md +27 -0
- package/.sinapse-ai/development/agents/project-lead.md +28 -0
- package/.sinapse-ai/development/agents/quality-gate.md +89 -0
- package/.sinapse-ai/development/agents/sprint-lead/MEMORY.md +8 -0
- package/.sinapse-ai/development/agents/sprint-lead.md +28 -0
- package/.sinapse-ai/development/agents/squad-creator.md +58 -0
- package/.sinapse-ai/development/agents/ux-design-expert.md +28 -0
- package/.sinapse-ai/development/checklists/agent-quality-gate.md +27 -0
- package/.sinapse-ai/development/checklists/brownfield-compatibility-checklist.md +20 -0
- package/.sinapse-ai/development/checklists/code-review-checklist.md +106 -0
- package/.sinapse-ai/development/checklists/issue-triage-checklist.md +9 -0
- package/.sinapse-ai/development/checklists/memory-audit-checklist.md +16 -0
- package/.sinapse-ai/development/checklists/pr-quality-checklist.md +72 -0
- package/.sinapse-ai/development/checklists/security-deployment-checklist.md +54 -0
- package/.sinapse-ai/development/checklists/self-critique-checklist.md +19 -1
- package/.sinapse-ai/development/knowledge-base/agent-communication-protocol.md +127 -0
- package/.sinapse-ai/development/knowledge-base/database-scaling-patterns.md +374 -0
- package/.sinapse-ai/development/knowledge-base/environment-deployment-patterns.md +353 -0
- package/.sinapse-ai/development/knowledge-base/gotchas-patterns.md +224 -0
- package/.sinapse-ai/development/knowledge-base/infrastructure-decision-framework.md +221 -0
- package/.sinapse-ai/development/knowledge-base/security-pre-deploy-checklist.md +410 -0
- package/.sinapse-ai/development/knowledge-base/software-architecture-patterns.md +299 -0
- package/.sinapse-ai/development/knowledge-base/token-economy-guide.md +198 -0
- package/.sinapse-ai/development/scripts/populate-entity-registry.js +5 -1
- package/.sinapse-ai/development/skills/captcha-handler.md +82 -0
- package/.sinapse-ai/development/skills/chrome-brain.md +81 -0
- package/.sinapse-ai/development/skills/debug.md +57 -0
- package/.sinapse-ai/development/skills/deploy-readiness.md +93 -0
- package/.sinapse-ai/development/skills/fast-review.md +69 -0
- package/.sinapse-ai/development/skills/model-router.md +92 -0
- package/.sinapse-ai/development/skills/research-synthesis.md +77 -0
- package/.sinapse-ai/development/skills/security-scan.md +73 -0
- package/.sinapse-ai/development/skills/sinapse-methodology.md +175 -0
- package/.sinapse-ai/development/skills/story-fast-track.md +71 -0
- package/.sinapse-ai/development/skills/verify.md +53 -0
- package/.sinapse-ai/development/tasks/dev-develop-story.md +10 -0
- package/.sinapse-ai/development/tasks/environment-promotion-pipeline.md +582 -0
- package/.sinapse-ai/development/tasks/generate-agent-handoff.md +223 -0
- package/.sinapse-ai/development/tasks/infrastructure-assessment.md +432 -0
- package/.sinapse-ai/development/tasks/load-testing-setup.md +611 -0
- package/.sinapse-ai/development/tasks/observability-blueprint.md +562 -0
- package/.sinapse-ai/development/templates/legal/breach-notification-tmpl.md +113 -0
- package/.sinapse-ai/development/templates/legal/privacy-policy-tmpl.md +93 -0
- package/.sinapse-ai/development/templates/legal/terms-of-service-tmpl.md +85 -0
- package/.sinapse-ai/development/templates/service-template/README.md.hbs +159 -159
- package/.sinapse-ai/development/templates/service-template/__tests__/index.test.ts.hbs +238 -238
- package/.sinapse-ai/development/templates/service-template/client.ts.hbs +404 -404
- package/.sinapse-ai/development/templates/service-template/errors.ts.hbs +183 -183
- package/.sinapse-ai/development/templates/service-template/index.ts.hbs +121 -121
- package/.sinapse-ai/development/templates/service-template/package.json.hbs +88 -88
- package/.sinapse-ai/development/templates/service-template/types.ts.hbs +146 -146
- package/.sinapse-ai/development/templates/squad/agent-template.md +17 -4
- package/.sinapse-ai/development/templates/squad/checklist-template.md +13 -5
- package/.sinapse-ai/development/templates/squad/task-template.md +7 -0
- package/.sinapse-ai/development/templates/squad/workflow-template.yaml +7 -0
- package/.sinapse-ai/development/templates/squad-template/LICENSE +22 -22
- package/.sinapse-ai/development/workflows/fast-track.yaml +87 -0
- package/.sinapse-ai/development/workflows/story-development-cycle.yaml +40 -1
- package/.sinapse-ai/hooks/ids-post-commit.js +22 -0
- package/.sinapse-ai/infrastructure/contracts/compatibility/README.md +42 -0
- package/.sinapse-ai/infrastructure/contracts/compatibility/sinapse-current.yaml +35 -0
- package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -127
- package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -71
- package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -51
- package/.sinapse-ai/infrastructure/scripts/pr-review-ai.js +16 -13
- package/.sinapse-ai/infrastructure/scripts/setup-project-infra.js +128 -0
- package/.sinapse-ai/infrastructure/scripts/test-discovery.js +8 -3
- package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +3 -1
- package/.sinapse-ai/infrastructure/scripts/validate-manifest-parity.js +380 -0
- package/.sinapse-ai/infrastructure/scripts/validate-parity.js +76 -25
- package/.sinapse-ai/infrastructure/templates/coderabbit.yaml.template +280 -280
- package/.sinapse-ai/infrastructure/templates/config/env.example +16 -0
- package/.sinapse-ai/infrastructure/templates/config/gitignore-additions.tmpl +59 -0
- package/.sinapse-ai/infrastructure/templates/github/CODEOWNERS.template +12 -0
- package/.sinapse-ai/infrastructure/templates/github/PULL_REQUEST_TEMPLATE.md +29 -0
- package/.sinapse-ai/infrastructure/templates/github/ci-template.yml +77 -0
- package/.sinapse-ai/infrastructure/templates/github/issue-templates/bug_report.md +34 -0
- package/.sinapse-ai/infrastructure/templates/github/issue-templates/feature_request.md +19 -0
- package/.sinapse-ai/infrastructure/templates/github-workflows/ci.yml.template +170 -170
- package/.sinapse-ai/infrastructure/templates/github-workflows/pr-automation.yml.template +331 -331
- package/.sinapse-ai/infrastructure/templates/github-workflows/release.yml.template +197 -197
- package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +19 -19
- package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-node.tmpl +86 -86
- package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-python.tmpl +146 -146
- package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-sinapse-base.tmpl +64 -64
- package/.sinapse-ai/infrastructure/templates/sinapse-sync.yaml.template +183 -183
- package/.sinapse-ai/install-manifest.yaml +333 -162
- package/.sinapse-ai/local-config.yaml.template +65 -65
- package/.sinapse-ai/monitor/hooks/lib/__init__.py +2 -2
- package/.sinapse-ai/monitor/hooks/lib/enrich.py +59 -59
- package/.sinapse-ai/monitor/hooks/lib/send_event.py +48 -48
- package/.sinapse-ai/monitor/hooks/notification.py +30 -30
- package/.sinapse-ai/monitor/hooks/post_tool_use.py +46 -46
- package/.sinapse-ai/monitor/hooks/pre_compact.py +30 -30
- package/.sinapse-ai/monitor/hooks/pre_tool_use.py +41 -41
- package/.sinapse-ai/monitor/hooks/stop.py +30 -30
- package/.sinapse-ai/monitor/hooks/subagent_stop.py +30 -30
- package/.sinapse-ai/monitor/hooks/user_prompt_submit.py +39 -39
- package/.sinapse-ai/product/templates/adr.hbs +126 -126
- package/.sinapse-ai/product/templates/dbdr.hbs +242 -242
- package/.sinapse-ai/product/templates/epic.hbs +213 -213
- package/.sinapse-ai/product/templates/pmdr.hbs +187 -187
- package/.sinapse-ai/product/templates/prd-v2.0.hbs +217 -217
- package/.sinapse-ai/product/templates/prd.hbs +202 -202
- package/.sinapse-ai/product/templates/story-tmpl.yaml +59 -0
- package/.sinapse-ai/product/templates/story.hbs +264 -264
- package/.sinapse-ai/product/templates/task.hbs +171 -171
- package/.sinapse-ai/product/templates/tmpl-comment-on-examples.sql +159 -159
- package/.sinapse-ai/product/templates/tmpl-migration-script.sql +92 -92
- package/.sinapse-ai/product/templates/tmpl-rls-granular-policies.sql +105 -105
- package/.sinapse-ai/product/templates/tmpl-rls-kiss-policy.sql +11 -11
- package/.sinapse-ai/product/templates/tmpl-rls-roles.sql +136 -136
- package/.sinapse-ai/product/templates/tmpl-rls-simple.sql +78 -78
- package/.sinapse-ai/product/templates/tmpl-rls-tenant.sql +153 -153
- package/.sinapse-ai/product/templates/tmpl-rollback-script.sql +78 -78
- package/.sinapse-ai/product/templates/tmpl-seed-data.sql +141 -141
- package/.sinapse-ai/product/templates/tmpl-smoke-test.sql +17 -17
- package/.sinapse-ai/product/templates/tmpl-staging-copy-merge.sql +140 -140
- package/.sinapse-ai/product/templates/tmpl-stored-proc.sql +141 -141
- package/.sinapse-ai/product/templates/tmpl-trigger.sql +153 -153
- package/.sinapse-ai/product/templates/tmpl-view-materialized.sql +134 -134
- package/.sinapse-ai/product/templates/tmpl-view.sql +178 -178
- package/.sinapse-ai/scripts/diagnostics/health-dashboard/package-lock.json +427 -355
- package/LICENSE +34 -34
- package/README.en.md +167 -20
- package/README.md +190 -22
- package/bin/cli.js +510 -196
- package/bin/postinstall.js +564 -0
- package/bin/sinapse-cli +283 -283
- package/bin/sinapse-graph.js +9 -0
- package/bin/sinapse-init.js +36 -4
- package/bin/sinapse-minimal.js +20 -9
- package/bin/sinapse.js +202 -122
- package/bin/utils/deprecation-warning.js +46 -0
- package/bin/utils/pre-push-safety.js +14 -0
- package/docs/TELEMETRY.md +131 -0
- package/docs/chrome-brain-upgrade-plan.md +624 -0
- package/docs/codex-integration-process.md +22 -0
- package/docs/codex-parity-program.md +27 -0
- package/docs/framework/orqx-plan.md +1 -1
- package/docs/ide-integration.md +36 -0
- package/docs/installation/chrome-brain.md +17 -7
- package/docs/mega-upgrade-orchestration-plan.md +71 -0
- package/docs/pt/contributing.md +20 -0
- package/docs/research-synthesis-for-upgrade.md +511 -0
- package/docs/security-audit-report.md +306 -0
- package/package.json +20 -8
- package/packages/installer/src/config/configure-environment.js +19 -44
- package/packages/installer/src/detection/detect-project-type.js +181 -63
- package/packages/installer/src/installer/manifest-signature.js +32 -17
- package/packages/installer/src/wizard/i18n.js +12 -0
- package/packages/installer/src/wizard/ide-config-generator.js +8 -39
- package/packages/installer/src/wizard/index.js +119 -14
- package/packages/installer/src/wizard/questions.js +2 -3
- package/packages/installer/tests/integration/environment-configuration.test.js +7 -5
- package/packages/installer/tests/unit/detection/detect-project-type.test.js +138 -1
- package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +3 -3
- package/packages/sinapse-install/bin/edmcp.js +0 -0
- package/packages/sinapse-install/bin/sinapse-install.js +0 -0
- package/packages/sinapse-pro-cli/bin/sinapse-pro.js +0 -0
- package/scripts/check-markdown-links.py +353 -353
- package/scripts/coverage-report-summary.js +169 -0
- package/scripts/generate-install-manifest.js +6 -2
- package/scripts/release-readiness.js +169 -0
- package/scripts/test-install-matrix-local.sh +153 -0
- package/scripts/validate-install-docs.js +394 -0
- package/scripts/validate-no-external-refs.js +376 -0
- package/scripts/validate-squad-orqx.js +302 -0
- package/scripts/validate-story-meta.js +263 -0
- package/squads/claude-code-mastery/CHANGELOG.md +1 -1
- package/squads/claude-code-mastery/README.md +2 -2
- package/squads/claude-code-mastery/knowledge-base/claude-code-internals-reference.md +927 -0
- package/squads/claude-code-mastery/squad.yaml +1 -1
- package/squads/squad-artdir/README.md +90 -0
- package/squads/squad-artdir/agents/accessibility-guardian.md +184 -0
- package/squads/squad-artdir/agents/artdir-orqx.md +145 -0
- package/squads/squad-artdir/agents/color-psychologist.md +166 -0
- package/squads/squad-artdir/agents/cro-persuasion.md +161 -0
- package/squads/squad-artdir/agents/design-system-architect.md +100 -0
- package/squads/squad-artdir/agents/ia-architect.md +169 -0
- package/squads/squad-artdir/agents/interaction-designer.md +162 -0
- package/squads/squad-artdir/agents/layout-engineer.md +163 -0
- package/squads/squad-artdir/agents/motion-architect.md +185 -0
- package/squads/squad-artdir/agents/platform-aesthetic-director.md +84 -0
- package/squads/squad-artdir/agents/premium-packaging-strategist.md +107 -0
- package/squads/squad-artdir/agents/product-surface-director.md +86 -0
- package/squads/squad-artdir/agents/type-systemist.md +138 -0
- package/squads/squad-artdir/agents/visual-strategist.md +127 -0
- package/squads/squad-artdir/checklists/seven-pillars-validation-checklist.md +172 -0
- package/squads/squad-artdir/knowledge-base/case-nyo-ia-reference.md +289 -0
- package/squads/squad-artdir/knowledge-base/deliverables-templates.md +457 -0
- package/squads/squad-artdir/knowledge-base/motion-technique-catalog.md +247 -0
- package/squads/squad-artdir/knowledge-base/premium-packaging-principles.md +133 -0
- package/squads/squad-artdir/knowledge-base/psychological-toolkit.md +229 -0
- package/squads/squad-artdir/knowledge-base/saas-art-direction-canon.md +242 -0
- package/squads/squad-artdir/knowledge-base/seven-pillars-framework.md +289 -0
- package/squads/squad-artdir/knowledge-base/ten-pillars-framework.md +221 -0
- package/squads/squad-artdir/package.json +20 -0
- package/squads/squad-artdir/squad.yaml +271 -0
- package/squads/squad-artdir/tasks/audit-conversion.md +97 -0
- package/squads/squad-artdir/tasks/audit-drift-multi-surface.md +55 -0
- package/squads/squad-artdir/tasks/consult-saas-canon.md +54 -0
- package/squads/squad-artdir/tasks/create-art-direction-brief.md +110 -0
- package/squads/squad-artdir/tasks/create-premium-packaging-brief.md +61 -0
- package/squads/squad-artdir/tasks/create-wireflow.md +84 -0
- package/squads/squad-artdir/tasks/design-color-system.md +81 -0
- package/squads/squad-artdir/tasks/design-product-surface.md +60 -0
- package/squads/squad-artdir/tasks/design-token-system.md +58 -0
- package/squads/squad-artdir/tasks/diagnose-visual-language.md +92 -0
- package/squads/squad-artdir/tasks/first-5-minutes-choreography.md +65 -0
- package/squads/squad-artdir/tasks/specify-motion-system.md +84 -0
- package/squads/squad-artdir/tasks/validate-against-pillars.md +143 -0
- package/squads/squad-artdir/templates/art-direction-brief-template.md +215 -0
- package/squads/squad-artdir/workflows/conversion-audit-cycle.yaml +78 -0
- package/squads/squad-artdir/workflows/full-art-direction-cycle.yaml +98 -0
- package/squads/squad-artdir/workflows/saas-platform-art-direction-cycle.yaml +174 -0
- package/squads/squad-brand/knowledge-base/ai-visual-generation-canon.md +234 -0
- package/squads/squad-brand/knowledge-base/archetype-brand-mapping.md +12 -1
- package/squads/squad-brand/knowledge-base/brand-activism-cultural-branding.md +216 -0
- package/squads/squad-brand/knowledge-base/brand-audit-criteria.md +58 -0
- package/squads/squad-brand/knowledge-base/brand-digital-strategy.md +188 -0
- package/squads/squad-brand/knowledge-base/brand-legal-ip.md +222 -0
- package/squads/squad-brand/knowledge-base/brand-naming-framework.md +163 -0
- package/squads/squad-brand/knowledge-base/branding-master-reference.md +1001 -0
- package/squads/squad-brand/knowledge-base/color-psychology.md +25 -12
- package/squads/squad-brand/knowledge-base/employer-personal-branding.md +206 -0
- package/squads/squad-brand/knowledge-base/routing-catalog.md +34 -0
- package/squads/squad-brand/knowledge-base/sonic-branding-principles.md +6 -1
- package/squads/squad-brand/knowledge-base/typography-personality.md +34 -0
- package/squads/squad-brand/squad.yaml +20 -6
- package/squads/squad-claude/knowledge-base/context-window-optimization.md +334 -0
- package/squads/squad-claude/knowledge-base/knowledge-architecture-reference.md +403 -0
- package/squads/squad-claude/knowledge-base/memory-systems-reference.md +412 -0
- package/squads/squad-claude/knowledge-base/obsidian-claude-integration.md +423 -0
- package/squads/squad-claude/knowledge-base/retrieval-augmented-generation.md +320 -0
- package/squads/squad-claude/knowledge-base/skill-creation-patterns.md +380 -0
- package/squads/squad-claude/knowledge-base/swarm-orchestration-patterns.md +411 -0
- package/squads/squad-cloning/knowledge-base/clone-quality-assurance.md +211 -0
- package/squads/squad-cloning/knowledge-base/confidence-scoring.md +51 -0
- package/squads/squad-cloning/knowledge-base/cross-squad-deployment.md +47 -0
- package/squads/squad-cloning/knowledge-base/ethical-guidelines.md +237 -0
- package/squads/squad-cloning/knowledge-base/knowledge-graph-for-clones.md +295 -0
- package/squads/squad-cloning/knowledge-base/memory-architecture-for-clones.md +229 -0
- package/squads/squad-cloning/knowledge-base/multi-agent-deployment-patterns.md +320 -0
- package/squads/squad-cloning/knowledge-base/skill-standard-for-clones.md +262 -0
- package/squads/squad-cloning/knowledge-base/sop-extraction-guide.md +243 -0
- package/squads/squad-commercial/knowledge-base/account-based-selling.md +206 -0
- package/squads/squad-commercial/knowledge-base/ai-as-competitive-infrastructure.md +14 -0
- package/squads/squad-commercial/knowledge-base/ai-in-sales.md +199 -0
- package/squads/squad-commercial/knowledge-base/brazilian-sales-context.md +195 -0
- package/squads/squad-commercial/knowledge-base/customer-success-operations.md +83 -2
- package/squads/squad-commercial/knowledge-base/prospecting-pipeline-generation.md +69 -0
- package/squads/squad-commercial/knowledge-base/sales-enablement-playbook.md +260 -0
- package/squads/squad-commercial/knowledge-base/sales-methodology-comparison.md +185 -0
- package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +1123 -0
- package/squads/squad-content/knowledge-base/ai-native-content-loop.md +220 -0
- package/squads/squad-content/knowledge-base/brazilian-content-context.md +176 -0
- package/squads/squad-content/knowledge-base/competitor-analysis-methods.md +40 -1
- package/squads/squad-content/knowledge-base/content-architecture-taxonomy.md +206 -0
- package/squads/squad-content/knowledge-base/content-formats-encyclopedia.md +58 -1
- package/squads/squad-content/knowledge-base/content-references-bibliography.md +130 -0
- package/squads/squad-content/knowledge-base/content-strategy-master-reference.md +1097 -0
- package/squads/squad-content/knowledge-base/content-tech-stack.md +150 -0
- package/squads/squad-content/knowledge-base/copywriting-formulas-library.md +188 -0
- package/squads/squad-content/knowledge-base/email-newsletter-strategy.md +161 -0
- package/squads/squad-content/knowledge-base/platform-algorithm-intelligence.md +86 -1
- package/squads/squad-content/knowledge-base/signal-intelligence-v2.md +234 -0
- package/squads/squad-content/knowledge-base/social-algorithms-master-reference.md +1007 -0
- package/squads/squad-content/knowledge-base/task-ownership-map.md +235 -0
- package/squads/squad-content/knowledge-base/video-audio-content-playbook.md +218 -0
- package/squads/squad-content/squad.yaml +187 -27
- package/squads/squad-copy/knowledge-base/ai-copy-human-loop-canon.md +235 -0
- package/squads/squad-copy/knowledge-base/ai-copy-production.md +254 -0
- package/squads/squad-copy/knowledge-base/brazilian-copywriting-context.md +242 -0
- package/squads/squad-copy/knowledge-base/email-copywriting-system.md +299 -0
- package/squads/squad-copy/knowledge-base/landing-page-copy-architecture.md +267 -0
- package/squads/squad-copy/knowledge-base/power-words-catalog.md +205 -0
- package/squads/squad-copy/knowledge-base/seo-copywriting.md +255 -0
- package/squads/squad-copy/knowledge-base/video-script-copywriting.md +239 -0
- package/squads/squad-copy/squad.yaml +19 -4
- package/squads/squad-council/knowledge-base/brand-strategy-models.md +193 -0
- package/squads/squad-council/knowledge-base/growth-strategy-models.md +267 -0
- package/squads/squad-council/knowledge-base/innovation-disruption-frameworks.md +193 -0
- package/squads/squad-council/knowledge-base/market-analysis-frameworks.md +240 -0
- package/squads/squad-council/knowledge-base/organizational-leadership-models.md +212 -0
- package/squads/squad-council/knowledge-base/sales-strategy-models.md +215 -0
- package/squads/squad-courses/knowledge-base/course-launch-strategy.md +251 -0
- package/squads/squad-courses/knowledge-base/domain-advocacia-curriculum.md +385 -0
- package/squads/squad-courses/knowledge-base/domain-contabilidade-curriculum.md +266 -0
- package/squads/squad-courses/knowledge-base/platform-comparison.md +68 -0
- package/squads/squad-courses/knowledge-base/video-production-guide.md +70 -0
- package/squads/squad-cybersecurity/knowledge-base/cloud-security-reference.md +363 -0
- package/squads/squad-cybersecurity/knowledge-base/compliance-frameworks.md +273 -0
- package/squads/squad-cybersecurity/knowledge-base/database-security.md +438 -0
- package/squads/squad-cybersecurity/knowledge-base/incident-response-playbook.md +420 -0
- package/squads/squad-cybersecurity/knowledge-base/network-security-reference.md +477 -0
- package/squads/squad-cybersecurity/knowledge-base/penetration-testing-methodology.md +350 -0
- package/squads/squad-cybersecurity/knowledge-base/vulnerability-management.md +349 -0
- package/squads/squad-design/knowledge-base/brazilian-design-context.md +223 -0
- package/squads/squad-design/knowledge-base/component-api-patterns.md +208 -4
- package/squads/squad-design/knowledge-base/cross-surface-token-canon.md +209 -0
- package/squads/squad-design/knowledge-base/design-system-master-reference.md +1302 -0
- package/squads/squad-design/knowledge-base/design-systems-frameworks.md +91 -1
- package/squads/squad-design/knowledge-base/responsive-modern-css.md +96 -4
- package/squads/squad-design/knowledge-base/wcag-aria-reference.md +117 -5
- package/squads/squad-design/knowledge-base/web-performance-reference.md +127 -4
- package/squads/squad-design/squad.yaml +19 -4
- package/squads/squad-finance/knowledge-base/brazilian-taxation.md +263 -0
- package/squads/squad-finance/knowledge-base/contabilidade-master-reference.md +998 -0
- package/squads/squad-finance/knowledge-base/finance-master-reference.md +946 -0
- package/squads/squad-finance/knowledge-base/financial-reporting-analysis.md +316 -0
- package/squads/squad-finance/knowledge-base/fintech-brazilian-context.md +242 -0
- package/squads/squad-finance/knowledge-base/fpa-planning-frameworks.md +286 -0
- package/squads/squad-finance/knowledge-base/ma-and-transactions.md +285 -0
- package/squads/squad-finance/knowledge-base/risk-management.md +233 -0
- package/squads/squad-finance/knowledge-base/startups-venture-capital.md +337 -0
- package/squads/squad-growth/knowledge-base/ai-growth-playbook.md +216 -0
- package/squads/squad-growth/knowledge-base/attribution-models.md +78 -0
- package/squads/squad-growth/knowledge-base/brazilian-growth-context.md +208 -0
- package/squads/squad-growth/knowledge-base/community-led-growth.md +175 -0
- package/squads/squad-growth/knowledge-base/content-marketing-flywheel.md +190 -0
- package/squads/squad-growth/knowledge-base/email-lifecycle-framework.md +192 -0
- package/squads/squad-growth/knowledge-base/growth-frameworks-catalog.md +82 -0
- package/squads/squad-growth/knowledge-base/growth-master-reference.md +1168 -0
- package/squads/squad-growth/knowledge-base/routing-catalog.md +53 -11
- package/squads/squad-paidmedia/knowledge-base/audiences-segmentation-deep.md +285 -0
- package/squads/squad-paidmedia/knowledge-base/creative-strategy-deep.md +294 -0
- package/squads/squad-paidmedia/knowledge-base/google-ads-account-architecture.md +87 -0
- package/squads/squad-paidmedia/knowledge-base/meta-ads-campaign-architecture.md +76 -0
- package/squads/squad-paidmedia/knowledge-base/paid-media-metrics-reference.md +117 -0
- package/squads/squad-paidmedia/knowledge-base/paid-traffic-master-reference.md +1308 -0
- package/squads/squad-paidmedia/knowledge-base/routing-catalog.md +95 -18
- package/squads/squad-paidmedia/knowledge-base/traffic-masters-frameworks.md +71 -0
- package/squads/squad-product/knowledge-base/brazilian-product-context.md +284 -0
- package/squads/squad-product/knowledge-base/discovery-methodology-playbook.md +141 -0
- package/squads/squad-product/knowledge-base/pm-frameworks-reference.md +125 -9
- package/squads/squad-product/knowledge-base/product-analytics-formulas.md +72 -0
- package/squads/squad-product/knowledge-base/product-led-growth-reference.md +155 -13
- package/squads/squad-product/knowledge-base/product-market-fit-framework.md +222 -0
- package/squads/squad-product/knowledge-base/routing-catalog.md +32 -0
- package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +591 -0
- package/squads/squad-research/knowledge-base/ai-augmented-research.md +212 -0
- package/squads/squad-research/knowledge-base/brazilian-market-research-sources.md +197 -0
- package/squads/squad-research/knowledge-base/community-platforms-reference.md +786 -0
- package/squads/squad-research/knowledge-base/community-research-methods.md +194 -0
- package/squads/squad-research/knowledge-base/mixed-methods-research-design.md +168 -0
- package/squads/squad-research/knowledge-base/network-effects-analysis.md +192 -0
- package/squads/squad-research/knowledge-base/qualitative-research-deep-methods.md +202 -0
- package/squads/squad-research/knowledge-base/quantitative-research-methods.md +208 -0
- package/squads/squad-research/knowledge-base/research-frameworks-encyclopedia.md +40 -0
- package/squads/squad-research/knowledge-base/research-synthesis-frameworks.md +223 -0
- package/squads/squad-storytelling/knowledge-base/brand-mythology-framework.md +236 -0
- package/squads/squad-storytelling/knowledge-base/brazilian-storytelling-context.md +237 -0
- package/squads/squad-storytelling/knowledge-base/data-storytelling.md +232 -0
- package/squads/squad-storytelling/knowledge-base/improv-storytelling.md +226 -0
- package/squads/squad-storytelling/knowledge-base/persuasion-narrative-techniques.md +269 -0
- package/squads/squad-storytelling/knowledge-base/social-movement-narratives.md +191 -0
- package/squads/squad-storytelling/knowledge-base/video-storytelling.md +252 -0
- package/.sinapse-ai/core/registry/service-registry.json +0 -6346
- package/.sinapse-ai/data/registry-update-log.jsonl +0 -1307
- package/.sinapse-ai/manifests/agents.csv +0 -29
- package/.sinapse-ai/manifests/tasks.csv +0 -204
- package/.sinapse-ai/manifests/workers.csv +0 -196
- package/squads/claude-code-mastery/data/swarm-orchestration-patterns.yaml +0 -378
- package/squads/squad-animations/knowledge-base/framer-motion-complete-reference.md +0 -710
- package/squads/squad-animations/knowledge-base/web-animations-api-view-transitions.md +0 -478
- package/squads/squad-growth/tasks/calculate-sample-size.md +0 -121
- package/squads/squad-paidmedia/tasks/calculate-sample-size.md +0 -57
|
@@ -1,195 +1,195 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Hook: Write Path Validation
|
|
4
|
-
|
|
5
|
-
REGRA: Documentos devem ir para os paths corretos conforme convenções.
|
|
6
|
-
|
|
7
|
-
Este hook intercepta Write/Edit e AVISA (não bloqueia) quando o path
|
|
8
|
-
parece violar as convenções de organização de documentos.
|
|
9
|
-
|
|
10
|
-
Exit Codes:
|
|
11
|
-
- 0: Sempre (apenas avisa, nunca bloqueia)
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
import json
|
|
15
|
-
import sys
|
|
16
|
-
import os
|
|
17
|
-
import re
|
|
18
|
-
from datetime import datetime
|
|
19
|
-
|
|
20
|
-
# =============================================================================
|
|
21
|
-
# CONFIGURAÇÃO: Regras de organização de documentos
|
|
22
|
-
# =============================================================================
|
|
23
|
-
|
|
24
|
-
PATH_RULES = [
|
|
25
|
-
# (pattern no nome/conteúdo, path esperado, descrição)
|
|
26
|
-
{
|
|
27
|
-
"name_patterns": [r"session", r"handoff", r"^2\d{3}-\d{2}-\d{2}"],
|
|
28
|
-
"expected_path": "docs/sessions/",
|
|
29
|
-
"description": "Session logs e handoffs → docs/sessions/YYYY-MM/",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"name_patterns": [r"architecture", r"system-design", r"infra"],
|
|
33
|
-
"expected_path": "docs/architecture/",
|
|
34
|
-
"description": "Docs de arquitetura → docs/architecture/",
|
|
35
|
-
"exclude_patterns": [r"ARCHITECTURE_RULES"], # Exceção para MMOS
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"name_patterns": [r"guide", r"tutorial", r"how-to"],
|
|
39
|
-
"expected_path": "docs/guides/",
|
|
40
|
-
"description": "Guias e tutoriais → docs/guides/",
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"name_patterns": [r"prd\.md$", r"epic.*\.md$", r"story.*\.md$"],
|
|
44
|
-
"expected_path": "docs/projects/",
|
|
45
|
-
"description": "PRDs, Epics, Stories → docs/projects/{project}/",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"name_patterns": [r"mind.*specific", r"mind.*validation"],
|
|
49
|
-
"expected_path": "outputs/minds/",
|
|
50
|
-
"description": "Docs específicos de mind → outputs/minds/{slug}/docs/",
|
|
51
|
-
},
|
|
52
|
-
]
|
|
53
|
-
|
|
54
|
-
# Paths que são sempre válidos (não avisar)
|
|
55
|
-
ALWAYS_VALID_PATHS = [
|
|
56
|
-
".claude/",
|
|
57
|
-
".sinapse-ai/",
|
|
58
|
-
".sinapse-upstream/",
|
|
59
|
-
"squads/",
|
|
60
|
-
"node_modules/",
|
|
61
|
-
".git/",
|
|
62
|
-
"app/",
|
|
63
|
-
"supabase/",
|
|
64
|
-
"outputs/",
|
|
65
|
-
]
|
|
66
|
-
|
|
67
|
-
# =============================================================================
|
|
68
|
-
# LÓGICA DO HOOK
|
|
69
|
-
# =============================================================================
|
|
70
|
-
|
|
71
|
-
def get_project_root():
|
|
72
|
-
"""Obtém o root do projeto."""
|
|
73
|
-
return os.environ.get("CLAUDE_PROJECT_DIR", os.getcwd())
|
|
74
|
-
|
|
75
|
-
def normalize_path(file_path: str, project_root: str) -> str:
|
|
76
|
-
"""Normaliza path para relativo."""
|
|
77
|
-
if file_path.startswith(project_root):
|
|
78
|
-
return file_path[len(project_root):].lstrip("/")
|
|
79
|
-
return file_path
|
|
80
|
-
|
|
81
|
-
def is_always_valid(relative_path: str) -> bool:
|
|
82
|
-
"""Verifica se o path está em área sempre válida."""
|
|
83
|
-
for valid in ALWAYS_VALID_PATHS:
|
|
84
|
-
if relative_path.startswith(valid):
|
|
85
|
-
return True
|
|
86
|
-
return False
|
|
87
|
-
|
|
88
|
-
def is_documentation_file(relative_path: str) -> bool:
|
|
89
|
-
"""Verifica se é um arquivo de documentação."""
|
|
90
|
-
doc_extensions = [".md", ".mdx", ".txt", ".rst"]
|
|
91
|
-
return any(relative_path.endswith(ext) for ext in doc_extensions)
|
|
92
|
-
|
|
93
|
-
def check_path_rules(relative_path: str) -> list[dict]:
|
|
94
|
-
"""
|
|
95
|
-
Verifica se o path viola alguma regra.
|
|
96
|
-
|
|
97
|
-
Returns:
|
|
98
|
-
Lista de violações com sugestões
|
|
99
|
-
"""
|
|
100
|
-
violations = []
|
|
101
|
-
filename = os.path.basename(relative_path)
|
|
102
|
-
|
|
103
|
-
for rule in PATH_RULES:
|
|
104
|
-
# Verificar se o nome do arquivo corresponde ao pattern
|
|
105
|
-
matches_name = False
|
|
106
|
-
for pattern in rule["name_patterns"]:
|
|
107
|
-
if re.search(pattern, filename, re.IGNORECASE):
|
|
108
|
-
matches_name = True
|
|
109
|
-
break
|
|
110
|
-
|
|
111
|
-
if not matches_name:
|
|
112
|
-
continue
|
|
113
|
-
|
|
114
|
-
# Verificar exceções
|
|
115
|
-
if "exclude_patterns" in rule:
|
|
116
|
-
is_excluded = False
|
|
117
|
-
for exc_pattern in rule["exclude_patterns"]:
|
|
118
|
-
if re.search(exc_pattern, filename, re.IGNORECASE):
|
|
119
|
-
is_excluded = True
|
|
120
|
-
break
|
|
121
|
-
if is_excluded:
|
|
122
|
-
continue
|
|
123
|
-
|
|
124
|
-
# Verificar se está no path esperado
|
|
125
|
-
expected = rule["expected_path"]
|
|
126
|
-
if not relative_path.startswith(expected):
|
|
127
|
-
violations.append({
|
|
128
|
-
"current_path": relative_path,
|
|
129
|
-
"expected_path": expected,
|
|
130
|
-
"description": rule["description"],
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
return violations
|
|
134
|
-
|
|
135
|
-
def main():
|
|
136
|
-
# Ler input do stdin
|
|
137
|
-
try:
|
|
138
|
-
input_data = json.load(sys.stdin)
|
|
139
|
-
except json.JSONDecodeError:
|
|
140
|
-
sys.exit(0)
|
|
141
|
-
|
|
142
|
-
tool_name = input_data.get("tool_name", "")
|
|
143
|
-
tool_input = input_data.get("tool_input", {})
|
|
144
|
-
|
|
145
|
-
# Só processar Write e Edit
|
|
146
|
-
if tool_name not in ["Write", "Edit"]:
|
|
147
|
-
sys.exit(0)
|
|
148
|
-
|
|
149
|
-
file_path = tool_input.get("file_path", "")
|
|
150
|
-
if not file_path:
|
|
151
|
-
sys.exit(0)
|
|
152
|
-
|
|
153
|
-
# Normalizar path
|
|
154
|
-
project_root = get_project_root()
|
|
155
|
-
relative_path = normalize_path(file_path, project_root)
|
|
156
|
-
|
|
157
|
-
# Verificar se é área sempre válida
|
|
158
|
-
if is_always_valid(relative_path):
|
|
159
|
-
sys.exit(0)
|
|
160
|
-
|
|
161
|
-
# Só verificar arquivos de documentação
|
|
162
|
-
if not is_documentation_file(relative_path):
|
|
163
|
-
sys.exit(0)
|
|
164
|
-
|
|
165
|
-
# Verificar regras
|
|
166
|
-
violations = check_path_rules(relative_path)
|
|
167
|
-
|
|
168
|
-
if not violations:
|
|
169
|
-
sys.exit(0)
|
|
170
|
-
|
|
171
|
-
# AVISAR (não bloquear)
|
|
172
|
-
violation = violations[0] # Mostrar primeira violação
|
|
173
|
-
|
|
174
|
-
warning_message = f"""
|
|
175
|
-
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
176
|
-
│ ⚠️ PATH WARNING: Documento pode estar no local errado │
|
|
177
|
-
├──────────────────────────────────────────────────────────────────────────────┤
|
|
178
|
-
│ │
|
|
179
|
-
│ Arquivo: {relative_path[:60]:<60} │
|
|
180
|
-
│ │
|
|
181
|
-
│ Convenção: {violation['description'][:56]:<56} │
|
|
182
|
-
│ Esperado: {violation['expected_path']:<57} │
|
|
183
|
-
│ │
|
|
184
|
-
│ NOTA: Este é apenas um AVISO, a operação será executada. │
|
|
185
|
-
│ Verifique se o path está correto antes de continuar. │
|
|
186
|
-
│ │
|
|
187
|
-
└──────────────────────────────────────────────────────────────────────────────┘
|
|
188
|
-
"""
|
|
189
|
-
# Imprimir warning mas NÃO bloquear (exit 0)
|
|
190
|
-
print(warning_message, file=sys.stderr)
|
|
191
|
-
sys.exit(0)
|
|
192
|
-
|
|
193
|
-
if __name__ == "__main__":
|
|
194
|
-
main()
|
|
195
|
-
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Hook: Write Path Validation
|
|
4
|
+
|
|
5
|
+
REGRA: Documentos devem ir para os paths corretos conforme convenções.
|
|
6
|
+
|
|
7
|
+
Este hook intercepta Write/Edit e AVISA (não bloqueia) quando o path
|
|
8
|
+
parece violar as convenções de organização de documentos.
|
|
9
|
+
|
|
10
|
+
Exit Codes:
|
|
11
|
+
- 0: Sempre (apenas avisa, nunca bloqueia)
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import json
|
|
15
|
+
import sys
|
|
16
|
+
import os
|
|
17
|
+
import re
|
|
18
|
+
from datetime import datetime
|
|
19
|
+
|
|
20
|
+
# =============================================================================
|
|
21
|
+
# CONFIGURAÇÃO: Regras de organização de documentos
|
|
22
|
+
# =============================================================================
|
|
23
|
+
|
|
24
|
+
PATH_RULES = [
|
|
25
|
+
# (pattern no nome/conteúdo, path esperado, descrição)
|
|
26
|
+
{
|
|
27
|
+
"name_patterns": [r"session", r"handoff", r"^2\d{3}-\d{2}-\d{2}"],
|
|
28
|
+
"expected_path": "docs/sessions/",
|
|
29
|
+
"description": "Session logs e handoffs → docs/sessions/YYYY-MM/",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name_patterns": [r"architecture", r"system-design", r"infra"],
|
|
33
|
+
"expected_path": "docs/architecture/",
|
|
34
|
+
"description": "Docs de arquitetura → docs/architecture/",
|
|
35
|
+
"exclude_patterns": [r"ARCHITECTURE_RULES"], # Exceção para MMOS
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"name_patterns": [r"guide", r"tutorial", r"how-to"],
|
|
39
|
+
"expected_path": "docs/guides/",
|
|
40
|
+
"description": "Guias e tutoriais → docs/guides/",
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name_patterns": [r"prd\.md$", r"epic.*\.md$", r"story.*\.md$"],
|
|
44
|
+
"expected_path": "docs/projects/",
|
|
45
|
+
"description": "PRDs, Epics, Stories → docs/projects/{project}/",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name_patterns": [r"mind.*specific", r"mind.*validation"],
|
|
49
|
+
"expected_path": "outputs/minds/",
|
|
50
|
+
"description": "Docs específicos de mind → outputs/minds/{slug}/docs/",
|
|
51
|
+
},
|
|
52
|
+
]
|
|
53
|
+
|
|
54
|
+
# Paths que são sempre válidos (não avisar)
|
|
55
|
+
ALWAYS_VALID_PATHS = [
|
|
56
|
+
".claude/",
|
|
57
|
+
".sinapse-ai/",
|
|
58
|
+
".sinapse-upstream/",
|
|
59
|
+
"squads/",
|
|
60
|
+
"node_modules/",
|
|
61
|
+
".git/",
|
|
62
|
+
"app/",
|
|
63
|
+
"supabase/",
|
|
64
|
+
"outputs/",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
# =============================================================================
|
|
68
|
+
# LÓGICA DO HOOK
|
|
69
|
+
# =============================================================================
|
|
70
|
+
|
|
71
|
+
def get_project_root():
|
|
72
|
+
"""Obtém o root do projeto."""
|
|
73
|
+
return os.environ.get("CLAUDE_PROJECT_DIR", os.getcwd())
|
|
74
|
+
|
|
75
|
+
def normalize_path(file_path: str, project_root: str) -> str:
|
|
76
|
+
"""Normaliza path para relativo."""
|
|
77
|
+
if file_path.startswith(project_root):
|
|
78
|
+
return file_path[len(project_root):].lstrip("/")
|
|
79
|
+
return file_path
|
|
80
|
+
|
|
81
|
+
def is_always_valid(relative_path: str) -> bool:
|
|
82
|
+
"""Verifica se o path está em área sempre válida."""
|
|
83
|
+
for valid in ALWAYS_VALID_PATHS:
|
|
84
|
+
if relative_path.startswith(valid):
|
|
85
|
+
return True
|
|
86
|
+
return False
|
|
87
|
+
|
|
88
|
+
def is_documentation_file(relative_path: str) -> bool:
|
|
89
|
+
"""Verifica se é um arquivo de documentação."""
|
|
90
|
+
doc_extensions = [".md", ".mdx", ".txt", ".rst"]
|
|
91
|
+
return any(relative_path.endswith(ext) for ext in doc_extensions)
|
|
92
|
+
|
|
93
|
+
def check_path_rules(relative_path: str) -> list[dict]:
|
|
94
|
+
"""
|
|
95
|
+
Verifica se o path viola alguma regra.
|
|
96
|
+
|
|
97
|
+
Returns:
|
|
98
|
+
Lista de violações com sugestões
|
|
99
|
+
"""
|
|
100
|
+
violations = []
|
|
101
|
+
filename = os.path.basename(relative_path)
|
|
102
|
+
|
|
103
|
+
for rule in PATH_RULES:
|
|
104
|
+
# Verificar se o nome do arquivo corresponde ao pattern
|
|
105
|
+
matches_name = False
|
|
106
|
+
for pattern in rule["name_patterns"]:
|
|
107
|
+
if re.search(pattern, filename, re.IGNORECASE):
|
|
108
|
+
matches_name = True
|
|
109
|
+
break
|
|
110
|
+
|
|
111
|
+
if not matches_name:
|
|
112
|
+
continue
|
|
113
|
+
|
|
114
|
+
# Verificar exceções
|
|
115
|
+
if "exclude_patterns" in rule:
|
|
116
|
+
is_excluded = False
|
|
117
|
+
for exc_pattern in rule["exclude_patterns"]:
|
|
118
|
+
if re.search(exc_pattern, filename, re.IGNORECASE):
|
|
119
|
+
is_excluded = True
|
|
120
|
+
break
|
|
121
|
+
if is_excluded:
|
|
122
|
+
continue
|
|
123
|
+
|
|
124
|
+
# Verificar se está no path esperado
|
|
125
|
+
expected = rule["expected_path"]
|
|
126
|
+
if not relative_path.startswith(expected):
|
|
127
|
+
violations.append({
|
|
128
|
+
"current_path": relative_path,
|
|
129
|
+
"expected_path": expected,
|
|
130
|
+
"description": rule["description"],
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
return violations
|
|
134
|
+
|
|
135
|
+
def main():
|
|
136
|
+
# Ler input do stdin
|
|
137
|
+
try:
|
|
138
|
+
input_data = json.load(sys.stdin)
|
|
139
|
+
except json.JSONDecodeError:
|
|
140
|
+
sys.exit(0)
|
|
141
|
+
|
|
142
|
+
tool_name = input_data.get("tool_name", "")
|
|
143
|
+
tool_input = input_data.get("tool_input", {})
|
|
144
|
+
|
|
145
|
+
# Só processar Write e Edit
|
|
146
|
+
if tool_name not in ["Write", "Edit"]:
|
|
147
|
+
sys.exit(0)
|
|
148
|
+
|
|
149
|
+
file_path = tool_input.get("file_path", "")
|
|
150
|
+
if not file_path:
|
|
151
|
+
sys.exit(0)
|
|
152
|
+
|
|
153
|
+
# Normalizar path
|
|
154
|
+
project_root = get_project_root()
|
|
155
|
+
relative_path = normalize_path(file_path, project_root)
|
|
156
|
+
|
|
157
|
+
# Verificar se é área sempre válida
|
|
158
|
+
if is_always_valid(relative_path):
|
|
159
|
+
sys.exit(0)
|
|
160
|
+
|
|
161
|
+
# Só verificar arquivos de documentação
|
|
162
|
+
if not is_documentation_file(relative_path):
|
|
163
|
+
sys.exit(0)
|
|
164
|
+
|
|
165
|
+
# Verificar regras
|
|
166
|
+
violations = check_path_rules(relative_path)
|
|
167
|
+
|
|
168
|
+
if not violations:
|
|
169
|
+
sys.exit(0)
|
|
170
|
+
|
|
171
|
+
# AVISAR (não bloquear)
|
|
172
|
+
violation = violations[0] # Mostrar primeira violação
|
|
173
|
+
|
|
174
|
+
warning_message = f"""
|
|
175
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
176
|
+
│ ⚠️ PATH WARNING: Documento pode estar no local errado │
|
|
177
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
178
|
+
│ │
|
|
179
|
+
│ Arquivo: {relative_path[:60]:<60} │
|
|
180
|
+
│ │
|
|
181
|
+
│ Convenção: {violation['description'][:56]:<56} │
|
|
182
|
+
│ Esperado: {violation['expected_path']:<57} │
|
|
183
|
+
│ │
|
|
184
|
+
│ NOTA: Este é apenas um AVISO, a operação será executada. │
|
|
185
|
+
│ Verifique se o path está correto antes de continuar. │
|
|
186
|
+
│ │
|
|
187
|
+
└──────────────────────────────────────────────────────────────────────────────┘
|
|
188
|
+
"""
|
|
189
|
+
# Imprimir warning mas NÃO bloquear (exit 0)
|
|
190
|
+
print(warning_message, file=sys.stderr)
|
|
191
|
+
sys.exit(0)
|
|
192
|
+
|
|
193
|
+
if __name__ == "__main__":
|
|
194
|
+
main()
|
|
195
|
+
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- ".claude/hooks/**"
|
|
4
|
+
- ".claude/settings.json"
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
# Hook Governance Rules
|
|
2
8
|
|
|
3
9
|
> Applies to ALL agents. Hooks are the enforcement layer of the Constitution.
|
|
@@ -8,6 +14,7 @@
|
|
|
8
14
|
| Hook | Purpose | Behavior |
|
|
9
15
|
|------|---------|----------|
|
|
10
16
|
| `enforce-git-push-authority.sh` | Art. II — Only @devops can push | BLOCK (deny) |
|
|
17
|
+
| `verify-packages.cjs` | Security — Block hallucinated npm packages (slopsquatting) | BLOCK (exit 2) |
|
|
11
18
|
| `sql-governance.py` | Security — Block dangerous SQL | BLOCK (exit 2) |
|
|
12
19
|
| `enforce-delegation.cjs` | Art. VIII — Orchestrators can't execute | BLOCK (exit 2) |
|
|
13
20
|
|
|
@@ -91,6 +91,30 @@ Everything OUTSIDE their orchestration domain MUST be delegated.
|
|
|
91
91
|
- Saying "vou fazer isso eu mesmo" instead of delegating
|
|
92
92
|
- Absorbing a request and executing it instead of routing
|
|
93
93
|
|
|
94
|
+
## Universal Auto-Routing (users should NEVER call agents manually)
|
|
95
|
+
|
|
96
|
+
Users are NOT AI experts. The system MUST understand natural language and route automatically.
|
|
97
|
+
|
|
98
|
+
**On EVERY user message (not just orchestrator):**
|
|
99
|
+
1. Detect the domain of the request
|
|
100
|
+
2. If a specialist exists → delegate automatically (no confirmation needed)
|
|
101
|
+
3. Brief acknowledgment: "Delegando para @specialist..."
|
|
102
|
+
4. Return the result to the user
|
|
103
|
+
|
|
104
|
+
**Auto-detect project state on first interaction:**
|
|
105
|
+
- Check for `.sinapse-ai/` → SINAPSE-managed (continue SDC)
|
|
106
|
+
- Check for `package.json` or `.git` → Brownfield (run quick tech scan first)
|
|
107
|
+
- Empty directory → Greenfield (ask project type, scaffold)
|
|
108
|
+
|
|
109
|
+
**Cross-agent handoff (automatic, never ask user):**
|
|
110
|
+
- Agent needs git push → auto-delegate to @devops
|
|
111
|
+
- Agent needs tests → auto-delegate to @quality-gate
|
|
112
|
+
- Agent needs schema → auto-delegate to @data-engineer
|
|
113
|
+
- Agent needs story → auto-create via fast-track or @sprint-lead
|
|
114
|
+
- Agent needs architecture decision → auto-delegate to @architect
|
|
115
|
+
|
|
94
116
|
## Enforcement
|
|
95
117
|
|
|
96
118
|
Any response from an orchestrator that contains direct domain work (code, schema, copy, etc.) without having first delegated to the appropriate specialist is a **constitutional violation** and must be corrected immediately.
|
|
119
|
+
|
|
120
|
+
Any response that asks the user to manually invoke an agent (showing `@agent-name` or `/SINAPSE:agents:...` commands) instead of auto-routing is a **UX violation** — the system should just do it.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Project Intelligence — Auto-Detection (NON-NEGOTIABLE)
|
|
2
|
+
|
|
3
|
+
> Applies to ALL agents, ALL sessions. Users NEVER configure project type manually.
|
|
4
|
+
|
|
5
|
+
## Auto-Detect on First Interaction
|
|
6
|
+
|
|
7
|
+
Before ANY work, silently detect project state:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
1. Check: does .sinapse-ai/ exist?
|
|
11
|
+
YES → SINAPSE-managed project. Read core-config.yaml for context.
|
|
12
|
+
NO → Continue to step 2.
|
|
13
|
+
|
|
14
|
+
2. Check: is directory empty (or only has .git)?
|
|
15
|
+
YES → GREENFIELD. Ask project type, then scaffold.
|
|
16
|
+
NO → Continue to step 3.
|
|
17
|
+
|
|
18
|
+
3. Check: does package.json or .git exist?
|
|
19
|
+
YES → BROWNFIELD. Run quick tech scan, then proceed.
|
|
20
|
+
NO → UNKNOWN. Ask user what they want to build.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Quick Tech Scan (BROWNFIELD, < 5 seconds)
|
|
24
|
+
|
|
25
|
+
When brownfield detected, silently check:
|
|
26
|
+
|
|
27
|
+
| Check | How | Sets Context |
|
|
28
|
+
|-------|-----|-------------|
|
|
29
|
+
| Framework | package.json dependencies | next/react/vue/angular/express |
|
|
30
|
+
| Language | tsconfig.json exists? | typescript/javascript |
|
|
31
|
+
| Database | supabase/, prisma/, .env | supabase/prisma/drizzle/none |
|
|
32
|
+
| Tests | jest.config, vitest.config | jest/vitest/none |
|
|
33
|
+
| CI | .github/workflows/ | github-actions/none |
|
|
34
|
+
|
|
35
|
+
Report to user in ONE line: "Projeto Next.js + TypeScript + Supabase detectado."
|
|
36
|
+
|
|
37
|
+
## Behavior Adaptation by State
|
|
38
|
+
|
|
39
|
+
### Greenfield Behavior
|
|
40
|
+
- Prioritize: scaffolding, architecture decisions, project setup
|
|
41
|
+
- Workflow: setup → story → implement (no brownfield discovery needed)
|
|
42
|
+
- Auto-apply: infra templates (PR template, CI, .env.example, CODEOWNERS)
|
|
43
|
+
- Ask: "Que tipo de projeto? (web app, API, SaaS, landing page)"
|
|
44
|
+
|
|
45
|
+
### Brownfield Behavior
|
|
46
|
+
- Prioritize: understanding existing code before changing anything
|
|
47
|
+
- First action: read README, package.json, folder structure
|
|
48
|
+
- Workflow: quick scan → understand → then proceed with user request
|
|
49
|
+
- NEVER rewrite or refactor without understanding existing patterns
|
|
50
|
+
- Respect existing conventions (naming, folder structure, testing framework)
|
|
51
|
+
|
|
52
|
+
### SINAPSE-Managed Behavior
|
|
53
|
+
- Check for active story in docs/stories/
|
|
54
|
+
- Resume where last session left off
|
|
55
|
+
- Follow SDC workflow (story → implement → QA → push)
|
|
56
|
+
|
|
57
|
+
## Anti-Patterns (FORBIDDEN)
|
|
58
|
+
|
|
59
|
+
- Asking user "is this a new or existing project?"
|
|
60
|
+
- Asking user to set `projectType` in config
|
|
61
|
+
- Starting implementation in brownfield without reading existing code first
|
|
62
|
+
- Applying greenfield templates to a brownfield project (overwriting existing CI/configs)
|
|
63
|
+
- Ignoring existing patterns and imposing SINAPSE conventions forcefully
|
|
@@ -40,6 +40,7 @@ The agent creates the branch. The user never needs to name it.
|
|
|
40
40
|
|-----|---------------|---------|
|
|
41
41
|
| Caio's session | `caio/{type}/{short-desc}` | `caio/feat/installer-ux` |
|
|
42
42
|
| Matheus's session | `soier/{type}/{short-desc}` | `soier/fix/agent-config` |
|
|
43
|
+
| AI agent | `agent/{squad}/{agent-id}/{type}-{desc}` | `agent/core/pixel/feat-dark-mode` |
|
|
43
44
|
| Unknown | `dev/{type}/{short-desc}` | `dev/feat/new-feature` |
|
|
44
45
|
|
|
45
46
|
Types: `feat`, `fix`, `refactor`, `docs`, `chore`, `test`
|
|
@@ -90,8 +91,10 @@ Types: `feat`, `fix`, `refactor`, `docs`, `chore`, `test`
|
|
|
90
91
|
After push, the agent MUST:
|
|
91
92
|
```
|
|
92
93
|
1. gh pr create with clear title and description (uses PR template)
|
|
93
|
-
2. Auto-assign
|
|
94
|
-
|
|
94
|
+
2. Auto-assign reviewer based on who is pushing:
|
|
95
|
+
- Caio's PR → Caio can merge directly (admin bypass)
|
|
96
|
+
- Matheus's PR → Assign @caioimori as reviewer (required approval)
|
|
97
|
+
3. Inform the user: "PR criado"
|
|
95
98
|
```
|
|
96
99
|
|
|
97
100
|
### 6. After PR Merge — Cleanup
|
|
@@ -171,3 +174,12 @@ These same rules apply to ANY project where SINAPSE agents operate:
|
|
|
171
174
|
```
|
|
172
175
|
|
|
173
176
|
Everything else: **ask the agent to do it.**
|
|
177
|
+
|
|
178
|
+
## PR Quality Standards
|
|
179
|
+
|
|
180
|
+
| Metric | Target | Warning |
|
|
181
|
+
|--------|--------|---------|
|
|
182
|
+
| PR size | < 200 lines | > 400 lines |
|
|
183
|
+
| PR cycle time | < 1 day | > 3 days |
|
|
184
|
+
|
|
185
|
+
**DORA Targets (Elite):** Deploy multiple/day, lead time < 1 day, failure rate < 4%, recovery < 1 hour.
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- ".env*"
|
|
4
|
+
- "supabase/**"
|
|
5
|
+
- "packages/**/auth/**"
|
|
6
|
+
- "apps/**"
|
|
7
|
+
- ".github/workflows/**"
|
|
8
|
+
---
|
|
9
|
+
|
|
1
10
|
# Security & Data Protection (NON-NEGOTIABLE)
|
|
2
11
|
|
|
3
12
|
> **Constitution Article X — NON-NEGOTIABLE**
|
|
@@ -89,6 +98,24 @@ db.query('SELECT * FROM users WHERE name = $1', [input]);
|
|
|
89
98
|
supabase.from('users').select('*').eq('name', input);
|
|
90
99
|
```
|
|
91
100
|
|
|
101
|
+
### RLS Performance Optimization (research-backed, ~95% improvement)
|
|
102
|
+
|
|
103
|
+
```sql
|
|
104
|
+
-- SLOW: auth.uid() called per-row (function call overhead)
|
|
105
|
+
CREATE POLICY "bad" ON items USING (auth.uid() = user_id);
|
|
106
|
+
|
|
107
|
+
-- FAST: subselect evaluates once per query (~95% faster)
|
|
108
|
+
CREATE POLICY "good" ON items USING ((SELECT auth.uid()) = user_id);
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Index strategy:** Create indexes on EVERY column used in RLS USING/WITH CHECK clauses:
|
|
112
|
+
```sql
|
|
113
|
+
CREATE INDEX idx_items_user ON items(user_id);
|
|
114
|
+
CREATE INDEX idx_items_org ON items(org_id);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Anti-patterns:** No `EXISTS` subqueries in RLS, no JOINs in policies, no RLS on tables accessed >1000 req/s without indexes.
|
|
118
|
+
|
|
92
119
|
### Least Privilege
|
|
93
120
|
- Each service uses a dedicated role with minimal permissions
|
|
94
121
|
- Read-only services get SELECT only
|