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
|
@@ -0,0 +1,611 @@
|
|
|
1
|
+
# load-testing-setup
|
|
2
|
+
|
|
3
|
+
**Task ID:** load-testing-setup
|
|
4
|
+
**Version:** 1.0.0
|
|
5
|
+
**Created:** 2026-04-11
|
|
6
|
+
**Updated:** 2026-04-11
|
|
7
|
+
**Agent:** @quality-gate (Quinn)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Configurar e executar testes de carga para o projeto usando k6. Identifica endpoints criticos e fluxos de usuario, cria scripts de teste, define thresholds de performance, executa testes baseline e de stress, analisa resultados, identifica gargalos e gera relatorio completo.
|
|
14
|
+
|
|
15
|
+
**Esta task deve ser executada APOS a implementacao estar funcional**, idealmente antes do primeiro deploy em producao.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Execution Modes
|
|
20
|
+
|
|
21
|
+
**Choose your execution mode:**
|
|
22
|
+
|
|
23
|
+
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
24
|
+
|
|
25
|
+
- Detecta endpoints automaticamente e cria scripts basicos
|
|
26
|
+
- Executa baseline test com thresholds padrao
|
|
27
|
+
- **Best for:** Validacao rapida antes de deploy
|
|
28
|
+
|
|
29
|
+
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
30
|
+
|
|
31
|
+
- Checkpoints para selecao de endpoints e thresholds
|
|
32
|
+
- Explicacoes sobre metricas de performance
|
|
33
|
+
- **Best for:** Primeiro load test, equipes aprendendo
|
|
34
|
+
|
|
35
|
+
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
36
|
+
|
|
37
|
+
- Mapeamento completo de fluxos antes de executar
|
|
38
|
+
- Plano de teste documentado e aprovado
|
|
39
|
+
- **Best for:** Projetos criticos, compliance requirements
|
|
40
|
+
|
|
41
|
+
**Parameter:** `mode` (optional, default: `interactive`)
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Task Definition (SINAPSE Task Format V1.0)
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
task: loadTestingSetup()
|
|
49
|
+
responsavel: Quinn (Quality Gate)
|
|
50
|
+
responsavel_type: Agente
|
|
51
|
+
atomic_layer: Organism
|
|
52
|
+
|
|
53
|
+
**Entrada:**
|
|
54
|
+
- campo: project_path
|
|
55
|
+
tipo: string
|
|
56
|
+
origem: User Input
|
|
57
|
+
obrigatorio: true
|
|
58
|
+
validacao: Must be valid project directory
|
|
59
|
+
|
|
60
|
+
- campo: base_url
|
|
61
|
+
tipo: string
|
|
62
|
+
origem: User Input
|
|
63
|
+
obrigatorio: true
|
|
64
|
+
validacao: URL do ambiente a ser testado (ex: http://localhost:3000)
|
|
65
|
+
|
|
66
|
+
- campo: target_rps
|
|
67
|
+
tipo: number
|
|
68
|
+
origem: User Input
|
|
69
|
+
obrigatorio: false
|
|
70
|
+
validacao: Target requests per second (default: 50)
|
|
71
|
+
|
|
72
|
+
- campo: test_duration
|
|
73
|
+
tipo: string
|
|
74
|
+
origem: User Input
|
|
75
|
+
obrigatorio: false
|
|
76
|
+
validacao: Duracao do teste (default: "30s")
|
|
77
|
+
|
|
78
|
+
**Saida:**
|
|
79
|
+
- campo: test_scripts
|
|
80
|
+
tipo: array
|
|
81
|
+
destino: File system (tests/load/*.js)
|
|
82
|
+
persistido: true
|
|
83
|
+
|
|
84
|
+
- campo: test_report
|
|
85
|
+
tipo: object
|
|
86
|
+
destino: File system (docs/qa/load-test-report.md)
|
|
87
|
+
persistido: true
|
|
88
|
+
|
|
89
|
+
- campo: bottlenecks
|
|
90
|
+
tipo: array
|
|
91
|
+
destino: Return value
|
|
92
|
+
persistido: false
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Pre-Conditions
|
|
98
|
+
|
|
99
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
100
|
+
|
|
101
|
+
**Checklist:**
|
|
102
|
+
|
|
103
|
+
```yaml
|
|
104
|
+
pre-conditions:
|
|
105
|
+
- [ ] k6 is installed and accessible in PATH
|
|
106
|
+
tipo: pre-condition
|
|
107
|
+
blocker: true
|
|
108
|
+
validacao: |
|
|
109
|
+
k6 version returns valid version
|
|
110
|
+
error_message: "k6 not installed. Install via: brew install k6 (macOS) / winget install k6 (Windows) / apt install k6 (Linux)"
|
|
111
|
+
|
|
112
|
+
- [ ] Application is running and accessible
|
|
113
|
+
tipo: pre-condition
|
|
114
|
+
blocker: true
|
|
115
|
+
validacao: |
|
|
116
|
+
HTTP GET to base_url returns 2xx or 3xx status
|
|
117
|
+
error_message: "Application not accessible at {base_url}. Start the application first."
|
|
118
|
+
|
|
119
|
+
- [ ] API endpoints are documented or discoverable
|
|
120
|
+
tipo: pre-condition
|
|
121
|
+
blocker: false
|
|
122
|
+
validacao: |
|
|
123
|
+
OpenAPI spec exists or routes are scannable
|
|
124
|
+
error_message: "No API documentation found. Endpoints will be identified manually."
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Post-Conditions
|
|
130
|
+
|
|
131
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
132
|
+
|
|
133
|
+
**Checklist:**
|
|
134
|
+
|
|
135
|
+
```yaml
|
|
136
|
+
post-conditions:
|
|
137
|
+
- [ ] k6 test scripts created in tests/load/
|
|
138
|
+
tipo: post-condition
|
|
139
|
+
blocker: true
|
|
140
|
+
validacao: |
|
|
141
|
+
At least one .js file exists in tests/load/
|
|
142
|
+
error_message: "No test scripts created"
|
|
143
|
+
|
|
144
|
+
- [ ] Baseline test executed successfully
|
|
145
|
+
tipo: post-condition
|
|
146
|
+
blocker: true
|
|
147
|
+
validacao: |
|
|
148
|
+
k6 exit code 0 for baseline test
|
|
149
|
+
error_message: "Baseline test failed to execute"
|
|
150
|
+
|
|
151
|
+
- [ ] Load test report generated
|
|
152
|
+
tipo: post-condition
|
|
153
|
+
blocker: true
|
|
154
|
+
validacao: |
|
|
155
|
+
docs/qa/load-test-report.md exists with results
|
|
156
|
+
error_message: "Load test report not generated"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Acceptance Criteria
|
|
162
|
+
|
|
163
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
164
|
+
|
|
165
|
+
**Checklist:**
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
acceptance-criteria:
|
|
169
|
+
- [ ] Critical endpoints have dedicated test scripts
|
|
170
|
+
tipo: acceptance-criterion
|
|
171
|
+
blocker: true
|
|
172
|
+
validacao: |
|
|
173
|
+
Each critical endpoint has at least one k6 scenario
|
|
174
|
+
error_message: "Not all critical endpoints covered by tests"
|
|
175
|
+
|
|
176
|
+
- [ ] Performance thresholds defined and validated
|
|
177
|
+
tipo: acceptance-criterion
|
|
178
|
+
blocker: true
|
|
179
|
+
validacao: |
|
|
180
|
+
k6 thresholds are configured (p95, error rate, RPS)
|
|
181
|
+
error_message: "Performance thresholds not defined"
|
|
182
|
+
|
|
183
|
+
- [ ] Report includes bottleneck analysis
|
|
184
|
+
tipo: acceptance-criterion
|
|
185
|
+
blocker: false
|
|
186
|
+
validacao: |
|
|
187
|
+
Report document contains bottleneck identification section
|
|
188
|
+
error_message: "Bottleneck analysis missing from report"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Elicitation
|
|
194
|
+
|
|
195
|
+
```yaml
|
|
196
|
+
elicit: true
|
|
197
|
+
interaction_points:
|
|
198
|
+
- base_url: 'Qual a URL base do ambiente de teste? (ex: http://localhost:3000)'
|
|
199
|
+
- critical_endpoints: 'Quais os endpoints/fluxos mais criticos? (ex: login, checkout, dashboard)'
|
|
200
|
+
- target_users: 'Quantos usuarios simultaneos sao esperados em producao?'
|
|
201
|
+
- target_rps: 'Qual o target de requests por segundo? (default: 50 RPS)'
|
|
202
|
+
- test_environment: 'Testar contra qual ambiente? (local / staging / production-like)'
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Process
|
|
208
|
+
|
|
209
|
+
### Step 1: Verificar/Instalar k6
|
|
210
|
+
|
|
211
|
+
**Action:** Garantir que k6 esta instalado e funcional
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Verificar k6
|
|
215
|
+
k6 version
|
|
216
|
+
|
|
217
|
+
# Se nao instalado, instalar por plataforma:
|
|
218
|
+
# macOS
|
|
219
|
+
brew install k6
|
|
220
|
+
|
|
221
|
+
# Windows
|
|
222
|
+
winget install k6 --source winget
|
|
223
|
+
|
|
224
|
+
# Linux (Debian/Ubuntu)
|
|
225
|
+
sudo gpg -k
|
|
226
|
+
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg \
|
|
227
|
+
--keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D68
|
|
228
|
+
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | \
|
|
229
|
+
sudo tee /etc/apt/sources.list.d/k6.list
|
|
230
|
+
sudo apt-get update && sudo apt-get install k6
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Output:** k6 instalado e versao confirmada
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
### Step 2: Identificar Endpoints e Fluxos Criticos
|
|
238
|
+
|
|
239
|
+
**Action:** Mapear os endpoints mais importantes para testar
|
|
240
|
+
|
|
241
|
+
```yaml
|
|
242
|
+
elicit: true
|
|
243
|
+
prompt: |
|
|
244
|
+
Preciso identificar os fluxos criticos do projeto.
|
|
245
|
+
Exemplos comuns:
|
|
246
|
+
- Auth: POST /api/auth/login, POST /api/auth/register
|
|
247
|
+
- CRUD: GET /api/items, POST /api/items, PUT /api/items/:id
|
|
248
|
+
- Pages: GET /, GET /dashboard, GET /profile
|
|
249
|
+
Quais sao os mais criticos para o seu projeto?
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Estrategias de deteccao automatica:
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
# Detectar rotas Next.js (App Router)
|
|
256
|
+
find app/api -name "route.ts" -o -name "route.js" 2>/dev/null
|
|
257
|
+
|
|
258
|
+
# Detectar rotas Next.js (Pages Router)
|
|
259
|
+
find pages/api -name "*.ts" -o -name "*.js" 2>/dev/null
|
|
260
|
+
|
|
261
|
+
# Detectar OpenAPI spec
|
|
262
|
+
test -f openapi.json || test -f openapi.yaml || test -f swagger.json
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Output:** Lista de endpoints criticos priorizados
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
### Step 3: Criar Scripts k6 por Fluxo Critico
|
|
270
|
+
|
|
271
|
+
**Action:** Gerar scripts de teste para cada endpoint/fluxo
|
|
272
|
+
|
|
273
|
+
Criar `tests/load/` directory com scripts:
|
|
274
|
+
|
|
275
|
+
```javascript
|
|
276
|
+
// tests/load/baseline.js
|
|
277
|
+
import http from 'k6/http';
|
|
278
|
+
import { check, sleep } from 'k6';
|
|
279
|
+
|
|
280
|
+
export const options = {
|
|
281
|
+
stages: [
|
|
282
|
+
{ duration: '30s', target: 10 }, // ramp up
|
|
283
|
+
{ duration: '1m', target: 10 }, // steady state
|
|
284
|
+
{ duration: '10s', target: 0 }, // ramp down
|
|
285
|
+
],
|
|
286
|
+
thresholds: {
|
|
287
|
+
http_req_duration: ['p(95)<500'], // 95% das requests < 500ms
|
|
288
|
+
http_req_failed: ['rate<0.01'], // < 1% error rate
|
|
289
|
+
http_reqs: ['rate>10'], // > 10 RPS
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export default function () {
|
|
294
|
+
const res = http.get('${BASE_URL}/');
|
|
295
|
+
check(res, {
|
|
296
|
+
'status is 200': (r) => r.status === 200,
|
|
297
|
+
'response time < 500ms': (r) => r.timings.duration < 500,
|
|
298
|
+
});
|
|
299
|
+
sleep(1);
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
```javascript
|
|
304
|
+
// tests/load/api-endpoints.js
|
|
305
|
+
import http from 'k6/http';
|
|
306
|
+
import { check, group, sleep } from 'k6';
|
|
307
|
+
|
|
308
|
+
export const options = {
|
|
309
|
+
stages: [
|
|
310
|
+
{ duration: '30s', target: 20 },
|
|
311
|
+
{ duration: '1m', target: 20 },
|
|
312
|
+
{ duration: '10s', target: 0 },
|
|
313
|
+
],
|
|
314
|
+
thresholds: {
|
|
315
|
+
http_req_duration: ['p(95)<300'],
|
|
316
|
+
http_req_failed: ['rate<0.05'],
|
|
317
|
+
},
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
export default function () {
|
|
321
|
+
group('API Health', () => {
|
|
322
|
+
const res = http.get('${BASE_URL}/api/health');
|
|
323
|
+
check(res, { 'health ok': (r) => r.status === 200 });
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
// Add more groups per critical endpoint
|
|
327
|
+
sleep(0.5);
|
|
328
|
+
}
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Output:** Scripts criados em `tests/load/`
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### Step 4: Definir Thresholds de Performance
|
|
336
|
+
|
|
337
|
+
**Action:** Estabelecer limites aceitaveis por tipo de operacao
|
|
338
|
+
|
|
339
|
+
```yaml
|
|
340
|
+
elicit: true
|
|
341
|
+
prompt: |
|
|
342
|
+
Thresholds recomendados por tipo de operacao:
|
|
343
|
+
|
|
344
|
+
| Tipo | P95 Latency | Error Rate | Min RPS |
|
|
345
|
+
|------|-------------|------------|---------|
|
|
346
|
+
| Pages (SSR) | < 1000ms | < 1% | 10 |
|
|
347
|
+
| API reads | < 300ms | < 1% | 50 |
|
|
348
|
+
| API writes | < 500ms | < 2% | 20 |
|
|
349
|
+
| Auth | < 800ms | < 0.5% | 10 |
|
|
350
|
+
| File upload | < 3000ms | < 5% | 5 |
|
|
351
|
+
|
|
352
|
+
Estes thresholds estao adequados para o seu projeto?
|
|
353
|
+
Posso ajustar conforme necessario.
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Output:** Thresholds definidos e aplicados nos scripts
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
### Step 5: Executar Baseline Load Test
|
|
361
|
+
|
|
362
|
+
**Action:** Rodar teste de carga com volume normal esperado
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# Executar baseline test
|
|
366
|
+
k6 run tests/load/baseline.js
|
|
367
|
+
|
|
368
|
+
# Com output em JSON para analise
|
|
369
|
+
k6 run --out json=tests/load/results/baseline.json tests/load/baseline.js
|
|
370
|
+
|
|
371
|
+
# Com output visual (web dashboard)
|
|
372
|
+
K6_WEB_DASHBOARD=true k6 run tests/load/baseline.js
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Analisar metricas chave:
|
|
376
|
+
|
|
377
|
+
| Metrica | Significado | Threshold |
|
|
378
|
+
|---------|------------|-----------|
|
|
379
|
+
| `http_req_duration (p95)` | 95% das requests completam em X ms | < 500ms |
|
|
380
|
+
| `http_req_failed` | Taxa de erros | < 1% |
|
|
381
|
+
| `http_reqs` | Requests por segundo | > target RPS |
|
|
382
|
+
| `vus` | Virtual Users simultaneos | target users |
|
|
383
|
+
| `iterations` | Total de iteracoes completadas | > 0 |
|
|
384
|
+
|
|
385
|
+
**Output:** Resultados baseline documentados
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
### Step 6: Executar Stress Test
|
|
390
|
+
|
|
391
|
+
**Action:** Testar com 2x-5x da carga esperada para encontrar limites
|
|
392
|
+
|
|
393
|
+
```javascript
|
|
394
|
+
// tests/load/stress.js
|
|
395
|
+
import http from 'k6/http';
|
|
396
|
+
import { check, sleep } from 'k6';
|
|
397
|
+
|
|
398
|
+
export const options = {
|
|
399
|
+
stages: [
|
|
400
|
+
{ duration: '1m', target: 20 }, // ramp to normal
|
|
401
|
+
{ duration: '2m', target: 20 }, // stay at normal
|
|
402
|
+
{ duration: '1m', target: 50 }, // ramp to 2.5x
|
|
403
|
+
{ duration: '2m', target: 50 }, // stay at 2.5x
|
|
404
|
+
{ duration: '1m', target: 100 }, // ramp to 5x
|
|
405
|
+
{ duration: '2m', target: 100 }, // stay at 5x
|
|
406
|
+
{ duration: '1m', target: 0 }, // ramp down
|
|
407
|
+
],
|
|
408
|
+
thresholds: {
|
|
409
|
+
http_req_duration: ['p(95)<2000'], // more lenient for stress
|
|
410
|
+
http_req_failed: ['rate<0.10'], // allow up to 10% errors
|
|
411
|
+
},
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
export default function () {
|
|
415
|
+
const res = http.get('${BASE_URL}/');
|
|
416
|
+
check(res, {
|
|
417
|
+
'status is 200': (r) => r.status === 200,
|
|
418
|
+
});
|
|
419
|
+
sleep(0.5);
|
|
420
|
+
}
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
k6 run tests/load/stress.js
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**Output:** Ponto de ruptura identificado
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
### Step 7: Analisar Resultados e Identificar Gargalos
|
|
432
|
+
|
|
433
|
+
**Action:** Correlacionar resultados com componentes do sistema
|
|
434
|
+
|
|
435
|
+
Categorias de gargalos:
|
|
436
|
+
|
|
437
|
+
| Gargalo | Sintoma | Solucao Comum |
|
|
438
|
+
|---------|---------|--------------|
|
|
439
|
+
| Database | Latency cresce com carga, queries lentas | Indexacao, query optimization, connection pooling |
|
|
440
|
+
| API Server | CPU/memory saturados | Horizontal scaling, caching |
|
|
441
|
+
| Network | High TTFB, timeout errors | CDN, edge computing |
|
|
442
|
+
| Frontend | Slow initial load, large bundles | Code splitting, lazy loading |
|
|
443
|
+
| Auth | Login bottleneck | Token caching, session optimization |
|
|
444
|
+
|
|
445
|
+
**Output:** Lista de gargalos priorizados
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
### Step 8: Gerar Relatorio de Load Test
|
|
450
|
+
|
|
451
|
+
**Action:** Criar documento completo com resultados e recomendacoes
|
|
452
|
+
|
|
453
|
+
Gerar `docs/qa/load-test-report.md`:
|
|
454
|
+
|
|
455
|
+
```markdown
|
|
456
|
+
# Load Test Report
|
|
457
|
+
|
|
458
|
+
**Projeto:** {project_name}
|
|
459
|
+
**Data:** {date}
|
|
460
|
+
**Ambiente:** {environment}
|
|
461
|
+
**Ferramenta:** k6 v{version}
|
|
462
|
+
|
|
463
|
+
## Resumo Executivo
|
|
464
|
+
|
|
465
|
+
| Metrica | Baseline | Stress (2.5x) | Stress (5x) | Threshold |
|
|
466
|
+
|---------|----------|---------------|-------------|-----------|
|
|
467
|
+
| P95 Latency | Xms | Xms | Xms | < 500ms |
|
|
468
|
+
| Error Rate | X% | X% | X% | < 1% |
|
|
469
|
+
| Max RPS | X | X | X | > 50 |
|
|
470
|
+
| Max VUs | X | X | X | - |
|
|
471
|
+
|
|
472
|
+
## Resultado: PASS / FAIL / CONCERNS
|
|
473
|
+
|
|
474
|
+
## Gargalos Identificados
|
|
475
|
+
1. ...
|
|
476
|
+
|
|
477
|
+
## Recomendacoes
|
|
478
|
+
1. ...
|
|
479
|
+
|
|
480
|
+
## Proximos Passos
|
|
481
|
+
1. ...
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**Output:** Relatorio completo gerado
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
### Step 9: Adicionar k6 ao CI/CD (Opcional)
|
|
489
|
+
|
|
490
|
+
**Action:** Integrar load tests na pipeline de CI/CD
|
|
491
|
+
|
|
492
|
+
```yaml
|
|
493
|
+
elicit: true
|
|
494
|
+
prompt: |
|
|
495
|
+
Deseja adicionar load tests a pipeline de CI/CD?
|
|
496
|
+
Opcoes:
|
|
497
|
+
1. Rodar baseline test em cada deploy de staging
|
|
498
|
+
2. Rodar antes de deploy em producao (gate)
|
|
499
|
+
3. Apenas execucao manual (nao adicionar ao CI)
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
Se sim, adicionar step ao workflow:
|
|
503
|
+
|
|
504
|
+
```yaml
|
|
505
|
+
# Adicionar ao .github/workflows/deploy-pipeline.yml
|
|
506
|
+
load-test:
|
|
507
|
+
needs: deploy-staging
|
|
508
|
+
runs-on: ubuntu-latest
|
|
509
|
+
steps:
|
|
510
|
+
- uses: actions/checkout@v4
|
|
511
|
+
- uses: grafana/k6-action@v0.3.1
|
|
512
|
+
with:
|
|
513
|
+
filename: tests/load/baseline.js
|
|
514
|
+
env:
|
|
515
|
+
BASE_URL: ${{ vars.STAGING_URL }}
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
**Output:** Load tests integrados ao CI/CD
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## Tools
|
|
523
|
+
|
|
524
|
+
**External/shared resources used by this task:**
|
|
525
|
+
|
|
526
|
+
- **Tool:** k6
|
|
527
|
+
- **Purpose:** Load testing engine
|
|
528
|
+
- **Source:** https://k6.io
|
|
529
|
+
|
|
530
|
+
- **Tool:** research-reference
|
|
531
|
+
- **Purpose:** Consultar pesquisa de load testing
|
|
532
|
+
- **Source:** `docs/research/load-testing-capacity-planning.md`
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
## Error Handling
|
|
537
|
+
|
|
538
|
+
**Strategy:** retry-with-guidance
|
|
539
|
+
|
|
540
|
+
**Common Errors:**
|
|
541
|
+
|
|
542
|
+
1. **Error:** k6 Not Installed
|
|
543
|
+
- **Cause:** k6 CLI nao esta no PATH
|
|
544
|
+
- **Resolution:** Instalar conforme Step 1
|
|
545
|
+
- **Recovery:** Fornecer instrucoes por plataforma
|
|
546
|
+
|
|
547
|
+
2. **Error:** Application Not Responding
|
|
548
|
+
- **Cause:** App nao esta rodando ou URL incorreta
|
|
549
|
+
- **Resolution:** Verificar se app esta acessivel, corrigir URL
|
|
550
|
+
- **Recovery:** Pedir ao usuario para iniciar a aplicacao
|
|
551
|
+
|
|
552
|
+
3. **Error:** All Requests Failing
|
|
553
|
+
- **Cause:** CORS, auth required, ou URL incorreta
|
|
554
|
+
- **Resolution:** Verificar se endpoint aceita requests externas
|
|
555
|
+
- **Recovery:** Adicionar headers de auth nos scripts, ajustar CORS
|
|
556
|
+
|
|
557
|
+
4. **Error:** Thresholds Exceeded
|
|
558
|
+
- **Cause:** Performance abaixo do esperado
|
|
559
|
+
- **Resolution:** Isto NAO e um erro da task — e o resultado esperado
|
|
560
|
+
- **Recovery:** Documentar como gargalo no relatorio
|
|
561
|
+
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
## Performance
|
|
565
|
+
|
|
566
|
+
**Expected Metrics:**
|
|
567
|
+
|
|
568
|
+
```yaml
|
|
569
|
+
duration_expected: 30-60 min (including test execution)
|
|
570
|
+
cost_estimated: $0.00 (local execution)
|
|
571
|
+
token_usage: ~4,000-10,000 tokens
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
**Optimization Notes:**
|
|
575
|
+
|
|
576
|
+
- Executar testes contra ambiente local para evitar custos
|
|
577
|
+
- Reutilizar scripts entre runs, apenas ajustando thresholds
|
|
578
|
+
- k6 web dashboard para visualizacao em tempo real
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
## Metadata
|
|
583
|
+
|
|
584
|
+
```yaml
|
|
585
|
+
story: N/A (Framework task)
|
|
586
|
+
version: 1.0.0
|
|
587
|
+
dependencies:
|
|
588
|
+
- docs/research/load-testing-capacity-planning.md
|
|
589
|
+
tags:
|
|
590
|
+
- load-testing
|
|
591
|
+
- performance
|
|
592
|
+
- k6
|
|
593
|
+
- quality
|
|
594
|
+
- stress-testing
|
|
595
|
+
updated_at: 2026-04-11
|
|
596
|
+
changelog:
|
|
597
|
+
1.0.0:
|
|
598
|
+
- Initial task creation
|
|
599
|
+
- k6 baseline and stress test templates
|
|
600
|
+
- Threshold configuration framework
|
|
601
|
+
- CI/CD integration optional step
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
**Related Tasks:**
|
|
607
|
+
|
|
608
|
+
- `qa-gate` - Quality gate que pode incluir resultados de load test
|
|
609
|
+
- `infrastructure-assessment` - Assessment que define thresholds esperados
|
|
610
|
+
- `observability-blueprint` - Monitoring para correlacionar com load tests
|
|
611
|
+
- `ci-cd-configuration` - Pipeline onde load tests podem ser integrados
|