aios-core 2.1.6 ā 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-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 +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/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/.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,427 +1,427 @@
|
|
|
1
|
-
# github-pr-automation.md
|
|
2
|
-
|
|
3
|
-
**Task**: GitHub Pull Request Automation (Repository-Agnostic)
|
|
4
|
-
|
|
5
|
-
**Purpose**: Automate PR creation from story context using GitHub CLI, works with ANY repository.
|
|
6
|
-
|
|
7
|
-
**When to use**: After pushing feature branch, via `@github-devops *create-pr` command.
|
|
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
|
-
---
|
|
31
|
-
|
|
32
|
-
## Task Definition (AIOS Task Format V1.0)
|
|
33
|
-
|
|
34
|
-
```yaml
|
|
35
|
-
task: githubDevopsGithubPrAutomation()
|
|
36
|
-
responsƔvel: Gage (Automator)
|
|
37
|
-
responsavel_type: Agente
|
|
38
|
-
atomic_layer: Organism
|
|
39
|
-
|
|
40
|
-
**Entrada:**
|
|
41
|
-
- campo: task
|
|
42
|
-
tipo: string
|
|
43
|
-
origem: User Input
|
|
44
|
-
obrigatório: true
|
|
45
|
-
validação: Must be registered task
|
|
46
|
-
|
|
47
|
-
- campo: parameters
|
|
48
|
-
tipo: object
|
|
49
|
-
origem: User Input
|
|
50
|
-
obrigatório: false
|
|
51
|
-
validação: Valid task parameters
|
|
52
|
-
|
|
53
|
-
- campo: mode
|
|
54
|
-
tipo: string
|
|
55
|
-
origem: User Input
|
|
56
|
-
obrigatório: false
|
|
57
|
-
validação: yolo|interactive|pre-flight
|
|
58
|
-
|
|
59
|
-
**SaĆda:**
|
|
60
|
-
- campo: execution_result
|
|
61
|
-
tipo: object
|
|
62
|
-
destino: Memory
|
|
63
|
-
persistido: false
|
|
64
|
-
|
|
65
|
-
- campo: logs
|
|
66
|
-
tipo: array
|
|
67
|
-
destino: File (.ai/logs/*)
|
|
68
|
-
persistido: true
|
|
69
|
-
|
|
70
|
-
- campo: state
|
|
71
|
-
tipo: object
|
|
72
|
-
destino: State management
|
|
73
|
-
persistido: true
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Pre-Conditions
|
|
79
|
-
|
|
80
|
-
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
81
|
-
|
|
82
|
-
**Checklist:**
|
|
83
|
-
|
|
84
|
-
```yaml
|
|
85
|
-
pre-conditions:
|
|
86
|
-
- [ ] Task is registered; required parameters provided; dependencies met
|
|
87
|
-
tipo: pre-condition
|
|
88
|
-
blocker: true
|
|
89
|
-
validação: |
|
|
90
|
-
Check task is registered; required parameters provided; dependencies met
|
|
91
|
-
error_message: "Pre-condition failed: Task is registered; required parameters provided; dependencies met"
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## Post-Conditions
|
|
97
|
-
|
|
98
|
-
**Purpose:** Validate execution success AFTER task completes
|
|
99
|
-
|
|
100
|
-
**Checklist:**
|
|
101
|
-
|
|
102
|
-
```yaml
|
|
103
|
-
post-conditions:
|
|
104
|
-
- [ ] Task completed; exit code 0; expected outputs created
|
|
105
|
-
tipo: post-condition
|
|
106
|
-
blocker: true
|
|
107
|
-
validação: |
|
|
108
|
-
Verify task completed; exit code 0; expected outputs created
|
|
109
|
-
error_message: "Post-condition failed: Task completed; exit code 0; expected outputs created"
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Acceptance Criteria
|
|
115
|
-
|
|
116
|
-
**Purpose:** Definitive pass/fail criteria for task completion
|
|
117
|
-
|
|
118
|
-
**Checklist:**
|
|
119
|
-
|
|
120
|
-
```yaml
|
|
121
|
-
acceptance-criteria:
|
|
122
|
-
- [ ] Task completed as expected; side effects documented
|
|
123
|
-
tipo: acceptance-criterion
|
|
124
|
-
blocker: true
|
|
125
|
-
validação: |
|
|
126
|
-
Assert task completed as expected; side effects documented
|
|
127
|
-
error_message: "Acceptance criterion not met: Task completed as expected; side effects documented"
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Tools
|
|
133
|
-
|
|
134
|
-
**External/shared resources used by this task:**
|
|
135
|
-
|
|
136
|
-
- **Tool:** task-runner
|
|
137
|
-
- **Purpose:** Task execution and orchestration
|
|
138
|
-
- **Source:** .aios-core/core/task-runner.js
|
|
139
|
-
|
|
140
|
-
- **Tool:** logger
|
|
141
|
-
- **Purpose:** Execution logging and error tracking
|
|
142
|
-
- **Source:** .aios-core/utils/logger.js
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Scripts
|
|
147
|
-
|
|
148
|
-
**Agent-specific code for this task:**
|
|
149
|
-
|
|
150
|
-
- **Script:** execute-task.js
|
|
151
|
-
- **Purpose:** Generic task execution wrapper
|
|
152
|
-
- **Language:** JavaScript
|
|
153
|
-
- **Location:** .aios-core/scripts/execute-task.js
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Error Handling
|
|
158
|
-
|
|
159
|
-
**Strategy:** retry
|
|
160
|
-
|
|
161
|
-
**Common Errors:**
|
|
162
|
-
|
|
163
|
-
1. **Error:** Task Not Found
|
|
164
|
-
- **Cause:** Specified task not registered in system
|
|
165
|
-
- **Resolution:** Verify task name and registration
|
|
166
|
-
- **Recovery:** List available tasks, suggest similar
|
|
167
|
-
|
|
168
|
-
2. **Error:** Invalid Parameters
|
|
169
|
-
- **Cause:** Task parameters do not match expected schema
|
|
170
|
-
- **Resolution:** Validate parameters against task definition
|
|
171
|
-
- **Recovery:** Provide parameter template, reject execution
|
|
172
|
-
|
|
173
|
-
3. **Error:** Execution Timeout
|
|
174
|
-
- **Cause:** Task exceeds maximum execution time
|
|
175
|
-
- **Resolution:** Optimize task or increase timeout
|
|
176
|
-
- **Recovery:** Kill task, cleanup resources, log state
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
## Performance
|
|
181
|
-
|
|
182
|
-
**Expected Metrics:**
|
|
183
|
-
|
|
184
|
-
```yaml
|
|
185
|
-
duration_expected: 5-15 min (estimated)
|
|
186
|
-
cost_estimated: $0.003-0.010
|
|
187
|
-
token_usage: ~3,000-10,000 tokens
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
**Optimization Notes:**
|
|
191
|
-
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Metadata
|
|
196
|
-
|
|
197
|
-
```yaml
|
|
198
|
-
story: N/A
|
|
199
|
-
version: 1.0.0
|
|
200
|
-
dependencies:
|
|
201
|
-
- N/A
|
|
202
|
-
tags:
|
|
203
|
-
- automation
|
|
204
|
-
- workflow
|
|
205
|
-
updated_at: 2025-11-17
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
## Prerequisites
|
|
212
|
-
- GitHub CLI (`gh`) installed and authenticated
|
|
213
|
-
- Feature branch pushed to remote
|
|
214
|
-
- Repository context detected
|
|
215
|
-
- Story file (optional but recommended)
|
|
216
|
-
|
|
217
|
-
## Workflow Steps
|
|
218
|
-
|
|
219
|
-
### Step 1: Detect Repository Context
|
|
220
|
-
|
|
221
|
-
```javascript
|
|
222
|
-
const { detectRepositoryContext } = require('./../scripts/repository-detector');
|
|
223
|
-
|
|
224
|
-
const context = detectRepositoryContext();
|
|
225
|
-
if (!context) {
|
|
226
|
-
throw new Error('Unable to detect repository. Run "aios init" first.');
|
|
227
|
-
}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Step 2: Get Current Branch
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
git branch --show-current
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### Step 3: Extract Story Information (if available)
|
|
237
|
-
|
|
238
|
-
```javascript
|
|
239
|
-
function extractStoryInfo(storyPath) {
|
|
240
|
-
if (!storyPath || !fs.existsSync(storyPath)) {
|
|
241
|
-
return null;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
const content = fs.readFileSync(storyPath, 'utf8');
|
|
245
|
-
|
|
246
|
-
// Extract story ID from path or content
|
|
247
|
-
const storyIdMatch = storyPath.match(/(\d+\.\d+)/);
|
|
248
|
-
const storyId = storyIdMatch ? storyIdMatch[1] : null;
|
|
249
|
-
|
|
250
|
-
// Extract title
|
|
251
|
-
const titleMatch = content.match(/title:\s*["']?([^"'\n]+)["']?/);
|
|
252
|
-
const title = titleMatch ? titleMatch[1] : null;
|
|
253
|
-
|
|
254
|
-
// Extract acceptance criteria
|
|
255
|
-
const acMatch = content.match(/acceptance_criteria:([\s\S]*?)(?=\n\w+:|$)/);
|
|
256
|
-
|
|
257
|
-
return {
|
|
258
|
-
id: storyId,
|
|
259
|
-
title,
|
|
260
|
-
hasAcceptanceCriteria: !!acMatch
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
### Step 4: Generate PR Title
|
|
266
|
-
|
|
267
|
-
```javascript
|
|
268
|
-
function generatePRTitle(branchName, storyInfo) {
|
|
269
|
-
if (storyInfo && storyInfo.id && storyInfo.title) {
|
|
270
|
-
return `[Story ${storyInfo.id}] ${storyInfo.title}`;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
// Fallback: convert branch name to title
|
|
274
|
-
return branchName
|
|
275
|
-
.replace(/^feature\//, '')
|
|
276
|
-
.replace(/-/g, ' ')
|
|
277
|
-
.replace(/\b\w/g, c => c.toUpperCase());
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
### Step 5: Generate PR Description
|
|
282
|
-
|
|
283
|
-
```javascript
|
|
284
|
-
function generatePRDescription(storyInfo, context) {
|
|
285
|
-
let description = `## Summary\n\n`;
|
|
286
|
-
|
|
287
|
-
if (storyInfo) {
|
|
288
|
-
description += `This PR implements Story ${storyInfo.id}: ${storyInfo.title}\n\n`;
|
|
289
|
-
description += `**Story File**: \`docs/stories/${storyInfo.id}-*.yaml\`\n\n`;
|
|
290
|
-
} else {
|
|
291
|
-
description += `Changes from branch: ${branchName}\n\n`;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
description += `## Changes\n\n`;
|
|
295
|
-
description += `- [List main changes here]\n\n`;
|
|
296
|
-
|
|
297
|
-
description += `## Testing\n\n`;
|
|
298
|
-
description += `- [ ] Unit tests passing\n`;
|
|
299
|
-
description += `- [ ] Integration tests passing\n`;
|
|
300
|
-
description += `- [ ] Manual testing completed\n\n`;
|
|
301
|
-
|
|
302
|
-
description += `## Checklist\n\n`;
|
|
303
|
-
description += `- [ ] Code follows project standards\n`;
|
|
304
|
-
description += `- [ ] Tests added/updated\n`;
|
|
305
|
-
description += `- [ ] Documentation updated\n`;
|
|
306
|
-
description += `- [ ] Quality gates passed\n\n`;
|
|
307
|
-
|
|
308
|
-
description += `---\n`;
|
|
309
|
-
description += `**Repository**: ${context.repositoryUrl}\n`;
|
|
310
|
-
description += `**Mode**: ${context.mode}\n`;
|
|
311
|
-
description += `**Package**: ${context.packageName} v${context.packageVersion}\n`;
|
|
312
|
-
|
|
313
|
-
return description;
|
|
314
|
-
}
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Step 6: Determine Base Branch
|
|
318
|
-
|
|
319
|
-
```javascript
|
|
320
|
-
function determineBaseBranch(projectRoot) {
|
|
321
|
-
// Check default branch from git
|
|
322
|
-
try {
|
|
323
|
-
const defaultBranch = execSync('git symbolic-ref refs/remotes/origin/HEAD', {
|
|
324
|
-
cwd: projectRoot
|
|
325
|
-
}).toString().trim().replace('refs/remotes/origin/', '');
|
|
326
|
-
|
|
327
|
-
return defaultBranch || 'main';
|
|
328
|
-
} catch (error) {
|
|
329
|
-
// Fallback to main
|
|
330
|
-
return 'main';
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
### Step 7: Create PR via GitHub CLI
|
|
336
|
-
|
|
337
|
-
```bash
|
|
338
|
-
gh pr create \
|
|
339
|
-
--title "{title}" \
|
|
340
|
-
--body "{description}" \
|
|
341
|
-
--base {baseBranch} \
|
|
342
|
-
--head {currentBranch}
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
### Step 8: Assign Reviewers (Optional)
|
|
346
|
-
|
|
347
|
-
```javascript
|
|
348
|
-
function assignReviewers(storyType, prNumber) {
|
|
349
|
-
const reviewerMap = {
|
|
350
|
-
'feature': ['@dev-team'],
|
|
351
|
-
'bugfix': ['@qa-team'],
|
|
352
|
-
'docs': ['@tech-writer'],
|
|
353
|
-
'security': ['@security-team']
|
|
354
|
-
};
|
|
355
|
-
|
|
356
|
-
const reviewers = reviewerMap[storyType] || ['@dev-team'];
|
|
357
|
-
|
|
358
|
-
execSync(`gh pr edit ${prNumber} --add-reviewer ${reviewers.join(',')}`, {
|
|
359
|
-
cwd: projectRoot
|
|
360
|
-
});
|
|
361
|
-
}
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
## Example Usage
|
|
365
|
-
|
|
366
|
-
```javascript
|
|
367
|
-
const { execSync } = require('child_process');
|
|
368
|
-
const fs = require('fs');
|
|
369
|
-
const path = require('path');
|
|
370
|
-
|
|
371
|
-
async function createPullRequest(storyPath) {
|
|
372
|
-
// Detect repository
|
|
373
|
-
const { detectRepositoryContext } = require('./../scripts/repository-detector');
|
|
374
|
-
const context = detectRepositoryContext();
|
|
375
|
-
|
|
376
|
-
console.log(`\nš Creating Pull Request`);
|
|
377
|
-
console.log(`Repository: ${context.repositoryUrl}\n`);
|
|
378
|
-
|
|
379
|
-
// Get current branch
|
|
380
|
-
const currentBranch = execSync('git branch --show-current', {
|
|
381
|
-
cwd: context.projectRoot
|
|
382
|
-
}).toString().trim();
|
|
383
|
-
|
|
384
|
-
console.log(`Branch: ${currentBranch}`);
|
|
385
|
-
|
|
386
|
-
// Extract story info
|
|
387
|
-
const storyInfo = storyPath ? extractStoryInfo(storyPath) : null;
|
|
388
|
-
|
|
389
|
-
// Generate PR title and description
|
|
390
|
-
const title = generatePRTitle(currentBranch, storyInfo);
|
|
391
|
-
const description = generatePRDescription(storyInfo, context);
|
|
392
|
-
const baseBranch = determineBaseBranch(context.projectRoot);
|
|
393
|
-
|
|
394
|
-
console.log(`Title: ${title}`);
|
|
395
|
-
console.log(`Base: ${baseBranch}\n`);
|
|
396
|
-
|
|
397
|
-
// Create PR
|
|
398
|
-
const prUrl = execSync(
|
|
399
|
-
`gh pr create --title "${title}" --body "${description}" --base ${baseBranch}`,
|
|
400
|
-
{ cwd: context.projectRoot }
|
|
401
|
-
).toString().trim();
|
|
402
|
-
|
|
403
|
-
console.log(`\nā
Pull Request created: ${prUrl}`);
|
|
404
|
-
|
|
405
|
-
return { prUrl, title, baseBranch };
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
module.exports = { createPullRequest };
|
|
409
|
-
```
|
|
410
|
-
|
|
411
|
-
## Integration
|
|
412
|
-
|
|
413
|
-
Called by `@github-devops` via `*create-pr` command.
|
|
414
|
-
|
|
415
|
-
## Validation
|
|
416
|
-
|
|
417
|
-
- PR created in correct repository (detected URL)
|
|
418
|
-
- PR title includes story ID if available
|
|
419
|
-
- PR description includes repository context
|
|
420
|
-
- Base branch is correct (usually main/master)
|
|
421
|
-
|
|
422
|
-
## Notes
|
|
423
|
-
|
|
424
|
-
- Works with ANY repository
|
|
425
|
-
- Gracefully handles missing story file
|
|
426
|
-
- Uses GitHub CLI for reliability
|
|
427
|
-
- Repository context from detector
|
|
1
|
+
# github-pr-automation.md
|
|
2
|
+
|
|
3
|
+
**Task**: GitHub Pull Request Automation (Repository-Agnostic)
|
|
4
|
+
|
|
5
|
+
**Purpose**: Automate PR creation from story context using GitHub CLI, works with ANY repository.
|
|
6
|
+
|
|
7
|
+
**When to use**: After pushing feature branch, via `@github-devops *create-pr` command.
|
|
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
|
+
---
|
|
31
|
+
|
|
32
|
+
## Task Definition (AIOS Task Format V1.0)
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
task: githubDevopsGithubPrAutomation()
|
|
36
|
+
responsƔvel: Gage (Automator)
|
|
37
|
+
responsavel_type: Agente
|
|
38
|
+
atomic_layer: Organism
|
|
39
|
+
|
|
40
|
+
**Entrada:**
|
|
41
|
+
- campo: task
|
|
42
|
+
tipo: string
|
|
43
|
+
origem: User Input
|
|
44
|
+
obrigatório: true
|
|
45
|
+
validação: Must be registered task
|
|
46
|
+
|
|
47
|
+
- campo: parameters
|
|
48
|
+
tipo: object
|
|
49
|
+
origem: User Input
|
|
50
|
+
obrigatório: false
|
|
51
|
+
validação: Valid task parameters
|
|
52
|
+
|
|
53
|
+
- campo: mode
|
|
54
|
+
tipo: string
|
|
55
|
+
origem: User Input
|
|
56
|
+
obrigatório: false
|
|
57
|
+
validação: yolo|interactive|pre-flight
|
|
58
|
+
|
|
59
|
+
**SaĆda:**
|
|
60
|
+
- campo: execution_result
|
|
61
|
+
tipo: object
|
|
62
|
+
destino: Memory
|
|
63
|
+
persistido: false
|
|
64
|
+
|
|
65
|
+
- campo: logs
|
|
66
|
+
tipo: array
|
|
67
|
+
destino: File (.ai/logs/*)
|
|
68
|
+
persistido: true
|
|
69
|
+
|
|
70
|
+
- campo: state
|
|
71
|
+
tipo: object
|
|
72
|
+
destino: State management
|
|
73
|
+
persistido: true
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Pre-Conditions
|
|
79
|
+
|
|
80
|
+
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
|
|
81
|
+
|
|
82
|
+
**Checklist:**
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
pre-conditions:
|
|
86
|
+
- [ ] Task is registered; required parameters provided; dependencies met
|
|
87
|
+
tipo: pre-condition
|
|
88
|
+
blocker: true
|
|
89
|
+
validação: |
|
|
90
|
+
Check task is registered; required parameters provided; dependencies met
|
|
91
|
+
error_message: "Pre-condition failed: Task is registered; required parameters provided; dependencies met"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Post-Conditions
|
|
97
|
+
|
|
98
|
+
**Purpose:** Validate execution success AFTER task completes
|
|
99
|
+
|
|
100
|
+
**Checklist:**
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
post-conditions:
|
|
104
|
+
- [ ] Task completed; exit code 0; expected outputs created
|
|
105
|
+
tipo: post-condition
|
|
106
|
+
blocker: true
|
|
107
|
+
validação: |
|
|
108
|
+
Verify task completed; exit code 0; expected outputs created
|
|
109
|
+
error_message: "Post-condition failed: Task completed; exit code 0; expected outputs created"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Acceptance Criteria
|
|
115
|
+
|
|
116
|
+
**Purpose:** Definitive pass/fail criteria for task completion
|
|
117
|
+
|
|
118
|
+
**Checklist:**
|
|
119
|
+
|
|
120
|
+
```yaml
|
|
121
|
+
acceptance-criteria:
|
|
122
|
+
- [ ] Task completed as expected; side effects documented
|
|
123
|
+
tipo: acceptance-criterion
|
|
124
|
+
blocker: true
|
|
125
|
+
validação: |
|
|
126
|
+
Assert task completed as expected; side effects documented
|
|
127
|
+
error_message: "Acceptance criterion not met: Task completed as expected; side effects documented"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Tools
|
|
133
|
+
|
|
134
|
+
**External/shared resources used by this task:**
|
|
135
|
+
|
|
136
|
+
- **Tool:** task-runner
|
|
137
|
+
- **Purpose:** Task execution and orchestration
|
|
138
|
+
- **Source:** .aios-core/core/task-runner.js
|
|
139
|
+
|
|
140
|
+
- **Tool:** logger
|
|
141
|
+
- **Purpose:** Execution logging and error tracking
|
|
142
|
+
- **Source:** .aios-core/utils/logger.js
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Scripts
|
|
147
|
+
|
|
148
|
+
**Agent-specific code for this task:**
|
|
149
|
+
|
|
150
|
+
- **Script:** execute-task.js
|
|
151
|
+
- **Purpose:** Generic task execution wrapper
|
|
152
|
+
- **Language:** JavaScript
|
|
153
|
+
- **Location:** .aios-core/scripts/execute-task.js
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Error Handling
|
|
158
|
+
|
|
159
|
+
**Strategy:** retry
|
|
160
|
+
|
|
161
|
+
**Common Errors:**
|
|
162
|
+
|
|
163
|
+
1. **Error:** Task Not Found
|
|
164
|
+
- **Cause:** Specified task not registered in system
|
|
165
|
+
- **Resolution:** Verify task name and registration
|
|
166
|
+
- **Recovery:** List available tasks, suggest similar
|
|
167
|
+
|
|
168
|
+
2. **Error:** Invalid Parameters
|
|
169
|
+
- **Cause:** Task parameters do not match expected schema
|
|
170
|
+
- **Resolution:** Validate parameters against task definition
|
|
171
|
+
- **Recovery:** Provide parameter template, reject execution
|
|
172
|
+
|
|
173
|
+
3. **Error:** Execution Timeout
|
|
174
|
+
- **Cause:** Task exceeds maximum execution time
|
|
175
|
+
- **Resolution:** Optimize task or increase timeout
|
|
176
|
+
- **Recovery:** Kill task, cleanup resources, log state
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Performance
|
|
181
|
+
|
|
182
|
+
**Expected Metrics:**
|
|
183
|
+
|
|
184
|
+
```yaml
|
|
185
|
+
duration_expected: 5-15 min (estimated)
|
|
186
|
+
cost_estimated: $0.003-0.010
|
|
187
|
+
token_usage: ~3,000-10,000 tokens
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Optimization Notes:**
|
|
191
|
+
- Break into smaller workflows; implement checkpointing; use async processing where possible
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Metadata
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
story: N/A
|
|
199
|
+
version: 1.0.0
|
|
200
|
+
dependencies:
|
|
201
|
+
- N/A
|
|
202
|
+
tags:
|
|
203
|
+
- automation
|
|
204
|
+
- workflow
|
|
205
|
+
updated_at: 2025-11-17
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
## Prerequisites
|
|
212
|
+
- GitHub CLI (`gh`) installed and authenticated
|
|
213
|
+
- Feature branch pushed to remote
|
|
214
|
+
- Repository context detected
|
|
215
|
+
- Story file (optional but recommended)
|
|
216
|
+
|
|
217
|
+
## Workflow Steps
|
|
218
|
+
|
|
219
|
+
### Step 1: Detect Repository Context
|
|
220
|
+
|
|
221
|
+
```javascript
|
|
222
|
+
const { detectRepositoryContext } = require('./../scripts/repository-detector');
|
|
223
|
+
|
|
224
|
+
const context = detectRepositoryContext();
|
|
225
|
+
if (!context) {
|
|
226
|
+
throw new Error('Unable to detect repository. Run "aios init" first.');
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Step 2: Get Current Branch
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
git branch --show-current
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Step 3: Extract Story Information (if available)
|
|
237
|
+
|
|
238
|
+
```javascript
|
|
239
|
+
function extractStoryInfo(storyPath) {
|
|
240
|
+
if (!storyPath || !fs.existsSync(storyPath)) {
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const content = fs.readFileSync(storyPath, 'utf8');
|
|
245
|
+
|
|
246
|
+
// Extract story ID from path or content
|
|
247
|
+
const storyIdMatch = storyPath.match(/(\d+\.\d+)/);
|
|
248
|
+
const storyId = storyIdMatch ? storyIdMatch[1] : null;
|
|
249
|
+
|
|
250
|
+
// Extract title
|
|
251
|
+
const titleMatch = content.match(/title:\s*["']?([^"'\n]+)["']?/);
|
|
252
|
+
const title = titleMatch ? titleMatch[1] : null;
|
|
253
|
+
|
|
254
|
+
// Extract acceptance criteria
|
|
255
|
+
const acMatch = content.match(/acceptance_criteria:([\s\S]*?)(?=\n\w+:|$)/);
|
|
256
|
+
|
|
257
|
+
return {
|
|
258
|
+
id: storyId,
|
|
259
|
+
title,
|
|
260
|
+
hasAcceptanceCriteria: !!acMatch
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Step 4: Generate PR Title
|
|
266
|
+
|
|
267
|
+
```javascript
|
|
268
|
+
function generatePRTitle(branchName, storyInfo) {
|
|
269
|
+
if (storyInfo && storyInfo.id && storyInfo.title) {
|
|
270
|
+
return `[Story ${storyInfo.id}] ${storyInfo.title}`;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Fallback: convert branch name to title
|
|
274
|
+
return branchName
|
|
275
|
+
.replace(/^feature\//, '')
|
|
276
|
+
.replace(/-/g, ' ')
|
|
277
|
+
.replace(/\b\w/g, c => c.toUpperCase());
|
|
278
|
+
}
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step 5: Generate PR Description
|
|
282
|
+
|
|
283
|
+
```javascript
|
|
284
|
+
function generatePRDescription(storyInfo, context) {
|
|
285
|
+
let description = `## Summary\n\n`;
|
|
286
|
+
|
|
287
|
+
if (storyInfo) {
|
|
288
|
+
description += `This PR implements Story ${storyInfo.id}: ${storyInfo.title}\n\n`;
|
|
289
|
+
description += `**Story File**: \`docs/stories/${storyInfo.id}-*.yaml\`\n\n`;
|
|
290
|
+
} else {
|
|
291
|
+
description += `Changes from branch: ${branchName}\n\n`;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
description += `## Changes\n\n`;
|
|
295
|
+
description += `- [List main changes here]\n\n`;
|
|
296
|
+
|
|
297
|
+
description += `## Testing\n\n`;
|
|
298
|
+
description += `- [ ] Unit tests passing\n`;
|
|
299
|
+
description += `- [ ] Integration tests passing\n`;
|
|
300
|
+
description += `- [ ] Manual testing completed\n\n`;
|
|
301
|
+
|
|
302
|
+
description += `## Checklist\n\n`;
|
|
303
|
+
description += `- [ ] Code follows project standards\n`;
|
|
304
|
+
description += `- [ ] Tests added/updated\n`;
|
|
305
|
+
description += `- [ ] Documentation updated\n`;
|
|
306
|
+
description += `- [ ] Quality gates passed\n\n`;
|
|
307
|
+
|
|
308
|
+
description += `---\n`;
|
|
309
|
+
description += `**Repository**: ${context.repositoryUrl}\n`;
|
|
310
|
+
description += `**Mode**: ${context.mode}\n`;
|
|
311
|
+
description += `**Package**: ${context.packageName} v${context.packageVersion}\n`;
|
|
312
|
+
|
|
313
|
+
return description;
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Step 6: Determine Base Branch
|
|
318
|
+
|
|
319
|
+
```javascript
|
|
320
|
+
function determineBaseBranch(projectRoot) {
|
|
321
|
+
// Check default branch from git
|
|
322
|
+
try {
|
|
323
|
+
const defaultBranch = execSync('git symbolic-ref refs/remotes/origin/HEAD', {
|
|
324
|
+
cwd: projectRoot
|
|
325
|
+
}).toString().trim().replace('refs/remotes/origin/', '');
|
|
326
|
+
|
|
327
|
+
return defaultBranch || 'main';
|
|
328
|
+
} catch (error) {
|
|
329
|
+
// Fallback to main
|
|
330
|
+
return 'main';
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Step 7: Create PR via GitHub CLI
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
gh pr create \
|
|
339
|
+
--title "{title}" \
|
|
340
|
+
--body "{description}" \
|
|
341
|
+
--base {baseBranch} \
|
|
342
|
+
--head {currentBranch}
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Step 8: Assign Reviewers (Optional)
|
|
346
|
+
|
|
347
|
+
```javascript
|
|
348
|
+
function assignReviewers(storyType, prNumber) {
|
|
349
|
+
const reviewerMap = {
|
|
350
|
+
'feature': ['@dev-team'],
|
|
351
|
+
'bugfix': ['@qa-team'],
|
|
352
|
+
'docs': ['@tech-writer'],
|
|
353
|
+
'security': ['@security-team']
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
const reviewers = reviewerMap[storyType] || ['@dev-team'];
|
|
357
|
+
|
|
358
|
+
execSync(`gh pr edit ${prNumber} --add-reviewer ${reviewers.join(',')}`, {
|
|
359
|
+
cwd: projectRoot
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
## Example Usage
|
|
365
|
+
|
|
366
|
+
```javascript
|
|
367
|
+
const { execSync } = require('child_process');
|
|
368
|
+
const fs = require('fs');
|
|
369
|
+
const path = require('path');
|
|
370
|
+
|
|
371
|
+
async function createPullRequest(storyPath) {
|
|
372
|
+
// Detect repository
|
|
373
|
+
const { detectRepositoryContext } = require('./../scripts/repository-detector');
|
|
374
|
+
const context = detectRepositoryContext();
|
|
375
|
+
|
|
376
|
+
console.log(`\nš Creating Pull Request`);
|
|
377
|
+
console.log(`Repository: ${context.repositoryUrl}\n`);
|
|
378
|
+
|
|
379
|
+
// Get current branch
|
|
380
|
+
const currentBranch = execSync('git branch --show-current', {
|
|
381
|
+
cwd: context.projectRoot
|
|
382
|
+
}).toString().trim();
|
|
383
|
+
|
|
384
|
+
console.log(`Branch: ${currentBranch}`);
|
|
385
|
+
|
|
386
|
+
// Extract story info
|
|
387
|
+
const storyInfo = storyPath ? extractStoryInfo(storyPath) : null;
|
|
388
|
+
|
|
389
|
+
// Generate PR title and description
|
|
390
|
+
const title = generatePRTitle(currentBranch, storyInfo);
|
|
391
|
+
const description = generatePRDescription(storyInfo, context);
|
|
392
|
+
const baseBranch = determineBaseBranch(context.projectRoot);
|
|
393
|
+
|
|
394
|
+
console.log(`Title: ${title}`);
|
|
395
|
+
console.log(`Base: ${baseBranch}\n`);
|
|
396
|
+
|
|
397
|
+
// Create PR
|
|
398
|
+
const prUrl = execSync(
|
|
399
|
+
`gh pr create --title "${title}" --body "${description}" --base ${baseBranch}`,
|
|
400
|
+
{ cwd: context.projectRoot }
|
|
401
|
+
).toString().trim();
|
|
402
|
+
|
|
403
|
+
console.log(`\nā
Pull Request created: ${prUrl}`);
|
|
404
|
+
|
|
405
|
+
return { prUrl, title, baseBranch };
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
module.exports = { createPullRequest };
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
## Integration
|
|
412
|
+
|
|
413
|
+
Called by `@github-devops` via `*create-pr` command.
|
|
414
|
+
|
|
415
|
+
## Validation
|
|
416
|
+
|
|
417
|
+
- PR created in correct repository (detected URL)
|
|
418
|
+
- PR title includes story ID if available
|
|
419
|
+
- PR description includes repository context
|
|
420
|
+
- Base branch is correct (usually main/master)
|
|
421
|
+
|
|
422
|
+
## Notes
|
|
423
|
+
|
|
424
|
+
- Works with ANY repository
|
|
425
|
+
- Gracefully handles missing story file
|
|
426
|
+
- Uses GitHub CLI for reliability
|
|
427
|
+
- Repository context from detector
|