aios-core 2.1.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/.aios-core/.session/current-session.json +14 -0
- package/.aios-core/cli/commands/generate/index.js +222 -0
- package/.aios-core/cli/commands/manifest/index.js +46 -0
- package/.aios-core/cli/commands/manifest/regenerate.js +96 -0
- package/.aios-core/cli/commands/manifest/validate.js +66 -0
- package/.aios-core/cli/commands/mcp/add.js +234 -0
- package/.aios-core/cli/commands/mcp/index.js +76 -0
- package/.aios-core/cli/commands/mcp/link.js +217 -0
- package/.aios-core/cli/commands/mcp/setup.js +164 -0
- package/.aios-core/cli/commands/mcp/status.js +183 -0
- package/.aios-core/cli/commands/metrics/cleanup.js +91 -0
- package/.aios-core/cli/commands/metrics/index.js +65 -0
- package/.aios-core/cli/commands/metrics/record.js +154 -0
- package/.aios-core/cli/commands/metrics/seed.js +126 -0
- package/.aios-core/cli/commands/metrics/show.js +209 -0
- package/.aios-core/cli/commands/migrate/analyze.js +353 -0
- package/.aios-core/cli/commands/migrate/backup.js +352 -0
- package/.aios-core/cli/commands/migrate/execute.js +292 -0
- package/.aios-core/cli/commands/migrate/index.js +441 -0
- package/.aios-core/cli/commands/migrate/rollback.js +323 -0
- package/.aios-core/cli/commands/migrate/update-imports.js +396 -0
- package/.aios-core/cli/commands/migrate/validate.js +452 -0
- package/.aios-core/cli/commands/qa/index.js +56 -0
- package/.aios-core/cli/commands/qa/run.js +163 -0
- package/.aios-core/cli/commands/qa/status.js +195 -0
- package/.aios-core/cli/commands/workers/formatters/info-formatter.js +274 -0
- package/.aios-core/cli/commands/workers/formatters/list-table.js +265 -0
- package/.aios-core/cli/commands/workers/formatters/list-tree.js +159 -0
- package/.aios-core/cli/commands/workers/index.js +56 -0
- package/.aios-core/cli/commands/workers/info.js +194 -0
- package/.aios-core/cli/commands/workers/list.js +214 -0
- package/.aios-core/cli/commands/workers/search-filters.js +185 -0
- package/.aios-core/cli/commands/workers/search-keyword.js +310 -0
- package/.aios-core/cli/commands/workers/search-semantic.js +293 -0
- package/.aios-core/cli/commands/workers/search.js +154 -0
- package/.aios-core/cli/commands/workers/utils/pagination.js +102 -0
- package/.aios-core/cli/index.js +128 -0
- package/.aios-core/cli/utils/output-formatter-cli.js +232 -0
- package/.aios-core/cli/utils/score-calculator.js +221 -0
- package/.aios-core/core/README.md +229 -0
- package/.aios-core/core/config/config-cache.js +233 -0
- package/.aios-core/core/config/config-loader.js +277 -0
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/core/data/aios-kb.md +924 -0
- package/.aios-core/core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/core/docs/component-creation-guide.md +458 -0
- package/.aios-core/core/docs/session-update-pattern.md +307 -0
- package/.aios-core/core/docs/template-syntax.md +267 -0
- package/.aios-core/core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/core/elicitation/elicitation-engine.js +479 -0
- package/.aios-core/core/elicitation/session-manager.js +320 -0
- package/.aios-core/core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/core/index.esm.js +42 -0
- package/.aios-core/core/index.js +76 -0
- package/.aios-core/core/manifest/manifest-generator.js +386 -0
- package/.aios-core/core/manifest/manifest-validator.js +429 -0
- package/.aios-core/core/mcp/config-migrator.js +340 -0
- package/.aios-core/core/mcp/global-config-manager.js +369 -0
- package/.aios-core/core/mcp/index.js +34 -0
- package/.aios-core/core/mcp/os-detector.js +188 -0
- package/.aios-core/core/mcp/symlink-manager.js +413 -0
- package/.aios-core/core/migration/migration-config.yaml +83 -0
- package/.aios-core/core/migration/module-mapping.yaml +89 -0
- package/.aios-core/core/quality-gates/base-layer.js +134 -0
- package/.aios-core/core/quality-gates/checklist-generator.js +329 -0
- package/.aios-core/core/quality-gates/focus-area-recommender.js +359 -0
- package/.aios-core/core/quality-gates/human-review-orchestrator.js +529 -0
- package/.aios-core/core/quality-gates/layer1-precommit.js +336 -0
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +324 -0
- package/.aios-core/core/quality-gates/layer3-human-review.js +348 -0
- package/.aios-core/core/quality-gates/notification-manager.js +550 -0
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -0
- package/.aios-core/core/quality-gates/quality-gate-manager.js +601 -0
- package/.aios-core/core/registry/README.md +179 -0
- package/.aios-core/core/registry/build-registry.js +452 -0
- package/.aios-core/core/registry/registry-loader.js +330 -0
- package/.aios-core/core/registry/registry-schema.json +166 -0
- package/.aios-core/core/registry/service-registry.json +6586 -0
- package/.aios-core/core/registry/validate-registry.js +340 -0
- package/.aios-core/core/session/context-detector.js +229 -0
- package/.aios-core/core/session/context-loader.js +288 -0
- package/.aios-core/core/utils/output-formatter.js +298 -0
- package/.aios-core/core/utils/security-utils.js +333 -0
- package/.aios-core/core/utils/yaml-validator.js +419 -0
- package/.aios-core/core-config.yaml +382 -0
- package/.aios-core/data/agent-config-requirements.yaml +368 -0
- package/.aios-core/data/aios-kb.md +924 -0
- package/.aios-core/data/technical-preferences.md +4 -0
- package/.aios-core/data/workflow-patterns.yaml +267 -0
- package/.aios-core/development/README.md +142 -0
- package/.aios-core/development/agent-teams/team-all.yaml +15 -0
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -0
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -0
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -0
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -0
- package/.aios-core/development/agents/aios-master.md +339 -0
- package/.aios-core/development/agents/analyst.md +195 -0
- package/.aios-core/development/agents/architect.md +359 -0
- package/.aios-core/development/agents/data-engineer.md +468 -0
- package/.aios-core/development/agents/dev.md +390 -0
- package/.aios-core/development/agents/devops.md +398 -0
- package/.aios-core/development/agents/pm.md +198 -0
- package/.aios-core/development/agents/po.md +256 -0
- package/.aios-core/development/agents/qa.md +312 -0
- package/.aios-core/development/agents/sm.md +220 -0
- package/.aios-core/development/agents/ux-design-expert.md +451 -0
- package/.aios-core/development/scripts/agent-assignment-resolver.js +231 -0
- package/.aios-core/development/scripts/agent-config-loader.js +624 -0
- package/.aios-core/development/scripts/agent-exit-hooks.js +96 -0
- package/.aios-core/development/scripts/apply-inline-greeting-all-agents.js +146 -0
- package/.aios-core/development/scripts/audit-agent-config.js +380 -0
- package/.aios-core/development/scripts/backlog-manager.js +404 -0
- package/.aios-core/development/scripts/batch-update-agents-session-context.js +95 -0
- package/.aios-core/development/scripts/decision-context.js +228 -0
- package/.aios-core/development/scripts/decision-log-generator.js +293 -0
- package/.aios-core/development/scripts/decision-log-indexer.js +284 -0
- package/.aios-core/development/scripts/decision-recorder.js +168 -0
- package/.aios-core/development/scripts/dev-context-loader.js +297 -0
- package/.aios-core/development/scripts/generate-greeting.js +160 -0
- package/.aios-core/development/scripts/greeting-builder.js +866 -0
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -0
- package/.aios-core/development/scripts/greeting-preference-manager.js +145 -0
- package/.aios-core/development/scripts/migrate-task-to-v2.js +377 -0
- package/.aios-core/development/scripts/story-index-generator.js +337 -0
- package/.aios-core/development/scripts/story-manager.js +375 -0
- package/.aios-core/development/scripts/story-update-hook.js +259 -0
- package/.aios-core/development/scripts/task-identifier-resolver.js +145 -0
- package/.aios-core/development/scripts/test-greeting-system.js +142 -0
- package/.aios-core/development/scripts/validate-task-v2.js +319 -0
- package/.aios-core/development/scripts/workflow-navigator.js +214 -0
- package/.aios-core/development/tasks/add-mcp.md +319 -0
- package/.aios-core/development/tasks/advanced-elicitation.md +319 -0
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +342 -0
- package/.aios-core/development/tasks/analyze-framework.md +697 -0
- package/.aios-core/development/tasks/analyze-performance.md +637 -0
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -0
- package/.aios-core/development/tasks/architect-analyze-impact.md +827 -0
- package/.aios-core/development/tasks/audit-codebase.md +429 -0
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -0
- package/.aios-core/development/tasks/audit-utilities.md +358 -0
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -0
- package/.aios-core/development/tasks/brownfield-create-epic.md +486 -0
- package/.aios-core/development/tasks/brownfield-create-story.md +357 -0
- package/.aios-core/development/tasks/build-component.md +478 -0
- package/.aios-core/development/tasks/calculate-roi.md +455 -0
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -0
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -0
- package/.aios-core/development/tasks/collaborative-edit.md +1109 -0
- package/.aios-core/development/tasks/compose-molecule.md +284 -0
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -0
- package/.aios-core/development/tasks/correct-course.md +280 -0
- package/.aios-core/development/tasks/create-agent.md +322 -0
- package/.aios-core/development/tasks/create-brownfield-story.md +727 -0
- package/.aios-core/development/tasks/create-deep-research-prompt.md +499 -0
- package/.aios-core/development/tasks/create-doc.md +316 -0
- package/.aios-core/development/tasks/create-next-story.md +774 -0
- package/.aios-core/development/tasks/create-suite.md +284 -0
- package/.aios-core/development/tasks/create-task.md +372 -0
- package/.aios-core/development/tasks/create-workflow.md +371 -0
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -0
- package/.aios-core/development/tasks/db-apply-migration.md +381 -0
- package/.aios-core/development/tasks/db-bootstrap.md +642 -0
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -0
- package/.aios-core/development/tasks/db-dry-run.md +293 -0
- package/.aios-core/development/tasks/db-env-check.md +260 -0
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -0
- package/.aios-core/development/tasks/db-explain.md +631 -0
- package/.aios-core/development/tasks/db-impersonate.md +495 -0
- package/.aios-core/development/tasks/db-load-csv.md +593 -0
- package/.aios-core/development/tasks/db-policy-apply.md +653 -0
- package/.aios-core/development/tasks/db-rls-audit.md +411 -0
- package/.aios-core/development/tasks/db-rollback.md +739 -0
- package/.aios-core/development/tasks/db-run-sql.md +613 -0
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -0
- package/.aios-core/development/tasks/db-seed.md +390 -0
- package/.aios-core/development/tasks/db-smoke-test.md +351 -0
- package/.aios-core/development/tasks/db-snapshot.md +569 -0
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -0
- package/.aios-core/development/tasks/db-verify-order.md +515 -0
- package/.aios-core/development/tasks/deprecate-component.md +957 -0
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -0
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -0
- package/.aios-core/development/tasks/dev-develop-story.md +846 -0
- package/.aios-core/development/tasks/dev-improve-code-quality.md +873 -0
- package/.aios-core/development/tasks/dev-optimize-performance.md +1034 -0
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +871 -0
- package/.aios-core/development/tasks/dev-validate-next-story.md +349 -0
- package/.aios-core/development/tasks/document-project.md +553 -0
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -0
- package/.aios-core/development/tasks/execute-checklist.md +301 -0
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -0
- package/.aios-core/development/tasks/extend-pattern.md +269 -0
- package/.aios-core/development/tasks/extract-tokens.md +467 -0
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -0
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +261 -0
- package/.aios-core/development/tasks/generate-documentation.md +284 -0
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -0
- package/.aios-core/development/tasks/generate-shock-report.md +501 -0
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -0
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -0
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -0
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -0
- package/.aios-core/development/tasks/improve-self.md +823 -0
- package/.aios-core/development/tasks/index-docs.md +388 -0
- package/.aios-core/development/tasks/init-project-status.md +506 -0
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -0
- package/.aios-core/development/tasks/kb-mode-interaction.md +284 -0
- package/.aios-core/development/tasks/learn-patterns.md +901 -0
- package/.aios-core/development/tasks/mcp-workflow.md +437 -0
- package/.aios-core/development/tasks/modify-agent.md +382 -0
- package/.aios-core/development/tasks/modify-task.md +425 -0
- package/.aios-core/development/tasks/modify-workflow.md +466 -0
- package/.aios-core/development/tasks/po-backlog-add.md +370 -0
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -0
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -0
- package/.aios-core/development/tasks/po-pull-story.md +316 -0
- package/.aios-core/development/tasks/po-stories-index.md +351 -0
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -0
- package/.aios-core/development/tasks/po-sync-story.md +303 -0
- package/.aios-core/development/tasks/pr-automation.md +701 -0
- package/.aios-core/development/tasks/propose-modification.md +843 -0
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -0
- package/.aios-core/development/tasks/qa-gate.md +374 -0
- package/.aios-core/development/tasks/qa-generate-tests.md +1175 -0
- package/.aios-core/development/tasks/qa-nfr-assess.md +558 -0
- package/.aios-core/development/tasks/qa-review-proposal.md +1158 -0
- package/.aios-core/development/tasks/qa-review-story.md +683 -0
- package/.aios-core/development/tasks/qa-risk-profile.md +567 -0
- package/.aios-core/development/tasks/qa-run-tests.md +277 -0
- package/.aios-core/development/tasks/qa-test-design.md +388 -0
- package/.aios-core/development/tasks/qa-trace-requirements.md +477 -0
- package/.aios-core/development/tasks/release-management.md +723 -0
- package/.aios-core/development/tasks/security-audit.md +554 -0
- package/.aios-core/development/tasks/security-scan.md +790 -0
- package/.aios-core/development/tasks/setup-database.md +741 -0
- package/.aios-core/development/tasks/setup-design-system.md +462 -0
- package/.aios-core/development/tasks/setup-github.md +874 -0
- package/.aios-core/development/tasks/setup-llm-routing.md +229 -0
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -0
- package/.aios-core/development/tasks/shard-doc.md +538 -0
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -0
- package/.aios-core/development/tasks/sync-documentation.md +865 -0
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -0
- package/.aios-core/development/tasks/test-as-user.md +621 -0
- package/.aios-core/development/tasks/test-validation-task.md +171 -0
- package/.aios-core/development/tasks/undo-last.md +347 -0
- package/.aios-core/development/tasks/update-manifest.md +410 -0
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -0
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -0
- package/.aios-core/development/tasks/ux-user-research.md +559 -0
- package/.aios-core/development/tasks/validate-next-story.md +423 -0
- package/.aios-core/development/tasks/validate-structure.md +243 -0
- package/.aios-core/development/workflows/README.md +84 -0
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -0
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -0
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -0
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -0
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -0
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -0
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -0
- package/.aios-core/docs/component-creation-guide.md +458 -0
- package/.aios-core/docs/session-update-pattern.md +307 -0
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -0
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -0
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -0
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -0
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -0
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -0
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -0
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -0
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -0
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -0
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -0
- package/.aios-core/docs/template-syntax.md +267 -0
- package/.aios-core/docs/troubleshooting-guide.md +625 -0
- package/.aios-core/elicitation/agent-elicitation.js +272 -0
- package/.aios-core/elicitation/task-elicitation.js +281 -0
- package/.aios-core/elicitation/workflow-elicitation.js +315 -0
- package/.aios-core/index.d.ts +8 -0
- package/.aios-core/index.esm.js +16 -0
- package/.aios-core/index.js +16 -0
- package/.aios-core/infrastructure/README.md +126 -0
- package/.aios-core/infrastructure/index.js +199 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/clickup-adapter.js +345 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/github-adapter.js +392 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/jira-adapter.js +448 -0
- package/.aios-core/infrastructure/integrations/pm-adapters/local-adapter.js +175 -0
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +122 -0
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +89 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +780 -0
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +950 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +425 -0
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +132 -0
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +381 -0
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +203 -0
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +24 -0
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +51 -0
- package/.aios-core/infrastructure/scripts/aios-validator.js +294 -0
- package/.aios-core/infrastructure/scripts/approval-workflow.js +643 -0
- package/.aios-core/infrastructure/scripts/atomic-layer-classifier.js +308 -0
- package/.aios-core/infrastructure/scripts/backup-manager.js +607 -0
- package/.aios-core/infrastructure/scripts/batch-creator.js +608 -0
- package/.aios-core/infrastructure/scripts/branch-manager.js +391 -0
- package/.aios-core/infrastructure/scripts/capability-analyzer.js +535 -0
- package/.aios-core/infrastructure/scripts/clickup-helpers.js +226 -0
- package/.aios-core/infrastructure/scripts/code-quality-improver.js +1312 -0
- package/.aios-core/infrastructure/scripts/commit-message-generator.js +850 -0
- package/.aios-core/infrastructure/scripts/component-generator.js +738 -0
- package/.aios-core/infrastructure/scripts/component-metadata.js +627 -0
- package/.aios-core/infrastructure/scripts/component-search.js +277 -0
- package/.aios-core/infrastructure/scripts/config-cache.js +322 -0
- package/.aios-core/infrastructure/scripts/config-loader.js +349 -0
- package/.aios-core/infrastructure/scripts/conflict-resolver.js +675 -0
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +882 -0
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +638 -0
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +703 -0
- package/.aios-core/infrastructure/scripts/diff-generator.js +129 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +501 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +329 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +282 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +313 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +358 -0
- package/.aios-core/infrastructure/scripts/documentation-synchronizer.js +1432 -0
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +746 -0
- package/.aios-core/infrastructure/scripts/git-config-detector.js +293 -0
- package/.aios-core/infrastructure/scripts/git-wrapper.js +443 -0
- package/.aios-core/infrastructure/scripts/improvement-engine.js +758 -0
- package/.aios-core/infrastructure/scripts/improvement-validator.js +710 -0
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +267 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.cmd +80 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free.sh +62 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.cmd +26 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-max.sh +18 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +970 -0
- package/.aios-core/infrastructure/scripts/modification-validator.js +555 -0
- package/.aios-core/infrastructure/scripts/output-formatter.js +297 -0
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +758 -0
- package/.aios-core/infrastructure/scripts/performance-and-error-resolver.js +258 -0
- package/.aios-core/infrastructure/scripts/performance-optimizer.js +1902 -0
- package/.aios-core/infrastructure/scripts/performance-tracker.js +452 -0
- package/.aios-core/infrastructure/scripts/pm-adapter-factory.js +181 -0
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -0
- package/.aios-core/infrastructure/scripts/project-status-loader.js +445 -0
- package/.aios-core/infrastructure/scripts/refactoring-suggester.js +1139 -0
- package/.aios-core/infrastructure/scripts/repository-detector.js +64 -0
- package/.aios-core/infrastructure/scripts/sandbox-tester.js +618 -0
- package/.aios-core/infrastructure/scripts/security-checker.js +359 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/index.js +375 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +410 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +285 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +262 -0
- package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +468 -0
- package/.aios-core/infrastructure/scripts/spot-check-validator.js +149 -0
- package/.aios-core/infrastructure/scripts/status-mapper.js +115 -0
- package/.aios-core/infrastructure/scripts/template-engine.js +240 -0
- package/.aios-core/infrastructure/scripts/template-validator.js +279 -0
- package/.aios-core/infrastructure/scripts/test-generator.js +844 -0
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1081 -0
- package/.aios-core/infrastructure/scripts/test-utilities-fast.js +126 -0
- package/.aios-core/infrastructure/scripts/test-utilities.js +200 -0
- package/.aios-core/infrastructure/scripts/tool-resolver.js +360 -0
- package/.aios-core/infrastructure/scripts/transaction-manager.js +590 -0
- package/.aios-core/infrastructure/scripts/usage-analytics.js +634 -0
- package/.aios-core/infrastructure/scripts/validate-output-pattern.js +213 -0
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +1056 -0
- package/.aios-core/infrastructure/scripts/yaml-validator.js +397 -0
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +182 -0
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +127 -0
- package/.aios-core/infrastructure/templates/github-workflows/README.md +109 -0
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -0
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -0
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -0
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -0
- package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +346 -0
- package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +177 -0
- package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +267 -0
- package/.aios-core/infrastructure/tests/project-status-loader.test.js +394 -0
- package/.aios-core/infrastructure/tests/regression-suite-v2.md +621 -0
- package/.aios-core/infrastructure/tests/utilities-audit-results.json +501 -0
- package/.aios-core/infrastructure/tests/validate-module.js +97 -0
- package/.aios-core/infrastructure/tools/README.md +222 -0
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -0
- package/.aios-core/infrastructure/tools/cli/llm-routing.yaml +126 -0
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -0
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -0
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -0
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -0
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -0
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -0
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -0
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -0
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -0
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -0
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -0
- package/.aios-core/install-manifest.yaml +347 -0
- package/.aios-core/manifests/agents.csv +1 -0
- package/.aios-core/manifests/schema/manifest-schema.json +190 -0
- package/.aios-core/manifests/tasks.csv +121 -0
- package/.aios-core/manifests/workers.csv +204 -0
- package/.aios-core/package.json +103 -0
- package/.aios-core/product/README.md +56 -0
- package/.aios-core/product/checklists/architect-checklist.md +444 -0
- package/.aios-core/product/checklists/change-checklist.md +183 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -0
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -0
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -0
- package/.aios-core/product/checklists/pm-checklist.md +376 -0
- package/.aios-core/product/checklists/po-master-checklist.md +442 -0
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -0
- package/.aios-core/product/checklists/release-checklist.md +122 -0
- package/.aios-core/product/checklists/story-dod-checklist.md +102 -0
- package/.aios-core/product/checklists/story-draft-checklist.md +216 -0
- package/.aios-core/product/data/brainstorming-techniques.md +37 -0
- package/.aios-core/product/data/elicitation-methods.md +135 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -0
- package/.aios-core/product/data/test-levels-framework.md +149 -0
- package/.aios-core/product/data/test-priorities-matrix.md +175 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -0
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -0
- package/.aios-core/product/templates/activation-instructions-template.md +258 -0
- package/.aios-core/product/templates/adr.hbs +125 -0
- package/.aios-core/product/templates/agent-template.yaml +121 -0
- package/.aios-core/product/templates/architecture-tmpl.yaml +651 -0
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +476 -0
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +280 -0
- package/.aios-core/product/templates/changelog-template.md +134 -0
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -0
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +293 -0
- package/.aios-core/product/templates/component-react-tmpl.tsx +98 -0
- package/.aios-core/product/templates/dbdr.hbs +241 -0
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -0
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -0
- package/.aios-core/product/templates/engine/elicitation.js +298 -0
- package/.aios-core/product/templates/engine/index.js +308 -0
- package/.aios-core/product/templates/engine/loader.js +231 -0
- package/.aios-core/product/templates/engine/renderer.js +343 -0
- package/.aios-core/product/templates/engine/schemas/adr.schema.json +102 -0
- package/.aios-core/product/templates/engine/schemas/dbdr.schema.json +205 -0
- package/.aios-core/product/templates/engine/schemas/epic.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/pmdr.schema.json +175 -0
- package/.aios-core/product/templates/engine/schemas/prd-v2.schema.json +300 -0
- package/.aios-core/product/templates/engine/schemas/prd.schema.json +152 -0
- package/.aios-core/product/templates/engine/schemas/story.schema.json +222 -0
- package/.aios-core/product/templates/engine/schemas/task.schema.json +154 -0
- package/.aios-core/product/templates/engine/validator.js +294 -0
- package/.aios-core/product/templates/epic.hbs +212 -0
- package/.aios-core/product/templates/eslintrc-security.json +32 -0
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +206 -0
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +349 -0
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +805 -0
- package/.aios-core/product/templates/github-actions-cd.yml +212 -0
- package/.aios-core/product/templates/github-actions-ci.yml +172 -0
- package/.aios-core/product/templates/github-pr-template.md +67 -0
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -0
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -0
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -0
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -0
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -0
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -0
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -0
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -0
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -0
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -0
- package/.aios-core/product/templates/market-research-tmpl.yaml +252 -0
- package/.aios-core/product/templates/mcp-workflow.js +271 -0
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -0
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -0
- package/.aios-core/product/templates/personalized-agent-template.md +258 -0
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -0
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -0
- package/.aios-core/product/templates/personalized-task-template.md +344 -0
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -0
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -0
- package/.aios-core/product/templates/pmdr.hbs +186 -0
- package/.aios-core/product/templates/prd-tmpl.yaml +202 -0
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -0
- package/.aios-core/product/templates/prd.hbs +201 -0
- package/.aios-core/product/templates/project-brief-tmpl.yaml +221 -0
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -0
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -0
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -0
- package/.aios-core/product/templates/shock-report-tmpl.html +502 -0
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -0
- package/.aios-core/product/templates/story-tmpl.yaml +332 -0
- package/.aios-core/product/templates/story.hbs +263 -0
- package/.aios-core/product/templates/task-execution-report.md +495 -0
- package/.aios-core/product/templates/task-template.md +123 -0
- package/.aios-core/product/templates/task.hbs +170 -0
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -0
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -0
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -0
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -0
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -0
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -0
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -0
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -0
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -0
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -0
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -0
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -0
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -0
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -0
- package/.aios-core/product/templates/tmpl-view.sql +177 -0
- package/.aios-core/product/templates/token-exports-css-tmpl.css +240 -0
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -0
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -0
- package/.aios-core/product/templates/workflow-template.yaml +134 -0
- package/.aios-core/quality/metrics-collector.js +572 -0
- package/.aios-core/quality/metrics-hook.js +260 -0
- package/.aios-core/quality/schemas/quality-metrics.schema.json +233 -0
- package/.aios-core/quality/seed-metrics.js +336 -0
- package/.aios-core/scripts/README.md +354 -0
- package/.aios-core/scripts/aios-doc-template.md +325 -0
- package/.aios-core/scripts/batch-migrate-phase1.ps1 +36 -0
- package/.aios-core/scripts/batch-migrate-phase2.ps1 +88 -0
- package/.aios-core/scripts/batch-migrate-phase3.ps1 +45 -0
- package/.aios-core/scripts/command-execution-hook.js +201 -0
- package/.aios-core/scripts/context-detector.js +226 -0
- package/.aios-core/scripts/elicitation-engine.js +385 -0
- package/.aios-core/scripts/elicitation-session-manager.js +300 -0
- package/.aios-core/scripts/migrate-framework-docs.sh +300 -0
- package/.aios-core/scripts/session-context-loader.js +286 -0
- package/.aios-core/scripts/test-template-system.js +941 -0
- package/.aios-core/scripts/validate-phase1.ps1 +35 -0
- package/.aios-core/scripts/workflow-management.md +69 -0
- package/.aios-core/tasks/find-component.md.legacy +391 -0
- package/.aios-core/tasks/generate-commit-message.md.legacy +426 -0
- package/.aios-core/tasks/generate-migration.md.legacy +382 -0
- package/.aios-core/tasks/rollback-modification.md.legacy +307 -0
- package/.aios-core/tasks/update-tests.md.legacy +283 -0
- package/.aios-core/user-guide.md +1413 -0
- package/.aios-core/working-in-the-brownfield.md +361 -0
- package/.claude/CLAUDE.md +221 -0
- package/LICENSE +48 -0
- package/README.md +703 -0
- package/bin/aios-init-old.js +532 -0
- package/bin/aios-init-v4.js +390 -0
- package/bin/aios-init.backup-v1.1.4.js +352 -0
- package/bin/aios-init.js +736 -0
- package/bin/aios-minimal.js +26 -0
- package/bin/aios.js +279 -0
- package/bin/migrate-pm-config.js +219 -0
- package/bin/modules/env-config.js +436 -0
- package/bin/modules/mcp-installer.js +383 -0
- package/bin/utils/install-errors.js +339 -0
- package/bin/utils/install-transaction.js +445 -0
- package/index.d.ts +19 -0
- package/index.esm.js +21 -0
- package/index.js +94 -0
- package/package.json +161 -0
- package/packages/installer/package.json +39 -0
- package/packages/installer/src/config/configure-environment.js +312 -0
- package/packages/installer/src/config/templates/core-config-template.js +183 -0
- package/packages/installer/src/config/templates/env-template.js +127 -0
- package/packages/installer/src/config/validation/config-validator.js +243 -0
- package/packages/installer/src/detection/detect-project-type.js +81 -0
- package/packages/installer/src/wizard/wizard.js +244 -0
- package/packages/installer/tests/integration/environment-configuration.test.js +328 -0
- package/packages/installer/tests/integration/wizard-detection.test.js +349 -0
- package/packages/installer/tests/unit/config-validator.test.js +315 -0
- package/packages/installer/tests/unit/detection/detect-project-type.test.js +401 -0
- package/packages/installer/tests/unit/env-template.test.js +185 -0
- package/src/config/ide-configs.js +189 -0
- package/src/installer/aios-core-installer.js +319 -0
- package/src/installer/dependency-installer.js +335 -0
- package/src/utils/aios-colors.js +234 -0
- package/src/wizard/feedback.js +218 -0
- package/src/wizard/ide-config-generator.js +488 -0
- package/src/wizard/ide-selector.js +84 -0
- package/src/wizard/index.js +589 -0
- package/src/wizard/questions.js +249 -0
- package/src/wizard/validation/index.js +120 -0
- package/src/wizard/validation/report-generator.js +269 -0
- package/src/wizard/validation/troubleshooting-system.js +346 -0
- package/src/wizard/validation/validators/config-validator.js +362 -0
- package/src/wizard/validation/validators/dependency-validator.js +333 -0
- package/src/wizard/validation/validators/file-structure-validator.js +181 -0
- package/src/wizard/validation/validators/mcp-health-checker.js +310 -0
- package/src/wizard/validators.js +274 -0
- package/templates/squad/LICENSE +21 -0
- package/templates/squad/README.md +37 -0
- package/templates/squad/agents/example-agent.yaml +36 -0
- package/templates/squad/package.json +19 -0
- package/templates/squad/squad.yaml +25 -0
- package/templates/squad/tasks/example-task.yaml +46 -0
- package/templates/squad/templates/example-template.md +24 -0
- package/templates/squad/tests/example-agent.test.js +53 -0
- package/templates/squad/workflows/example-workflow.yaml +54 -0
- package/tools/package-builder.js +35 -0
|
@@ -0,0 +1,790 @@
|
|
|
1
|
+
# security-scan
|
|
2
|
+
|
|
3
|
+
**Task ID:** `security-scan`
|
|
4
|
+
**Version:** 2.0.0
|
|
5
|
+
**Status:** Active
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Executa análise estática de segurança (SAST) no código do projeto/story. Automação total, zero intervenção manual, CLI-first.
|
|
12
|
+
|
|
13
|
+
**Estratégia:** Automação total, zero intervenção manual, CLI-first.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Execution Modes
|
|
18
|
+
|
|
19
|
+
**Choose your execution mode:**
|
|
20
|
+
|
|
21
|
+
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
22
|
+
- Autonomous decision making with logging
|
|
23
|
+
- Minimal user interaction
|
|
24
|
+
- **Best for:** Experienced developers, simple tasks, time-sensitive work
|
|
25
|
+
|
|
26
|
+
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
27
|
+
- Explicit decision checkpoints
|
|
28
|
+
- Educational explanations
|
|
29
|
+
- **Best for:** Learning, complex decisions, collaborative work
|
|
30
|
+
|
|
31
|
+
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
32
|
+
- Task analysis phase (identify all ambiguities)
|
|
33
|
+
- Questionnaire before execution
|
|
34
|
+
- Zero ambiguity execution
|
|
35
|
+
- **Best for:** Ambiguous requirements, critical work, team consensus needed
|
|
36
|
+
|
|
37
|
+
**Parameter:** `mode` (optional, default: `interactive`)
|
|
38
|
+
|
|
39
|
+
**Valid values:** `yolo`, `interactive`, `preflight`
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Task Definition (AIOS Task Format V1.0)
|
|
44
|
+
|
|
45
|
+
```yaml
|
|
46
|
+
task: securityScan()
|
|
47
|
+
responsável: Quinn (Guardian)
|
|
48
|
+
responsavel_type: Agente
|
|
49
|
+
atomic_layer: Strategy
|
|
50
|
+
|
|
51
|
+
**Entrada:**
|
|
52
|
+
- campo: target
|
|
53
|
+
tipo: string
|
|
54
|
+
origem: User Input
|
|
55
|
+
obrigatório: true
|
|
56
|
+
validação: Valid path or resource
|
|
57
|
+
|
|
58
|
+
- campo: scan_depth
|
|
59
|
+
tipo: number
|
|
60
|
+
origem: config
|
|
61
|
+
obrigatório: false
|
|
62
|
+
padrão: 2
|
|
63
|
+
validação: Default: 2 (1-5)
|
|
64
|
+
|
|
65
|
+
- campo: rules
|
|
66
|
+
tipo: array
|
|
67
|
+
origem: config
|
|
68
|
+
obrigatório: true
|
|
69
|
+
validação: Security rule set
|
|
70
|
+
|
|
71
|
+
**Saída:**
|
|
72
|
+
- campo: scan_report
|
|
73
|
+
tipo: object
|
|
74
|
+
destino: File (.ai/security/*)
|
|
75
|
+
persistido: true
|
|
76
|
+
|
|
77
|
+
- campo: vulnerabilities
|
|
78
|
+
tipo: array
|
|
79
|
+
destino: Memory
|
|
80
|
+
persistido: false
|
|
81
|
+
|
|
82
|
+
- campo: risk_score
|
|
83
|
+
tipo: number
|
|
84
|
+
destino: Memory
|
|
85
|
+
persistido: false
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Pre-Conditions
|
|
91
|
+
|
|
92
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
93
|
+
|
|
94
|
+
**Checklist:**
|
|
95
|
+
|
|
96
|
+
```yaml
|
|
97
|
+
pre-conditions:
|
|
98
|
+
- [ ] Scanner available; target accessible; rules configured
|
|
99
|
+
tipo: pre-condition
|
|
100
|
+
blocker: true
|
|
101
|
+
validação: |
|
|
102
|
+
Check scanner available; target accessible; rules configured
|
|
103
|
+
error_message: "Pre-condition failed: Scanner available; target accessible; rules configured"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Step-by-Step Execution
|
|
109
|
+
|
|
110
|
+
### Step 1: Setup Security Tools
|
|
111
|
+
|
|
112
|
+
**Purpose:** Ensure all required security scanning tools are installed and configured
|
|
113
|
+
|
|
114
|
+
**Actions:**
|
|
115
|
+
1. Check for npm audit availability
|
|
116
|
+
2. Install ESLint security plugins if missing
|
|
117
|
+
3. Configure ESLint security rules
|
|
118
|
+
4. Verify secretlint availability (optional)
|
|
119
|
+
|
|
120
|
+
**Validation:**
|
|
121
|
+
- npm audit command available
|
|
122
|
+
- ESLint security plugins installed
|
|
123
|
+
- Configuration files created
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Step 2: Dependency Vulnerability Scan
|
|
128
|
+
|
|
129
|
+
**Purpose:** Scan npm dependencies for known vulnerabilities
|
|
130
|
+
|
|
131
|
+
**Actions:**
|
|
132
|
+
1. Execute `npm audit --audit-level=moderate --json`
|
|
133
|
+
2. Parse audit results
|
|
134
|
+
3. Categorize vulnerabilities by severity
|
|
135
|
+
4. Determine gate impact
|
|
136
|
+
|
|
137
|
+
**Validation:**
|
|
138
|
+
- Audit report generated
|
|
139
|
+
- Vulnerabilities categorized correctly
|
|
140
|
+
- Gate impact calculated
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### Step 3: Code Security Pattern Scan
|
|
145
|
+
|
|
146
|
+
**Purpose:** Analyze code for insecure patterns using ESLint security plugins
|
|
147
|
+
|
|
148
|
+
**Actions:**
|
|
149
|
+
1. Run ESLint with security plugins
|
|
150
|
+
2. Parse ESLint results
|
|
151
|
+
3. Identify security issues by severity
|
|
152
|
+
4. Determine gate impact
|
|
153
|
+
|
|
154
|
+
**Validation:**
|
|
155
|
+
- ESLint scan completed
|
|
156
|
+
- Security issues identified
|
|
157
|
+
- Gate impact calculated
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### Step 4: Secret Detection
|
|
162
|
+
|
|
163
|
+
**Purpose:** Detect exposed secrets, API keys, and passwords in codebase
|
|
164
|
+
|
|
165
|
+
**Actions:**
|
|
166
|
+
1. Run secretlint scan
|
|
167
|
+
2. Parse secret detection results
|
|
168
|
+
3. Categorize findings
|
|
169
|
+
4. Determine gate impact
|
|
170
|
+
|
|
171
|
+
**Validation:**
|
|
172
|
+
- Secret scan completed
|
|
173
|
+
- Secrets identified (if any)
|
|
174
|
+
- Gate impact calculated
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### Step 5: Generate Security Report
|
|
179
|
+
|
|
180
|
+
**Purpose:** Create comprehensive security scan report
|
|
181
|
+
|
|
182
|
+
**Actions:**
|
|
183
|
+
1. Aggregate all scan results
|
|
184
|
+
2. Calculate overall risk score
|
|
185
|
+
3. Generate markdown report
|
|
186
|
+
4. Save report to `.ai/security/` directory
|
|
187
|
+
|
|
188
|
+
**Validation:**
|
|
189
|
+
- Report file created
|
|
190
|
+
- All sections included
|
|
191
|
+
- Gate decision documented
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Post-Conditions
|
|
196
|
+
|
|
197
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
198
|
+
|
|
199
|
+
**Checklist:**
|
|
200
|
+
|
|
201
|
+
```yaml
|
|
202
|
+
post-conditions:
|
|
203
|
+
- [ ] Scan completed; vulnerabilities reported; no scan errors
|
|
204
|
+
tipo: post-condition
|
|
205
|
+
blocker: true
|
|
206
|
+
validação: |
|
|
207
|
+
Verify scan completed; vulnerabilities reported; no scan errors
|
|
208
|
+
rollback: false
|
|
209
|
+
error_message: "Post-condition failed: Scan completed; vulnerabilities reported; no scan errors"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Acceptance Criteria
|
|
215
|
+
|
|
216
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
217
|
+
|
|
218
|
+
**Checklist:**
|
|
219
|
+
|
|
220
|
+
```yaml
|
|
221
|
+
acceptance-criteria:
|
|
222
|
+
- [ ] No critical vulnerabilities; all checks passed
|
|
223
|
+
tipo: acceptance-criterion
|
|
224
|
+
blocker: false
|
|
225
|
+
story: N/A
|
|
226
|
+
manual_check: false
|
|
227
|
+
validação: |
|
|
228
|
+
Assert no critical vulnerabilities; all checks passed
|
|
229
|
+
error_message: "Acceptance criterion not met: No critical vulnerabilities; all checks passed"
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Tools (External/Shared)
|
|
235
|
+
|
|
236
|
+
**Purpose:** Catalog reusable tools used by multiple agents
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
**Tools:**
|
|
240
|
+
- github-cli:
|
|
241
|
+
version: latest
|
|
242
|
+
used_for: Create security issues if necessary
|
|
243
|
+
shared_with: [qa, dev]
|
|
244
|
+
cost: $0
|
|
245
|
+
|
|
246
|
+
- npm-audit:
|
|
247
|
+
version: built-in
|
|
248
|
+
used_for: Dependency vulnerability scanning
|
|
249
|
+
shared_with: [qa, dev]
|
|
250
|
+
cost: $0
|
|
251
|
+
|
|
252
|
+
- eslint-plugin-security:
|
|
253
|
+
version: ^1.7.1
|
|
254
|
+
used_for: Code security pattern detection
|
|
255
|
+
shared_with: [qa, dev]
|
|
256
|
+
cost: $0
|
|
257
|
+
|
|
258
|
+
- secretlint:
|
|
259
|
+
version: latest
|
|
260
|
+
used_for: Secret detection in codebase
|
|
261
|
+
shared_with: [qa, dev]
|
|
262
|
+
cost: $0
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Scripts (Agent-Specific)
|
|
268
|
+
|
|
269
|
+
**Purpose:** Agent-specific code for this task
|
|
270
|
+
|
|
271
|
+
```yaml
|
|
272
|
+
**Scripts:**
|
|
273
|
+
- security-scan.js:
|
|
274
|
+
description: Run security scans and generate reports
|
|
275
|
+
language: JavaScript
|
|
276
|
+
location: .aios-core/scripts/security-scan.js
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Error Handling
|
|
282
|
+
|
|
283
|
+
**Strategy:** fallback
|
|
284
|
+
|
|
285
|
+
**Common Errors:**
|
|
286
|
+
|
|
287
|
+
1. **Error:** Scanner Unavailable
|
|
288
|
+
- **Cause:** Security scanner not installed or failed
|
|
289
|
+
- **Resolution:** Install scanner or check configuration
|
|
290
|
+
- **Recovery:** Skip scan with high-risk warning
|
|
291
|
+
|
|
292
|
+
2. **Error:** Critical Vulnerability Detected
|
|
293
|
+
- **Cause:** High-severity security issue found
|
|
294
|
+
- **Resolution:** Review vulnerability report, apply patches
|
|
295
|
+
- **Recovery:** Block deployment, alert team
|
|
296
|
+
|
|
297
|
+
3. **Error:** Scan Timeout
|
|
298
|
+
- **Cause:** Large codebase exceeds scan time limit
|
|
299
|
+
- **Resolution:** Reduce scope or increase timeout
|
|
300
|
+
- **Recovery:** Partial scan results with warning
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## Performance
|
|
305
|
+
|
|
306
|
+
**Expected Metrics:**
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
duration_expected: 5-20 min
|
|
310
|
+
cost_estimated: $0.003-0.015
|
|
311
|
+
token_usage: ~2,000-8,000 tokens
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**Optimization Notes:**
|
|
315
|
+
- Iterative analysis with depth limits
|
|
316
|
+
- Cache intermediate results
|
|
317
|
+
- Batch similar operations
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## Metadata
|
|
322
|
+
|
|
323
|
+
```yaml
|
|
324
|
+
story: STORY-6.1.7.2
|
|
325
|
+
version: 2.0.0
|
|
326
|
+
dependencies:
|
|
327
|
+
- N/A
|
|
328
|
+
tags:
|
|
329
|
+
- security
|
|
330
|
+
- audit
|
|
331
|
+
updated_at: 2025-01-17
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Inputs
|
|
337
|
+
|
|
338
|
+
```yaml
|
|
339
|
+
required:
|
|
340
|
+
- story_id: '{epic}.{story}' # e.g., "3.14"
|
|
341
|
+
- story_path: 'Path to story file'
|
|
342
|
+
- project_root: 'Project root directory (default: cwd)'
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## Prerequisites
|
|
346
|
+
|
|
347
|
+
- Node.js e npm instalados
|
|
348
|
+
- Projeto com package.json
|
|
349
|
+
|
|
350
|
+
## Ferramentas (Instaladas Automaticamente)
|
|
351
|
+
|
|
352
|
+
1. **npm audit** (built-in) - Vulnerabilidades em dependências
|
|
353
|
+
2. **ESLint + security plugins** (via npm) - Padrões inseguros de código
|
|
354
|
+
3. **Semgrep** (via npx) - Análise estática avançada (opcional)
|
|
355
|
+
4. **secretlint** (via npx) - Detecção de secrets vazados
|
|
356
|
+
|
|
357
|
+
## Configuration Dependencies
|
|
358
|
+
|
|
359
|
+
This task requires the following configuration keys from `core-config.yaml`:
|
|
360
|
+
|
|
361
|
+
- **`devStoryLocation`**: Location of story files (typically docs/stories)
|
|
362
|
+
- **`architectureShardedLocation`**: Location for sharded architecture documents (typically docs/architecture)
|
|
363
|
+
- **`utils.registry`**: Utility registry location for framework utilities
|
|
364
|
+
|
|
365
|
+
**Loading Config:**
|
|
366
|
+
```javascript
|
|
367
|
+
const yaml = require('js-yaml');
|
|
368
|
+
const fs = require('fs');
|
|
369
|
+
const path = require('path');
|
|
370
|
+
|
|
371
|
+
const configPath = path.join(__dirname, '../../.aios-core/core-config.yaml');
|
|
372
|
+
const config = yaml.load(fs.readFileSync(configPath, 'utf8'));
|
|
373
|
+
|
|
374
|
+
const dev_story_location = config.devStoryLocation;
|
|
375
|
+
const architectureShardedLocation = config.architectureShardedLocation || 'docs/architecture';
|
|
376
|
+
const utils_registry = config.utils?.registry || config['utils.registry'] || '.aios-core/utils';
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Processo de Scan
|
|
380
|
+
|
|
381
|
+
### Fase 1: Setup Automático
|
|
382
|
+
|
|
383
|
+
```javascript
|
|
384
|
+
const fs = require('fs');
|
|
385
|
+
const path = require('path');
|
|
386
|
+
const { execSync } = require('child_process');
|
|
387
|
+
|
|
388
|
+
// Garantir que ferramentas de segurança estão instaladas
|
|
389
|
+
function ensureSecurityTools(projectRoot) {
|
|
390
|
+
const packageJsonPath = path.join(projectRoot, 'package.json');
|
|
391
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
392
|
+
|
|
393
|
+
const requiredDevDeps = {
|
|
394
|
+
'eslint': '^8.0.0',
|
|
395
|
+
'eslint-plugin-security': '^1.7.1',
|
|
396
|
+
'eslint-plugin-no-secrets': '^0.8.9'
|
|
397
|
+
};
|
|
398
|
+
|
|
399
|
+
let needsInstall = false;
|
|
400
|
+
const devDeps = packageJson.devDependencies || {};
|
|
401
|
+
|
|
402
|
+
for (const [pkg, version] of Object.entries(requiredDevDeps)) {
|
|
403
|
+
if (!devDeps[pkg]) {
|
|
404
|
+
console.log(`📦 Installing ${pkg}...`);
|
|
405
|
+
needsInstall = true;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
if (needsInstall) {
|
|
410
|
+
execSync('npm install --save-dev eslint eslint-plugin-security eslint-plugin-no-secrets', {
|
|
411
|
+
cwd: projectRoot,
|
|
412
|
+
stdio: 'inherit'
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// Copiar template de configuração ESLint se não existir
|
|
417
|
+
const eslintConfigPath = path.join(projectRoot, '.eslintrc.security.json');
|
|
418
|
+
if (!fs.existsSync(eslintConfigPath)) {
|
|
419
|
+
const templatePath = path.join(__dirname, '../templates/eslintrc-security.json');
|
|
420
|
+
if (fs.existsSync(templatePath)) {
|
|
421
|
+
fs.copyFileSync(templatePath, eslintConfigPath);
|
|
422
|
+
console.log('✓ Created .eslintrc.security.json');
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
### Fase 2: Dependency Vulnerability Scan
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
# Executar npm audit
|
|
432
|
+
npm audit --audit-level=moderate --json > audit-report.json
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**Análise de Resultados**:
|
|
436
|
+
```javascript
|
|
437
|
+
function analyzeAuditResults(auditJson) {
|
|
438
|
+
const results = JSON.parse(auditJson);
|
|
439
|
+
const vulnerabilities = results.vulnerabilities || {};
|
|
440
|
+
|
|
441
|
+
const summary = {
|
|
442
|
+
critical: 0,
|
|
443
|
+
high: 0,
|
|
444
|
+
moderate: 0,
|
|
445
|
+
low: 0,
|
|
446
|
+
info: 0
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
for (const [pkg, vuln] of Object.entries(vulnerabilities)) {
|
|
450
|
+
const severity = vuln.severity.toLowerCase();
|
|
451
|
+
if (summary[severity] !== undefined) {
|
|
452
|
+
summary[severity]++;
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
return {
|
|
457
|
+
summary,
|
|
458
|
+
details: vulnerabilities,
|
|
459
|
+
gateImpact: summary.critical > 0 ? 'FAIL' :
|
|
460
|
+
summary.high > 0 ? 'CONCERNS' : 'PASS'
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
### Fase 3: Code Security Pattern Scan
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
# Executar ESLint com plugins de segurança
|
|
469
|
+
npx eslint . --ext .js,.ts \
|
|
470
|
+
--config .eslintrc.security.json \
|
|
471
|
+
--format json \
|
|
472
|
+
--output-file eslint-security.json
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
**Regras Verificadas**:
|
|
476
|
+
- `security/detect-object-injection` - Injeção de propriedades
|
|
477
|
+
- `security/detect-eval-with-expression` - Uso de eval()
|
|
478
|
+
- `security/detect-child-process` - Execução de comandos
|
|
479
|
+
- `security/detect-non-literal-require` - Requires dinâmicos
|
|
480
|
+
- `security/detect-unsafe-regex` - ReDoS (Regex Denial of Service)
|
|
481
|
+
- `security/detect-buffer-noassert` - Buffer inseguro
|
|
482
|
+
- `no-secrets/no-secrets` - API keys, tokens, passwords
|
|
483
|
+
|
|
484
|
+
**Análise de Resultados**:
|
|
485
|
+
```javascript
|
|
486
|
+
function analyzeESLintResults(eslintJson) {
|
|
487
|
+
const results = JSON.parse(eslintJson);
|
|
488
|
+
|
|
489
|
+
const issues = [];
|
|
490
|
+
let errorCount = 0;
|
|
491
|
+
let warningCount = 0;
|
|
492
|
+
|
|
493
|
+
for (const file of results) {
|
|
494
|
+
for (const message of file.messages) {
|
|
495
|
+
if (message.ruleId && message.ruleId.startsWith('security/') ||
|
|
496
|
+
message.ruleId === 'no-secrets/no-secrets') {
|
|
497
|
+
|
|
498
|
+
issues.push({
|
|
499
|
+
file: file.filePath,
|
|
500
|
+
line: message.line,
|
|
501
|
+
column: message.column,
|
|
502
|
+
rule: message.ruleId,
|
|
503
|
+
severity: message.severity === 2 ? 'error' : 'warning',
|
|
504
|
+
message: message.message
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
if (message.severity === 2) errorCount++;
|
|
508
|
+
else warningCount++;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
return {
|
|
514
|
+
issues,
|
|
515
|
+
errorCount,
|
|
516
|
+
warningCount,
|
|
517
|
+
gateImpact: errorCount > 0 ? 'FAIL' :
|
|
518
|
+
warningCount > 0 ? 'CONCERNS' : 'PASS'
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
```
|
|
522
|
+
|
|
523
|
+
### Fase 4: Secret Detection
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
# Executar secretlint
|
|
527
|
+
npx secretlint "**/*" \
|
|
528
|
+
--format json \
|
|
529
|
+
--output-file secrets-report.json
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
**Análise de Resultados**:
|
|
533
|
+
```javascript
|
|
534
|
+
function analyzeSecretResults(secretsJson) {
|
|
535
|
+
const results = JSON.parse(secretsJson);
|
|
536
|
+
|
|
537
|
+
const secrets = results.messages || [];
|
|
538
|
+
|
|
539
|
+
return {
|
|
540
|
+
secretsFound: secrets.length,
|
|
541
|
+
secrets: secrets.map(s => ({
|
|
542
|
+
file: s.filePath,
|
|
543
|
+
type: s.ruleId,
|
|
544
|
+
message: s.message
|
|
545
|
+
})),
|
|
546
|
+
gateImpact: secrets.length > 0 ? 'FAIL' : 'PASS'
|
|
547
|
+
};
|
|
548
|
+
}
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
### Fase 5 (Opcional): Advanced SAST com Semgrep
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
# Executar Semgrep (apenas se disponível)
|
|
555
|
+
npx semgrep --config auto --json --output semgrep-report.json || echo "Semgrep skipped"
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**Nota**: Semgrep é opcional. Se não estiver disponível ou falhar, não bloqueia o scan.
|
|
559
|
+
|
|
560
|
+
## Output: Relatório de Segurança
|
|
561
|
+
|
|
562
|
+
Cria arquivo em: `qa.qaLocation/security/{epic}.{story}-sast-{YYYYMMDD}.md`
|
|
563
|
+
|
|
564
|
+
```markdown
|
|
565
|
+
# Security Scan Report - Story {epic}.{story}
|
|
566
|
+
|
|
567
|
+
**Scan Date**: {ISO-8601 timestamp}
|
|
568
|
+
**Project**: {packageName} v{version}
|
|
569
|
+
**Files Scanned**: {fileCount}
|
|
570
|
+
**Overall Risk**: {CRITICAL|HIGH|MEDIUM|LOW}
|
|
571
|
+
|
|
572
|
+
---
|
|
573
|
+
|
|
574
|
+
## Executive Summary
|
|
575
|
+
|
|
576
|
+
| Category | Critical | High | Medium | Low | Status |
|
|
577
|
+
|----------|----------|------|--------|-----|--------|
|
|
578
|
+
| Dependencies | {count} | {count} | {count} | {count} | {PASS/FAIL} |
|
|
579
|
+
| Code Patterns | {count} | {count} | {count} | {count} | {PASS/FAIL} |
|
|
580
|
+
| Secrets | {count} | - | - | - | {PASS/FAIL} |
|
|
581
|
+
|
|
582
|
+
**Gate Impact**: {FAIL|CONCERNS|PASS}
|
|
583
|
+
|
|
584
|
+
---
|
|
585
|
+
|
|
586
|
+
## 1. Dependency Vulnerabilities (npm audit)
|
|
587
|
+
|
|
588
|
+
{if vulnerabilities found}
|
|
589
|
+
### Critical Vulnerabilities
|
|
590
|
+
|
|
591
|
+
| Package | Version | CVE | Severity | Fix Available |
|
|
592
|
+
|---------|---------|-----|----------|---------------|
|
|
593
|
+
| lodash | 4.17.15 | CVE-2020-8203 | CRITICAL | Yes (4.17.21) |
|
|
594
|
+
|
|
595
|
+
### Recommendations
|
|
596
|
+
|
|
597
|
+
- [ ] **IMMEDIATE**: Run `npm audit fix --force` to auto-fix
|
|
598
|
+
- [ ] Review breaking changes in upgraded packages
|
|
599
|
+
- [ ] Re-run tests after upgrade
|
|
600
|
+
|
|
601
|
+
{else}
|
|
602
|
+
✅ No dependency vulnerabilities found.
|
|
603
|
+
{endif}
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
607
|
+
## 2. Code Security Issues (ESLint + Plugins)
|
|
608
|
+
|
|
609
|
+
{if issues found}
|
|
610
|
+
### High Severity
|
|
611
|
+
|
|
612
|
+
| File | Line | Rule | Issue | Recommendation |
|
|
613
|
+
|------|------|------|-------|----------------|
|
|
614
|
+
| src/api.js | 42 | security/detect-eval-with-expression | Use of eval() | Refactor to JSON.parse() or safe alternatives |
|
|
615
|
+
| src/db.js | 128 | security/detect-object-injection | Object injection risk | Validate user input before property access |
|
|
616
|
+
|
|
617
|
+
### Medium Severity
|
|
618
|
+
|
|
619
|
+
| File | Line | Rule | Issue | Recommendation |
|
|
620
|
+
|------|------|------|-------|----------------|
|
|
621
|
+
| lib/utils.js | 67 | security/detect-non-literal-require | Dynamic require() | Use static imports or whitelist |
|
|
622
|
+
|
|
623
|
+
### Recommendations
|
|
624
|
+
|
|
625
|
+
- [ ] **IMMEDIATE**: Fix eval() usage in src/api.js
|
|
626
|
+
- [ ] **IMMEDIATE**: Add input validation in src/db.js
|
|
627
|
+
- [ ] **FUTURE**: Refactor dynamic requires to static imports
|
|
628
|
+
|
|
629
|
+
{else}
|
|
630
|
+
✅ No code security issues found.
|
|
631
|
+
{endif}
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
635
|
+
## 3. Secrets Detection (secretlint)
|
|
636
|
+
|
|
637
|
+
{if secrets found}
|
|
638
|
+
### ⚠️ SECRETS DETECTED - ACTION REQUIRED
|
|
639
|
+
|
|
640
|
+
| File | Secret Type | Action |
|
|
641
|
+
|------|-------------|--------|
|
|
642
|
+
| .env.example | API Key Pattern | Verify it's example only (not real key) |
|
|
643
|
+
| config/db.js | Password Pattern | Move to environment variables |
|
|
644
|
+
|
|
645
|
+
### Recommendations
|
|
646
|
+
|
|
647
|
+
- [ ] **CRITICAL**: Remove real secrets from codebase immediately
|
|
648
|
+
- [ ] Move all secrets to environment variables
|
|
649
|
+
- [ ] Add .env to .gitignore
|
|
650
|
+
- [ ] Rotate compromised credentials if committed
|
|
651
|
+
|
|
652
|
+
{else}
|
|
653
|
+
✅ No secrets detected in codebase.
|
|
654
|
+
{endif}
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
## 4. Advanced Analysis (Semgrep) [OPTIONAL]
|
|
659
|
+
|
|
660
|
+
{if semgrep ran}
|
|
661
|
+
### Findings
|
|
662
|
+
|
|
663
|
+
| Rule | Severity | Count | Description |
|
|
664
|
+
|------|----------|-------|-------------|
|
|
665
|
+
| sql-injection | ERROR | 2 | Potential SQL injection vectors |
|
|
666
|
+
| xss-risk | WARNING | 1 | Unescaped user input in HTML |
|
|
667
|
+
|
|
668
|
+
{else}
|
|
669
|
+
ℹ️ Semgrep not available - skipped advanced analysis.
|
|
670
|
+
{endif}
|
|
671
|
+
|
|
672
|
+
---
|
|
673
|
+
|
|
674
|
+
## Gate Decision
|
|
675
|
+
|
|
676
|
+
**Status**: {FAIL|CONCERNS|PASS}
|
|
677
|
+
|
|
678
|
+
**Reasoning**:
|
|
679
|
+
{if FAIL}
|
|
680
|
+
- ❌ {count} CRITICAL dependency vulnerabilities found
|
|
681
|
+
- ❌ {count} secrets detected in codebase
|
|
682
|
+
- ❌ {count} high-severity code security issues
|
|
683
|
+
|
|
684
|
+
**Action Required**: Address all CRITICAL and HIGH issues before merging.
|
|
685
|
+
|
|
686
|
+
{else if CONCERNS}
|
|
687
|
+
- ⚠️ {count} HIGH dependency vulnerabilities found
|
|
688
|
+
- ⚠️ {count} medium-severity code security issues
|
|
689
|
+
|
|
690
|
+
**Recommendation**: Address issues before production deployment.
|
|
691
|
+
|
|
692
|
+
{else}
|
|
693
|
+
- ✅ No critical or high-severity vulnerabilities found
|
|
694
|
+
- ✅ Codebase passes security standards
|
|
695
|
+
|
|
696
|
+
**Status**: Ready for production.
|
|
697
|
+
{endif}
|
|
698
|
+
|
|
699
|
+
---
|
|
700
|
+
|
|
701
|
+
## Next Steps
|
|
702
|
+
|
|
703
|
+
### Immediate Actions (Block Merge)
|
|
704
|
+
{immediate actions list}
|
|
705
|
+
|
|
706
|
+
### Short-term Actions (Before Production)
|
|
707
|
+
{short-term actions list}
|
|
708
|
+
|
|
709
|
+
### Long-term Actions (Technical Debt)
|
|
710
|
+
{long-term actions list}
|
|
711
|
+
|
|
712
|
+
---
|
|
713
|
+
|
|
714
|
+
**Scan Tool Versions**:
|
|
715
|
+
- npm: v{version}
|
|
716
|
+
- ESLint: v{version}
|
|
717
|
+
- eslint-plugin-security: v{version}
|
|
718
|
+
- secretlint: v{version}
|
|
719
|
+
- semgrep: v{version} (if used)
|
|
720
|
+
|
|
721
|
+
**Report Generated**: {timestamp}
|
|
722
|
+
**Report Generator**: @qa (Quinn - Test Architect)
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
## Integration with review-story.md
|
|
726
|
+
|
|
727
|
+
Quando `@qa *review {story}` é executado, **automaticamente** chama `security-scan`:
|
|
728
|
+
|
|
729
|
+
```markdown
|
|
730
|
+
# review-story.md (atualizar)
|
|
731
|
+
|
|
732
|
+
### 2. Comprehensive Analysis
|
|
733
|
+
|
|
734
|
+
**A. Requirements Traceability**
|
|
735
|
+
[existing content]
|
|
736
|
+
|
|
737
|
+
**B. Code Quality Review**
|
|
738
|
+
[existing content]
|
|
739
|
+
|
|
740
|
+
**C. Security Scan (SAST) - AUTOMATIC**
|
|
741
|
+
|
|
742
|
+
Execute security-scan.md task:
|
|
743
|
+
- Run npm audit
|
|
744
|
+
- Run ESLint security plugins
|
|
745
|
+
- Run secret detection
|
|
746
|
+
- Generate security report
|
|
747
|
+
- Update gate decision based on findings
|
|
748
|
+
|
|
749
|
+
Gate Impact Rules:
|
|
750
|
+
- Any CRITICAL vulnerability → Gate = FAIL
|
|
751
|
+
- Any secret detected → Gate = FAIL
|
|
752
|
+
- Any HIGH vulnerability → Gate = CONCERNS
|
|
753
|
+
- Only MEDIUM/LOW → Gate = PASS (with notes)
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
## Gate Decision Logic
|
|
757
|
+
|
|
758
|
+
```javascript
|
|
759
|
+
function determineOverallGate(auditGate, eslintGate, secretsGate) {
|
|
760
|
+
// Secrets are auto-fail
|
|
761
|
+
if (secretsGate === 'FAIL') return 'FAIL';
|
|
762
|
+
|
|
763
|
+
// Any FAIL → overall FAIL
|
|
764
|
+
if (auditGate === 'FAIL' || eslintGate === 'FAIL') return 'FAIL';
|
|
765
|
+
|
|
766
|
+
// Any CONCERNS → overall CONCERNS
|
|
767
|
+
if (auditGate === 'CONCERNS' || eslintGate === 'CONCERNS') return 'CONCERNS';
|
|
768
|
+
|
|
769
|
+
// All PASS → overall PASS
|
|
770
|
+
return 'PASS';
|
|
771
|
+
}
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
## Success Criteria
|
|
775
|
+
|
|
776
|
+
- ✅ Scan completes without errors
|
|
777
|
+
- ✅ Report generated in qa.qaLocation/security/
|
|
778
|
+
- ✅ Gate decision based on findings
|
|
779
|
+
- ✅ Zero manual intervention required
|
|
780
|
+
- ✅ Works in CI/CD pipeline
|
|
781
|
+
- ✅ Offline-capable (except npm audit)
|
|
782
|
+
|
|
783
|
+
## Notes
|
|
784
|
+
|
|
785
|
+
- **Automation**: 100% automated, no user intervention
|
|
786
|
+
- **Performance**: Typical scan time 30-120 seconds
|
|
787
|
+
- **Offline**: Works offline (except npm audit requires registry)
|
|
788
|
+
- **Optional Tools**: Semgrep is optional enhancement
|
|
789
|
+
- **IDE Support**: Tools work with any IDE via Language Server Protocol
|
|
790
|
+
- **CI/CD Ready**: All tools work in GitHub Actions / CI environments
|