aios-core 2.1.5 → 2.2.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/core/README.md +229 -229
- package/.aios-core/core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/core/data/aios-kb.md +923 -923
- package/.aios-core/core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/core/docs/component-creation-guide.md +457 -457
- package/.aios-core/core/docs/session-update-pattern.md +307 -307
- package/.aios-core/core/docs/template-syntax.md +266 -266
- package/.aios-core/core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/core/elicitation/elicitation-engine.js +1 -1
- package/.aios-core/core/index.esm.js +42 -42
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/migration/migration-config.yaml +83 -83
- package/.aios-core/core/migration/module-mapping.yaml +89 -89
- package/.aios-core/core/quality-gates/layer2-pr-automation.js +1 -1
- package/.aios-core/core/quality-gates/quality-gate-config.yaml +86 -86
- package/.aios-core/core/registry/README.md +179 -179
- package/.aios-core/core/utils/security-utils.js +1 -1
- package/.aios-core/core-config.yaml +391 -382
- package/.aios-core/data/agent-config-requirements.yaml +368 -368
- package/.aios-core/data/aios-kb.md +923 -923
- package/.aios-core/data/technical-preferences.md +3 -3
- package/.aios-core/data/workflow-patterns.yaml +267 -267
- package/.aios-core/development/README.md +142 -142
- package/.aios-core/development/agent-teams/team-all.yaml +15 -15
- package/.aios-core/development/agent-teams/team-fullstack.yaml +18 -18
- package/.aios-core/development/agent-teams/team-ide-minimal.yaml +10 -10
- package/.aios-core/development/agent-teams/team-no-ui.yaml +13 -13
- package/.aios-core/development/agent-teams/team-qa-focused.yaml +155 -155
- package/.aios-core/development/agents/aios-master.md +339 -339
- package/.aios-core/development/agents/analyst.md +195 -195
- package/.aios-core/development/agents/architect.md +359 -359
- package/.aios-core/development/agents/data-engineer.md +468 -468
- package/.aios-core/development/agents/dev.md +390 -390
- package/.aios-core/development/agents/devops.md +398 -398
- package/.aios-core/development/agents/pm.md +198 -198
- package/.aios-core/development/agents/po.md +256 -256
- package/.aios-core/development/agents/qa.md +312 -312
- package/.aios-core/development/agents/sm.md +220 -220
- package/.aios-core/development/agents/ux-design-expert.md +451 -451
- package/.aios-core/development/scripts/greeting-config-cli.js +85 -85
- package/.aios-core/development/tasks/add-mcp.md +319 -319
- package/.aios-core/development/tasks/advanced-elicitation.md +318 -318
- package/.aios-core/development/tasks/analyst-facilitate-brainstorming.md +341 -341
- package/.aios-core/development/tasks/analyze-brownfield.md +456 -0
- package/.aios-core/development/tasks/analyze-framework.md +696 -696
- package/.aios-core/development/tasks/analyze-performance.md +637 -637
- package/.aios-core/development/tasks/apply-qa-fixes.md +340 -340
- package/.aios-core/development/tasks/architect-analyze-impact.md +826 -826
- package/.aios-core/development/tasks/audit-codebase.md +429 -429
- package/.aios-core/development/tasks/audit-tailwind-config.md +270 -270
- package/.aios-core/development/tasks/audit-utilities.md +358 -358
- package/.aios-core/development/tasks/bootstrap-shadcn-library.md +286 -286
- package/.aios-core/development/tasks/brownfield-create-epic.md +485 -485
- package/.aios-core/development/tasks/brownfield-create-story.md +356 -356
- package/.aios-core/development/tasks/build-component.md +478 -478
- package/.aios-core/development/tasks/calculate-roi.md +455 -455
- package/.aios-core/development/tasks/ci-cd-configuration.md +764 -764
- package/.aios-core/development/tasks/cleanup-utilities.md +670 -670
- package/.aios-core/development/tasks/collaborative-edit.md +1108 -1108
- package/.aios-core/development/tasks/compose-molecule.md +284 -284
- package/.aios-core/development/tasks/consolidate-patterns.md +414 -414
- package/.aios-core/development/tasks/correct-course.md +279 -279
- package/.aios-core/development/tasks/create-agent.md +321 -321
- package/.aios-core/development/tasks/create-brownfield-story.md +726 -726
- package/.aios-core/development/tasks/create-deep-research-prompt.md +498 -498
- package/.aios-core/development/tasks/create-doc.md +316 -316
- package/.aios-core/development/tasks/create-next-story.md +774 -774
- package/.aios-core/development/tasks/create-suite.md +283 -283
- package/.aios-core/development/tasks/create-task.md +371 -371
- package/.aios-core/development/tasks/create-workflow.md +370 -370
- package/.aios-core/development/tasks/db-analyze-hotpaths.md +572 -572
- package/.aios-core/development/tasks/db-apply-migration.md +381 -381
- package/.aios-core/development/tasks/db-bootstrap.md +642 -642
- package/.aios-core/development/tasks/db-domain-modeling.md +693 -693
- package/.aios-core/development/tasks/db-dry-run.md +293 -293
- package/.aios-core/development/tasks/db-env-check.md +260 -260
- package/.aios-core/development/tasks/db-expansion-pack-integration.md +663 -663
- package/.aios-core/development/tasks/db-explain.md +631 -631
- package/.aios-core/development/tasks/db-impersonate.md +495 -495
- package/.aios-core/development/tasks/db-load-csv.md +593 -593
- package/.aios-core/development/tasks/db-policy-apply.md +653 -653
- package/.aios-core/development/tasks/db-rls-audit.md +411 -411
- package/.aios-core/development/tasks/db-rollback.md +739 -739
- package/.aios-core/development/tasks/db-run-sql.md +613 -613
- package/.aios-core/development/tasks/db-schema-audit.md +1011 -1011
- package/.aios-core/development/tasks/db-seed.md +390 -390
- package/.aios-core/development/tasks/db-smoke-test.md +351 -351
- package/.aios-core/development/tasks/db-snapshot.md +569 -569
- package/.aios-core/development/tasks/db-supabase-setup.md +712 -712
- package/.aios-core/development/tasks/db-verify-order.md +515 -515
- package/.aios-core/development/tasks/deprecate-component.md +956 -956
- package/.aios-core/development/tasks/dev-apply-qa-fixes.md +318 -318
- package/.aios-core/development/tasks/dev-backlog-debt.md +469 -469
- package/.aios-core/development/tasks/dev-develop-story.md +846 -846
- package/.aios-core/development/tasks/dev-improve-code-quality.md +872 -872
- package/.aios-core/development/tasks/dev-optimize-performance.md +1033 -1033
- package/.aios-core/development/tasks/dev-suggest-refactoring.md +870 -870
- package/.aios-core/development/tasks/dev-validate-next-story.md +348 -348
- package/.aios-core/development/tasks/document-project.md +552 -552
- package/.aios-core/development/tasks/environment-bootstrap.md +1311 -1311
- package/.aios-core/development/tasks/execute-checklist.md +301 -301
- package/.aios-core/development/tasks/export-design-tokens-dtcg.md +274 -274
- package/.aios-core/development/tasks/extend-pattern.md +269 -269
- package/.aios-core/development/tasks/extract-tokens.md +467 -467
- package/.aios-core/development/tasks/facilitate-brainstorming-session.md +518 -518
- package/.aios-core/development/tasks/generate-ai-frontend-prompt.md +260 -260
- package/.aios-core/development/tasks/generate-documentation.md +284 -284
- package/.aios-core/development/tasks/generate-migration-strategy.md +522 -522
- package/.aios-core/development/tasks/generate-shock-report.md +501 -501
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +427 -427
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +733 -733
- package/.aios-core/development/tasks/github-devops-repository-cleanup.md +374 -374
- package/.aios-core/development/tasks/github-devops-version-management.md +483 -483
- package/.aios-core/development/tasks/improve-self.md +822 -822
- package/.aios-core/development/tasks/index-docs.md +387 -387
- package/.aios-core/development/tasks/init-project-status.md +506 -506
- package/.aios-core/development/tasks/integrate-expansion-pack.md +314 -314
- package/.aios-core/development/tasks/kb-mode-interaction.md +283 -283
- package/.aios-core/development/tasks/learn-patterns.md +900 -900
- package/.aios-core/development/tasks/mcp-workflow.md +437 -437
- package/.aios-core/development/tasks/modify-agent.md +381 -381
- package/.aios-core/development/tasks/modify-task.md +424 -424
- package/.aios-core/development/tasks/modify-workflow.md +465 -465
- package/.aios-core/development/tasks/po-backlog-add.md +370 -370
- package/.aios-core/development/tasks/po-manage-story-backlog.md +523 -523
- package/.aios-core/development/tasks/po-pull-story-from-clickup.md +540 -540
- package/.aios-core/development/tasks/po-pull-story.md +316 -316
- package/.aios-core/development/tasks/po-stories-index.md +351 -351
- package/.aios-core/development/tasks/po-sync-story-to-clickup.md +457 -457
- package/.aios-core/development/tasks/po-sync-story.md +303 -303
- package/.aios-core/development/tasks/pr-automation.md +701 -701
- package/.aios-core/development/tasks/propose-modification.md +842 -842
- package/.aios-core/development/tasks/qa-backlog-add-followup.md +425 -425
- package/.aios-core/development/tasks/qa-gate.md +373 -373
- package/.aios-core/development/tasks/qa-generate-tests.md +1174 -1174
- package/.aios-core/development/tasks/qa-nfr-assess.md +557 -557
- package/.aios-core/development/tasks/qa-review-proposal.md +1157 -1157
- package/.aios-core/development/tasks/qa-review-story.md +682 -682
- package/.aios-core/development/tasks/qa-risk-profile.md +566 -566
- package/.aios-core/development/tasks/qa-run-tests.md +277 -277
- package/.aios-core/development/tasks/qa-test-design.md +387 -387
- package/.aios-core/development/tasks/qa-trace-requirements.md +476 -476
- package/.aios-core/development/tasks/release-management.md +723 -723
- package/.aios-core/development/tasks/security-audit.md +554 -554
- package/.aios-core/development/tasks/security-scan.md +790 -790
- package/.aios-core/development/tasks/setup-database.md +741 -741
- package/.aios-core/development/tasks/setup-design-system.md +462 -462
- package/.aios-core/development/tasks/setup-github.md +874 -874
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/setup-mcp-docker.md +584 -584
- package/.aios-core/development/tasks/setup-project-docs.md +440 -0
- package/.aios-core/development/tasks/shard-doc.md +537 -537
- package/.aios-core/development/tasks/sm-create-next-story.md +480 -480
- package/.aios-core/development/tasks/sync-documentation.md +864 -864
- package/.aios-core/development/tasks/tailwind-upgrade.md +294 -294
- package/.aios-core/development/tasks/test-as-user.md +621 -621
- package/.aios-core/development/tasks/test-validation-task.md +171 -171
- package/.aios-core/development/tasks/undo-last.md +346 -346
- package/.aios-core/development/tasks/update-manifest.md +409 -409
- package/.aios-core/development/tasks/ux-create-wireframe.md +617 -617
- package/.aios-core/development/tasks/ux-ds-scan-artifact.md +672 -672
- package/.aios-core/development/tasks/ux-user-research.md +559 -559
- package/.aios-core/development/tasks/validate-next-story.md +422 -422
- package/.aios-core/development/workflows/README.md +83 -83
- package/.aios-core/development/workflows/brownfield-fullstack.yaml +297 -297
- package/.aios-core/development/workflows/brownfield-service.yaml +187 -187
- package/.aios-core/development/workflows/brownfield-ui.yaml +197 -197
- package/.aios-core/development/workflows/greenfield-fullstack.yaml +333 -333
- package/.aios-core/development/workflows/greenfield-service.yaml +206 -206
- package/.aios-core/development/workflows/greenfield-ui.yaml +235 -235
- package/.aios-core/docs/SHARD-TRANSLATION-GUIDE.md +335 -335
- package/.aios-core/docs/component-creation-guide.md +457 -457
- package/.aios-core/docs/session-update-pattern.md +307 -307
- package/.aios-core/docs/standards/AGENT-PERSONALIZATION-STANDARD-V1.md +572 -572
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-QUICK-REFERENCE.md +185 -185
- package/.aios-core/docs/standards/AIOS-COLOR-PALETTE-V2.1.md +354 -354
- package/.aios-core/docs/standards/AIOS-FRAMEWORK-MASTER.md +1963 -1963
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +821 -821
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-SUMMARY.md +1190 -1190
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1.md +439 -439
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1339 -1339
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO.md +5398 -5398
- package/.aios-core/docs/standards/EXECUTOR-DECISION-TREE.md +697 -697
- package/.aios-core/docs/standards/OPEN-SOURCE-VS-SERVICE-DIFFERENCES.md +511 -511
- package/.aios-core/docs/standards/QUALITY-GATES-SPECIFICATION.md +556 -556
- package/.aios-core/docs/standards/STANDARDS-INDEX.md +210 -210
- package/.aios-core/docs/standards/STORY-TEMPLATE-V2-SPECIFICATION.md +550 -550
- package/.aios-core/docs/standards/TASK-FORMAT-SPECIFICATION-V1.md +1414 -1414
- package/.aios-core/docs/standards/V3-ARCHITECTURAL-DECISIONS.md +523 -523
- package/.aios-core/docs/template-syntax.md +266 -266
- package/.aios-core/docs/troubleshooting-guide.md +624 -624
- package/.aios-core/index.esm.js +15 -15
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/README.md +126 -126
- package/.aios-core/infrastructure/integrations/pm-adapters/README.md +59 -59
- package/.aios-core/infrastructure/scripts/approval-workflow.js +1 -1
- package/.aios-core/infrastructure/scripts/batch-creator.js +1 -1
- package/.aios-core/infrastructure/scripts/component-generator.js +3 -3
- package/.aios-core/infrastructure/scripts/component-metadata.js +1 -1
- package/.aios-core/infrastructure/scripts/component-search.js +1 -1
- package/.aios-core/infrastructure/scripts/coverage-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/dependency-impact-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +501 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +368 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +308 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +331 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +312 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +74 -0
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +389 -0
- package/.aios-core/infrastructure/scripts/framework-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/improvement-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +26 -13
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/claude-free-tracked.sh +108 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-proxy.sh +65 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -0
- package/.aios-core/infrastructure/scripts/llm-routing/templates/deepseek-usage.sh +16 -0
- package/.aios-core/infrastructure/scripts/llm-routing/usage-tracker/index.js +549 -0
- package/.aios-core/infrastructure/scripts/modification-risk-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/performance-analyzer.js +1 -1
- package/.aios-core/infrastructure/scripts/pm-adapter.js +134 -134
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/scripts/template-engine.js +1 -1
- package/.aios-core/infrastructure/scripts/template-validator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-generator.js +1 -1
- package/.aios-core/infrastructure/scripts/test-quality-assessment.js +1 -1
- package/.aios-core/infrastructure/scripts/transaction-manager.js +1 -1
- package/.aios-core/infrastructure/scripts/usage-analytics.js +1 -1
- package/.aios-core/infrastructure/scripts/visual-impact-generator.js +2 -2
- package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +176 -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 -109
- 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/regression-suite-v2.md +621 -621
- package/.aios-core/infrastructure/tools/README.md +222 -222
- package/.aios-core/infrastructure/tools/cli/github-cli.yaml +200 -200
- package/.aios-core/infrastructure/tools/cli/railway-cli.yaml +260 -260
- package/.aios-core/infrastructure/tools/cli/supabase-cli.yaml +224 -224
- package/.aios-core/infrastructure/tools/local/ffmpeg.yaml +261 -261
- package/.aios-core/infrastructure/tools/mcp/21st-dev-magic.yaml +127 -127
- package/.aios-core/infrastructure/tools/mcp/browser.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/clickup.yaml +534 -534
- package/.aios-core/infrastructure/tools/mcp/context7.yaml +78 -78
- package/.aios-core/infrastructure/tools/mcp/desktop-commander.yaml +180 -180
- package/.aios-core/infrastructure/tools/mcp/exa.yaml +103 -103
- package/.aios-core/infrastructure/tools/mcp/google-workspace.yaml +930 -930
- package/.aios-core/infrastructure/tools/mcp/n8n.yaml +551 -551
- package/.aios-core/infrastructure/tools/mcp/supabase.yaml +808 -808
- package/.aios-core/install-manifest.yaml +347 -347
- package/.aios-core/product/README.md +56 -56
- package/.aios-core/product/checklists/accessibility-wcag-checklist.md +80 -0
- package/.aios-core/product/checklists/architect-checklist.md +443 -443
- package/.aios-core/product/checklists/change-checklist.md +182 -182
- package/.aios-core/product/checklists/component-quality-checklist.md +74 -0
- package/.aios-core/product/checklists/database-design-checklist.md +119 -119
- package/.aios-core/product/checklists/dba-predeploy-checklist.md +97 -97
- package/.aios-core/product/checklists/dba-rollback-checklist.md +99 -99
- package/.aios-core/product/checklists/migration-readiness-checklist.md +75 -0
- package/.aios-core/product/checklists/pattern-audit-checklist.md +88 -0
- package/.aios-core/product/checklists/pm-checklist.md +375 -375
- package/.aios-core/product/checklists/po-master-checklist.md +441 -441
- package/.aios-core/product/checklists/pre-push-checklist.md +108 -108
- package/.aios-core/product/checklists/release-checklist.md +122 -122
- package/.aios-core/product/checklists/story-dod-checklist.md +101 -101
- package/.aios-core/product/checklists/story-draft-checklist.md +215 -215
- package/.aios-core/product/data/atomic-design-principles.md +108 -0
- package/.aios-core/product/data/brainstorming-techniques.md +36 -36
- package/.aios-core/product/data/consolidation-algorithms.md +142 -0
- package/.aios-core/product/data/database-best-practices.md +182 -0
- package/.aios-core/product/data/design-token-best-practices.md +107 -0
- package/.aios-core/product/data/elicitation-methods.md +134 -134
- package/.aios-core/product/data/integration-patterns.md +207 -0
- package/.aios-core/product/data/migration-safety-guide.md +329 -0
- package/.aios-core/product/data/mode-selection-best-practices.md +471 -471
- package/.aios-core/product/data/postgres-tuning-guide.md +300 -0
- package/.aios-core/product/data/rls-security-patterns.md +333 -0
- package/.aios-core/product/data/roi-calculation-guide.md +142 -0
- package/.aios-core/product/data/supabase-patterns.md +330 -0
- package/.aios-core/product/data/test-levels-framework.md +148 -148
- package/.aios-core/product/data/test-priorities-matrix.md +174 -174
- package/.aios-core/product/data/wcag-compliance-guide.md +267 -0
- package/.aios-core/product/templates/1mcp-config.yaml +225 -225
- package/.aios-core/product/templates/activation-instructions-inline-greeting.yaml +63 -63
- package/.aios-core/product/templates/activation-instructions-template.md +258 -258
- package/.aios-core/product/templates/agent-template.yaml +120 -120
- package/.aios-core/product/templates/architecture-tmpl.yaml +650 -650
- package/.aios-core/product/templates/brainstorming-output-tmpl.yaml +155 -155
- package/.aios-core/product/templates/brownfield-architecture-tmpl.yaml +475 -475
- package/.aios-core/product/templates/brownfield-prd-tmpl.yaml +279 -279
- package/.aios-core/product/templates/changelog-template.md +134 -134
- package/.aios-core/product/templates/command-rationalization-matrix.md +152 -152
- package/.aios-core/product/templates/competitor-analysis-tmpl.yaml +292 -292
- package/.aios-core/product/templates/design-story-tmpl.yaml +587 -587
- package/.aios-core/product/templates/ds-artifact-analysis.md +70 -70
- package/.aios-core/product/templates/front-end-architecture-tmpl.yaml +205 -205
- package/.aios-core/product/templates/front-end-spec-tmpl.yaml +348 -348
- package/.aios-core/product/templates/fullstack-architecture-tmpl.yaml +804 -804
- package/.aios-core/product/templates/github-pr-template.md +67 -67
- package/.aios-core/product/templates/gordon-mcp.yaml +140 -140
- package/.aios-core/product/templates/ide-rules/antigravity-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/claude-rules.md +221 -221
- package/.aios-core/product/templates/ide-rules/cline-rules.md +84 -84
- package/.aios-core/product/templates/ide-rules/copilot-rules.md +92 -92
- package/.aios-core/product/templates/ide-rules/cursor-rules.md +115 -115
- package/.aios-core/product/templates/ide-rules/gemini-rules.md +85 -85
- package/.aios-core/product/templates/ide-rules/roo-rules.md +86 -86
- package/.aios-core/product/templates/ide-rules/trae-rules.md +104 -104
- package/.aios-core/product/templates/ide-rules/windsurf-rules.md +80 -80
- package/.aios-core/product/templates/index-strategy-tmpl.yaml +53 -53
- package/.aios-core/product/templates/market-research-tmpl.yaml +251 -251
- package/.aios-core/product/templates/mcp-workflow.js +271 -271
- package/.aios-core/product/templates/migration-plan-tmpl.yaml +1022 -1022
- package/.aios-core/product/templates/migration-strategy-tmpl.md +524 -524
- package/.aios-core/product/templates/personalized-agent-template.md +258 -258
- package/.aios-core/product/templates/personalized-checklist-template.md +340 -340
- package/.aios-core/product/templates/personalized-task-template-v2.md +905 -905
- package/.aios-core/product/templates/personalized-task-template.md +344 -344
- package/.aios-core/product/templates/personalized-template-file.yaml +322 -322
- package/.aios-core/product/templates/personalized-workflow-template.yaml +460 -460
- package/.aios-core/product/templates/prd-tmpl.yaml +201 -201
- package/.aios-core/product/templates/project-brief-tmpl.yaml +220 -220
- package/.aios-core/product/templates/qa-gate-tmpl.yaml +240 -240
- package/.aios-core/product/templates/rls-policies-tmpl.yaml +1203 -1203
- package/.aios-core/product/templates/schema-design-tmpl.yaml +428 -428
- package/.aios-core/product/templates/state-persistence-tmpl.yaml +219 -219
- package/.aios-core/product/templates/story-tmpl.yaml +331 -331
- package/.aios-core/product/templates/task-execution-report.md +495 -495
- package/.aios-core/product/templates/task-template.md +122 -122
- package/.aios-core/product/templates/token-exports-tailwind-tmpl.js +395 -395
- package/.aios-core/product/templates/tokens-schema-tmpl.yaml +305 -305
- package/.aios-core/product/templates/workflow-template.yaml +133 -133
- package/.aios-core/scripts/README.md +354 -354
- package/.aios-core/scripts/aios-doc-template.md +325 -325
- package/.aios-core/scripts/elicitation-engine.js +1 -1
- package/.aios-core/scripts/test-template-system.js +1 -1
- package/.aios-core/scripts/workflow-management.md +69 -69
- package/.aios-core/user-guide.md +1413 -1413
- package/.aios-core/working-in-the-brownfield.md +361 -361
- package/LICENSE +1 -1
- package/README.md +702 -703
- package/bin/aios-init-old.js +3 -3
- package/bin/aios-init-v4.js +1 -1
- package/bin/aios-init.backup-v1.1.4.js +1 -1
- package/bin/aios-init.js +3 -3
- package/bin/aios.js +279 -279
- package/bin/utils/install-errors.js +339 -339
- package/bin/utils/install-transaction.js +445 -445
- package/index.d.ts +18 -18
- package/index.esm.js +20 -20
- package/index.js +6 -6
- package/package.json +8 -10
- package/packages/installer/src/config/templates/env-template.js +27 -4
- package/packages/installer/src/detection/detect-project-type.js +81 -81
- package/packages/installer/src/wizard/wizard.js +185 -34
- package/packages/installer/tests/integration/environment-configuration.test.js +2 -1
- package/packages/installer/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +11 -10
- package/src/config/ide-configs.js +1 -1
- package/src/wizard/feedback.js +2 -2
- package/src/wizard/index.js +1 -1
- package/src/wizard/validation/report-generator.js +1 -1
- package/src/wizard/validation/troubleshooting-system.js +13 -13
- package/.aios-core/development/tasks/validate-structure.md +0 -243
- package/.aios-core/infrastructure/scripts/_archived/final-todo-count.js +0 -122
- package/.aios-core/infrastructure/scripts/_archived/fix-yaml-formatting.js +0 -89
- package/.aios-core/infrastructure/scripts/_archived/migration-generator.js +0 -780
- package/.aios-core/infrastructure/scripts/_archived/migration-path-generator.js +0 -950
- package/.aios-core/infrastructure/scripts/_archived/phase2-entrada-saida-errors.js +0 -425
- package/.aios-core/infrastructure/scripts/_archived/phase2-spot-check.js +0 -132
- package/.aios-core/infrastructure/scripts/_archived/phase3-tools-scripts-validation.js +0 -381
- package/.aios-core/infrastructure/scripts/_archived/phase4-metadata-performance.js +0 -203
- package/.aios-core/infrastructure/scripts/_archived/test-yaml-parsing.js +0 -24
- package/.aios-core/infrastructure/scripts/_archived/verify-yaml-fix.js +0 -51
- package/.aios-core/infrastructure/scripts/source-tree-guardian/index.js +0 -375
- package/.aios-core/infrastructure/scripts/source-tree-guardian/manifest-generator.js +0 -410
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/naming-rules.yaml +0 -285
- package/.aios-core/infrastructure/scripts/source-tree-guardian/rules/placement-rules.yaml +0 -262
- package/.aios-core/infrastructure/scripts/source-tree-guardian/validator.js +0 -468
- package/.aios-core/tasks/find-component.md.legacy +0 -391
- package/.aios-core/tasks/generate-commit-message.md.legacy +0 -426
- package/.aios-core/tasks/generate-migration.md.legacy +0 -382
- package/.aios-core/tasks/rollback-modification.md.legacy +0 -307
- package/.aios-core/tasks/update-tests.md.legacy +0 -283
|
@@ -1,683 +1,683 @@
|
|
|
1
|
-
---
|
|
2
|
-
tools:
|
|
3
|
-
- github-cli # Code review and PR management
|
|
4
|
-
- browser # End-to-end testing and UI validation
|
|
5
|
-
- context7 # Research testing frameworks and best practices
|
|
6
|
-
- supabase # Database testing and data validation
|
|
7
|
-
checklists:
|
|
8
|
-
- qa-master-checklist.md
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# review-story
|
|
12
|
-
|
|
13
|
-
Perform a comprehensive test architecture review with quality gate decision. This adaptive, risk-aware review creates both a story update and a detailed gate file.
|
|
14
|
-
|
|
15
|
-
## Execution Modes
|
|
16
|
-
|
|
17
|
-
**Choose your execution mode:**
|
|
18
|
-
|
|
19
|
-
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
20
|
-
- Autonomous decision making with logging
|
|
21
|
-
- Minimal user interaction
|
|
22
|
-
- **Best for:** Simple, deterministic tasks
|
|
23
|
-
|
|
24
|
-
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
25
|
-
- Explicit decision checkpoints
|
|
26
|
-
- Educational explanations
|
|
27
|
-
- **Best for:** Learning, complex decisions
|
|
28
|
-
|
|
29
|
-
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
30
|
-
- Task analysis phase (identify all ambiguities)
|
|
31
|
-
- Zero ambiguity execution
|
|
32
|
-
- **Best for:** Ambiguous requirements, critical work
|
|
33
|
-
|
|
34
|
-
**Parameter:** `mode` (optional, default: `interactive`)
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Task Definition (AIOS Task Format V1.0)
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
task: qaReviewStory()
|
|
42
|
-
responsável: Quinn (Guardian)
|
|
43
|
-
responsavel_type: Agente
|
|
44
|
-
atomic_layer: Strategy
|
|
45
|
-
|
|
46
|
-
**Entrada:**
|
|
47
|
-
- campo: target
|
|
48
|
-
tipo: string
|
|
49
|
-
origem: User Input
|
|
50
|
-
obrigatório: true
|
|
51
|
-
validação: Must exist
|
|
52
|
-
|
|
53
|
-
- campo: criteria
|
|
54
|
-
tipo: array
|
|
55
|
-
origem: config
|
|
56
|
-
obrigatório: true
|
|
57
|
-
validação: Non-empty validation criteria
|
|
58
|
-
|
|
59
|
-
- campo: strict
|
|
60
|
-
tipo: boolean
|
|
61
|
-
origem: User Input
|
|
62
|
-
obrigatório: false
|
|
63
|
-
validação: Default: true
|
|
64
|
-
|
|
65
|
-
**Saída:**
|
|
66
|
-
- campo: validation_result
|
|
67
|
-
tipo: boolean
|
|
68
|
-
destino: Return value
|
|
69
|
-
persistido: false
|
|
70
|
-
|
|
71
|
-
- campo: errors
|
|
72
|
-
tipo: array
|
|
73
|
-
destino: Memory
|
|
74
|
-
persistido: false
|
|
75
|
-
|
|
76
|
-
- campo: report
|
|
77
|
-
tipo: object
|
|
78
|
-
destino: File (.ai/*.json)
|
|
79
|
-
persistido: true
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## Pre-Conditions
|
|
85
|
-
|
|
86
|
-
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
87
|
-
|
|
88
|
-
**Checklist:**
|
|
89
|
-
|
|
90
|
-
```yaml
|
|
91
|
-
pre-conditions:
|
|
92
|
-
- [ ] Validation rules loaded; target available for validation
|
|
93
|
-
tipo: pre-condition
|
|
94
|
-
blocker: true
|
|
95
|
-
validação: |
|
|
96
|
-
Check validation rules loaded; target available for validation
|
|
97
|
-
error_message: "Pre-condition failed: Validation rules loaded; target available for validation"
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Post-Conditions
|
|
103
|
-
|
|
104
|
-
**Purpose:** Validate execution success AFTER task completes
|
|
105
|
-
|
|
106
|
-
**Checklist:**
|
|
107
|
-
|
|
108
|
-
```yaml
|
|
109
|
-
post-conditions:
|
|
110
|
-
- [ ] Validation executed; results accurate; report generated
|
|
111
|
-
tipo: post-condition
|
|
112
|
-
blocker: true
|
|
113
|
-
validação: |
|
|
114
|
-
Verify validation executed; results accurate; report generated
|
|
115
|
-
error_message: "Post-condition failed: Validation executed; results accurate; report generated"
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Acceptance Criteria
|
|
121
|
-
|
|
122
|
-
**Purpose:** Definitive pass/fail criteria for task completion
|
|
123
|
-
|
|
124
|
-
**Checklist:**
|
|
125
|
-
|
|
126
|
-
```yaml
|
|
127
|
-
acceptance-criteria:
|
|
128
|
-
- [ ] Validation rules applied; pass/fail accurate; actionable feedback
|
|
129
|
-
tipo: acceptance-criterion
|
|
130
|
-
blocker: true
|
|
131
|
-
validação: |
|
|
132
|
-
Assert validation rules applied; pass/fail accurate; actionable feedback
|
|
133
|
-
error_message: "Acceptance criterion not met: Validation rules applied; pass/fail accurate; actionable feedback"
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Tools
|
|
139
|
-
|
|
140
|
-
**External/shared resources used by this task:**
|
|
141
|
-
|
|
142
|
-
- **Tool:** validation-engine
|
|
143
|
-
- **Purpose:** Rule-based validation and reporting
|
|
144
|
-
- **Source:** .aios-core/utils/validation-engine.js
|
|
145
|
-
|
|
146
|
-
- **Tool:** schema-validator
|
|
147
|
-
- **Purpose:** JSON/YAML schema validation
|
|
148
|
-
- **Source:** ajv or similar
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Scripts
|
|
153
|
-
|
|
154
|
-
**Agent-specific code for this task:**
|
|
155
|
-
|
|
156
|
-
- **Script:** run-validation.js
|
|
157
|
-
- **Purpose:** Execute validation rules and generate report
|
|
158
|
-
- **Language:** JavaScript
|
|
159
|
-
- **Location:** .aios-core/scripts/run-validation.js
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Error Handling
|
|
164
|
-
|
|
165
|
-
**Strategy:** retry
|
|
166
|
-
|
|
167
|
-
**Common Errors:**
|
|
168
|
-
|
|
169
|
-
1. **Error:** Validation Criteria Missing
|
|
170
|
-
- **Cause:** Required validation rules not defined
|
|
171
|
-
- **Resolution:** Ensure validation criteria loaded from config
|
|
172
|
-
- **Recovery:** Use default validation rules, log warning
|
|
173
|
-
|
|
174
|
-
2. **Error:** Invalid Schema
|
|
175
|
-
- **Cause:** Target does not match expected schema
|
|
176
|
-
- **Resolution:** Update schema or fix target structure
|
|
177
|
-
- **Recovery:** Detailed validation error report
|
|
178
|
-
|
|
179
|
-
3. **Error:** Dependency Missing
|
|
180
|
-
- **Cause:** Required dependency for validation not found
|
|
181
|
-
- **Resolution:** Install missing dependencies
|
|
182
|
-
- **Recovery:** Abort with clear dependency list
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Performance
|
|
187
|
-
|
|
188
|
-
**Expected Metrics:**
|
|
189
|
-
|
|
190
|
-
```yaml
|
|
191
|
-
duration_expected: 5-20 min (estimated)
|
|
192
|
-
cost_estimated: $0.003-0.015
|
|
193
|
-
token_usage: ~2,000-8,000 tokens
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**Optimization Notes:**
|
|
197
|
-
- Iterative analysis with depth limits; cache intermediate results; batch similar operations
|
|
198
|
-
|
|
199
|
-
---
|
|
200
|
-
|
|
201
|
-
## Metadata
|
|
202
|
-
|
|
203
|
-
```yaml
|
|
204
|
-
story: N/A
|
|
205
|
-
version: 1.0.0
|
|
206
|
-
dependencies:
|
|
207
|
-
- N/A
|
|
208
|
-
tags:
|
|
209
|
-
- quality-assurance
|
|
210
|
-
- testing
|
|
211
|
-
updated_at: 2025-11-17
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
## Inputs
|
|
218
|
-
|
|
219
|
-
```yaml
|
|
220
|
-
required:
|
|
221
|
-
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
222
|
-
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
|
|
223
|
-
- story_title: '{title}' # If missing, derive from story file H1
|
|
224
|
-
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
## Prerequisites
|
|
228
|
-
|
|
229
|
-
- Story status must be "Review"
|
|
230
|
-
- Developer has completed all tasks and updated the File List
|
|
231
|
-
- All automated tests are passing
|
|
232
|
-
|
|
233
|
-
## Review Process - Adaptive Test Architecture
|
|
234
|
-
|
|
235
|
-
### 0. CodeRabbit Full Self-Healing Loop (Story 6.3.3)
|
|
236
|
-
|
|
237
|
-
**Purpose**: Automated code quality scanning with self-healing before human review
|
|
238
|
-
|
|
239
|
-
**Configuration**: Full self-healing (max 3 iterations, CRITICAL + HIGH issues)
|
|
240
|
-
|
|
241
|
-
Execute CodeRabbit self-healing **FIRST** before manual review:
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
┌───────────────────────────────────────────────────────────────────┐
|
|
245
|
-
│ CODERABBIT SELF-HEALING │
|
|
246
|
-
│ (Full Mode - @qa) │
|
|
247
|
-
├───────────────────────────────────────────────────────────────────┤
|
|
248
|
-
│ │
|
|
249
|
-
│ iteration = 0 │
|
|
250
|
-
│ max_iterations = 3 │
|
|
251
|
-
│ │
|
|
252
|
-
│ WHILE iteration < max_iterations: │
|
|
253
|
-
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
254
|
-
│ │ 1. Run CodeRabbit CLI │ │
|
|
255
|
-
│ │ wsl bash -c 'cd /mnt/c
|
|
256
|
-
│ │ ~/.local/bin/coderabbit --prompt-only │ │
|
|
257
|
-
│ │ -t committed --base main' │ │
|
|
258
|
-
│ │ │ │
|
|
259
|
-
│ │ 2. Parse output for all severity levels │ │
|
|
260
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
261
|
-
│ │ │
|
|
262
|
-
│ ▼ │
|
|
263
|
-
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
264
|
-
│ │ critical = filter(severity == "CRITICAL") │ │
|
|
265
|
-
│ │ high = filter(severity == "HIGH") │ │
|
|
266
|
-
│ │ medium = filter(severity == "MEDIUM") │ │
|
|
267
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
268
|
-
│ │ │
|
|
269
|
-
│ ▼ │
|
|
270
|
-
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
271
|
-
│ │ IF critical.length == 0 AND high.length == 0: │ │
|
|
272
|
-
│ │ - IF medium.length > 0: │ │
|
|
273
|
-
│ │ - Create tech debt issues for each MEDIUM │ │
|
|
274
|
-
│ │ - Log: "✅ CodeRabbit passed" │ │
|
|
275
|
-
│ │ - BREAK → Proceed to manual review │ │
|
|
276
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
277
|
-
│ │ │
|
|
278
|
-
│ ▼ │
|
|
279
|
-
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
280
|
-
│ │ IF CRITICAL or HIGH issues found: │ │
|
|
281
|
-
│ │ - Attempt auto-fix for each CRITICAL issue │ │
|
|
282
|
-
│ │ - Attempt auto-fix for each HIGH issue │ │
|
|
283
|
-
│ │ - iteration++ │ │
|
|
284
|
-
│ │ - CONTINUE loop │ │
|
|
285
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
286
|
-
│ │ │
|
|
287
|
-
│ ▼ │
|
|
288
|
-
│ IF iteration == 3 AND (CRITICAL or HIGH issues remain): │
|
|
289
|
-
│ - Log: "❌ Issues remain after 3 iterations" │
|
|
290
|
-
│ - Generate detailed QA gate report │
|
|
291
|
-
│ - Set gate: FAIL │
|
|
292
|
-
│ - HALT and require human intervention │
|
|
293
|
-
│ │
|
|
294
|
-
└───────────────────────────────────────────────────────────────────┘
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
#### Severity Handling
|
|
298
|
-
|
|
299
|
-
| Severity | Behavior | Notes |
|
|
300
|
-
|----------|----------|-------|
|
|
301
|
-
| **CRITICAL** | Auto-fix (max 3 attempts) | Security vulnerabilities, breaking bugs |
|
|
302
|
-
| **HIGH** | Auto-fix (max 3 attempts) | Significant quality problems |
|
|
303
|
-
| **MEDIUM** | Create tech debt issue | Document for future sprint |
|
|
304
|
-
| **LOW** | Note in review | Nits, no action required |
|
|
305
|
-
|
|
306
|
-
#### Implementation Code
|
|
307
|
-
|
|
308
|
-
```javascript
|
|
309
|
-
async function runQACodeRabbitSelfHealing(storyPath) {
|
|
310
|
-
const maxIterations = 3;
|
|
311
|
-
let iteration = 0;
|
|
312
|
-
|
|
313
|
-
console.log('🐰 Starting CodeRabbit Full Self-Healing Loop...');
|
|
314
|
-
console.log(` Mode: Full (CRITICAL + HIGH)`);
|
|
315
|
-
console.log(` Max Iterations: ${maxIterations}\n`);
|
|
316
|
-
|
|
317
|
-
while (iteration < maxIterations) {
|
|
318
|
-
console.log(`📋 Iteration ${iteration + 1}/${maxIterations}`);
|
|
319
|
-
|
|
320
|
-
// Run CodeRabbit CLI against main branch
|
|
321
|
-
const output = await runCodeRabbitCLI('committed --base main');
|
|
322
|
-
const issues = parseCodeRabbitOutput(output);
|
|
323
|
-
|
|
324
|
-
const criticalIssues = issues.filter(i => i.severity === 'CRITICAL');
|
|
325
|
-
const highIssues = issues.filter(i => i.severity === 'HIGH');
|
|
326
|
-
const mediumIssues = issues.filter(i => i.severity === 'MEDIUM');
|
|
327
|
-
|
|
328
|
-
console.log(` Found: ${criticalIssues.length} CRITICAL, ${highIssues.length} HIGH, ${mediumIssues.length} MEDIUM`);
|
|
329
|
-
|
|
330
|
-
// No CRITICAL or HIGH issues = success
|
|
331
|
-
if (criticalIssues.length === 0 && highIssues.length === 0) {
|
|
332
|
-
if (mediumIssues.length > 0) {
|
|
333
|
-
console.log(`\n📝 Creating tech debt issues for ${mediumIssues.length} MEDIUM issues...`);
|
|
334
|
-
await createTechDebtIssues(storyPath, mediumIssues);
|
|
335
|
-
}
|
|
336
|
-
console.log('\n✅ CodeRabbit Self-Healing: PASSED');
|
|
337
|
-
return { success: true, iterations: iteration + 1, proceedToManual: true };
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
// Attempt auto-fix for CRITICAL and HIGH issues
|
|
341
|
-
const allIssues = [...criticalIssues, ...highIssues];
|
|
342
|
-
console.log(`\n🔧 Attempting auto-fix for ${allIssues.length} issues...`);
|
|
343
|
-
for (const issue of allIssues) {
|
|
344
|
-
await attemptAutoFix(issue);
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
iteration++;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
// Max iterations reached with issues
|
|
351
|
-
console.log('\n❌ CodeRabbit Self-Healing: FAILED');
|
|
352
|
-
console.log(` CRITICAL/HIGH issues remain after ${maxIterations} iterations.`);
|
|
353
|
-
console.log(' Setting gate: FAIL - Manual intervention required.');
|
|
354
|
-
|
|
355
|
-
return { success: false, iterations: maxIterations, gateStatus: 'FAIL' };
|
|
356
|
-
}
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
#### Timeout
|
|
360
|
-
|
|
361
|
-
- **Default**: 30 minutes per CodeRabbit run
|
|
362
|
-
- **Total max**: ~90 minutes (3 iterations)
|
|
363
|
-
|
|
364
|
-
#### Integration with Gate Decision
|
|
365
|
-
|
|
366
|
-
If self-healing fails:
|
|
367
|
-
- Gate automatically set to FAIL
|
|
368
|
-
- `top_issues` populated from remaining CodeRabbit issues
|
|
369
|
-
- `status_reason` includes "CodeRabbit self-healing exhausted"
|
|
370
|
-
|
|
371
|
-
---
|
|
372
|
-
|
|
373
|
-
### 1. Risk Assessment (Determines Review Depth)
|
|
374
|
-
|
|
375
|
-
**Auto-escalate to deep review when:**
|
|
376
|
-
|
|
377
|
-
- Auth/payment/security files touched
|
|
378
|
-
- No tests added to story
|
|
379
|
-
- Diff > 500 lines
|
|
380
|
-
- Previous gate was FAIL/CONCERNS
|
|
381
|
-
- Story has > 5 acceptance criteria
|
|
382
|
-
|
|
383
|
-
### 2. Comprehensive Analysis
|
|
384
|
-
|
|
385
|
-
**A. Requirements Traceability**
|
|
386
|
-
|
|
387
|
-
- Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
|
|
388
|
-
- Identify coverage gaps
|
|
389
|
-
- Verify all requirements have corresponding test cases
|
|
390
|
-
|
|
391
|
-
**B. Code Quality Review**
|
|
392
|
-
|
|
393
|
-
- Architecture and design patterns
|
|
394
|
-
- Refactoring opportunities (and perform them)
|
|
395
|
-
- Code duplication or inefficiencies
|
|
396
|
-
- Performance optimizations
|
|
397
|
-
- Security vulnerabilities
|
|
398
|
-
- Best practices adherence
|
|
399
|
-
|
|
400
|
-
**C. Test Architecture Assessment**
|
|
401
|
-
|
|
402
|
-
- Test coverage adequacy at appropriate levels
|
|
403
|
-
- Test level appropriateness (what should be unit vs integration vs e2e)
|
|
404
|
-
- Test design quality and maintainability
|
|
405
|
-
- Test data management strategy
|
|
406
|
-
- Mock/stub usage appropriateness
|
|
407
|
-
- Edge case and error scenario coverage
|
|
408
|
-
- Test execution time and reliability
|
|
409
|
-
|
|
410
|
-
**D. Non-Functional Requirements (NFRs)**
|
|
411
|
-
|
|
412
|
-
- Security: Authentication, authorization, data protection
|
|
413
|
-
- Performance: Response times, resource usage
|
|
414
|
-
- Reliability: Error handling, recovery mechanisms
|
|
415
|
-
- Maintainability: Code clarity, documentation
|
|
416
|
-
|
|
417
|
-
**E. Testability Evaluation**
|
|
418
|
-
|
|
419
|
-
- Controllability: Can we control the inputs?
|
|
420
|
-
- Observability: Can we observe the outputs?
|
|
421
|
-
- Debuggability: Can we debug failures easily?
|
|
422
|
-
|
|
423
|
-
**F. Technical Debt Identification**
|
|
424
|
-
|
|
425
|
-
- Accumulated shortcuts
|
|
426
|
-
- Missing tests
|
|
427
|
-
- Outdated dependencies
|
|
428
|
-
- Architecture violations
|
|
429
|
-
|
|
430
|
-
### 3. Active Refactoring
|
|
431
|
-
|
|
432
|
-
- Refactor code where safe and appropriate
|
|
433
|
-
- Run tests to ensure changes don't break functionality
|
|
434
|
-
- Document all changes in QA Results section with clear WHY and HOW
|
|
435
|
-
- Do NOT alter story content beyond QA Results section
|
|
436
|
-
- Do NOT change story Status or File List; recommend next status only
|
|
437
|
-
|
|
438
|
-
### 4. Standards Compliance Check
|
|
439
|
-
|
|
440
|
-
- Verify adherence to `docs/coding-standards.md`
|
|
441
|
-
- Check compliance with `docs/unified-project-structure.md`
|
|
442
|
-
- Validate testing approach against `docs/testing-strategy.md`
|
|
443
|
-
- Ensure all guidelines mentioned in the story are followed
|
|
444
|
-
|
|
445
|
-
### 5. Acceptance Criteria Validation
|
|
446
|
-
|
|
447
|
-
- Verify each AC is fully implemented
|
|
448
|
-
- Check for any missing functionality
|
|
449
|
-
- Validate edge cases are handled
|
|
450
|
-
|
|
451
|
-
### 6. Documentation and Comments
|
|
452
|
-
|
|
453
|
-
- Verify code is self-documenting where possible
|
|
454
|
-
- Add comments for complex logic if missing
|
|
455
|
-
- Ensure any API changes are documented
|
|
456
|
-
|
|
457
|
-
## Output 1: Update Story File - QA Results Section ONLY
|
|
458
|
-
|
|
459
|
-
**CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
|
|
460
|
-
|
|
461
|
-
**QA Results Anchor Rule:**
|
|
462
|
-
|
|
463
|
-
- If `## QA Results` doesn't exist, append it at end of file
|
|
464
|
-
- If it exists, append a new dated entry below existing entries
|
|
465
|
-
- Never edit other sections
|
|
466
|
-
|
|
467
|
-
After review and any refactoring, append your results to the story file in the QA Results section:
|
|
468
|
-
|
|
469
|
-
```markdown
|
|
470
|
-
## QA Results
|
|
471
|
-
|
|
472
|
-
### Review Date: [Date]
|
|
473
|
-
|
|
474
|
-
### Reviewed By: Quinn (Test Architect)
|
|
475
|
-
|
|
476
|
-
### Code Quality Assessment
|
|
477
|
-
|
|
478
|
-
[Overall assessment of implementation quality]
|
|
479
|
-
|
|
480
|
-
### Refactoring Performed
|
|
481
|
-
|
|
482
|
-
[List any refactoring you performed with explanations]
|
|
483
|
-
|
|
484
|
-
- **File**: [filename]
|
|
485
|
-
- **Change**: [what was changed]
|
|
486
|
-
- **Why**: [reason for change]
|
|
487
|
-
- **How**: [how it improves the code]
|
|
488
|
-
|
|
489
|
-
### Compliance Check
|
|
490
|
-
|
|
491
|
-
- Coding Standards: [✓/✗] [notes if any]
|
|
492
|
-
- Project Structure: [✓/✗] [notes if any]
|
|
493
|
-
- Testing Strategy: [✓/✗] [notes if any]
|
|
494
|
-
- All ACs Met: [✓/✗] [notes if any]
|
|
495
|
-
|
|
496
|
-
### Improvements Checklist
|
|
497
|
-
|
|
498
|
-
[Check off items you handled yourself, leave unchecked for dev to address]
|
|
499
|
-
|
|
500
|
-
- [x] Refactored user service for better error handling (services/user.service.ts)
|
|
501
|
-
- [x] Added missing edge case tests (services/user.service.test.ts)
|
|
502
|
-
- [ ] Consider extracting validation logic to separate validator class
|
|
503
|
-
- [ ] Add integration test for error scenarios
|
|
504
|
-
- [ ] Update API documentation for new error codes
|
|
505
|
-
|
|
506
|
-
### Security Review
|
|
507
|
-
|
|
508
|
-
[Any security concerns found and whether addressed]
|
|
509
|
-
|
|
510
|
-
### Performance Considerations
|
|
511
|
-
|
|
512
|
-
[Any performance issues found and whether addressed]
|
|
513
|
-
|
|
514
|
-
### Files Modified During Review
|
|
515
|
-
|
|
516
|
-
[If you modified files, list them here - ask Dev to update File List]
|
|
517
|
-
|
|
518
|
-
### Gate Status
|
|
519
|
-
|
|
520
|
-
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
521
|
-
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
|
|
522
|
-
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
|
|
523
|
-
|
|
524
|
-
# Note: Paths should reference core-config.yaml for custom configurations
|
|
525
|
-
|
|
526
|
-
### Recommended Status
|
|
527
|
-
|
|
528
|
-
[✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
|
|
529
|
-
(Story owner decides final status)
|
|
530
|
-
```
|
|
531
|
-
|
|
532
|
-
## Output 2: Create Quality Gate File
|
|
533
|
-
|
|
534
|
-
**Template and Directory:**
|
|
535
|
-
|
|
536
|
-
- Render from `../templates/qa-gate-tmpl.yaml`
|
|
537
|
-
- Create directory defined in `qa.qaLocation/gates` (see `.aios-core/core-config.yaml`) if missing
|
|
538
|
-
- Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
|
|
539
|
-
|
|
540
|
-
Gate file structure:
|
|
541
|
-
|
|
542
|
-
```yaml
|
|
543
|
-
schema: 1
|
|
544
|
-
story: '{epic}.{story}'
|
|
545
|
-
story_title: '{story title}'
|
|
546
|
-
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
547
|
-
status_reason: '1-2 sentence explanation of gate decision'
|
|
548
|
-
reviewer: 'Quinn (Test Architect)'
|
|
549
|
-
updated: '{ISO-8601 timestamp}'
|
|
550
|
-
|
|
551
|
-
top_issues: [] # Empty if no issues
|
|
552
|
-
waiver: { active: false } # Set active: true only if WAIVED
|
|
553
|
-
|
|
554
|
-
# Extended fields (optional but recommended):
|
|
555
|
-
quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
|
|
556
|
-
expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
|
|
557
|
-
|
|
558
|
-
evidence:
|
|
559
|
-
tests_reviewed: { count }
|
|
560
|
-
risks_identified: { count }
|
|
561
|
-
trace:
|
|
562
|
-
ac_covered: [1, 2, 3] # AC numbers with test coverage
|
|
563
|
-
ac_gaps: [4] # AC numbers lacking coverage
|
|
564
|
-
|
|
565
|
-
nfr_validation:
|
|
566
|
-
security:
|
|
567
|
-
status: PASS|CONCERNS|FAIL
|
|
568
|
-
notes: 'Specific findings'
|
|
569
|
-
performance:
|
|
570
|
-
status: PASS|CONCERNS|FAIL
|
|
571
|
-
notes: 'Specific findings'
|
|
572
|
-
reliability:
|
|
573
|
-
status: PASS|CONCERNS|FAIL
|
|
574
|
-
notes: 'Specific findings'
|
|
575
|
-
maintainability:
|
|
576
|
-
status: PASS|CONCERNS|FAIL
|
|
577
|
-
notes: 'Specific findings'
|
|
578
|
-
|
|
579
|
-
recommendations:
|
|
580
|
-
immediate: # Must fix before production
|
|
581
|
-
- action: 'Add rate limiting'
|
|
582
|
-
refs: ['api/auth/login.ts']
|
|
583
|
-
future: # Can be addressed later
|
|
584
|
-
- action: 'Consider caching'
|
|
585
|
-
refs: ['services/data.ts']
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
### Gate Decision Criteria
|
|
589
|
-
|
|
590
|
-
**Deterministic rule (apply in order):**
|
|
591
|
-
|
|
592
|
-
If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
|
|
593
|
-
|
|
594
|
-
1. **Risk thresholds (if risk_summary present):**
|
|
595
|
-
- If any risk score ≥ 9 → Gate = FAIL (unless waived)
|
|
596
|
-
- Else if any score ≥ 6 → Gate = CONCERNS
|
|
597
|
-
|
|
598
|
-
2. **Test coverage gaps (if trace available):**
|
|
599
|
-
- If any P0 test from test-design is missing → Gate = CONCERNS
|
|
600
|
-
- If security/data-loss P0 test missing → Gate = FAIL
|
|
601
|
-
|
|
602
|
-
3. **Issue severity:**
|
|
603
|
-
- If any `top_issues.severity == high` → Gate = FAIL (unless waived)
|
|
604
|
-
- Else if any `severity == medium` → Gate = CONCERNS
|
|
605
|
-
|
|
606
|
-
4. **NFR statuses:**
|
|
607
|
-
- If any NFR status is FAIL → Gate = FAIL
|
|
608
|
-
- Else if any NFR status is CONCERNS → Gate = CONCERNS
|
|
609
|
-
- Else → Gate = PASS
|
|
610
|
-
|
|
611
|
-
- WAIVED only when waiver.active: true with reason/approver
|
|
612
|
-
|
|
613
|
-
Detailed criteria:
|
|
614
|
-
|
|
615
|
-
- **PASS**: All critical requirements met, no blocking issues
|
|
616
|
-
- **CONCERNS**: Non-critical issues found, team should review
|
|
617
|
-
- **FAIL**: Critical issues that should be addressed
|
|
618
|
-
- **WAIVED**: Issues acknowledged but explicitly waived by team
|
|
619
|
-
|
|
620
|
-
### Quality Score Calculation
|
|
621
|
-
|
|
622
|
-
```text
|
|
623
|
-
quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
|
|
624
|
-
Bounded between 0 and 100
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
If `technical-preferences.md` defines custom weights, use those instead.
|
|
628
|
-
|
|
629
|
-
### Suggested Owner Convention
|
|
630
|
-
|
|
631
|
-
For each issue in `top_issues`, include a `suggested_owner`:
|
|
632
|
-
|
|
633
|
-
- `dev`: Code changes needed
|
|
634
|
-
- `sm`: Requirements clarification needed
|
|
635
|
-
- `po`: Business decision needed
|
|
636
|
-
|
|
637
|
-
## Key Principles
|
|
638
|
-
|
|
639
|
-
- You are a Test Architect providing comprehensive quality assessment
|
|
640
|
-
- You have the authority to improve code directly when appropriate
|
|
641
|
-
- Always explain your changes for learning purposes
|
|
642
|
-
- Balance between perfection and pragmatism
|
|
643
|
-
- Focus on risk-based prioritization
|
|
644
|
-
- Provide actionable recommendations with clear ownership
|
|
645
|
-
|
|
646
|
-
## Blocking Conditions
|
|
647
|
-
|
|
648
|
-
Stop the review and request clarification if:
|
|
649
|
-
|
|
650
|
-
- Story file is incomplete or missing critical sections
|
|
651
|
-
- File List is empty or clearly incomplete
|
|
652
|
-
- No tests exist when they were required
|
|
653
|
-
- Code changes don't align with story requirements
|
|
654
|
-
- Critical architectural issues that require discussion
|
|
655
|
-
|
|
656
|
-
## Completion
|
|
657
|
-
|
|
658
|
-
After review:
|
|
659
|
-
|
|
660
|
-
1. Update the QA Results section in the story file
|
|
661
|
-
2. Create the gate file in directory from `qa.qaLocation/gates`
|
|
662
|
-
3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
|
|
663
|
-
4. If files were modified, list them in QA Results and ask Dev to update File List
|
|
664
|
-
5. Always provide constructive feedback and actionable recommendations
|
|
665
|
-
|
|
666
|
-
## ClickUp Synchronization
|
|
667
|
-
|
|
668
|
-
**Automatic Sync**: When you save the story file with QA Results updates, the story-manager.js module automatically syncs changes to ClickUp:
|
|
669
|
-
|
|
670
|
-
- **What Gets Synced**:
|
|
671
|
-
- Full story markdown updated in ClickUp task description
|
|
672
|
-
- Story status changes reflected in custom field
|
|
673
|
-
- Changelog comment posted with detected changes
|
|
674
|
-
|
|
675
|
-
- **Change Detection**:
|
|
676
|
-
- Status changes (e.g., Review → Done)
|
|
677
|
-
- Task completions (checkboxes marked)
|
|
678
|
-
- File list modifications
|
|
679
|
-
- Dev Notes or Acceptance Criteria updates
|
|
680
|
-
|
|
681
|
-
- **No Action Required**: The sync happens transparently when using story-manager utilities. If sync fails, story file is still saved locally with a warning message.
|
|
682
|
-
|
|
1
|
+
---
|
|
2
|
+
tools:
|
|
3
|
+
- github-cli # Code review and PR management
|
|
4
|
+
- browser # End-to-end testing and UI validation
|
|
5
|
+
- context7 # Research testing frameworks and best practices
|
|
6
|
+
- supabase # Database testing and data validation
|
|
7
|
+
checklists:
|
|
8
|
+
- qa-master-checklist.md
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# review-story
|
|
12
|
+
|
|
13
|
+
Perform a comprehensive test architecture review with quality gate decision. This adaptive, risk-aware review creates both a story update and a detailed gate file.
|
|
14
|
+
|
|
15
|
+
## Execution Modes
|
|
16
|
+
|
|
17
|
+
**Choose your execution mode:**
|
|
18
|
+
|
|
19
|
+
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
20
|
+
- Autonomous decision making with logging
|
|
21
|
+
- Minimal user interaction
|
|
22
|
+
- **Best for:** Simple, deterministic tasks
|
|
23
|
+
|
|
24
|
+
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
25
|
+
- Explicit decision checkpoints
|
|
26
|
+
- Educational explanations
|
|
27
|
+
- **Best for:** Learning, complex decisions
|
|
28
|
+
|
|
29
|
+
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
30
|
+
- Task analysis phase (identify all ambiguities)
|
|
31
|
+
- Zero ambiguity execution
|
|
32
|
+
- **Best for:** Ambiguous requirements, critical work
|
|
33
|
+
|
|
34
|
+
**Parameter:** `mode` (optional, default: `interactive`)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Task Definition (AIOS Task Format V1.0)
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
task: qaReviewStory()
|
|
42
|
+
responsável: Quinn (Guardian)
|
|
43
|
+
responsavel_type: Agente
|
|
44
|
+
atomic_layer: Strategy
|
|
45
|
+
|
|
46
|
+
**Entrada:**
|
|
47
|
+
- campo: target
|
|
48
|
+
tipo: string
|
|
49
|
+
origem: User Input
|
|
50
|
+
obrigatório: true
|
|
51
|
+
validação: Must exist
|
|
52
|
+
|
|
53
|
+
- campo: criteria
|
|
54
|
+
tipo: array
|
|
55
|
+
origem: config
|
|
56
|
+
obrigatório: true
|
|
57
|
+
validação: Non-empty validation criteria
|
|
58
|
+
|
|
59
|
+
- campo: strict
|
|
60
|
+
tipo: boolean
|
|
61
|
+
origem: User Input
|
|
62
|
+
obrigatório: false
|
|
63
|
+
validação: Default: true
|
|
64
|
+
|
|
65
|
+
**Saída:**
|
|
66
|
+
- campo: validation_result
|
|
67
|
+
tipo: boolean
|
|
68
|
+
destino: Return value
|
|
69
|
+
persistido: false
|
|
70
|
+
|
|
71
|
+
- campo: errors
|
|
72
|
+
tipo: array
|
|
73
|
+
destino: Memory
|
|
74
|
+
persistido: false
|
|
75
|
+
|
|
76
|
+
- campo: report
|
|
77
|
+
tipo: object
|
|
78
|
+
destino: File (.ai/*.json)
|
|
79
|
+
persistido: true
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Pre-Conditions
|
|
85
|
+
|
|
86
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
87
|
+
|
|
88
|
+
**Checklist:**
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
pre-conditions:
|
|
92
|
+
- [ ] Validation rules loaded; target available for validation
|
|
93
|
+
tipo: pre-condition
|
|
94
|
+
blocker: true
|
|
95
|
+
validação: |
|
|
96
|
+
Check validation rules loaded; target available for validation
|
|
97
|
+
error_message: "Pre-condition failed: Validation rules loaded; target available for validation"
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Post-Conditions
|
|
103
|
+
|
|
104
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
105
|
+
|
|
106
|
+
**Checklist:**
|
|
107
|
+
|
|
108
|
+
```yaml
|
|
109
|
+
post-conditions:
|
|
110
|
+
- [ ] Validation executed; results accurate; report generated
|
|
111
|
+
tipo: post-condition
|
|
112
|
+
blocker: true
|
|
113
|
+
validação: |
|
|
114
|
+
Verify validation executed; results accurate; report generated
|
|
115
|
+
error_message: "Post-condition failed: Validation executed; results accurate; report generated"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Acceptance Criteria
|
|
121
|
+
|
|
122
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
123
|
+
|
|
124
|
+
**Checklist:**
|
|
125
|
+
|
|
126
|
+
```yaml
|
|
127
|
+
acceptance-criteria:
|
|
128
|
+
- [ ] Validation rules applied; pass/fail accurate; actionable feedback
|
|
129
|
+
tipo: acceptance-criterion
|
|
130
|
+
blocker: true
|
|
131
|
+
validação: |
|
|
132
|
+
Assert validation rules applied; pass/fail accurate; actionable feedback
|
|
133
|
+
error_message: "Acceptance criterion not met: Validation rules applied; pass/fail accurate; actionable feedback"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Tools
|
|
139
|
+
|
|
140
|
+
**External/shared resources used by this task:**
|
|
141
|
+
|
|
142
|
+
- **Tool:** validation-engine
|
|
143
|
+
- **Purpose:** Rule-based validation and reporting
|
|
144
|
+
- **Source:** .aios-core/utils/validation-engine.js
|
|
145
|
+
|
|
146
|
+
- **Tool:** schema-validator
|
|
147
|
+
- **Purpose:** JSON/YAML schema validation
|
|
148
|
+
- **Source:** ajv or similar
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Scripts
|
|
153
|
+
|
|
154
|
+
**Agent-specific code for this task:**
|
|
155
|
+
|
|
156
|
+
- **Script:** run-validation.js
|
|
157
|
+
- **Purpose:** Execute validation rules and generate report
|
|
158
|
+
- **Language:** JavaScript
|
|
159
|
+
- **Location:** .aios-core/scripts/run-validation.js
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Error Handling
|
|
164
|
+
|
|
165
|
+
**Strategy:** retry
|
|
166
|
+
|
|
167
|
+
**Common Errors:**
|
|
168
|
+
|
|
169
|
+
1. **Error:** Validation Criteria Missing
|
|
170
|
+
- **Cause:** Required validation rules not defined
|
|
171
|
+
- **Resolution:** Ensure validation criteria loaded from config
|
|
172
|
+
- **Recovery:** Use default validation rules, log warning
|
|
173
|
+
|
|
174
|
+
2. **Error:** Invalid Schema
|
|
175
|
+
- **Cause:** Target does not match expected schema
|
|
176
|
+
- **Resolution:** Update schema or fix target structure
|
|
177
|
+
- **Recovery:** Detailed validation error report
|
|
178
|
+
|
|
179
|
+
3. **Error:** Dependency Missing
|
|
180
|
+
- **Cause:** Required dependency for validation not found
|
|
181
|
+
- **Resolution:** Install missing dependencies
|
|
182
|
+
- **Recovery:** Abort with clear dependency list
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Performance
|
|
187
|
+
|
|
188
|
+
**Expected Metrics:**
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
duration_expected: 5-20 min (estimated)
|
|
192
|
+
cost_estimated: $0.003-0.015
|
|
193
|
+
token_usage: ~2,000-8,000 tokens
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Optimization Notes:**
|
|
197
|
+
- Iterative analysis with depth limits; cache intermediate results; batch similar operations
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Metadata
|
|
202
|
+
|
|
203
|
+
```yaml
|
|
204
|
+
story: N/A
|
|
205
|
+
version: 1.0.0
|
|
206
|
+
dependencies:
|
|
207
|
+
- N/A
|
|
208
|
+
tags:
|
|
209
|
+
- quality-assurance
|
|
210
|
+
- testing
|
|
211
|
+
updated_at: 2025-11-17
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
## Inputs
|
|
218
|
+
|
|
219
|
+
```yaml
|
|
220
|
+
required:
|
|
221
|
+
- story_id: '{epic}.{story}' # e.g., "1.3"
|
|
222
|
+
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
|
|
223
|
+
- story_title: '{title}' # If missing, derive from story file H1
|
|
224
|
+
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Prerequisites
|
|
228
|
+
|
|
229
|
+
- Story status must be "Review"
|
|
230
|
+
- Developer has completed all tasks and updated the File List
|
|
231
|
+
- All automated tests are passing
|
|
232
|
+
|
|
233
|
+
## Review Process - Adaptive Test Architecture
|
|
234
|
+
|
|
235
|
+
### 0. CodeRabbit Full Self-Healing Loop (Story 6.3.3)
|
|
236
|
+
|
|
237
|
+
**Purpose**: Automated code quality scanning with self-healing before human review
|
|
238
|
+
|
|
239
|
+
**Configuration**: Full self-healing (max 3 iterations, CRITICAL + HIGH issues)
|
|
240
|
+
|
|
241
|
+
Execute CodeRabbit self-healing **FIRST** before manual review:
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
┌───────────────────────────────────────────────────────────────────┐
|
|
245
|
+
│ CODERABBIT SELF-HEALING │
|
|
246
|
+
│ (Full Mode - @qa) │
|
|
247
|
+
├───────────────────────────────────────────────────────────────────┤
|
|
248
|
+
│ │
|
|
249
|
+
│ iteration = 0 │
|
|
250
|
+
│ max_iterations = 3 │
|
|
251
|
+
│ │
|
|
252
|
+
│ WHILE iteration < max_iterations: │
|
|
253
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
254
|
+
│ │ 1. Run CodeRabbit CLI │ │
|
|
255
|
+
│ │ wsl bash -c 'cd /mnt/c/.../@synkra/aios-core && │ │
|
|
256
|
+
│ │ ~/.local/bin/coderabbit --prompt-only │ │
|
|
257
|
+
│ │ -t committed --base main' │ │
|
|
258
|
+
│ │ │ │
|
|
259
|
+
│ │ 2. Parse output for all severity levels │ │
|
|
260
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
261
|
+
│ │ │
|
|
262
|
+
│ ▼ │
|
|
263
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
264
|
+
│ │ critical = filter(severity == "CRITICAL") │ │
|
|
265
|
+
│ │ high = filter(severity == "HIGH") │ │
|
|
266
|
+
│ │ medium = filter(severity == "MEDIUM") │ │
|
|
267
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
268
|
+
│ │ │
|
|
269
|
+
│ ▼ │
|
|
270
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
271
|
+
│ │ IF critical.length == 0 AND high.length == 0: │ │
|
|
272
|
+
│ │ - IF medium.length > 0: │ │
|
|
273
|
+
│ │ - Create tech debt issues for each MEDIUM │ │
|
|
274
|
+
│ │ - Log: "✅ CodeRabbit passed" │ │
|
|
275
|
+
│ │ - BREAK → Proceed to manual review │ │
|
|
276
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
277
|
+
│ │ │
|
|
278
|
+
│ ▼ │
|
|
279
|
+
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
280
|
+
│ │ IF CRITICAL or HIGH issues found: │ │
|
|
281
|
+
│ │ - Attempt auto-fix for each CRITICAL issue │ │
|
|
282
|
+
│ │ - Attempt auto-fix for each HIGH issue │ │
|
|
283
|
+
│ │ - iteration++ │ │
|
|
284
|
+
│ │ - CONTINUE loop │ │
|
|
285
|
+
│ └─────────────────────────────────────────────────────────┘ │
|
|
286
|
+
│ │ │
|
|
287
|
+
│ ▼ │
|
|
288
|
+
│ IF iteration == 3 AND (CRITICAL or HIGH issues remain): │
|
|
289
|
+
│ - Log: "❌ Issues remain after 3 iterations" │
|
|
290
|
+
│ - Generate detailed QA gate report │
|
|
291
|
+
│ - Set gate: FAIL │
|
|
292
|
+
│ - HALT and require human intervention │
|
|
293
|
+
│ │
|
|
294
|
+
└───────────────────────────────────────────────────────────────────┘
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### Severity Handling
|
|
298
|
+
|
|
299
|
+
| Severity | Behavior | Notes |
|
|
300
|
+
|----------|----------|-------|
|
|
301
|
+
| **CRITICAL** | Auto-fix (max 3 attempts) | Security vulnerabilities, breaking bugs |
|
|
302
|
+
| **HIGH** | Auto-fix (max 3 attempts) | Significant quality problems |
|
|
303
|
+
| **MEDIUM** | Create tech debt issue | Document for future sprint |
|
|
304
|
+
| **LOW** | Note in review | Nits, no action required |
|
|
305
|
+
|
|
306
|
+
#### Implementation Code
|
|
307
|
+
|
|
308
|
+
```javascript
|
|
309
|
+
async function runQACodeRabbitSelfHealing(storyPath) {
|
|
310
|
+
const maxIterations = 3;
|
|
311
|
+
let iteration = 0;
|
|
312
|
+
|
|
313
|
+
console.log('🐰 Starting CodeRabbit Full Self-Healing Loop...');
|
|
314
|
+
console.log(` Mode: Full (CRITICAL + HIGH)`);
|
|
315
|
+
console.log(` Max Iterations: ${maxIterations}\n`);
|
|
316
|
+
|
|
317
|
+
while (iteration < maxIterations) {
|
|
318
|
+
console.log(`📋 Iteration ${iteration + 1}/${maxIterations}`);
|
|
319
|
+
|
|
320
|
+
// Run CodeRabbit CLI against main branch
|
|
321
|
+
const output = await runCodeRabbitCLI('committed --base main');
|
|
322
|
+
const issues = parseCodeRabbitOutput(output);
|
|
323
|
+
|
|
324
|
+
const criticalIssues = issues.filter(i => i.severity === 'CRITICAL');
|
|
325
|
+
const highIssues = issues.filter(i => i.severity === 'HIGH');
|
|
326
|
+
const mediumIssues = issues.filter(i => i.severity === 'MEDIUM');
|
|
327
|
+
|
|
328
|
+
console.log(` Found: ${criticalIssues.length} CRITICAL, ${highIssues.length} HIGH, ${mediumIssues.length} MEDIUM`);
|
|
329
|
+
|
|
330
|
+
// No CRITICAL or HIGH issues = success
|
|
331
|
+
if (criticalIssues.length === 0 && highIssues.length === 0) {
|
|
332
|
+
if (mediumIssues.length > 0) {
|
|
333
|
+
console.log(`\n📝 Creating tech debt issues for ${mediumIssues.length} MEDIUM issues...`);
|
|
334
|
+
await createTechDebtIssues(storyPath, mediumIssues);
|
|
335
|
+
}
|
|
336
|
+
console.log('\n✅ CodeRabbit Self-Healing: PASSED');
|
|
337
|
+
return { success: true, iterations: iteration + 1, proceedToManual: true };
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// Attempt auto-fix for CRITICAL and HIGH issues
|
|
341
|
+
const allIssues = [...criticalIssues, ...highIssues];
|
|
342
|
+
console.log(`\n🔧 Attempting auto-fix for ${allIssues.length} issues...`);
|
|
343
|
+
for (const issue of allIssues) {
|
|
344
|
+
await attemptAutoFix(issue);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
iteration++;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// Max iterations reached with issues
|
|
351
|
+
console.log('\n❌ CodeRabbit Self-Healing: FAILED');
|
|
352
|
+
console.log(` CRITICAL/HIGH issues remain after ${maxIterations} iterations.`);
|
|
353
|
+
console.log(' Setting gate: FAIL - Manual intervention required.');
|
|
354
|
+
|
|
355
|
+
return { success: false, iterations: maxIterations, gateStatus: 'FAIL' };
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### Timeout
|
|
360
|
+
|
|
361
|
+
- **Default**: 30 minutes per CodeRabbit run
|
|
362
|
+
- **Total max**: ~90 minutes (3 iterations)
|
|
363
|
+
|
|
364
|
+
#### Integration with Gate Decision
|
|
365
|
+
|
|
366
|
+
If self-healing fails:
|
|
367
|
+
- Gate automatically set to FAIL
|
|
368
|
+
- `top_issues` populated from remaining CodeRabbit issues
|
|
369
|
+
- `status_reason` includes "CodeRabbit self-healing exhausted"
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### 1. Risk Assessment (Determines Review Depth)
|
|
374
|
+
|
|
375
|
+
**Auto-escalate to deep review when:**
|
|
376
|
+
|
|
377
|
+
- Auth/payment/security files touched
|
|
378
|
+
- No tests added to story
|
|
379
|
+
- Diff > 500 lines
|
|
380
|
+
- Previous gate was FAIL/CONCERNS
|
|
381
|
+
- Story has > 5 acceptance criteria
|
|
382
|
+
|
|
383
|
+
### 2. Comprehensive Analysis
|
|
384
|
+
|
|
385
|
+
**A. Requirements Traceability**
|
|
386
|
+
|
|
387
|
+
- Map each acceptance criteria to its validating tests (document mapping with Given-When-Then, not test code)
|
|
388
|
+
- Identify coverage gaps
|
|
389
|
+
- Verify all requirements have corresponding test cases
|
|
390
|
+
|
|
391
|
+
**B. Code Quality Review**
|
|
392
|
+
|
|
393
|
+
- Architecture and design patterns
|
|
394
|
+
- Refactoring opportunities (and perform them)
|
|
395
|
+
- Code duplication or inefficiencies
|
|
396
|
+
- Performance optimizations
|
|
397
|
+
- Security vulnerabilities
|
|
398
|
+
- Best practices adherence
|
|
399
|
+
|
|
400
|
+
**C. Test Architecture Assessment**
|
|
401
|
+
|
|
402
|
+
- Test coverage adequacy at appropriate levels
|
|
403
|
+
- Test level appropriateness (what should be unit vs integration vs e2e)
|
|
404
|
+
- Test design quality and maintainability
|
|
405
|
+
- Test data management strategy
|
|
406
|
+
- Mock/stub usage appropriateness
|
|
407
|
+
- Edge case and error scenario coverage
|
|
408
|
+
- Test execution time and reliability
|
|
409
|
+
|
|
410
|
+
**D. Non-Functional Requirements (NFRs)**
|
|
411
|
+
|
|
412
|
+
- Security: Authentication, authorization, data protection
|
|
413
|
+
- Performance: Response times, resource usage
|
|
414
|
+
- Reliability: Error handling, recovery mechanisms
|
|
415
|
+
- Maintainability: Code clarity, documentation
|
|
416
|
+
|
|
417
|
+
**E. Testability Evaluation**
|
|
418
|
+
|
|
419
|
+
- Controllability: Can we control the inputs?
|
|
420
|
+
- Observability: Can we observe the outputs?
|
|
421
|
+
- Debuggability: Can we debug failures easily?
|
|
422
|
+
|
|
423
|
+
**F. Technical Debt Identification**
|
|
424
|
+
|
|
425
|
+
- Accumulated shortcuts
|
|
426
|
+
- Missing tests
|
|
427
|
+
- Outdated dependencies
|
|
428
|
+
- Architecture violations
|
|
429
|
+
|
|
430
|
+
### 3. Active Refactoring
|
|
431
|
+
|
|
432
|
+
- Refactor code where safe and appropriate
|
|
433
|
+
- Run tests to ensure changes don't break functionality
|
|
434
|
+
- Document all changes in QA Results section with clear WHY and HOW
|
|
435
|
+
- Do NOT alter story content beyond QA Results section
|
|
436
|
+
- Do NOT change story Status or File List; recommend next status only
|
|
437
|
+
|
|
438
|
+
### 4. Standards Compliance Check
|
|
439
|
+
|
|
440
|
+
- Verify adherence to `docs/coding-standards.md`
|
|
441
|
+
- Check compliance with `docs/unified-project-structure.md`
|
|
442
|
+
- Validate testing approach against `docs/testing-strategy.md`
|
|
443
|
+
- Ensure all guidelines mentioned in the story are followed
|
|
444
|
+
|
|
445
|
+
### 5. Acceptance Criteria Validation
|
|
446
|
+
|
|
447
|
+
- Verify each AC is fully implemented
|
|
448
|
+
- Check for any missing functionality
|
|
449
|
+
- Validate edge cases are handled
|
|
450
|
+
|
|
451
|
+
### 6. Documentation and Comments
|
|
452
|
+
|
|
453
|
+
- Verify code is self-documenting where possible
|
|
454
|
+
- Add comments for complex logic if missing
|
|
455
|
+
- Ensure any API changes are documented
|
|
456
|
+
|
|
457
|
+
## Output 1: Update Story File - QA Results Section ONLY
|
|
458
|
+
|
|
459
|
+
**CRITICAL**: You are ONLY authorized to update the "QA Results" section of the story file. DO NOT modify any other sections.
|
|
460
|
+
|
|
461
|
+
**QA Results Anchor Rule:**
|
|
462
|
+
|
|
463
|
+
- If `## QA Results` doesn't exist, append it at end of file
|
|
464
|
+
- If it exists, append a new dated entry below existing entries
|
|
465
|
+
- Never edit other sections
|
|
466
|
+
|
|
467
|
+
After review and any refactoring, append your results to the story file in the QA Results section:
|
|
468
|
+
|
|
469
|
+
```markdown
|
|
470
|
+
## QA Results
|
|
471
|
+
|
|
472
|
+
### Review Date: [Date]
|
|
473
|
+
|
|
474
|
+
### Reviewed By: Quinn (Test Architect)
|
|
475
|
+
|
|
476
|
+
### Code Quality Assessment
|
|
477
|
+
|
|
478
|
+
[Overall assessment of implementation quality]
|
|
479
|
+
|
|
480
|
+
### Refactoring Performed
|
|
481
|
+
|
|
482
|
+
[List any refactoring you performed with explanations]
|
|
483
|
+
|
|
484
|
+
- **File**: [filename]
|
|
485
|
+
- **Change**: [what was changed]
|
|
486
|
+
- **Why**: [reason for change]
|
|
487
|
+
- **How**: [how it improves the code]
|
|
488
|
+
|
|
489
|
+
### Compliance Check
|
|
490
|
+
|
|
491
|
+
- Coding Standards: [✓/✗] [notes if any]
|
|
492
|
+
- Project Structure: [✓/✗] [notes if any]
|
|
493
|
+
- Testing Strategy: [✓/✗] [notes if any]
|
|
494
|
+
- All ACs Met: [✓/✗] [notes if any]
|
|
495
|
+
|
|
496
|
+
### Improvements Checklist
|
|
497
|
+
|
|
498
|
+
[Check off items you handled yourself, leave unchecked for dev to address]
|
|
499
|
+
|
|
500
|
+
- [x] Refactored user service for better error handling (services/user.service.ts)
|
|
501
|
+
- [x] Added missing edge case tests (services/user.service.test.ts)
|
|
502
|
+
- [ ] Consider extracting validation logic to separate validator class
|
|
503
|
+
- [ ] Add integration test for error scenarios
|
|
504
|
+
- [ ] Update API documentation for new error codes
|
|
505
|
+
|
|
506
|
+
### Security Review
|
|
507
|
+
|
|
508
|
+
[Any security concerns found and whether addressed]
|
|
509
|
+
|
|
510
|
+
### Performance Considerations
|
|
511
|
+
|
|
512
|
+
[Any performance issues found and whether addressed]
|
|
513
|
+
|
|
514
|
+
### Files Modified During Review
|
|
515
|
+
|
|
516
|
+
[If you modified files, list them here - ask Dev to update File List]
|
|
517
|
+
|
|
518
|
+
### Gate Status
|
|
519
|
+
|
|
520
|
+
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
|
|
521
|
+
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
|
|
522
|
+
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
|
|
523
|
+
|
|
524
|
+
# Note: Paths should reference core-config.yaml for custom configurations
|
|
525
|
+
|
|
526
|
+
### Recommended Status
|
|
527
|
+
|
|
528
|
+
[✓ Ready for Done] / [✗ Changes Required - See unchecked items above]
|
|
529
|
+
(Story owner decides final status)
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
## Output 2: Create Quality Gate File
|
|
533
|
+
|
|
534
|
+
**Template and Directory:**
|
|
535
|
+
|
|
536
|
+
- Render from `../templates/qa-gate-tmpl.yaml`
|
|
537
|
+
- Create directory defined in `qa.qaLocation/gates` (see `.aios-core/core-config.yaml`) if missing
|
|
538
|
+
- Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
|
|
539
|
+
|
|
540
|
+
Gate file structure:
|
|
541
|
+
|
|
542
|
+
```yaml
|
|
543
|
+
schema: 1
|
|
544
|
+
story: '{epic}.{story}'
|
|
545
|
+
story_title: '{story title}'
|
|
546
|
+
gate: PASS|CONCERNS|FAIL|WAIVED
|
|
547
|
+
status_reason: '1-2 sentence explanation of gate decision'
|
|
548
|
+
reviewer: 'Quinn (Test Architect)'
|
|
549
|
+
updated: '{ISO-8601 timestamp}'
|
|
550
|
+
|
|
551
|
+
top_issues: [] # Empty if no issues
|
|
552
|
+
waiver: { active: false } # Set active: true only if WAIVED
|
|
553
|
+
|
|
554
|
+
# Extended fields (optional but recommended):
|
|
555
|
+
quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
|
|
556
|
+
expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
|
|
557
|
+
|
|
558
|
+
evidence:
|
|
559
|
+
tests_reviewed: { count }
|
|
560
|
+
risks_identified: { count }
|
|
561
|
+
trace:
|
|
562
|
+
ac_covered: [1, 2, 3] # AC numbers with test coverage
|
|
563
|
+
ac_gaps: [4] # AC numbers lacking coverage
|
|
564
|
+
|
|
565
|
+
nfr_validation:
|
|
566
|
+
security:
|
|
567
|
+
status: PASS|CONCERNS|FAIL
|
|
568
|
+
notes: 'Specific findings'
|
|
569
|
+
performance:
|
|
570
|
+
status: PASS|CONCERNS|FAIL
|
|
571
|
+
notes: 'Specific findings'
|
|
572
|
+
reliability:
|
|
573
|
+
status: PASS|CONCERNS|FAIL
|
|
574
|
+
notes: 'Specific findings'
|
|
575
|
+
maintainability:
|
|
576
|
+
status: PASS|CONCERNS|FAIL
|
|
577
|
+
notes: 'Specific findings'
|
|
578
|
+
|
|
579
|
+
recommendations:
|
|
580
|
+
immediate: # Must fix before production
|
|
581
|
+
- action: 'Add rate limiting'
|
|
582
|
+
refs: ['api/auth/login.ts']
|
|
583
|
+
future: # Can be addressed later
|
|
584
|
+
- action: 'Consider caching'
|
|
585
|
+
refs: ['services/data.ts']
|
|
586
|
+
```
|
|
587
|
+
|
|
588
|
+
### Gate Decision Criteria
|
|
589
|
+
|
|
590
|
+
**Deterministic rule (apply in order):**
|
|
591
|
+
|
|
592
|
+
If risk_summary exists, apply its thresholds first (≥9 → FAIL, ≥6 → CONCERNS), then NFR statuses, then top_issues severity.
|
|
593
|
+
|
|
594
|
+
1. **Risk thresholds (if risk_summary present):**
|
|
595
|
+
- If any risk score ≥ 9 → Gate = FAIL (unless waived)
|
|
596
|
+
- Else if any score ≥ 6 → Gate = CONCERNS
|
|
597
|
+
|
|
598
|
+
2. **Test coverage gaps (if trace available):**
|
|
599
|
+
- If any P0 test from test-design is missing → Gate = CONCERNS
|
|
600
|
+
- If security/data-loss P0 test missing → Gate = FAIL
|
|
601
|
+
|
|
602
|
+
3. **Issue severity:**
|
|
603
|
+
- If any `top_issues.severity == high` → Gate = FAIL (unless waived)
|
|
604
|
+
- Else if any `severity == medium` → Gate = CONCERNS
|
|
605
|
+
|
|
606
|
+
4. **NFR statuses:**
|
|
607
|
+
- If any NFR status is FAIL → Gate = FAIL
|
|
608
|
+
- Else if any NFR status is CONCERNS → Gate = CONCERNS
|
|
609
|
+
- Else → Gate = PASS
|
|
610
|
+
|
|
611
|
+
- WAIVED only when waiver.active: true with reason/approver
|
|
612
|
+
|
|
613
|
+
Detailed criteria:
|
|
614
|
+
|
|
615
|
+
- **PASS**: All critical requirements met, no blocking issues
|
|
616
|
+
- **CONCERNS**: Non-critical issues found, team should review
|
|
617
|
+
- **FAIL**: Critical issues that should be addressed
|
|
618
|
+
- **WAIVED**: Issues acknowledged but explicitly waived by team
|
|
619
|
+
|
|
620
|
+
### Quality Score Calculation
|
|
621
|
+
|
|
622
|
+
```text
|
|
623
|
+
quality_score = 100 - (20 × number of FAILs) - (10 × number of CONCERNS)
|
|
624
|
+
Bounded between 0 and 100
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
If `technical-preferences.md` defines custom weights, use those instead.
|
|
628
|
+
|
|
629
|
+
### Suggested Owner Convention
|
|
630
|
+
|
|
631
|
+
For each issue in `top_issues`, include a `suggested_owner`:
|
|
632
|
+
|
|
633
|
+
- `dev`: Code changes needed
|
|
634
|
+
- `sm`: Requirements clarification needed
|
|
635
|
+
- `po`: Business decision needed
|
|
636
|
+
|
|
637
|
+
## Key Principles
|
|
638
|
+
|
|
639
|
+
- You are a Test Architect providing comprehensive quality assessment
|
|
640
|
+
- You have the authority to improve code directly when appropriate
|
|
641
|
+
- Always explain your changes for learning purposes
|
|
642
|
+
- Balance between perfection and pragmatism
|
|
643
|
+
- Focus on risk-based prioritization
|
|
644
|
+
- Provide actionable recommendations with clear ownership
|
|
645
|
+
|
|
646
|
+
## Blocking Conditions
|
|
647
|
+
|
|
648
|
+
Stop the review and request clarification if:
|
|
649
|
+
|
|
650
|
+
- Story file is incomplete or missing critical sections
|
|
651
|
+
- File List is empty or clearly incomplete
|
|
652
|
+
- No tests exist when they were required
|
|
653
|
+
- Code changes don't align with story requirements
|
|
654
|
+
- Critical architectural issues that require discussion
|
|
655
|
+
|
|
656
|
+
## Completion
|
|
657
|
+
|
|
658
|
+
After review:
|
|
659
|
+
|
|
660
|
+
1. Update the QA Results section in the story file
|
|
661
|
+
2. Create the gate file in directory from `qa.qaLocation/gates`
|
|
662
|
+
3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
|
|
663
|
+
4. If files were modified, list them in QA Results and ask Dev to update File List
|
|
664
|
+
5. Always provide constructive feedback and actionable recommendations
|
|
665
|
+
|
|
666
|
+
## ClickUp Synchronization
|
|
667
|
+
|
|
668
|
+
**Automatic Sync**: When you save the story file with QA Results updates, the story-manager.js module automatically syncs changes to ClickUp:
|
|
669
|
+
|
|
670
|
+
- **What Gets Synced**:
|
|
671
|
+
- Full story markdown updated in ClickUp task description
|
|
672
|
+
- Story status changes reflected in custom field
|
|
673
|
+
- Changelog comment posted with detected changes
|
|
674
|
+
|
|
675
|
+
- **Change Detection**:
|
|
676
|
+
- Status changes (e.g., Review → Done)
|
|
677
|
+
- Task completions (checkboxes marked)
|
|
678
|
+
- File list modifications
|
|
679
|
+
- Dev Notes or Acceptance Criteria updates
|
|
680
|
+
|
|
681
|
+
- **No Action Required**: The sync happens transparently when using story-manager utilities. If sync fails, story file is still saved locally with a warning message.
|
|
682
|
+
|
|
683
683
|
- **Manual Sync**: If needed, use: `npm run sync-story -- --story {epic}.{story}`
|