aios-core 2.1.6 → 2.2.1
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-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 +1 -1
- 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/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/github-workflows/README.md +109 -109
- 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 +704 -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 -11
- 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/tests/integration/wizard-detection.test.js +8 -6
- package/packages/installer/tests/unit/env-template.test.js +8 -8
- 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/tools/diagnose-installation.js +266 -0
- package/tools/diagnose-npx-issue.ps1 +96 -0
- package/tools/quick-diagnose.cmd +85 -0
- package/tools/quick-diagnose.ps1 +117 -0
- 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/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,846 +1,846 @@
|
|
|
1
|
-
# Develop Story Task
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
Execute story development with selectable automation modes to accommodate different developer preferences, skill levels, and story complexity.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Execution Modes
|
|
10
|
-
|
|
11
|
-
**Choose your execution mode:**
|
|
12
|
-
|
|
13
|
-
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
14
|
-
- Autonomous decision making with logging
|
|
15
|
-
- Minimal user interaction
|
|
16
|
-
- **Best for:** Simple, deterministic tasks
|
|
17
|
-
|
|
18
|
-
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
19
|
-
- Explicit decision checkpoints
|
|
20
|
-
- Educational explanations
|
|
21
|
-
- **Best for:** Learning, complex decisions
|
|
22
|
-
|
|
23
|
-
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
24
|
-
- Task analysis phase (identify all ambiguities)
|
|
25
|
-
- Zero ambiguity execution
|
|
26
|
-
- **Best for:** Ambiguous requirements, critical work
|
|
27
|
-
|
|
28
|
-
**Parameter:** `mode` (optional, default: `interactive`)
|
|
29
|
-
|
|
30
|
-
**Usage**:
|
|
31
|
-
```
|
|
32
|
-
*develop {story-id} # Uses interactive mode (default)
|
|
33
|
-
*develop {story-id} yolo # Uses YOLO mode
|
|
34
|
-
*develop {story-id} preflight # Uses pre-flight planning mode
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Edge Case Handling**:
|
|
38
|
-
- Invalid mode → Default to interactive with warning
|
|
39
|
-
- User cancellation → Exit gracefully with message
|
|
40
|
-
- Missing story file → Clear error message, halt execution
|
|
41
|
-
- Backward compatibility → Stories without mode parameter use interactive
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## Task Definition (AIOS Task Format V1.0)
|
|
46
|
-
|
|
47
|
-
```yaml
|
|
48
|
-
task: devDevelopStory()
|
|
49
|
-
responsável: Dex (Builder)
|
|
50
|
-
responsavel_type: Agente
|
|
51
|
-
atomic_layer: Organism
|
|
52
|
-
|
|
53
|
-
**Entrada:**
|
|
54
|
-
- campo: task
|
|
55
|
-
tipo: string
|
|
56
|
-
origem: User Input
|
|
57
|
-
obrigatório: true
|
|
58
|
-
validação: Must be registered task
|
|
59
|
-
|
|
60
|
-
- campo: parameters
|
|
61
|
-
tipo: object
|
|
62
|
-
origem: User Input
|
|
63
|
-
obrigatório: false
|
|
64
|
-
validação: Valid task parameters
|
|
65
|
-
|
|
66
|
-
- campo: mode
|
|
67
|
-
tipo: string
|
|
68
|
-
origem: User Input
|
|
69
|
-
obrigatório: false
|
|
70
|
-
validação: yolo|interactive|pre-flight
|
|
71
|
-
|
|
72
|
-
**Saída:**
|
|
73
|
-
- campo: execution_result
|
|
74
|
-
tipo: object
|
|
75
|
-
destino: Memory
|
|
76
|
-
persistido: false
|
|
77
|
-
|
|
78
|
-
- campo: logs
|
|
79
|
-
tipo: array
|
|
80
|
-
destino: File (.ai/logs/*)
|
|
81
|
-
persistido: true
|
|
82
|
-
|
|
83
|
-
- campo: state
|
|
84
|
-
tipo: object
|
|
85
|
-
destino: State management
|
|
86
|
-
persistido: true
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Pre-Conditions
|
|
92
|
-
|
|
93
|
-
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
94
|
-
|
|
95
|
-
**Checklist:**
|
|
96
|
-
|
|
97
|
-
```yaml
|
|
98
|
-
pre-conditions:
|
|
99
|
-
- [ ] Task is registered; required parameters provided; dependencies met
|
|
100
|
-
tipo: pre-condition
|
|
101
|
-
blocker: true
|
|
102
|
-
validação: |
|
|
103
|
-
Check task is registered; required parameters provided; dependencies met
|
|
104
|
-
error_message: "Pre-condition failed: Task is registered; required parameters provided; dependencies met"
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Post-Conditions
|
|
110
|
-
|
|
111
|
-
**Purpose:** Validate execution success AFTER task completes
|
|
112
|
-
|
|
113
|
-
**Checklist:**
|
|
114
|
-
|
|
115
|
-
```yaml
|
|
116
|
-
post-conditions:
|
|
117
|
-
- [ ] Task completed; exit code 0; expected outputs created
|
|
118
|
-
tipo: post-condition
|
|
119
|
-
blocker: true
|
|
120
|
-
validação: |
|
|
121
|
-
Verify task completed; exit code 0; expected outputs created
|
|
122
|
-
error_message: "Post-condition failed: Task completed; exit code 0; expected outputs created"
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Acceptance Criteria
|
|
128
|
-
|
|
129
|
-
**Purpose:** Definitive pass/fail criteria for task completion
|
|
130
|
-
|
|
131
|
-
**Checklist:**
|
|
132
|
-
|
|
133
|
-
```yaml
|
|
134
|
-
acceptance-criteria:
|
|
135
|
-
- [ ] Task completed as expected; side effects documented
|
|
136
|
-
tipo: acceptance-criterion
|
|
137
|
-
blocker: true
|
|
138
|
-
validação: |
|
|
139
|
-
Assert task completed as expected; side effects documented
|
|
140
|
-
error_message: "Acceptance criterion not met: Task completed as expected; side effects documented"
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Scripts
|
|
146
|
-
|
|
147
|
-
**Agent-specific code for this task:**
|
|
148
|
-
|
|
149
|
-
- **Script:** execute-task.js
|
|
150
|
-
- **Purpose:** Generic task execution wrapper
|
|
151
|
-
- **Language:** JavaScript
|
|
152
|
-
- **Location:** .aios-core/scripts/execute-task.js
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## Error Handling
|
|
157
|
-
|
|
158
|
-
**Strategy:** abort
|
|
159
|
-
|
|
160
|
-
**Common Errors:**
|
|
161
|
-
|
|
162
|
-
1. **Error:** Task Not Found
|
|
163
|
-
- **Cause:** Specified task not registered in system
|
|
164
|
-
- **Resolution:** Verify task name and registration
|
|
165
|
-
- **Recovery:** List available tasks, suggest similar
|
|
166
|
-
|
|
167
|
-
2. **Error:** Invalid Parameters
|
|
168
|
-
- **Cause:** Task parameters do not match expected schema
|
|
169
|
-
- **Resolution:** Validate parameters against task definition
|
|
170
|
-
- **Recovery:** Provide parameter template, reject execution
|
|
171
|
-
|
|
172
|
-
3. **Error:** Execution Timeout
|
|
173
|
-
- **Cause:** Task exceeds maximum execution time
|
|
174
|
-
- **Resolution:** Optimize task or increase timeout
|
|
175
|
-
- **Recovery:** Kill task, cleanup resources, log state
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Performance
|
|
180
|
-
|
|
181
|
-
**Expected Metrics:**
|
|
182
|
-
|
|
183
|
-
```yaml
|
|
184
|
-
duration_expected: 5-15 min (estimated)
|
|
185
|
-
cost_estimated: $0.003-0.010
|
|
186
|
-
token_usage: ~3,000-10,000 tokens
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Optimization Notes:**
|
|
190
|
-
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Metadata
|
|
195
|
-
|
|
196
|
-
```yaml
|
|
197
|
-
story: N/A
|
|
198
|
-
version: 1.0.0
|
|
199
|
-
dependencies:
|
|
200
|
-
- N/A
|
|
201
|
-
tags:
|
|
202
|
-
- development
|
|
203
|
-
- code
|
|
204
|
-
updated_at: 2025-11-17
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
## Mode: YOLO (Autonomous)
|
|
211
|
-
|
|
212
|
-
### Workflow
|
|
213
|
-
|
|
214
|
-
**CRITICAL: Decision Logging Integration (Story 6.1.2.6.2 Phase 2)**
|
|
215
|
-
|
|
216
|
-
Before starting, load decision logging infrastructure:
|
|
217
|
-
```javascript
|
|
218
|
-
const {
|
|
219
|
-
initializeDecisionLogging,
|
|
220
|
-
recordDecision,
|
|
221
|
-
trackFile,
|
|
222
|
-
trackTest,
|
|
223
|
-
completeDecisionLogging
|
|
224
|
-
} = require('./.aios-core/scripts/decision-recorder');
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
1. **Initialization** (On Yolo Mode Start)
|
|
228
|
-
- Read story file completely
|
|
229
|
-
- Extract story path from context
|
|
230
|
-
- **Initialize decision logging**:
|
|
231
|
-
```javascript
|
|
232
|
-
const context = await initializeDecisionLogging('dev', storyPath, {
|
|
233
|
-
agentLoadTime: loadTimeInMs // From agent startup metrics
|
|
234
|
-
});
|
|
235
|
-
```
|
|
236
|
-
- Identify all tasks and acceptance criteria
|
|
237
|
-
- Analyze technical requirements
|
|
238
|
-
|
|
239
|
-
2. **Task Execution** (Autonomous loop)
|
|
240
|
-
- Read next task
|
|
241
|
-
- **Make autonomous decisions** and LOG immediately:
|
|
242
|
-
|
|
243
|
-
**Architecture choices**:
|
|
244
|
-
```javascript
|
|
245
|
-
recordDecision({
|
|
246
|
-
description: 'Use microservices architecture for user service',
|
|
247
|
-
reason: 'Better scalability and independent deployment',
|
|
248
|
-
alternatives: ['Monolithic architecture', 'Serverless functions'],
|
|
249
|
-
type: 'architecture',
|
|
250
|
-
priority: 'high'
|
|
251
|
-
});
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
**Library selections**:
|
|
255
|
-
```javascript
|
|
256
|
-
recordDecision({
|
|
257
|
-
description: 'Use Axios for HTTP client',
|
|
258
|
-
reason: 'Better error handling, interceptor support, TypeScript definitions',
|
|
259
|
-
alternatives: ['Fetch API (native)', 'Got library', 'node-fetch'],
|
|
260
|
-
type: 'library-choice',
|
|
261
|
-
priority: 'medium'
|
|
262
|
-
});
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
**Algorithm implementations**:
|
|
266
|
-
```javascript
|
|
267
|
-
recordDecision({
|
|
268
|
-
description: 'Use binary search for user lookup',
|
|
269
|
-
reason: 'O(log n) performance vs O(n) linear search',
|
|
270
|
-
alternatives: ['Linear search', 'Hash map lookup'],
|
|
271
|
-
type: 'algorithm',
|
|
272
|
-
priority: 'medium'
|
|
273
|
-
});
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
- Implement task and subtasks
|
|
277
|
-
- **Track file modifications**:
|
|
278
|
-
```javascript
|
|
279
|
-
trackFile('src/api/users.js', 'created');
|
|
280
|
-
trackFile('package.json', 'modified');
|
|
281
|
-
trackFile('src/legacy/old-api.js', 'deleted');
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
- Write tests
|
|
285
|
-
- Execute validations
|
|
286
|
-
- **Track test execution**:
|
|
287
|
-
```javascript
|
|
288
|
-
trackTest({
|
|
289
|
-
name: 'users.test.js',
|
|
290
|
-
passed: true,
|
|
291
|
-
duration: 125 // milliseconds
|
|
292
|
-
});
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
- Mark task complete [x] only if ALL validations pass
|
|
296
|
-
- Update File List
|
|
297
|
-
|
|
298
|
-
3. **Decision Logging** (Automatic)
|
|
299
|
-
- All decisions tracked in memory during execution
|
|
300
|
-
- File operations logged automatically
|
|
301
|
-
- Test results recorded
|
|
302
|
-
- Metrics collected (execution time, agent load time)
|
|
303
|
-
- **Format**: ADR (Architecture Decision Record) compliant
|
|
304
|
-
- **No manual logging needed** - use API only
|
|
305
|
-
|
|
306
|
-
4. **Completion** (On Yolo Mode Completion)
|
|
307
|
-
- All tasks complete
|
|
308
|
-
- All tests pass
|
|
309
|
-
- Execute story-dod-checklist
|
|
310
|
-
- Set status: "Ready for Review"
|
|
311
|
-
- **Generate decision log**:
|
|
312
|
-
```javascript
|
|
313
|
-
const logPath = await completeDecisionLogging(storyId, 'completed');
|
|
314
|
-
console.log(`📝 Decision log saved: ${logPath}`);
|
|
315
|
-
```
|
|
316
|
-
- **Summary**: Decision log summary displayed automatically
|
|
317
|
-
- Log file: `.ai/decision-log-{story-id}.md` (ADR format)
|
|
318
|
-
|
|
319
|
-
**User Prompts**: 0-1 (only if blocking issue requires approval)
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Mode: Interactive (Balanced) **[DEFAULT]**
|
|
324
|
-
|
|
325
|
-
### Workflow
|
|
326
|
-
|
|
327
|
-
1. **Story Analysis** (With User)
|
|
328
|
-
- Read story file completely
|
|
329
|
-
- Present summary of tasks and AC
|
|
330
|
-
- Confirm understanding with user
|
|
331
|
-
|
|
332
|
-
2. **Task Execution** (Interactive loop)
|
|
333
|
-
- Read next task
|
|
334
|
-
- **Decision Checkpoints** (Prompt user at):
|
|
335
|
-
- Architecture decisions (e.g., "Use microservices or monolith?")
|
|
336
|
-
- Library selections (e.g., "Use Axios or Fetch?")
|
|
337
|
-
- Algorithm choices (e.g., "Use BFS or DFS for graph traversal?")
|
|
338
|
-
- Testing approaches (e.g., "Unit tests or integration tests first?")
|
|
339
|
-
|
|
340
|
-
- **Educational Explanations**:
|
|
341
|
-
- Before each decision: Explain the options and trade-offs
|
|
342
|
-
- After user choice: Explain why it's a good fit for this context
|
|
343
|
-
- During implementation: Explain what you're doing and why
|
|
344
|
-
|
|
345
|
-
- Implement task and subtasks
|
|
346
|
-
- Write tests
|
|
347
|
-
- Execute validations
|
|
348
|
-
- Show results to user before marking [x]
|
|
349
|
-
- Update File List
|
|
350
|
-
|
|
351
|
-
3. **Completion**
|
|
352
|
-
- All tasks complete
|
|
353
|
-
- All tests pass
|
|
354
|
-
- Execute story-dod-checklist
|
|
355
|
-
- Present completion summary to user
|
|
356
|
-
- Set status: "Ready for Review"
|
|
357
|
-
|
|
358
|
-
**User Prompts**: 5-10 (balanced for control and speed)
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
## Mode: Pre-Flight Planning (Comprehensive)
|
|
363
|
-
|
|
364
|
-
### Workflow
|
|
365
|
-
|
|
366
|
-
1. **Story Analysis Phase**
|
|
367
|
-
- Read story file completely
|
|
368
|
-
- **Identify all ambiguities**:
|
|
369
|
-
- Missing technical specifications
|
|
370
|
-
- Unspecified library choices
|
|
371
|
-
- Unclear acceptance criteria
|
|
372
|
-
- Undefined edge case handling
|
|
373
|
-
- Missing testing guidance
|
|
374
|
-
|
|
375
|
-
2. **Questionnaire Generation**
|
|
376
|
-
- Generate comprehensive questions covering:
|
|
377
|
-
- Architecture decisions
|
|
378
|
-
- Library and framework choices
|
|
379
|
-
- Algorithm and data structure selections
|
|
380
|
-
- Testing strategy
|
|
381
|
-
- Edge case handling
|
|
382
|
-
- Performance requirements
|
|
383
|
-
- Security considerations
|
|
384
|
-
|
|
385
|
-
- Present all questions to user at once
|
|
386
|
-
- Collect all responses in batch
|
|
387
|
-
|
|
388
|
-
3. **Execution Plan Creation**
|
|
389
|
-
- Create detailed execution plan with all decisions documented
|
|
390
|
-
- Present plan to user for approval
|
|
391
|
-
- Wait for user confirmation before proceeding
|
|
392
|
-
|
|
393
|
-
4. **Zero-Ambiguity Execution**
|
|
394
|
-
- Execute tasks with full context from questionnaire
|
|
395
|
-
- No additional decision points (all decided in pre-flight)
|
|
396
|
-
- Implement task and subtasks
|
|
397
|
-
- Write tests
|
|
398
|
-
- Execute validations
|
|
399
|
-
- Mark task complete [x] only if ALL validations pass
|
|
400
|
-
- Update File List
|
|
401
|
-
|
|
402
|
-
5. **Completion**
|
|
403
|
-
- All tasks complete
|
|
404
|
-
- All tests pass
|
|
405
|
-
- Execute story-dod-checklist
|
|
406
|
-
- Present execution summary vs. plan
|
|
407
|
-
- Set status: "Ready for Review"
|
|
408
|
-
|
|
409
|
-
**User Prompts**: All upfront (questionnaire phase), then 0 during execution
|
|
410
|
-
|
|
411
|
-
---
|
|
412
|
-
|
|
413
|
-
## Common Workflow (All Modes)
|
|
414
|
-
|
|
415
|
-
### Order of Execution
|
|
416
|
-
|
|
417
|
-
1. Read (first or next) task
|
|
418
|
-
2. Implement task and its subtasks
|
|
419
|
-
3. Write tests
|
|
420
|
-
4. Execute validations
|
|
421
|
-
5. **Only if ALL pass**: Mark task checkbox [x]
|
|
422
|
-
6. Update story File List (ensure all created/modified/deleted files listed)
|
|
423
|
-
7. Repeat until all tasks complete
|
|
424
|
-
|
|
425
|
-
### Story File Updates (All Modes)
|
|
426
|
-
|
|
427
|
-
**CRITICAL**: ONLY update these sections:
|
|
428
|
-
- Tasks / Subtasks checkboxes
|
|
429
|
-
- Dev Agent Record section and all subsections
|
|
430
|
-
- Agent Model Used
|
|
431
|
-
- Debug Log References
|
|
432
|
-
- Completion Notes List
|
|
433
|
-
- File List
|
|
434
|
-
- Change Log (add entry on completion)
|
|
435
|
-
- Status (set to "Ready for Review" when complete)
|
|
436
|
-
|
|
437
|
-
**DO NOT modify**: Story, Acceptance Criteria, Dev Notes, Testing sections
|
|
438
|
-
|
|
439
|
-
### Blocking Conditions (All Modes)
|
|
440
|
-
|
|
441
|
-
**HALT and ask user if**:
|
|
442
|
-
- Unapproved dependencies needed
|
|
443
|
-
- Ambiguous requirements after checking story
|
|
444
|
-
- 3 failures attempting to implement or fix something
|
|
445
|
-
- Missing configuration
|
|
446
|
-
- Failing regression tests
|
|
447
|
-
|
|
448
|
-
### Ready for Review Criteria (All Modes)
|
|
449
|
-
|
|
450
|
-
- Code matches all requirements
|
|
451
|
-
- All validations pass
|
|
452
|
-
- Follows coding standards
|
|
453
|
-
- File List is complete and accurate
|
|
454
|
-
|
|
455
|
-
### Completion Checklist (All Modes)
|
|
456
|
-
|
|
457
|
-
1. All tasks and subtasks marked [x]
|
|
458
|
-
2. All have corresponding tests
|
|
459
|
-
3. All validations pass
|
|
460
|
-
4. Full regression test suite passes
|
|
461
|
-
5. File List is complete
|
|
462
|
-
6. **Execute CodeRabbit Self-Healing Loop** (see below)
|
|
463
|
-
7. Execute `.aios-core/product/checklists/story-dod-checklist.md`
|
|
464
|
-
8. Set story status: "Ready for Review"
|
|
465
|
-
9. HALT (do not proceed further)
|
|
466
|
-
|
|
467
|
-
---
|
|
468
|
-
|
|
469
|
-
## CodeRabbit Self-Healing Loop (Story 6.3.3)
|
|
470
|
-
|
|
471
|
-
**Purpose**: Catch and auto-fix code quality issues before marking story as "Ready for Review"
|
|
472
|
-
|
|
473
|
-
**Configuration**: Light self-healing (max 2 iterations, CRITICAL issues only)
|
|
474
|
-
|
|
475
|
-
### When to Execute
|
|
476
|
-
|
|
477
|
-
Execute **AFTER** all tasks are complete but **BEFORE** running the DOD checklist.
|
|
478
|
-
|
|
479
|
-
### Self-Healing Workflow
|
|
480
|
-
|
|
481
|
-
```
|
|
482
|
-
┌──────────────────────────────────────────────────────────────┐
|
|
483
|
-
│ CODERABBIT SELF-HEALING │
|
|
484
|
-
│ (Light Mode - @dev) │
|
|
485
|
-
├──────────────────────────────────────────────────────────────┤
|
|
486
|
-
│ │
|
|
487
|
-
│ iteration = 0 │
|
|
488
|
-
│ max_iterations = 2 │
|
|
489
|
-
│ │
|
|
490
|
-
│ WHILE iteration < max_iterations: │
|
|
491
|
-
│ ┌────────────────────────────────────────────────────┐ │
|
|
492
|
-
│ │ 1. Run CodeRabbit CLI │ │
|
|
493
|
-
│ │ wsl bash -c 'cd /mnt/c
|
|
494
|
-
│ │ ~/.local/bin/coderabbit --prompt-only │ │
|
|
495
|
-
│ │ -t uncommitted' │ │
|
|
496
|
-
│ │ │ │
|
|
497
|
-
│ │ 2. Parse output for severity levels │ │
|
|
498
|
-
│ └────────────────────────────────────────────────────┘ │
|
|
499
|
-
│ │ │
|
|
500
|
-
│ ▼ │
|
|
501
|
-
│ ┌────────────────────────────────────────────────────┐ │
|
|
502
|
-
│ │ IF no CRITICAL issues: │ │
|
|
503
|
-
│ │ - Document HIGH issues in story Dev Notes │ │
|
|
504
|
-
│ │ - Log: "✅ CodeRabbit passed" │ │
|
|
505
|
-
│ │ - BREAK → Proceed to DOD checklist │ │
|
|
506
|
-
│ └────────────────────────────────────────────────────┘ │
|
|
507
|
-
│ │ │
|
|
508
|
-
│ ▼ │
|
|
509
|
-
│ ┌────────────────────────────────────────────────────┐ │
|
|
510
|
-
│ │ IF CRITICAL issues found: │ │
|
|
511
|
-
│ │ - Attempt auto-fix for each issue │ │
|
|
512
|
-
│ │ - iteration++ │ │
|
|
513
|
-
│ │ - CONTINUE loop │ │
|
|
514
|
-
│ └────────────────────────────────────────────────────┘ │
|
|
515
|
-
│ │ │
|
|
516
|
-
│ ▼ │
|
|
517
|
-
│ IF iteration == 2 AND CRITICAL issues remain: │
|
|
518
|
-
│ - Log: "❌ CRITICAL issues remain" │
|
|
519
|
-
│ - HALT and report to user │
|
|
520
|
-
│ - DO NOT mark story complete │
|
|
521
|
-
│ │
|
|
522
|
-
└──────────────────────────────────────────────────────────────┘
|
|
523
|
-
```
|
|
524
|
-
|
|
525
|
-
### Implementation Code
|
|
526
|
-
|
|
527
|
-
```javascript
|
|
528
|
-
async function runCodeRabbitSelfHealing(storyPath) {
|
|
529
|
-
const maxIterations = 2;
|
|
530
|
-
let iteration = 0;
|
|
531
|
-
|
|
532
|
-
console.log('🐰 Starting CodeRabbit Self-Healing Loop...');
|
|
533
|
-
console.log(` Mode: Light (CRITICAL only)`);
|
|
534
|
-
console.log(` Max Iterations: ${maxIterations}\n`);
|
|
535
|
-
|
|
536
|
-
while (iteration < maxIterations) {
|
|
537
|
-
console.log(`📋 Iteration ${iteration + 1}/${maxIterations}`);
|
|
538
|
-
|
|
539
|
-
// Run CodeRabbit CLI
|
|
540
|
-
const output = await runCodeRabbitCLI('uncommitted');
|
|
541
|
-
const issues = parseCodeRabbitOutput(output);
|
|
542
|
-
|
|
543
|
-
const criticalIssues = issues.filter(i => i.severity === 'CRITICAL');
|
|
544
|
-
const highIssues = issues.filter(i => i.severity === 'HIGH');
|
|
545
|
-
|
|
546
|
-
console.log(` Found: ${criticalIssues.length} CRITICAL, ${highIssues.length} HIGH`);
|
|
547
|
-
|
|
548
|
-
// No CRITICAL issues = success
|
|
549
|
-
if (criticalIssues.length === 0) {
|
|
550
|
-
if (highIssues.length > 0) {
|
|
551
|
-
console.log(`\n📝 Documenting ${highIssues.length} HIGH issues in story Dev Notes...`);
|
|
552
|
-
await documentIssuesInStory(storyPath, highIssues);
|
|
553
|
-
}
|
|
554
|
-
console.log('\n✅ CodeRabbit Self-Healing: PASSED');
|
|
555
|
-
return { success: true, iterations: iteration + 1 };
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
// Attempt auto-fix for CRITICAL issues
|
|
559
|
-
console.log(`\n🔧 Attempting auto-fix for ${criticalIssues.length} CRITICAL issues...`);
|
|
560
|
-
for (const issue of criticalIssues) {
|
|
561
|
-
await attemptAutoFix(issue);
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
iteration++;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
// Max iterations reached with CRITICAL issues
|
|
568
|
-
console.log('\n❌ CodeRabbit Self-Healing: FAILED');
|
|
569
|
-
console.log(` CRITICAL issues remain after ${maxIterations} iterations.`);
|
|
570
|
-
console.log(' HALTING - Please fix manually before marking story complete.');
|
|
571
|
-
|
|
572
|
-
return { success: false, iterations: maxIterations };
|
|
573
|
-
}
|
|
574
|
-
```
|
|
575
|
-
|
|
576
|
-
### Severity Handling
|
|
577
|
-
|
|
578
|
-
| Severity | Behavior | Notes |
|
|
579
|
-
|----------|----------|-------|
|
|
580
|
-
| **CRITICAL** | Auto-fix (max 2 attempts) | Security vulnerabilities, breaking bugs |
|
|
581
|
-
| **HIGH** | Document in story Dev Notes | Recommend fix before QA |
|
|
582
|
-
| **MEDIUM** | Ignore | @qa will handle |
|
|
583
|
-
| **LOW** | Ignore | Nits, not blocking |
|
|
584
|
-
|
|
585
|
-
### Timeout
|
|
586
|
-
|
|
587
|
-
- **Default**: 15 minutes per CodeRabbit run
|
|
588
|
-
- **Total max**: ~30 minutes (2 iterations)
|
|
589
|
-
|
|
590
|
-
### Error Handling
|
|
591
|
-
|
|
592
|
-
```javascript
|
|
593
|
-
// If CodeRabbit fails
|
|
594
|
-
try {
|
|
595
|
-
await runCodeRabbitSelfHealing(storyPath);
|
|
596
|
-
} catch (error) {
|
|
597
|
-
if (error.message.includes('command not found')) {
|
|
598
|
-
console.warn('⚠️ CodeRabbit not installed in WSL');
|
|
599
|
-
console.warn(' Skipping self-healing. Manual review required.');
|
|
600
|
-
return; // Continue without self-healing
|
|
601
|
-
}
|
|
602
|
-
if (error.message.includes('timeout')) {
|
|
603
|
-
console.warn('⚠️ CodeRabbit review timed out');
|
|
604
|
-
console.warn(' Skipping self-healing. Manual review required.');
|
|
605
|
-
return;
|
|
606
|
-
}
|
|
607
|
-
throw error; // Re-throw unknown errors
|
|
608
|
-
}
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
### Integration with Execution Modes
|
|
612
|
-
|
|
613
|
-
| Mode | Self-Healing Behavior |
|
|
614
|
-
|------|----------------------|
|
|
615
|
-
| **YOLO** | Automatic, no prompts |
|
|
616
|
-
| **Interactive** | Shows progress, no prompts |
|
|
617
|
-
| **Pre-Flight** | Included in execution plan |
|
|
618
|
-
|
|
619
|
-
---
|
|
620
|
-
|
|
621
|
-
## Mode Selection Implementation
|
|
622
|
-
|
|
623
|
-
### Validation
|
|
624
|
-
|
|
625
|
-
```javascript
|
|
626
|
-
function validateMode(mode) {
|
|
627
|
-
const validModes = ['yolo', 'interactive', 'preflight'];
|
|
628
|
-
|
|
629
|
-
if (!mode) {
|
|
630
|
-
return 'interactive'; // Default
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
if (validModes.includes(mode.toLowerCase())) {
|
|
634
|
-
return mode.toLowerCase();
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
console.warn(`Invalid mode '${mode}'. Defaulting to 'interactive'.`);
|
|
638
|
-
console.warn(`Valid modes: ${validModes.join(', ')}`);
|
|
639
|
-
return 'interactive';
|
|
640
|
-
}
|
|
641
|
-
```
|
|
642
|
-
|
|
643
|
-
### User Cancellation Handling
|
|
644
|
-
|
|
645
|
-
```javascript
|
|
646
|
-
function handleCancellation() {
|
|
647
|
-
console.log('Development cancelled by user.');
|
|
648
|
-
console.log('Story progress saved. You can resume with *develop {story-id}.');
|
|
649
|
-
process.exit(0);
|
|
650
|
-
}
|
|
651
|
-
```
|
|
652
|
-
|
|
653
|
-
### Missing Story File Handling
|
|
654
|
-
|
|
655
|
-
```javascript
|
|
656
|
-
function validateStoryFile(storyId) {
|
|
657
|
-
const storyPath = `docs/stories/${storyId}.yaml`;
|
|
658
|
-
|
|
659
|
-
if (!fs.existsSync(storyPath)) {
|
|
660
|
-
console.error(`Error: Story file not found at ${storyPath}`);
|
|
661
|
-
console.error(`Please verify story ID and try again.`);
|
|
662
|
-
process.exit(1);
|
|
663
|
-
}
|
|
664
|
-
|
|
665
|
-
return storyPath;
|
|
666
|
-
}
|
|
667
|
-
```
|
|
668
|
-
|
|
669
|
-
---
|
|
670
|
-
|
|
671
|
-
## Decision Log Format (ADR Compliant)
|
|
672
|
-
|
|
673
|
-
**File**: `.ai/decision-log-{story-id}.md`
|
|
674
|
-
|
|
675
|
-
**Format**: ADR (Architecture Decision Record) - automatically generated by `completeDecisionLogging()`
|
|
676
|
-
|
|
677
|
-
**Sections**:
|
|
678
|
-
1. **Context** - Story info, execution time, files modified, tests run
|
|
679
|
-
2. **Decisions Made** - All autonomous decisions with type/priority classification
|
|
680
|
-
3. **Rationale & Alternatives** - Why each choice was made, what else was considered
|
|
681
|
-
4. **Implementation Changes** - Files created/modified/deleted, test results
|
|
682
|
-
5. **Consequences & Rollback** - Git commit hash, rollback instructions, performance impact
|
|
683
|
-
|
|
684
|
-
**Example Output**:
|
|
685
|
-
```markdown
|
|
686
|
-
# Decision Log: Story 6.1.2.6.2
|
|
687
|
-
|
|
688
|
-
**Generated:** 2025-11-16T14:30:00.000Z
|
|
689
|
-
**Agent:** dev
|
|
690
|
-
**Mode:** Yolo (Autonomous Development)
|
|
691
|
-
**Story:** docs/stories/story-6.1.2.6.2.md
|
|
692
|
-
**Rollback:** `git reset --hard abc123def456`
|
|
693
|
-
|
|
694
|
-
---
|
|
695
|
-
|
|
696
|
-
## Context
|
|
697
|
-
|
|
698
|
-
**Story Implementation:** 6.1.2.6.2
|
|
699
|
-
**Execution Time:** 15m 30s
|
|
700
|
-
**Status:** completed
|
|
701
|
-
|
|
702
|
-
**Files Modified:** 5 files
|
|
703
|
-
**Tests Run:** 8 tests
|
|
704
|
-
**Decisions Made:** 3 autonomous decisions
|
|
705
|
-
|
|
706
|
-
---
|
|
707
|
-
|
|
708
|
-
## Decisions Made
|
|
709
|
-
|
|
710
|
-
### Decision 1: Use Axios for HTTP client
|
|
711
|
-
|
|
712
|
-
**Timestamp:** 2025-11-16T14:32:15.000Z
|
|
713
|
-
**Type:** library-choice
|
|
714
|
-
**Priority:** medium
|
|
715
|
-
|
|
716
|
-
**Reason:** Better error handling, interceptor support, and TypeScript definitions
|
|
717
|
-
|
|
718
|
-
**Alternatives Considered:**
|
|
719
|
-
- Fetch API (native)
|
|
720
|
-
- Got library
|
|
721
|
-
- node-fetch
|
|
722
|
-
|
|
723
|
-
---
|
|
724
|
-
|
|
725
|
-
## Implementation Changes
|
|
726
|
-
|
|
727
|
-
### Files Modified
|
|
728
|
-
|
|
729
|
-
- `src/api/client.js` (created)
|
|
730
|
-
- `package.json` (modified)
|
|
731
|
-
|
|
732
|
-
### Test Results
|
|
733
|
-
|
|
734
|
-
- ✅ PASS: `api.test.js` (125ms)
|
|
735
|
-
|
|
736
|
-
---
|
|
737
|
-
|
|
738
|
-
## Consequences & Rollback
|
|
739
|
-
|
|
740
|
-
### Rollback Instructions
|
|
741
|
-
|
|
742
|
-
\`\`\`bash
|
|
743
|
-
# Full rollback
|
|
744
|
-
git reset --hard abc123def456
|
|
745
|
-
|
|
746
|
-
# Selective file rollback
|
|
747
|
-
git checkout abc123def456 -- <file-path>
|
|
748
|
-
\`\`\`
|
|
749
|
-
|
|
750
|
-
### Performance Impact
|
|
751
|
-
|
|
752
|
-
- Agent Load Time: 150ms
|
|
753
|
-
- Task Execution Time: 15m 30s
|
|
754
|
-
- Logging Overhead: Minimal (async, non-blocking)
|
|
755
|
-
```
|
|
756
|
-
|
|
757
|
-
**For complete format specification, see**: `docs/guides/decision-logging-guide.md`
|
|
758
|
-
|
|
759
|
-
---
|
|
760
|
-
|
|
761
|
-
## Examples
|
|
762
|
-
|
|
763
|
-
### Example 1: YOLO Mode
|
|
764
|
-
|
|
765
|
-
```bash
|
|
766
|
-
*develop 3.14 yolo
|
|
767
|
-
```
|
|
768
|
-
|
|
769
|
-
**Output**:
|
|
770
|
-
```
|
|
771
|
-
🚀 YOLO Mode - Autonomous Development
|
|
772
|
-
📋 Story 3.14: GitHub DevOps Agent
|
|
773
|
-
⚡ Executing autonomously with decision logging...
|
|
774
|
-
|
|
775
|
-
✅ Task 1 complete (Decision: Use Octokit library - rationale logged)
|
|
776
|
-
✅ Task 2 complete (Decision: REST API over GraphQL - rationale logged)
|
|
777
|
-
✅ Task 3 complete
|
|
778
|
-
✅ All tests pass
|
|
779
|
-
|
|
780
|
-
📝 Decision log: .ai/decision-log-3.14.md (3 decisions logged)
|
|
781
|
-
✅ Story ready for review
|
|
782
|
-
```
|
|
783
|
-
|
|
784
|
-
### Example 2: Interactive Mode (Default)
|
|
785
|
-
|
|
786
|
-
```bash
|
|
787
|
-
*develop 3.15
|
|
788
|
-
```
|
|
789
|
-
|
|
790
|
-
**Output**:
|
|
791
|
-
```
|
|
792
|
-
💬 Interactive Mode - Balanced Development
|
|
793
|
-
📋 Story 3.15: Expansion Pack Auto Configuration
|
|
794
|
-
|
|
795
|
-
📖 Task 1: Design configuration schema
|
|
796
|
-
❓ Decision Point - Schema Format
|
|
797
|
-
Option 1: YAML (human-readable, widely used)
|
|
798
|
-
Option 2: JSON (strict typing, better IDE support)
|
|
799
|
-
Option 3: TOML (simple, clear)
|
|
800
|
-
|
|
801
|
-
Your choice? [1/2/3]: _
|
|
802
|
-
```
|
|
803
|
-
|
|
804
|
-
### Example 3: Pre-Flight Planning
|
|
805
|
-
|
|
806
|
-
```bash
|
|
807
|
-
*develop 3.16 preflight
|
|
808
|
-
```
|
|
809
|
-
|
|
810
|
-
**Output**:
|
|
811
|
-
```
|
|
812
|
-
✈️ Pre-Flight Planning Mode
|
|
813
|
-
📋 Story 3.16: Data Architecture Capability
|
|
814
|
-
|
|
815
|
-
🔍 Analyzing story for ambiguities...
|
|
816
|
-
Found 5 technical decisions needed.
|
|
817
|
-
|
|
818
|
-
📝 Pre-Flight Questionnaire:
|
|
819
|
-
1. Database choice: PostgreSQL or MySQL?
|
|
820
|
-
2. ORM preference: Prisma, TypeORM, or raw SQL?
|
|
821
|
-
3. Migration strategy: Sequential or timestamp-based?
|
|
822
|
-
4. Backup approach: Daily snapshots or continuous?
|
|
823
|
-
5. Testing database: SQLite, Docker PostgreSQL, or mock?
|
|
824
|
-
|
|
825
|
-
[Please answer all questions before proceeding]
|
|
826
|
-
```
|
|
827
|
-
|
|
828
|
-
---
|
|
829
|
-
|
|
830
|
-
## Dependencies
|
|
831
|
-
|
|
832
|
-
- `.aios-core/product/checklists/story-dod-checklist.md` - Definition of Done checklist
|
|
833
|
-
|
|
834
|
-
## Tools
|
|
835
|
-
|
|
836
|
-
- git - Local operations (add, commit, status, diff, log)
|
|
837
|
-
- File system - Read/write story files
|
|
838
|
-
- Testing frameworks - Execute validation tests
|
|
839
|
-
|
|
840
|
-
## Notes
|
|
841
|
-
|
|
842
|
-
- **Backward Compatibility**: Existing commands like `*develop {story-id}` continue to work (use interactive mode)
|
|
843
|
-
- **Mode Aliases**: Can extend with `*develop-yolo`, `*develop-interactive`, `*develop-preflight` commands
|
|
844
|
-
- **Decision Logs**: Persisted in `.ai/decision-log-{story-id}.md` for future reference and review
|
|
845
|
-
- **Educational Value**: Interactive mode explanations help developers learn framework patterns
|
|
846
|
-
- **Scope Drift Prevention**: Pre-flight mode eliminates mid-development ambiguity
|
|
1
|
+
# Develop Story Task
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Execute story development with selectable automation modes to accommodate different developer preferences, skill levels, and story complexity.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Execution Modes
|
|
10
|
+
|
|
11
|
+
**Choose your execution mode:**
|
|
12
|
+
|
|
13
|
+
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
|
|
14
|
+
- Autonomous decision making with logging
|
|
15
|
+
- Minimal user interaction
|
|
16
|
+
- **Best for:** Simple, deterministic tasks
|
|
17
|
+
|
|
18
|
+
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
|
|
19
|
+
- Explicit decision checkpoints
|
|
20
|
+
- Educational explanations
|
|
21
|
+
- **Best for:** Learning, complex decisions
|
|
22
|
+
|
|
23
|
+
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
|
|
24
|
+
- Task analysis phase (identify all ambiguities)
|
|
25
|
+
- Zero ambiguity execution
|
|
26
|
+
- **Best for:** Ambiguous requirements, critical work
|
|
27
|
+
|
|
28
|
+
**Parameter:** `mode` (optional, default: `interactive`)
|
|
29
|
+
|
|
30
|
+
**Usage**:
|
|
31
|
+
```
|
|
32
|
+
*develop {story-id} # Uses interactive mode (default)
|
|
33
|
+
*develop {story-id} yolo # Uses YOLO mode
|
|
34
|
+
*develop {story-id} preflight # Uses pre-flight planning mode
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Edge Case Handling**:
|
|
38
|
+
- Invalid mode → Default to interactive with warning
|
|
39
|
+
- User cancellation → Exit gracefully with message
|
|
40
|
+
- Missing story file → Clear error message, halt execution
|
|
41
|
+
- Backward compatibility → Stories without mode parameter use interactive
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Task Definition (AIOS Task Format V1.0)
|
|
46
|
+
|
|
47
|
+
```yaml
|
|
48
|
+
task: devDevelopStory()
|
|
49
|
+
responsável: Dex (Builder)
|
|
50
|
+
responsavel_type: Agente
|
|
51
|
+
atomic_layer: Organism
|
|
52
|
+
|
|
53
|
+
**Entrada:**
|
|
54
|
+
- campo: task
|
|
55
|
+
tipo: string
|
|
56
|
+
origem: User Input
|
|
57
|
+
obrigatório: true
|
|
58
|
+
validação: Must be registered task
|
|
59
|
+
|
|
60
|
+
- campo: parameters
|
|
61
|
+
tipo: object
|
|
62
|
+
origem: User Input
|
|
63
|
+
obrigatório: false
|
|
64
|
+
validação: Valid task parameters
|
|
65
|
+
|
|
66
|
+
- campo: mode
|
|
67
|
+
tipo: string
|
|
68
|
+
origem: User Input
|
|
69
|
+
obrigatório: false
|
|
70
|
+
validação: yolo|interactive|pre-flight
|
|
71
|
+
|
|
72
|
+
**Saída:**
|
|
73
|
+
- campo: execution_result
|
|
74
|
+
tipo: object
|
|
75
|
+
destino: Memory
|
|
76
|
+
persistido: false
|
|
77
|
+
|
|
78
|
+
- campo: logs
|
|
79
|
+
tipo: array
|
|
80
|
+
destino: File (.ai/logs/*)
|
|
81
|
+
persistido: true
|
|
82
|
+
|
|
83
|
+
- campo: state
|
|
84
|
+
tipo: object
|
|
85
|
+
destino: State management
|
|
86
|
+
persistido: true
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Pre-Conditions
|
|
92
|
+
|
|
93
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
94
|
+
|
|
95
|
+
**Checklist:**
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
pre-conditions:
|
|
99
|
+
- [ ] Task is registered; required parameters provided; dependencies met
|
|
100
|
+
tipo: pre-condition
|
|
101
|
+
blocker: true
|
|
102
|
+
validação: |
|
|
103
|
+
Check task is registered; required parameters provided; dependencies met
|
|
104
|
+
error_message: "Pre-condition failed: Task is registered; required parameters provided; dependencies met"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Post-Conditions
|
|
110
|
+
|
|
111
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
112
|
+
|
|
113
|
+
**Checklist:**
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
post-conditions:
|
|
117
|
+
- [ ] Task completed; exit code 0; expected outputs created
|
|
118
|
+
tipo: post-condition
|
|
119
|
+
blocker: true
|
|
120
|
+
validação: |
|
|
121
|
+
Verify task completed; exit code 0; expected outputs created
|
|
122
|
+
error_message: "Post-condition failed: Task completed; exit code 0; expected outputs created"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Acceptance Criteria
|
|
128
|
+
|
|
129
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
130
|
+
|
|
131
|
+
**Checklist:**
|
|
132
|
+
|
|
133
|
+
```yaml
|
|
134
|
+
acceptance-criteria:
|
|
135
|
+
- [ ] Task completed as expected; side effects documented
|
|
136
|
+
tipo: acceptance-criterion
|
|
137
|
+
blocker: true
|
|
138
|
+
validação: |
|
|
139
|
+
Assert task completed as expected; side effects documented
|
|
140
|
+
error_message: "Acceptance criterion not met: Task completed as expected; side effects documented"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Scripts
|
|
146
|
+
|
|
147
|
+
**Agent-specific code for this task:**
|
|
148
|
+
|
|
149
|
+
- **Script:** execute-task.js
|
|
150
|
+
- **Purpose:** Generic task execution wrapper
|
|
151
|
+
- **Language:** JavaScript
|
|
152
|
+
- **Location:** .aios-core/scripts/execute-task.js
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Error Handling
|
|
157
|
+
|
|
158
|
+
**Strategy:** abort
|
|
159
|
+
|
|
160
|
+
**Common Errors:**
|
|
161
|
+
|
|
162
|
+
1. **Error:** Task Not Found
|
|
163
|
+
- **Cause:** Specified task not registered in system
|
|
164
|
+
- **Resolution:** Verify task name and registration
|
|
165
|
+
- **Recovery:** List available tasks, suggest similar
|
|
166
|
+
|
|
167
|
+
2. **Error:** Invalid Parameters
|
|
168
|
+
- **Cause:** Task parameters do not match expected schema
|
|
169
|
+
- **Resolution:** Validate parameters against task definition
|
|
170
|
+
- **Recovery:** Provide parameter template, reject execution
|
|
171
|
+
|
|
172
|
+
3. **Error:** Execution Timeout
|
|
173
|
+
- **Cause:** Task exceeds maximum execution time
|
|
174
|
+
- **Resolution:** Optimize task or increase timeout
|
|
175
|
+
- **Recovery:** Kill task, cleanup resources, log state
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Performance
|
|
180
|
+
|
|
181
|
+
**Expected Metrics:**
|
|
182
|
+
|
|
183
|
+
```yaml
|
|
184
|
+
duration_expected: 5-15 min (estimated)
|
|
185
|
+
cost_estimated: $0.003-0.010
|
|
186
|
+
token_usage: ~3,000-10,000 tokens
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Optimization Notes:**
|
|
190
|
+
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Metadata
|
|
195
|
+
|
|
196
|
+
```yaml
|
|
197
|
+
story: N/A
|
|
198
|
+
version: 1.0.0
|
|
199
|
+
dependencies:
|
|
200
|
+
- N/A
|
|
201
|
+
tags:
|
|
202
|
+
- development
|
|
203
|
+
- code
|
|
204
|
+
updated_at: 2025-11-17
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
## Mode: YOLO (Autonomous)
|
|
211
|
+
|
|
212
|
+
### Workflow
|
|
213
|
+
|
|
214
|
+
**CRITICAL: Decision Logging Integration (Story 6.1.2.6.2 Phase 2)**
|
|
215
|
+
|
|
216
|
+
Before starting, load decision logging infrastructure:
|
|
217
|
+
```javascript
|
|
218
|
+
const {
|
|
219
|
+
initializeDecisionLogging,
|
|
220
|
+
recordDecision,
|
|
221
|
+
trackFile,
|
|
222
|
+
trackTest,
|
|
223
|
+
completeDecisionLogging
|
|
224
|
+
} = require('./.aios-core/scripts/decision-recorder');
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
1. **Initialization** (On Yolo Mode Start)
|
|
228
|
+
- Read story file completely
|
|
229
|
+
- Extract story path from context
|
|
230
|
+
- **Initialize decision logging**:
|
|
231
|
+
```javascript
|
|
232
|
+
const context = await initializeDecisionLogging('dev', storyPath, {
|
|
233
|
+
agentLoadTime: loadTimeInMs // From agent startup metrics
|
|
234
|
+
});
|
|
235
|
+
```
|
|
236
|
+
- Identify all tasks and acceptance criteria
|
|
237
|
+
- Analyze technical requirements
|
|
238
|
+
|
|
239
|
+
2. **Task Execution** (Autonomous loop)
|
|
240
|
+
- Read next task
|
|
241
|
+
- **Make autonomous decisions** and LOG immediately:
|
|
242
|
+
|
|
243
|
+
**Architecture choices**:
|
|
244
|
+
```javascript
|
|
245
|
+
recordDecision({
|
|
246
|
+
description: 'Use microservices architecture for user service',
|
|
247
|
+
reason: 'Better scalability and independent deployment',
|
|
248
|
+
alternatives: ['Monolithic architecture', 'Serverless functions'],
|
|
249
|
+
type: 'architecture',
|
|
250
|
+
priority: 'high'
|
|
251
|
+
});
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Library selections**:
|
|
255
|
+
```javascript
|
|
256
|
+
recordDecision({
|
|
257
|
+
description: 'Use Axios for HTTP client',
|
|
258
|
+
reason: 'Better error handling, interceptor support, TypeScript definitions',
|
|
259
|
+
alternatives: ['Fetch API (native)', 'Got library', 'node-fetch'],
|
|
260
|
+
type: 'library-choice',
|
|
261
|
+
priority: 'medium'
|
|
262
|
+
});
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**Algorithm implementations**:
|
|
266
|
+
```javascript
|
|
267
|
+
recordDecision({
|
|
268
|
+
description: 'Use binary search for user lookup',
|
|
269
|
+
reason: 'O(log n) performance vs O(n) linear search',
|
|
270
|
+
alternatives: ['Linear search', 'Hash map lookup'],
|
|
271
|
+
type: 'algorithm',
|
|
272
|
+
priority: 'medium'
|
|
273
|
+
});
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
- Implement task and subtasks
|
|
277
|
+
- **Track file modifications**:
|
|
278
|
+
```javascript
|
|
279
|
+
trackFile('src/api/users.js', 'created');
|
|
280
|
+
trackFile('package.json', 'modified');
|
|
281
|
+
trackFile('src/legacy/old-api.js', 'deleted');
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
- Write tests
|
|
285
|
+
- Execute validations
|
|
286
|
+
- **Track test execution**:
|
|
287
|
+
```javascript
|
|
288
|
+
trackTest({
|
|
289
|
+
name: 'users.test.js',
|
|
290
|
+
passed: true,
|
|
291
|
+
duration: 125 // milliseconds
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
- Mark task complete [x] only if ALL validations pass
|
|
296
|
+
- Update File List
|
|
297
|
+
|
|
298
|
+
3. **Decision Logging** (Automatic)
|
|
299
|
+
- All decisions tracked in memory during execution
|
|
300
|
+
- File operations logged automatically
|
|
301
|
+
- Test results recorded
|
|
302
|
+
- Metrics collected (execution time, agent load time)
|
|
303
|
+
- **Format**: ADR (Architecture Decision Record) compliant
|
|
304
|
+
- **No manual logging needed** - use API only
|
|
305
|
+
|
|
306
|
+
4. **Completion** (On Yolo Mode Completion)
|
|
307
|
+
- All tasks complete
|
|
308
|
+
- All tests pass
|
|
309
|
+
- Execute story-dod-checklist
|
|
310
|
+
- Set status: "Ready for Review"
|
|
311
|
+
- **Generate decision log**:
|
|
312
|
+
```javascript
|
|
313
|
+
const logPath = await completeDecisionLogging(storyId, 'completed');
|
|
314
|
+
console.log(`📝 Decision log saved: ${logPath}`);
|
|
315
|
+
```
|
|
316
|
+
- **Summary**: Decision log summary displayed automatically
|
|
317
|
+
- Log file: `.ai/decision-log-{story-id}.md` (ADR format)
|
|
318
|
+
|
|
319
|
+
**User Prompts**: 0-1 (only if blocking issue requires approval)
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## Mode: Interactive (Balanced) **[DEFAULT]**
|
|
324
|
+
|
|
325
|
+
### Workflow
|
|
326
|
+
|
|
327
|
+
1. **Story Analysis** (With User)
|
|
328
|
+
- Read story file completely
|
|
329
|
+
- Present summary of tasks and AC
|
|
330
|
+
- Confirm understanding with user
|
|
331
|
+
|
|
332
|
+
2. **Task Execution** (Interactive loop)
|
|
333
|
+
- Read next task
|
|
334
|
+
- **Decision Checkpoints** (Prompt user at):
|
|
335
|
+
- Architecture decisions (e.g., "Use microservices or monolith?")
|
|
336
|
+
- Library selections (e.g., "Use Axios or Fetch?")
|
|
337
|
+
- Algorithm choices (e.g., "Use BFS or DFS for graph traversal?")
|
|
338
|
+
- Testing approaches (e.g., "Unit tests or integration tests first?")
|
|
339
|
+
|
|
340
|
+
- **Educational Explanations**:
|
|
341
|
+
- Before each decision: Explain the options and trade-offs
|
|
342
|
+
- After user choice: Explain why it's a good fit for this context
|
|
343
|
+
- During implementation: Explain what you're doing and why
|
|
344
|
+
|
|
345
|
+
- Implement task and subtasks
|
|
346
|
+
- Write tests
|
|
347
|
+
- Execute validations
|
|
348
|
+
- Show results to user before marking [x]
|
|
349
|
+
- Update File List
|
|
350
|
+
|
|
351
|
+
3. **Completion**
|
|
352
|
+
- All tasks complete
|
|
353
|
+
- All tests pass
|
|
354
|
+
- Execute story-dod-checklist
|
|
355
|
+
- Present completion summary to user
|
|
356
|
+
- Set status: "Ready for Review"
|
|
357
|
+
|
|
358
|
+
**User Prompts**: 5-10 (balanced for control and speed)
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Mode: Pre-Flight Planning (Comprehensive)
|
|
363
|
+
|
|
364
|
+
### Workflow
|
|
365
|
+
|
|
366
|
+
1. **Story Analysis Phase**
|
|
367
|
+
- Read story file completely
|
|
368
|
+
- **Identify all ambiguities**:
|
|
369
|
+
- Missing technical specifications
|
|
370
|
+
- Unspecified library choices
|
|
371
|
+
- Unclear acceptance criteria
|
|
372
|
+
- Undefined edge case handling
|
|
373
|
+
- Missing testing guidance
|
|
374
|
+
|
|
375
|
+
2. **Questionnaire Generation**
|
|
376
|
+
- Generate comprehensive questions covering:
|
|
377
|
+
- Architecture decisions
|
|
378
|
+
- Library and framework choices
|
|
379
|
+
- Algorithm and data structure selections
|
|
380
|
+
- Testing strategy
|
|
381
|
+
- Edge case handling
|
|
382
|
+
- Performance requirements
|
|
383
|
+
- Security considerations
|
|
384
|
+
|
|
385
|
+
- Present all questions to user at once
|
|
386
|
+
- Collect all responses in batch
|
|
387
|
+
|
|
388
|
+
3. **Execution Plan Creation**
|
|
389
|
+
- Create detailed execution plan with all decisions documented
|
|
390
|
+
- Present plan to user for approval
|
|
391
|
+
- Wait for user confirmation before proceeding
|
|
392
|
+
|
|
393
|
+
4. **Zero-Ambiguity Execution**
|
|
394
|
+
- Execute tasks with full context from questionnaire
|
|
395
|
+
- No additional decision points (all decided in pre-flight)
|
|
396
|
+
- Implement task and subtasks
|
|
397
|
+
- Write tests
|
|
398
|
+
- Execute validations
|
|
399
|
+
- Mark task complete [x] only if ALL validations pass
|
|
400
|
+
- Update File List
|
|
401
|
+
|
|
402
|
+
5. **Completion**
|
|
403
|
+
- All tasks complete
|
|
404
|
+
- All tests pass
|
|
405
|
+
- Execute story-dod-checklist
|
|
406
|
+
- Present execution summary vs. plan
|
|
407
|
+
- Set status: "Ready for Review"
|
|
408
|
+
|
|
409
|
+
**User Prompts**: All upfront (questionnaire phase), then 0 during execution
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Common Workflow (All Modes)
|
|
414
|
+
|
|
415
|
+
### Order of Execution
|
|
416
|
+
|
|
417
|
+
1. Read (first or next) task
|
|
418
|
+
2. Implement task and its subtasks
|
|
419
|
+
3. Write tests
|
|
420
|
+
4. Execute validations
|
|
421
|
+
5. **Only if ALL pass**: Mark task checkbox [x]
|
|
422
|
+
6. Update story File List (ensure all created/modified/deleted files listed)
|
|
423
|
+
7. Repeat until all tasks complete
|
|
424
|
+
|
|
425
|
+
### Story File Updates (All Modes)
|
|
426
|
+
|
|
427
|
+
**CRITICAL**: ONLY update these sections:
|
|
428
|
+
- Tasks / Subtasks checkboxes
|
|
429
|
+
- Dev Agent Record section and all subsections
|
|
430
|
+
- Agent Model Used
|
|
431
|
+
- Debug Log References
|
|
432
|
+
- Completion Notes List
|
|
433
|
+
- File List
|
|
434
|
+
- Change Log (add entry on completion)
|
|
435
|
+
- Status (set to "Ready for Review" when complete)
|
|
436
|
+
|
|
437
|
+
**DO NOT modify**: Story, Acceptance Criteria, Dev Notes, Testing sections
|
|
438
|
+
|
|
439
|
+
### Blocking Conditions (All Modes)
|
|
440
|
+
|
|
441
|
+
**HALT and ask user if**:
|
|
442
|
+
- Unapproved dependencies needed
|
|
443
|
+
- Ambiguous requirements after checking story
|
|
444
|
+
- 3 failures attempting to implement or fix something
|
|
445
|
+
- Missing configuration
|
|
446
|
+
- Failing regression tests
|
|
447
|
+
|
|
448
|
+
### Ready for Review Criteria (All Modes)
|
|
449
|
+
|
|
450
|
+
- Code matches all requirements
|
|
451
|
+
- All validations pass
|
|
452
|
+
- Follows coding standards
|
|
453
|
+
- File List is complete and accurate
|
|
454
|
+
|
|
455
|
+
### Completion Checklist (All Modes)
|
|
456
|
+
|
|
457
|
+
1. All tasks and subtasks marked [x]
|
|
458
|
+
2. All have corresponding tests
|
|
459
|
+
3. All validations pass
|
|
460
|
+
4. Full regression test suite passes
|
|
461
|
+
5. File List is complete
|
|
462
|
+
6. **Execute CodeRabbit Self-Healing Loop** (see below)
|
|
463
|
+
7. Execute `.aios-core/product/checklists/story-dod-checklist.md`
|
|
464
|
+
8. Set story status: "Ready for Review"
|
|
465
|
+
9. HALT (do not proceed further)
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## CodeRabbit Self-Healing Loop (Story 6.3.3)
|
|
470
|
+
|
|
471
|
+
**Purpose**: Catch and auto-fix code quality issues before marking story as "Ready for Review"
|
|
472
|
+
|
|
473
|
+
**Configuration**: Light self-healing (max 2 iterations, CRITICAL issues only)
|
|
474
|
+
|
|
475
|
+
### When to Execute
|
|
476
|
+
|
|
477
|
+
Execute **AFTER** all tasks are complete but **BEFORE** running the DOD checklist.
|
|
478
|
+
|
|
479
|
+
### Self-Healing Workflow
|
|
480
|
+
|
|
481
|
+
```
|
|
482
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
483
|
+
│ CODERABBIT SELF-HEALING │
|
|
484
|
+
│ (Light Mode - @dev) │
|
|
485
|
+
├──────────────────────────────────────────────────────────────┤
|
|
486
|
+
│ │
|
|
487
|
+
│ iteration = 0 │
|
|
488
|
+
│ max_iterations = 2 │
|
|
489
|
+
│ │
|
|
490
|
+
│ WHILE iteration < max_iterations: │
|
|
491
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
492
|
+
│ │ 1. Run CodeRabbit CLI │ │
|
|
493
|
+
│ │ wsl bash -c 'cd /mnt/c/.../@synkra/aios-core && │ │
|
|
494
|
+
│ │ ~/.local/bin/coderabbit --prompt-only │ │
|
|
495
|
+
│ │ -t uncommitted' │ │
|
|
496
|
+
│ │ │ │
|
|
497
|
+
│ │ 2. Parse output for severity levels │ │
|
|
498
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
499
|
+
│ │ │
|
|
500
|
+
│ ▼ │
|
|
501
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
502
|
+
│ │ IF no CRITICAL issues: │ │
|
|
503
|
+
│ │ - Document HIGH issues in story Dev Notes │ │
|
|
504
|
+
│ │ - Log: "✅ CodeRabbit passed" │ │
|
|
505
|
+
│ │ - BREAK → Proceed to DOD checklist │ │
|
|
506
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
507
|
+
│ │ │
|
|
508
|
+
│ ▼ │
|
|
509
|
+
│ ┌────────────────────────────────────────────────────┐ │
|
|
510
|
+
│ │ IF CRITICAL issues found: │ │
|
|
511
|
+
│ │ - Attempt auto-fix for each issue │ │
|
|
512
|
+
│ │ - iteration++ │ │
|
|
513
|
+
│ │ - CONTINUE loop │ │
|
|
514
|
+
│ └────────────────────────────────────────────────────┘ │
|
|
515
|
+
│ │ │
|
|
516
|
+
│ ▼ │
|
|
517
|
+
│ IF iteration == 2 AND CRITICAL issues remain: │
|
|
518
|
+
│ - Log: "❌ CRITICAL issues remain" │
|
|
519
|
+
│ - HALT and report to user │
|
|
520
|
+
│ - DO NOT mark story complete │
|
|
521
|
+
│ │
|
|
522
|
+
└──────────────────────────────────────────────────────────────┘
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
### Implementation Code
|
|
526
|
+
|
|
527
|
+
```javascript
|
|
528
|
+
async function runCodeRabbitSelfHealing(storyPath) {
|
|
529
|
+
const maxIterations = 2;
|
|
530
|
+
let iteration = 0;
|
|
531
|
+
|
|
532
|
+
console.log('🐰 Starting CodeRabbit Self-Healing Loop...');
|
|
533
|
+
console.log(` Mode: Light (CRITICAL only)`);
|
|
534
|
+
console.log(` Max Iterations: ${maxIterations}\n`);
|
|
535
|
+
|
|
536
|
+
while (iteration < maxIterations) {
|
|
537
|
+
console.log(`📋 Iteration ${iteration + 1}/${maxIterations}`);
|
|
538
|
+
|
|
539
|
+
// Run CodeRabbit CLI
|
|
540
|
+
const output = await runCodeRabbitCLI('uncommitted');
|
|
541
|
+
const issues = parseCodeRabbitOutput(output);
|
|
542
|
+
|
|
543
|
+
const criticalIssues = issues.filter(i => i.severity === 'CRITICAL');
|
|
544
|
+
const highIssues = issues.filter(i => i.severity === 'HIGH');
|
|
545
|
+
|
|
546
|
+
console.log(` Found: ${criticalIssues.length} CRITICAL, ${highIssues.length} HIGH`);
|
|
547
|
+
|
|
548
|
+
// No CRITICAL issues = success
|
|
549
|
+
if (criticalIssues.length === 0) {
|
|
550
|
+
if (highIssues.length > 0) {
|
|
551
|
+
console.log(`\n📝 Documenting ${highIssues.length} HIGH issues in story Dev Notes...`);
|
|
552
|
+
await documentIssuesInStory(storyPath, highIssues);
|
|
553
|
+
}
|
|
554
|
+
console.log('\n✅ CodeRabbit Self-Healing: PASSED');
|
|
555
|
+
return { success: true, iterations: iteration + 1 };
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
// Attempt auto-fix for CRITICAL issues
|
|
559
|
+
console.log(`\n🔧 Attempting auto-fix for ${criticalIssues.length} CRITICAL issues...`);
|
|
560
|
+
for (const issue of criticalIssues) {
|
|
561
|
+
await attemptAutoFix(issue);
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
iteration++;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
// Max iterations reached with CRITICAL issues
|
|
568
|
+
console.log('\n❌ CodeRabbit Self-Healing: FAILED');
|
|
569
|
+
console.log(` CRITICAL issues remain after ${maxIterations} iterations.`);
|
|
570
|
+
console.log(' HALTING - Please fix manually before marking story complete.');
|
|
571
|
+
|
|
572
|
+
return { success: false, iterations: maxIterations };
|
|
573
|
+
}
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Severity Handling
|
|
577
|
+
|
|
578
|
+
| Severity | Behavior | Notes |
|
|
579
|
+
|----------|----------|-------|
|
|
580
|
+
| **CRITICAL** | Auto-fix (max 2 attempts) | Security vulnerabilities, breaking bugs |
|
|
581
|
+
| **HIGH** | Document in story Dev Notes | Recommend fix before QA |
|
|
582
|
+
| **MEDIUM** | Ignore | @qa will handle |
|
|
583
|
+
| **LOW** | Ignore | Nits, not blocking |
|
|
584
|
+
|
|
585
|
+
### Timeout
|
|
586
|
+
|
|
587
|
+
- **Default**: 15 minutes per CodeRabbit run
|
|
588
|
+
- **Total max**: ~30 minutes (2 iterations)
|
|
589
|
+
|
|
590
|
+
### Error Handling
|
|
591
|
+
|
|
592
|
+
```javascript
|
|
593
|
+
// If CodeRabbit fails
|
|
594
|
+
try {
|
|
595
|
+
await runCodeRabbitSelfHealing(storyPath);
|
|
596
|
+
} catch (error) {
|
|
597
|
+
if (error.message.includes('command not found')) {
|
|
598
|
+
console.warn('⚠️ CodeRabbit not installed in WSL');
|
|
599
|
+
console.warn(' Skipping self-healing. Manual review required.');
|
|
600
|
+
return; // Continue without self-healing
|
|
601
|
+
}
|
|
602
|
+
if (error.message.includes('timeout')) {
|
|
603
|
+
console.warn('⚠️ CodeRabbit review timed out');
|
|
604
|
+
console.warn(' Skipping self-healing. Manual review required.');
|
|
605
|
+
return;
|
|
606
|
+
}
|
|
607
|
+
throw error; // Re-throw unknown errors
|
|
608
|
+
}
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
### Integration with Execution Modes
|
|
612
|
+
|
|
613
|
+
| Mode | Self-Healing Behavior |
|
|
614
|
+
|------|----------------------|
|
|
615
|
+
| **YOLO** | Automatic, no prompts |
|
|
616
|
+
| **Interactive** | Shows progress, no prompts |
|
|
617
|
+
| **Pre-Flight** | Included in execution plan |
|
|
618
|
+
|
|
619
|
+
---
|
|
620
|
+
|
|
621
|
+
## Mode Selection Implementation
|
|
622
|
+
|
|
623
|
+
### Validation
|
|
624
|
+
|
|
625
|
+
```javascript
|
|
626
|
+
function validateMode(mode) {
|
|
627
|
+
const validModes = ['yolo', 'interactive', 'preflight'];
|
|
628
|
+
|
|
629
|
+
if (!mode) {
|
|
630
|
+
return 'interactive'; // Default
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
if (validModes.includes(mode.toLowerCase())) {
|
|
634
|
+
return mode.toLowerCase();
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
console.warn(`Invalid mode '${mode}'. Defaulting to 'interactive'.`);
|
|
638
|
+
console.warn(`Valid modes: ${validModes.join(', ')}`);
|
|
639
|
+
return 'interactive';
|
|
640
|
+
}
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
### User Cancellation Handling
|
|
644
|
+
|
|
645
|
+
```javascript
|
|
646
|
+
function handleCancellation() {
|
|
647
|
+
console.log('Development cancelled by user.');
|
|
648
|
+
console.log('Story progress saved. You can resume with *develop {story-id}.');
|
|
649
|
+
process.exit(0);
|
|
650
|
+
}
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
### Missing Story File Handling
|
|
654
|
+
|
|
655
|
+
```javascript
|
|
656
|
+
function validateStoryFile(storyId) {
|
|
657
|
+
const storyPath = `docs/stories/${storyId}.yaml`;
|
|
658
|
+
|
|
659
|
+
if (!fs.existsSync(storyPath)) {
|
|
660
|
+
console.error(`Error: Story file not found at ${storyPath}`);
|
|
661
|
+
console.error(`Please verify story ID and try again.`);
|
|
662
|
+
process.exit(1);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
return storyPath;
|
|
666
|
+
}
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
---
|
|
670
|
+
|
|
671
|
+
## Decision Log Format (ADR Compliant)
|
|
672
|
+
|
|
673
|
+
**File**: `.ai/decision-log-{story-id}.md`
|
|
674
|
+
|
|
675
|
+
**Format**: ADR (Architecture Decision Record) - automatically generated by `completeDecisionLogging()`
|
|
676
|
+
|
|
677
|
+
**Sections**:
|
|
678
|
+
1. **Context** - Story info, execution time, files modified, tests run
|
|
679
|
+
2. **Decisions Made** - All autonomous decisions with type/priority classification
|
|
680
|
+
3. **Rationale & Alternatives** - Why each choice was made, what else was considered
|
|
681
|
+
4. **Implementation Changes** - Files created/modified/deleted, test results
|
|
682
|
+
5. **Consequences & Rollback** - Git commit hash, rollback instructions, performance impact
|
|
683
|
+
|
|
684
|
+
**Example Output**:
|
|
685
|
+
```markdown
|
|
686
|
+
# Decision Log: Story 6.1.2.6.2
|
|
687
|
+
|
|
688
|
+
**Generated:** 2025-11-16T14:30:00.000Z
|
|
689
|
+
**Agent:** dev
|
|
690
|
+
**Mode:** Yolo (Autonomous Development)
|
|
691
|
+
**Story:** docs/stories/story-6.1.2.6.2.md
|
|
692
|
+
**Rollback:** `git reset --hard abc123def456`
|
|
693
|
+
|
|
694
|
+
---
|
|
695
|
+
|
|
696
|
+
## Context
|
|
697
|
+
|
|
698
|
+
**Story Implementation:** 6.1.2.6.2
|
|
699
|
+
**Execution Time:** 15m 30s
|
|
700
|
+
**Status:** completed
|
|
701
|
+
|
|
702
|
+
**Files Modified:** 5 files
|
|
703
|
+
**Tests Run:** 8 tests
|
|
704
|
+
**Decisions Made:** 3 autonomous decisions
|
|
705
|
+
|
|
706
|
+
---
|
|
707
|
+
|
|
708
|
+
## Decisions Made
|
|
709
|
+
|
|
710
|
+
### Decision 1: Use Axios for HTTP client
|
|
711
|
+
|
|
712
|
+
**Timestamp:** 2025-11-16T14:32:15.000Z
|
|
713
|
+
**Type:** library-choice
|
|
714
|
+
**Priority:** medium
|
|
715
|
+
|
|
716
|
+
**Reason:** Better error handling, interceptor support, and TypeScript definitions
|
|
717
|
+
|
|
718
|
+
**Alternatives Considered:**
|
|
719
|
+
- Fetch API (native)
|
|
720
|
+
- Got library
|
|
721
|
+
- node-fetch
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
## Implementation Changes
|
|
726
|
+
|
|
727
|
+
### Files Modified
|
|
728
|
+
|
|
729
|
+
- `src/api/client.js` (created)
|
|
730
|
+
- `package.json` (modified)
|
|
731
|
+
|
|
732
|
+
### Test Results
|
|
733
|
+
|
|
734
|
+
- ✅ PASS: `api.test.js` (125ms)
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
|
|
738
|
+
## Consequences & Rollback
|
|
739
|
+
|
|
740
|
+
### Rollback Instructions
|
|
741
|
+
|
|
742
|
+
\`\`\`bash
|
|
743
|
+
# Full rollback
|
|
744
|
+
git reset --hard abc123def456
|
|
745
|
+
|
|
746
|
+
# Selective file rollback
|
|
747
|
+
git checkout abc123def456 -- <file-path>
|
|
748
|
+
\`\`\`
|
|
749
|
+
|
|
750
|
+
### Performance Impact
|
|
751
|
+
|
|
752
|
+
- Agent Load Time: 150ms
|
|
753
|
+
- Task Execution Time: 15m 30s
|
|
754
|
+
- Logging Overhead: Minimal (async, non-blocking)
|
|
755
|
+
```
|
|
756
|
+
|
|
757
|
+
**For complete format specification, see**: `docs/guides/decision-logging-guide.md`
|
|
758
|
+
|
|
759
|
+
---
|
|
760
|
+
|
|
761
|
+
## Examples
|
|
762
|
+
|
|
763
|
+
### Example 1: YOLO Mode
|
|
764
|
+
|
|
765
|
+
```bash
|
|
766
|
+
*develop 3.14 yolo
|
|
767
|
+
```
|
|
768
|
+
|
|
769
|
+
**Output**:
|
|
770
|
+
```
|
|
771
|
+
🚀 YOLO Mode - Autonomous Development
|
|
772
|
+
📋 Story 3.14: GitHub DevOps Agent
|
|
773
|
+
⚡ Executing autonomously with decision logging...
|
|
774
|
+
|
|
775
|
+
✅ Task 1 complete (Decision: Use Octokit library - rationale logged)
|
|
776
|
+
✅ Task 2 complete (Decision: REST API over GraphQL - rationale logged)
|
|
777
|
+
✅ Task 3 complete
|
|
778
|
+
✅ All tests pass
|
|
779
|
+
|
|
780
|
+
📝 Decision log: .ai/decision-log-3.14.md (3 decisions logged)
|
|
781
|
+
✅ Story ready for review
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
### Example 2: Interactive Mode (Default)
|
|
785
|
+
|
|
786
|
+
```bash
|
|
787
|
+
*develop 3.15
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
**Output**:
|
|
791
|
+
```
|
|
792
|
+
💬 Interactive Mode - Balanced Development
|
|
793
|
+
📋 Story 3.15: Expansion Pack Auto Configuration
|
|
794
|
+
|
|
795
|
+
📖 Task 1: Design configuration schema
|
|
796
|
+
❓ Decision Point - Schema Format
|
|
797
|
+
Option 1: YAML (human-readable, widely used)
|
|
798
|
+
Option 2: JSON (strict typing, better IDE support)
|
|
799
|
+
Option 3: TOML (simple, clear)
|
|
800
|
+
|
|
801
|
+
Your choice? [1/2/3]: _
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
### Example 3: Pre-Flight Planning
|
|
805
|
+
|
|
806
|
+
```bash
|
|
807
|
+
*develop 3.16 preflight
|
|
808
|
+
```
|
|
809
|
+
|
|
810
|
+
**Output**:
|
|
811
|
+
```
|
|
812
|
+
✈️ Pre-Flight Planning Mode
|
|
813
|
+
📋 Story 3.16: Data Architecture Capability
|
|
814
|
+
|
|
815
|
+
🔍 Analyzing story for ambiguities...
|
|
816
|
+
Found 5 technical decisions needed.
|
|
817
|
+
|
|
818
|
+
📝 Pre-Flight Questionnaire:
|
|
819
|
+
1. Database choice: PostgreSQL or MySQL?
|
|
820
|
+
2. ORM preference: Prisma, TypeORM, or raw SQL?
|
|
821
|
+
3. Migration strategy: Sequential or timestamp-based?
|
|
822
|
+
4. Backup approach: Daily snapshots or continuous?
|
|
823
|
+
5. Testing database: SQLite, Docker PostgreSQL, or mock?
|
|
824
|
+
|
|
825
|
+
[Please answer all questions before proceeding]
|
|
826
|
+
```
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
## Dependencies
|
|
831
|
+
|
|
832
|
+
- `.aios-core/product/checklists/story-dod-checklist.md` - Definition of Done checklist
|
|
833
|
+
|
|
834
|
+
## Tools
|
|
835
|
+
|
|
836
|
+
- git - Local operations (add, commit, status, diff, log)
|
|
837
|
+
- File system - Read/write story files
|
|
838
|
+
- Testing frameworks - Execute validation tests
|
|
839
|
+
|
|
840
|
+
## Notes
|
|
841
|
+
|
|
842
|
+
- **Backward Compatibility**: Existing commands like `*develop {story-id}` continue to work (use interactive mode)
|
|
843
|
+
- **Mode Aliases**: Can extend with `*develop-yolo`, `*develop-interactive`, `*develop-preflight` commands
|
|
844
|
+
- **Decision Logs**: Persisted in `.ai/decision-log-{story-id}.md` for future reference and review
|
|
845
|
+
- **Educational Value**: Interactive mode explanations help developers learn framework patterns
|
|
846
|
+
- **Scope Drift Prevention**: Pre-flight mode eliminates mid-development ambiguity
|