aios-core 4.2.15 → 4.4.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/cli/commands/validate/index.js +1 -1
- package/.aios-core/core/code-intel/code-intel-client.js +19 -5
- package/.aios-core/core/code-intel/helpers/creation-helper.js +183 -0
- package/.aios-core/core/code-intel/helpers/devops-helper.js +166 -0
- package/.aios-core/core/code-intel/helpers/planning-helper.js +248 -0
- package/.aios-core/core/code-intel/helpers/qa-helper.js +187 -0
- package/.aios-core/core/code-intel/helpers/story-helper.js +146 -0
- package/.aios-core/core/code-intel/hook-runtime.js +186 -0
- package/.aios-core/core/code-intel/index.js +2 -0
- package/.aios-core/core/code-intel/providers/code-graph-provider.js +8 -0
- package/.aios-core/core/code-intel/providers/provider-interface.js +9 -0
- package/.aios-core/core/code-intel/providers/registry-provider.js +515 -0
- package/.aios-core/core/config/schemas/framework-config.schema.json +155 -7
- package/.aios-core/core/config/schemas/project-config.schema.json +329 -15
- package/.aios-core/core/config/template-overrides.js +84 -0
- package/.aios-core/core/docs/troubleshooting-guide.md +1 -1
- package/.aios-core/core/doctor/checks/agent-memory.js +63 -0
- package/.aios-core/core/doctor/checks/claude-md.js +56 -0
- package/.aios-core/core/doctor/checks/code-intel.js +131 -0
- package/.aios-core/core/doctor/checks/commands-count.js +81 -0
- package/.aios-core/core/doctor/checks/core-config.js +53 -0
- package/.aios-core/core/doctor/checks/entity-registry.js +53 -0
- package/.aios-core/core/doctor/checks/git-hooks.js +50 -0
- package/.aios-core/core/doctor/checks/graph-dashboard.js +48 -0
- package/.aios-core/core/doctor/checks/hooks-claude-count.js +118 -0
- package/.aios-core/core/doctor/checks/ide-sync.js +85 -0
- package/.aios-core/core/doctor/checks/index.js +46 -0
- package/.aios-core/core/doctor/checks/node-version.js +33 -0
- package/.aios-core/core/doctor/checks/npm-packages.js +35 -0
- package/.aios-core/core/doctor/checks/rules-files.js +61 -0
- package/.aios-core/core/doctor/checks/settings-json.js +121 -0
- package/.aios-core/core/doctor/checks/skills-count.js +72 -0
- package/.aios-core/core/doctor/fix-handler.js +165 -0
- package/.aios-core/core/doctor/formatters/json.js +14 -0
- package/.aios-core/core/doctor/formatters/text.js +59 -0
- package/.aios-core/core/doctor/index.js +94 -0
- package/.aios-core/core/graph-dashboard/cli.js +361 -0
- package/.aios-core/core/graph-dashboard/data-sources/code-intel-source.js +234 -0
- package/.aios-core/core/graph-dashboard/data-sources/metrics-source.js +95 -0
- package/.aios-core/core/graph-dashboard/data-sources/registry-source.js +106 -0
- package/.aios-core/core/graph-dashboard/formatters/dot-formatter.js +45 -0
- package/.aios-core/core/graph-dashboard/formatters/html-formatter.js +1437 -0
- package/.aios-core/core/graph-dashboard/formatters/json-formatter.js +13 -0
- package/.aios-core/core/graph-dashboard/formatters/mermaid-formatter.js +59 -0
- package/.aios-core/core/graph-dashboard/index.js +21 -0
- package/.aios-core/core/graph-dashboard/renderers/stats-renderer.js +217 -0
- package/.aios-core/core/graph-dashboard/renderers/status-renderer.js +125 -0
- package/.aios-core/core/graph-dashboard/renderers/tree-renderer.js +119 -0
- package/.aios-core/core/health-check/base-check.js +1 -1
- package/.aios-core/core/health-check/check-registry.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/build-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/ci-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/deployment-readiness.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/docker-config.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/env-file.js +1 -1
- package/.aios-core/core/health-check/checks/deployment/index.js +1 -1
- package/.aios-core/core/health-check/checks/index.js +1 -1
- package/.aios-core/core/health-check/checks/local/disk-space.js +1 -1
- package/.aios-core/core/health-check/checks/local/environment-vars.js +1 -1
- package/.aios-core/core/health-check/checks/local/git-install.js +1 -1
- package/.aios-core/core/health-check/checks/local/ide-detection.js +1 -1
- package/.aios-core/core/health-check/checks/local/index.js +1 -1
- package/.aios-core/core/health-check/checks/local/memory.js +1 -1
- package/.aios-core/core/health-check/checks/local/network.js +1 -1
- package/.aios-core/core/health-check/checks/local/npm-install.js +1 -1
- package/.aios-core/core/health-check/checks/local/shell-environment.js +1 -1
- package/.aios-core/core/health-check/checks/project/agent-config.js +1 -1
- package/.aios-core/core/health-check/checks/project/aios-directory.js +1 -1
- package/.aios-core/core/health-check/checks/project/dependencies.js +1 -1
- package/.aios-core/core/health-check/checks/project/framework-config.js +1 -1
- package/.aios-core/core/health-check/checks/project/index.js +1 -1
- package/.aios-core/core/health-check/checks/project/node-version.js +1 -1
- package/.aios-core/core/health-check/checks/project/package-json.js +1 -1
- package/.aios-core/core/health-check/checks/project/task-definitions.js +1 -1
- package/.aios-core/core/health-check/checks/project/workflow-dependencies.js +1 -1
- package/.aios-core/core/health-check/checks/repository/branch-protection.js +1 -1
- package/.aios-core/core/health-check/checks/repository/commit-history.js +1 -1
- package/.aios-core/core/health-check/checks/repository/conflicts.js +1 -1
- package/.aios-core/core/health-check/checks/repository/git-repo.js +1 -1
- package/.aios-core/core/health-check/checks/repository/git-status.js +1 -1
- package/.aios-core/core/health-check/checks/repository/gitignore.js +1 -1
- package/.aios-core/core/health-check/checks/repository/index.js +1 -1
- package/.aios-core/core/health-check/checks/repository/large-files.js +1 -1
- package/.aios-core/core/health-check/checks/repository/lockfile-integrity.js +1 -1
- package/.aios-core/core/health-check/checks/services/api-endpoints.js +1 -1
- package/.aios-core/core/health-check/checks/services/claude-code.js +1 -1
- package/.aios-core/core/health-check/checks/services/gemini-cli.js +1 -1
- package/.aios-core/core/health-check/checks/services/github-cli.js +1 -1
- package/.aios-core/core/health-check/checks/services/index.js +1 -1
- package/.aios-core/core/health-check/checks/services/mcp-integration.js +1 -1
- package/.aios-core/core/health-check/engine.js +1 -1
- package/.aios-core/core/health-check/healers/backup-manager.js +1 -1
- package/.aios-core/core/health-check/healers/index.js +1 -1
- package/.aios-core/core/health-check/index.js +9 -2
- package/.aios-core/core/health-check/reporters/console.js +1 -1
- package/.aios-core/core/health-check/reporters/index.js +1 -1
- package/.aios-core/core/health-check/reporters/json.js +1 -1
- package/.aios-core/core/health-check/reporters/markdown.js +1 -1
- package/.aios-core/core/ids/layer-classifier.js +65 -0
- package/.aios-core/core/ids/registry-updater.js +49 -0
- package/.aios-core/core/index.esm.js +1 -1
- package/.aios-core/core/index.js +1 -1
- package/.aios-core/core/session/context-detector.js +2 -7
- package/.aios-core/core/synapse/context/context-tracker.js +9 -1
- package/.aios-core/core/synapse/engine.js +33 -13
- package/.aios-core/core/synapse/memory/memory-bridge.js +17 -43
- package/.aios-core/core/synapse/memory/synapse-memory-provider.js +201 -0
- package/.aios-core/core/synapse/runtime/hook-runtime.js +40 -2
- package/.aios-core/core/synapse/session/session-manager.js +3 -2
- package/.aios-core/core/synapse/utils/atomic-write.js +79 -0
- package/.aios-core/core-config.yaml +34 -1
- package/.aios-core/data/aios-kb.md +2 -2
- package/.aios-core/data/capability-detection.js +290 -0
- package/.aios-core/data/entity-registry.yaml +10450 -2129
- package/.aios-core/data/mcp-discipline.js +166 -0
- package/.aios-core/data/mcp-tool-examples.yaml +215 -0
- package/.aios-core/data/tok2-validation.js +168 -0
- package/.aios-core/data/tok3-token-comparison.js +123 -0
- package/.aios-core/data/tool-registry.yaml +648 -0
- package/.aios-core/data/tool-search-validation.js +174 -0
- package/.aios-core/data/workflow-chains.yaml +156 -0
- package/.aios-core/development/agents/aios-master.md +17 -10
- package/.aios-core/development/agents/analyst/MEMORY.md +33 -0
- package/.aios-core/development/agents/analyst.md +17 -10
- package/.aios-core/development/agents/architect/MEMORY.md +39 -0
- package/.aios-core/development/agents/architect.md +17 -10
- package/.aios-core/development/agents/data-engineer/MEMORY.md +32 -0
- package/.aios-core/development/agents/data-engineer.md +17 -10
- package/.aios-core/development/agents/dev/MEMORY.md +46 -0
- package/.aios-core/development/agents/dev.md +18 -11
- package/.aios-core/development/agents/devops/MEMORY.md +39 -0
- package/.aios-core/development/agents/devops.md +44 -10
- package/.aios-core/development/agents/pm/MEMORY.md +38 -0
- package/.aios-core/development/agents/pm.md +17 -10
- package/.aios-core/development/agents/po/MEMORY.md +45 -0
- package/.aios-core/development/agents/po.md +17 -10
- package/.aios-core/development/agents/qa/MEMORY.md +42 -0
- package/.aios-core/development/agents/qa.md +18 -11
- package/.aios-core/development/agents/sm/MEMORY.md +31 -0
- package/.aios-core/development/agents/sm.md +17 -10
- package/.aios-core/development/agents/squad-creator.md +18 -9
- package/.aios-core/development/agents/ux/MEMORY.md +31 -0
- package/.aios-core/development/agents/ux-design-expert.md +16 -9
- package/.aios-core/development/checklists/issue-triage-checklist.md +35 -0
- package/.aios-core/development/checklists/memory-audit-checklist.md +53 -0
- package/.aios-core/development/scripts/issue-triage.js +171 -0
- package/.aios-core/development/scripts/populate-entity-registry.js +412 -19
- package/.aios-core/development/scripts/unified-activation-pipeline.js +31 -10
- package/.aios-core/development/tasks/analyze-project-structure.md +48 -0
- package/.aios-core/development/tasks/apply-qa-fixes.md +7 -0
- package/.aios-core/development/tasks/architect-analyze-impact.md +8 -1
- package/.aios-core/development/tasks/brownfield-create-epic.md +41 -0
- package/.aios-core/development/tasks/brownfield-create-story.md +7 -0
- package/.aios-core/development/tasks/build-autonomous.md +7 -0
- package/.aios-core/development/tasks/create-deep-research-prompt.md +7 -0
- package/.aios-core/development/tasks/create-doc.md +44 -0
- package/.aios-core/development/tasks/create-next-story.md +17 -0
- package/.aios-core/development/tasks/create-suite.md +7 -0
- package/.aios-core/development/tasks/dev-develop-story.md +9 -1
- package/.aios-core/development/tasks/execute-checklist.md +7 -0
- package/.aios-core/development/tasks/github-devops-github-pr-automation.md +56 -0
- package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +70 -0
- package/.aios-core/development/tasks/github-issue-triage.md +118 -0
- package/.aios-core/development/tasks/health-check.yaml +206 -171
- package/.aios-core/development/tasks/kb-mode-interaction.md +3 -3
- package/.aios-core/development/tasks/plan-create-context.md +47 -1
- package/.aios-core/development/tasks/plan-create-implementation.md +55 -0
- package/.aios-core/development/tasks/po-close-story.md +7 -0
- package/.aios-core/development/tasks/pr-automation.md +5 -5
- package/.aios-core/development/tasks/qa-create-fix-request.md +7 -0
- package/.aios-core/development/tasks/qa-fix-issues.md +7 -0
- package/.aios-core/development/tasks/qa-gate.md +56 -0
- package/.aios-core/development/tasks/qa-review-story.md +32 -1
- package/.aios-core/development/tasks/release-management.md +7 -0
- package/.aios-core/development/tasks/resolve-github-issue.md +608 -0
- package/.aios-core/development/tasks/review-contributor-pr.md +152 -0
- package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
- package/.aios-core/development/tasks/spec-critique.md +8 -0
- package/.aios-core/development/tasks/spec-gather-requirements.md +7 -0
- package/.aios-core/development/tasks/spec-research-dependencies.md +4 -0
- package/.aios-core/development/tasks/spec-write-spec.md +5 -0
- package/.aios-core/development/tasks/triage-github-issues.md +356 -0
- package/.aios-core/development/tasks/validate-agents.md +4 -0
- package/.aios-core/development/tasks/validate-next-story.md +17 -0
- package/.aios-core/development/templates/agent-handoff-tmpl.yaml +48 -0
- package/.aios-core/development/templates/code-intel-integration-pattern.md +199 -0
- package/.aios-core/development/templates/ptc-entity-validation.md +113 -0
- package/.aios-core/development/templates/ptc-qa-gate.md +100 -0
- package/.aios-core/development/templates/ptc-research-aggregation.md +94 -0
- package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
- package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
- package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
- package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
- package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
- package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
- package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
- package/.aios-core/development/templates/squad/agent-template.md +11 -0
- package/.aios-core/development/templates/squad/task-template.md +21 -0
- package/.aios-core/development/templates/squad-template/LICENSE +21 -21
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +1 -1
- package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1 -1
- package/.aios-core/framework-config.yaml +8 -0
- package/.aios-core/index.esm.js +1 -1
- package/.aios-core/index.js +1 -1
- package/.aios-core/infrastructure/integrations/ai-providers/index.js +1 -1
- package/.aios-core/infrastructure/schemas/task-v3-schema.json +6 -0
- package/.aios-core/infrastructure/scripts/collect-tool-usage.js +311 -0
- package/.aios-core/infrastructure/scripts/generate-optimization-report.js +497 -0
- package/.aios-core/infrastructure/scripts/generate-settings-json.js +300 -0
- package/.aios-core/infrastructure/scripts/git-config-detector.js +65 -9
- package/.aios-core/infrastructure/scripts/ide-sync/index.js +3 -1
- package/.aios-core/infrastructure/scripts/ide-sync/transformers/github-copilot.js +184 -0
- package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
- package/.aios-core/infrastructure/templates/aios-sync.yaml.template +182 -182
- package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
- package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
- package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
- package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
- package/.aios-core/install-manifest.yaml +613 -305
- package/.aios-core/lib/build.json +1 -0
- package/.aios-core/local-config.yaml.template +71 -71
- package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
- package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
- package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
- package/.aios-core/monitor/hooks/notification.py +29 -29
- package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
- package/.aios-core/monitor/hooks/pre_compact.py +29 -29
- package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
- package/.aios-core/monitor/hooks/stop.py +29 -29
- package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
- package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
- package/.aios-core/product/templates/adr.hbs +125 -125
- package/.aios-core/product/templates/dbdr.hbs +241 -241
- package/.aios-core/product/templates/epic.hbs +212 -212
- package/.aios-core/product/templates/ide-rules/claude-rules.md +125 -0
- package/.aios-core/product/templates/pmdr.hbs +186 -186
- package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
- package/.aios-core/product/templates/prd.hbs +201 -201
- package/.aios-core/product/templates/story.hbs +263 -263
- package/.aios-core/product/templates/task.hbs +170 -170
- package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
- package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
- package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
- package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
- package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
- package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
- package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
- package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
- package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
- package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
- package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
- package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
- package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
- package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
- package/.aios-core/product/templates/tmpl-view.sql +177 -177
- package/.aios-core/scripts/pm.sh +0 -0
- package/.aios-core/user-guide.md +15 -15
- package/.aios-core/utils/filters/constants.js +10 -0
- package/.aios-core/utils/filters/content-filter.js +223 -0
- package/.aios-core/utils/filters/field-filter.js +126 -0
- package/.aios-core/utils/filters/index.js +180 -0
- package/.aios-core/utils/filters/schema-filter.js +157 -0
- package/.claude/CLAUDE.md +62 -0
- package/.claude/hooks/enforce-architecture-first.py +196 -196
- package/.claude/hooks/enforce-git-push-authority.sh +33 -0
- package/.claude/hooks/mind-clone-governance.py +192 -192
- package/.claude/hooks/read-protection.py +151 -151
- package/.claude/hooks/slug-validation.py +176 -176
- package/.claude/hooks/sql-governance.py +182 -182
- package/.claude/hooks/synapse-engine.cjs +28 -5
- package/.claude/hooks/write-path-validation.py +194 -194
- package/.claude/rules/agent-authority.md +105 -0
- package/.claude/rules/agent-handoff.md +97 -0
- package/.claude/rules/agent-memory-imports.md +15 -0
- package/.claude/rules/coderabbit-integration.md +101 -0
- package/.claude/rules/ids-principles.md +119 -0
- package/.claude/rules/story-lifecycle.md +145 -0
- package/.claude/rules/tool-examples.md +64 -0
- package/.claude/rules/tool-response-filtering.md +57 -0
- package/.claude/rules/workflow-execution.md +150 -0
- package/LICENSE +33 -33
- package/bin/aios-graph.js +9 -0
- package/bin/aios-init.js +2 -2
- package/bin/aios-minimal.js +0 -0
- package/bin/aios.js +17 -221
- package/bin/utils/detect-fsmonitor.js +70 -0
- package/bin/utils/framework-guard.js +238 -0
- package/bin/utils/validate-publish.js +108 -0
- package/package.json +6 -3
- package/packages/aios-install/bin/aios-install.js +0 -0
- package/packages/aios-install/bin/edmcp.js +0 -0
- package/packages/aios-pro-cli/bin/aios-pro.js +2 -0
- package/packages/installer/src/config/templates/core-config-template.js +25 -0
- package/packages/installer/src/installer/brownfield-upgrader.js +68 -5
- package/packages/installer/src/merger/index.js +3 -0
- package/packages/installer/src/merger/strategies/index.js +6 -0
- package/packages/installer/src/merger/strategies/yaml-merger.js +181 -0
- package/packages/installer/src/updater/index.js +4 -4
- package/packages/installer/src/wizard/i18n.js +321 -3
- package/packages/installer/src/wizard/ide-config-generator.js +173 -25
- package/packages/installer/src/wizard/index.js +119 -1
- package/packages/installer/src/wizard/pro-setup.js +137 -121
- package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +271 -0
- package/packages/installer/tests/unit/claude-md-template-v5/claude-md-template-v5.test.js +192 -0
- package/packages/installer/tests/unit/doctor/doctor-checks.test.js +610 -0
- package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +134 -0
- package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +186 -0
- package/packages/installer/tests/unit/generate-settings-json/generate-settings-json.test.js +309 -0
- package/packages/installer/tests/unit/ide-sync-integration/ide-sync-integration.test.js +230 -0
- package/packages/installer/tests/unit/merger/strategies.test.js +2 -2
- package/packages/installer/tests/unit/merger/yaml-merger.test.js +327 -0
- package/scripts/check-markdown-links.py +352 -352
- package/scripts/dashboard-parallel-dev.sh +0 -0
- package/scripts/dashboard-parallel-phase3.sh +0 -0
- package/scripts/dashboard-parallel-phase4.sh +0 -0
- package/scripts/install-monitor-hooks.sh +0 -0
- package/scripts/package-synapse.js +2 -1
- package/pro/README.md +0 -66
- package/pro/license/degradation.js +0 -220
- package/pro/license/errors.js +0 -450
- package/pro/license/feature-gate.js +0 -354
- package/pro/license/index.js +0 -181
- package/pro/license/license-api.js +0 -651
- package/pro/license/license-cache.js +0 -523
- package/pro/license/license-crypto.js +0 -303
|
@@ -556,6 +556,54 @@ After this analysis:
|
|
|
556
556
|
|
|
557
557
|
---
|
|
558
558
|
|
|
559
|
+
### Step 5.5: Code Intelligence: Dependency & Complexity (Optional — Auto-skip if unavailable)
|
|
560
|
+
|
|
561
|
+
> **Condition:** Only execute if `isCodeIntelAvailable()` returns true.
|
|
562
|
+
> If no code intelligence provider is available, skip this step silently and proceed to Step 6.
|
|
563
|
+
|
|
564
|
+
When code intelligence is available, enrich the analysis with real dependency and complexity data:
|
|
565
|
+
|
|
566
|
+
```javascript
|
|
567
|
+
const { isCodeIntelAvailable } = require('.aios-core/core/code-intel');
|
|
568
|
+
const { getDependencyGraph, getComplexityAnalysis } = require('.aios-core/core/code-intel/helpers/planning-helper');
|
|
569
|
+
|
|
570
|
+
if (isCodeIntelAvailable()) {
|
|
571
|
+
const depGraph = await getDependencyGraph(projectPath);
|
|
572
|
+
const complexity = await getComplexityAnalysis(serviceEntryPoints);
|
|
573
|
+
|
|
574
|
+
// Add to project-analysis.md:
|
|
575
|
+
// - depGraph.dependencies: real module dependency graph
|
|
576
|
+
// - depGraph.summary: { totalDeps, depth }
|
|
577
|
+
// - complexity.perFile: complexity score per file
|
|
578
|
+
// - complexity.average: average complexity across analyzed files
|
|
579
|
+
}
|
|
580
|
+
```
|
|
581
|
+
|
|
582
|
+
**If data is available, add these sections to the analysis documents:**
|
|
583
|
+
|
|
584
|
+
**Dependency Graph (Code Intelligence):**
|
|
585
|
+
|
|
586
|
+
| Metric | Value |
|
|
587
|
+
|--------|-------|
|
|
588
|
+
| Total Dependencies | {{depGraph.summary.totalDeps}} |
|
|
589
|
+
| Dependency Depth | {{depGraph.summary.depth}} |
|
|
590
|
+
|
|
591
|
+
{{depGraph.dependencies key relationships}}
|
|
592
|
+
|
|
593
|
+
**Complexity Metrics (Code Intelligence):**
|
|
594
|
+
|
|
595
|
+
| File | Complexity Score |
|
|
596
|
+
|------|-----------------|
|
|
597
|
+
{{for each complexity.perFile}}
|
|
598
|
+
| {{file}} | {{complexity.score}} |
|
|
599
|
+
{{end for}}
|
|
600
|
+
|
|
601
|
+
**Average Complexity:** {{complexity.average}}
|
|
602
|
+
|
|
603
|
+
> **Note:** These metrics are from real code analysis, not estimates.
|
|
604
|
+
|
|
605
|
+
---
|
|
606
|
+
|
|
559
607
|
### Step 6: Present Results
|
|
560
608
|
|
|
561
609
|
Display summary to user:
|
|
@@ -338,3 +338,10 @@ This task is complete when:
|
|
|
338
338
|
- ✅ All tests pass (linting, unit, integration)
|
|
339
339
|
- ✅ Story file is updated with changes
|
|
340
340
|
- ✅ Code is ready for QA re-review
|
|
341
|
+
|
|
342
|
+
## Handoff
|
|
343
|
+
next_agent: @qa
|
|
344
|
+
next_command: *review {story-id}
|
|
345
|
+
condition: Fixes applied, ready for re-review
|
|
346
|
+
alternatives:
|
|
347
|
+
- agent: @dev, command: *run-tests, condition: Need to verify fixes pass tests first
|
|
@@ -824,4 +824,11 @@ module.exports = AnalyzeImpactTask;
|
|
|
824
824
|
- Sanitize component paths and modification descriptions
|
|
825
825
|
- Ensure approval workflow cannot be bypassed for critical changes
|
|
826
826
|
- Validate output file paths for report generation
|
|
827
|
-
- Log all high-risk modification attempts for audit
|
|
827
|
+
- Log all high-risk modification attempts for audit
|
|
828
|
+
|
|
829
|
+
## Handoff
|
|
830
|
+
next_agent: @analyst
|
|
831
|
+
next_command: *research {topic}
|
|
832
|
+
condition: Complexity class is STANDARD or COMPLEX (research needed)
|
|
833
|
+
alternatives:
|
|
834
|
+
- agent: @pm, command: *write-spec, condition: Complexity class is SIMPLE (skip research)
|
|
@@ -55,6 +55,47 @@ const architectureShardedLocation = config.architectureShardedLocation || 'docs/
|
|
|
55
55
|
|
|
56
56
|
## Instructions
|
|
57
57
|
|
|
58
|
+
### 0. Code Intelligence: Codebase Overview (Optional — Auto-skip if unavailable)
|
|
59
|
+
|
|
60
|
+
> **Condition:** Only execute if `isCodeIntelAvailable()` returns true.
|
|
61
|
+
> If no code intelligence provider is available, skip this step silently and proceed to Step 1.
|
|
62
|
+
|
|
63
|
+
When code intelligence is available, enrich the epic with real codebase data:
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
const { isCodeIntelAvailable } = require('.aios-core/core/code-intel');
|
|
67
|
+
const { getCodebaseOverview, getDependencyGraph } = require('.aios-core/core/code-intel/helpers/planning-helper');
|
|
68
|
+
|
|
69
|
+
if (isCodeIntelAvailable()) {
|
|
70
|
+
const overview = await getCodebaseOverview('.');
|
|
71
|
+
const depGraph = await getDependencyGraph('.');
|
|
72
|
+
|
|
73
|
+
// Include in epic under "Codebase Intelligence" section:
|
|
74
|
+
// - overview.codebase: project patterns, file groups
|
|
75
|
+
// - overview.stats: file counts, language distribution
|
|
76
|
+
// - depGraph.dependencies: module relationships
|
|
77
|
+
// - depGraph.summary: { totalDeps, depth }
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**If data is available, add this section to the epic:**
|
|
82
|
+
|
|
83
|
+
#### Codebase Intelligence
|
|
84
|
+
|
|
85
|
+
| Metric | Value |
|
|
86
|
+
|--------|-------|
|
|
87
|
+
| Project Overview | {{overview.codebase summary}} |
|
|
88
|
+
| File Statistics | {{overview.stats}} |
|
|
89
|
+
| Dependency Depth | {{depGraph.summary.depth}} |
|
|
90
|
+
| Total Dependencies | {{depGraph.summary.totalDeps}} |
|
|
91
|
+
|
|
92
|
+
**Dependency Graph Summary:**
|
|
93
|
+
{{depGraph.dependencies key relationships}}
|
|
94
|
+
|
|
95
|
+
> **Note:** This section is auto-generated from code intelligence. Values are real codebase data, not estimates.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
58
99
|
### 1. Project Analysis (Required)
|
|
59
100
|
|
|
60
101
|
Before creating the epic, gather essential information about the existing project:
|
|
@@ -354,4 +354,11 @@ The story creation is successful when:
|
|
|
354
354
|
- Always prioritize existing system integrity
|
|
355
355
|
- When in doubt about integration complexity, use brownfield-create-epic instead
|
|
356
356
|
- Stories should take no more than 4 hours of focused development work
|
|
357
|
+
|
|
358
|
+
## Handoff
|
|
359
|
+
next_agent: @po
|
|
360
|
+
next_command: *validate-story-draft {story-id}
|
|
361
|
+
condition: Brownfield story created from assessment
|
|
362
|
+
alternatives:
|
|
363
|
+
- agent: @sm, command: *draft, condition: Need additional stories from same assessment
|
|
357
364
|
|
|
@@ -190,3 +190,10 @@ The AutonomousBuildLoop emits these events for monitoring:
|
|
|
190
190
|
---
|
|
191
191
|
|
|
192
192
|
_Task file for Story 8.1 - Coder Agent Loop_
|
|
193
|
+
|
|
194
|
+
## Handoff
|
|
195
|
+
next_agent: @qa
|
|
196
|
+
next_command: *review {story-id}
|
|
197
|
+
condition: Autonomous build completed successfully
|
|
198
|
+
alternatives:
|
|
199
|
+
- agent: @dev, command: *build-resume {story-id}, condition: Build failed, needs resume
|
|
@@ -496,4 +496,11 @@ CRITICAL: collaborate with the user to develop specific, actionable research que
|
|
|
496
496
|
- Balance comprehensiveness with focus
|
|
497
497
|
- Document assumptions and limitations clearly
|
|
498
498
|
- Plan for iterative refinement based on initial findings
|
|
499
|
+
|
|
500
|
+
## Handoff
|
|
501
|
+
next_agent: @pm
|
|
502
|
+
next_command: *write-spec
|
|
503
|
+
condition: Research complete (research.json created)
|
|
504
|
+
alternatives:
|
|
505
|
+
- agent: @architect, command: *analyze-impact, condition: Research reveals higher complexity than expected
|
|
499
506
|
|
|
@@ -250,6 +250,50 @@ If a YAML Template has not been provided, list all templates from .aios-core/pro
|
|
|
250
250
|
|
|
251
251
|
**NEVER ask yes/no questions or use any other format.**
|
|
252
252
|
|
|
253
|
+
## Code Intelligence: Codebase Intelligence Section (Optional — Auto-skip if unavailable)
|
|
254
|
+
|
|
255
|
+
> **Condition:** Only execute if `isCodeIntelAvailable()` returns true AND the document being created is a PRD or architecture document.
|
|
256
|
+
> If no code intelligence provider is available, skip this enhancement silently.
|
|
257
|
+
|
|
258
|
+
When creating PRDs or architecture documents with code intelligence available, add a "Codebase Intelligence" section:
|
|
259
|
+
|
|
260
|
+
```javascript
|
|
261
|
+
const { isCodeIntelAvailable } = require('.aios-core/core/code-intel');
|
|
262
|
+
const { getCodebaseOverview, getDependencyGraph } = require('.aios-core/core/code-intel/helpers/planning-helper');
|
|
263
|
+
|
|
264
|
+
if (isCodeIntelAvailable()) {
|
|
265
|
+
const overview = await getCodebaseOverview('.');
|
|
266
|
+
const depGraph = await getDependencyGraph('.');
|
|
267
|
+
|
|
268
|
+
// Add optional section to generated document:
|
|
269
|
+
// - overview.codebase: project patterns, file groups, architecture
|
|
270
|
+
// - overview.stats: file counts, language distribution, LOC
|
|
271
|
+
// - depGraph.summary: { totalDeps, depth }
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**If data is available, append this section to the generated document:**
|
|
276
|
+
|
|
277
|
+
```markdown
|
|
278
|
+
## Codebase Intelligence
|
|
279
|
+
|
|
280
|
+
> Auto-generated from code intelligence provider. Real codebase data, not estimates.
|
|
281
|
+
|
|
282
|
+
### Project Overview
|
|
283
|
+
{{overview.codebase summary — patterns, file groups, architecture}}
|
|
284
|
+
|
|
285
|
+
### Statistics
|
|
286
|
+
{{overview.stats — file counts, language distribution}}
|
|
287
|
+
|
|
288
|
+
### Dependency Summary
|
|
289
|
+
- **Total Dependencies:** {{depGraph.summary.totalDeps}}
|
|
290
|
+
- **Dependency Depth:** {{depGraph.summary.depth}}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
> **Note:** This section is optional and only appears when a code intelligence provider is available. The document is fully functional without it.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
253
297
|
## Processing Flow
|
|
254
298
|
|
|
255
299
|
1. **Parse YAML template** - Load template metadata and sections
|
|
@@ -239,6 +239,16 @@ To identify the next logical story based on project progress and epic definition
|
|
|
239
239
|
- **If no story files exist:** The next story is ALWAYS 1.1 (first story of first epic)
|
|
240
240
|
- Announce the identified story to the user: "Identified next story for preparation: {epicNum}.{storyNum} - {Story Title}"
|
|
241
241
|
|
|
242
|
+
### 1.2 Code Intelligence: Duplicate Detection & File Suggestions (Auto-skip if unavailable)
|
|
243
|
+
|
|
244
|
+
- **Check code intelligence availability:** Call `isCodeIntelAvailable()` from `.aios-core/core/code-intel`
|
|
245
|
+
- **If available:**
|
|
246
|
+
- Call `detectDuplicateStory(storyDescription)` from `.aios-core/core/code-intel/helpers/story-helper`
|
|
247
|
+
- If matches found: Display advisory warning to user — "Similar functionality found: {warning}". This is **advisory only** and does NOT block story creation.
|
|
248
|
+
- Call `suggestRelevantFiles(storyDescription)` from `.aios-core/core/code-intel/helpers/story-helper`
|
|
249
|
+
- If files found: Pre-populate a "Suggested Files" note in the Dev Notes section with the relevant file references
|
|
250
|
+
- **If NOT available:** Skip this step silently — story creation proceeds exactly as before
|
|
251
|
+
|
|
242
252
|
### 2. Gather Story Requirements and Previous Story Context
|
|
243
253
|
|
|
244
254
|
- Extract story requirements from the identified epic file
|
|
@@ -772,3 +782,10 @@ Use the primary agent from "Specialized Agent Assignment" to determine which sel
|
|
|
772
782
|
- Next steps: For Complex stories, suggest the user carefully review the story draft and also optionally have the PO run the task `aios-core/tasks/validate-next-story`
|
|
773
783
|
|
|
774
784
|
**ClickUp Integration Note:** This task now includes Epic verification (Section 5.1), ClickUp story task creation (Section 5.3), and automatic frontmatter updates (Section 5.4). Stories are created as subtasks of their parent Epic in ClickUp's Backlog list. If Epic verification or ClickUp sync fails, the story file will still be created locally with a warning message.
|
|
785
|
+
|
|
786
|
+
## Handoff
|
|
787
|
+
next_agent: @po
|
|
788
|
+
next_command: *validate-story-draft {story-id}
|
|
789
|
+
condition: Story status is Draft
|
|
790
|
+
alternatives:
|
|
791
|
+
- agent: @dev, command: *develop {story-id}, condition: Story already validated by PO
|
|
@@ -281,4 +281,11 @@ Creates multiple related components in a single batch operation with dependency
|
|
|
281
281
|
- Supports atomic creation (all or nothing)
|
|
282
282
|
- Transaction log enables rollback functionality
|
|
283
283
|
- Dependency resolution ensures correct creation order
|
|
284
|
+
|
|
285
|
+
## Handoff
|
|
286
|
+
next_agent: @dev
|
|
287
|
+
next_command: *run-tests
|
|
288
|
+
condition: Test suite created, ready for execution
|
|
289
|
+
alternatives:
|
|
290
|
+
- agent: @qa, command: *review {story-id}, condition: Tests written as part of review
|
|
284
291
|
- Preview functionality helps prevent mistakes
|
|
@@ -559,7 +559,7 @@ Execute **AFTER** all tasks are complete but **BEFORE** running the DOD checklis
|
|
|
559
559
|
│ WHILE iteration < max_iterations: │
|
|
560
560
|
│ ┌────────────────────────────────────────────────────┐ │
|
|
561
561
|
│ │ 1. Run CodeRabbit CLI │ │
|
|
562
|
-
│ │ wsl bash -c 'cd /mnt/c
|
|
562
|
+
│ │ wsl bash -c 'cd /mnt/c/.../aios-core && │ │
|
|
563
563
|
│ │ ~/.local/bin/coderabbit --prompt-only │ │
|
|
564
564
|
│ │ -t uncommitted' │ │
|
|
565
565
|
│ │ │ │
|
|
@@ -914,3 +914,11 @@ Found 5 technical decisions needed.
|
|
|
914
914
|
- **Decision Logs**: Persisted in `.ai/decision-log-{story-id}.md` for future reference and review
|
|
915
915
|
- **Educational Value**: Interactive mode explanations help developers learn framework patterns
|
|
916
916
|
- **Scope Drift Prevention**: Pre-flight mode eliminates mid-development ambiguity
|
|
917
|
+
|
|
918
|
+
## Handoff
|
|
919
|
+
next_agent: @qa
|
|
920
|
+
next_command: *review {story-id}
|
|
921
|
+
condition: Story status is Ready for Review
|
|
922
|
+
alternatives:
|
|
923
|
+
- agent: @qa, command: *gate {story-id}, condition: Quick gate decision needed
|
|
924
|
+
- agent: @dev, command: *apply-qa-fixes, condition: Self-identified issues during dev
|
|
@@ -299,3 +299,10 @@ The LLM will:
|
|
|
299
299
|
- Execute the complete checklist validation
|
|
300
300
|
- Present a final report with pass/fail rates and key findings
|
|
301
301
|
- Offer to provide detailed analysis of any section, especially those with warnings or failures
|
|
302
|
+
|
|
303
|
+
## Handoff
|
|
304
|
+
next_agent: @qa
|
|
305
|
+
next_command: *review {story-id}
|
|
306
|
+
condition: Checklist completed with all items passing
|
|
307
|
+
alternatives:
|
|
308
|
+
- agent: @dev, command: *develop {story-id}, condition: Checklist found blocking issues
|
|
@@ -501,6 +501,55 @@ function generatePRDescription(storyInfo, context) {
|
|
|
501
501
|
}
|
|
502
502
|
```
|
|
503
503
|
|
|
504
|
+
### Step 5.1: Enrich PR Description with Impact Analysis (Code Intelligence — Advisory)
|
|
505
|
+
|
|
506
|
+
> **Added by:** Story NOG-7 (DevOps Pre-Push Impact Analysis)
|
|
507
|
+
> **Behavior:** Auto-skips if code intelligence unavailable. Appends "Impact Analysis" section to PR body.
|
|
508
|
+
|
|
509
|
+
```javascript
|
|
510
|
+
const { generateImpactSummary } = require('.aios-core/core/code-intel/helpers/devops-helper');
|
|
511
|
+
|
|
512
|
+
async function enrichPRWithImpactAnalysis(description, changedFiles) {
|
|
513
|
+
// Auto-skip if code intelligence unavailable
|
|
514
|
+
const { isCodeIntelAvailable } = require('.aios-core/core/code-intel');
|
|
515
|
+
if (!isCodeIntelAvailable()) {
|
|
516
|
+
return description; // Return original description unchanged
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
const impact = await generateImpactSummary(changedFiles);
|
|
520
|
+
|
|
521
|
+
if (!impact) {
|
|
522
|
+
return description; // No impact data — return original
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// Append Impact Analysis section to PR description
|
|
526
|
+
const impactSection = [
|
|
527
|
+
'',
|
|
528
|
+
'## Impact Analysis',
|
|
529
|
+
'',
|
|
530
|
+
impact.summary,
|
|
531
|
+
'',
|
|
532
|
+
'---',
|
|
533
|
+
'*Generated by Code Intelligence (advisory only)*',
|
|
534
|
+
].join('\n');
|
|
535
|
+
|
|
536
|
+
return description + impactSection;
|
|
537
|
+
}
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**Usage in PR creation flow:**
|
|
541
|
+
|
|
542
|
+
After `generatePRDescription()` returns the base description, call `enrichPRWithImpactAnalysis()` to optionally append the impact section:
|
|
543
|
+
|
|
544
|
+
```javascript
|
|
545
|
+
let description = generatePRDescription(storyInfo, context);
|
|
546
|
+
description = await enrichPRWithImpactAnalysis(description, changedFiles);
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
**Important:** If code intelligence is unavailable or returns null, the PR description remains unchanged — zero impact on existing workflow.
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
504
553
|
### Step 6: Determine Base Branch
|
|
505
554
|
|
|
506
555
|
```javascript
|
|
@@ -662,3 +711,10 @@ github:
|
|
|
662
711
|
- Gracefully handles missing story file
|
|
663
712
|
- Uses GitHub CLI for reliability
|
|
664
713
|
- Repository context from detector
|
|
714
|
+
|
|
715
|
+
## Handoff
|
|
716
|
+
next_agent: @po
|
|
717
|
+
next_command: *close-story {story-id}
|
|
718
|
+
condition: PR merged successfully
|
|
719
|
+
alternatives:
|
|
720
|
+
- agent: @dev, command: *apply-qa-fixes, condition: PR review requested changes
|
|
@@ -630,6 +630,64 @@ function determineSecurityGate(results) {
|
|
|
630
630
|
}
|
|
631
631
|
```
|
|
632
632
|
|
|
633
|
+
### 9.1 Impact Analysis (Code Intelligence — Advisory Only)
|
|
634
|
+
|
|
635
|
+
> **Added by:** Story NOG-7 (DevOps Pre-Push Impact Analysis)
|
|
636
|
+
> **Behavior:** Advisory only — NEVER blocks push. Auto-skips if code intelligence unavailable.
|
|
637
|
+
|
|
638
|
+
```javascript
|
|
639
|
+
const { assessPrePushImpact, classifyRiskLevel } = require('.aios-core/core/code-intel/helpers/devops-helper');
|
|
640
|
+
|
|
641
|
+
async function runImpactAnalysis(changedFiles) {
|
|
642
|
+
// Auto-skip if code intelligence unavailable
|
|
643
|
+
const { isCodeIntelAvailable } = require('.aios-core/core/code-intel');
|
|
644
|
+
if (!isCodeIntelAvailable()) {
|
|
645
|
+
console.log('ℹ️ Code intelligence not available — skipping impact analysis');
|
|
646
|
+
return { skipped: true };
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
console.log('\n📊 Running Impact Analysis...\n');
|
|
650
|
+
|
|
651
|
+
const result = await assessPrePushImpact(changedFiles);
|
|
652
|
+
|
|
653
|
+
if (!result) {
|
|
654
|
+
console.log('ℹ️ Impact analysis returned no data — skipping');
|
|
655
|
+
return { skipped: true };
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
// Display formatted report
|
|
659
|
+
console.log(result.report);
|
|
660
|
+
|
|
661
|
+
// HIGH risk: add extra warning (advisory, does not block)
|
|
662
|
+
if (result.riskLevel === 'HIGH') {
|
|
663
|
+
console.log('\n⚠️ HIGH RISK detected. Additional confirmation recommended before push.');
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
return {
|
|
667
|
+
skipped: false,
|
|
668
|
+
riskLevel: result.riskLevel,
|
|
669
|
+
blastRadius: result.impact ? result.impact.blastRadius : 0,
|
|
670
|
+
report: result.report,
|
|
671
|
+
};
|
|
672
|
+
}
|
|
673
|
+
```
|
|
674
|
+
|
|
675
|
+
**Integration with Summary Report:**
|
|
676
|
+
|
|
677
|
+
Add impact analysis results to the summary report section:
|
|
678
|
+
|
|
679
|
+
```
|
|
680
|
+
Impact Analysis:
|
|
681
|
+
📊 Blast Radius: {N} files affected
|
|
682
|
+
📊 Risk Level: {LOW|MEDIUM|HIGH}
|
|
683
|
+
{if HIGH: ⚠️ HIGH RISK: {N} files affected. Confirm push?}
|
|
684
|
+
{if skipped: ℹ️ Skipped (code intelligence not available)}
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
**Important:** This step is purely advisory. A HIGH risk level does NOT change the overall gate status from PASS to FAIL. It only adds an informational warning and may prompt additional user confirmation.
|
|
688
|
+
|
|
689
|
+
---
|
|
690
|
+
|
|
633
691
|
### 10. Verify Story Status (Optional - if using story-driven workflow)
|
|
634
692
|
|
|
635
693
|
```javascript
|
|
@@ -684,6 +742,11 @@ Quality Checks:
|
|
|
684
742
|
✓ Security scan PASSED
|
|
685
743
|
⚠️ Story status SKIPPED (no story file)
|
|
686
744
|
|
|
745
|
+
Impact Analysis (Advisory):
|
|
746
|
+
📊 Blast Radius: {N} files affected
|
|
747
|
+
📊 Risk Level: LOW | MEDIUM | HIGH
|
|
748
|
+
ℹ️ Advisory only — does not affect gate status
|
|
749
|
+
|
|
687
750
|
Security Scan Results:
|
|
688
751
|
✓ Dependencies: 0 critical, 0 high, 2 moderate, 5 low
|
|
689
752
|
✓ Code patterns: No security issues
|
|
@@ -788,3 +851,10 @@ Called via `@github-devops *pre-push` command.
|
|
|
788
851
|
- Security scan is mandatory (TR-3.14.11)
|
|
789
852
|
- User always has final approval
|
|
790
853
|
- Detailed logging for troubleshooting
|
|
854
|
+
|
|
855
|
+
## Handoff
|
|
856
|
+
next_agent: @devops
|
|
857
|
+
next_command: *push
|
|
858
|
+
condition: All quality checks PASS
|
|
859
|
+
alternatives:
|
|
860
|
+
- agent: @dev, command: *run-tests, condition: Quality checks FAIL, needs fixes
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# GitHub Issue Triage
|
|
2
|
+
|
|
3
|
+
## Task Metadata
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
id: github-issue-triage
|
|
7
|
+
name: GitHub Issue Triage
|
|
8
|
+
agent: devops
|
|
9
|
+
elicit: true
|
|
10
|
+
category: repository-management
|
|
11
|
+
story: GHIM-001
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Description
|
|
15
|
+
|
|
16
|
+
Systematic triage of GitHub issues for the aios-core repository. This task guides @devops through the process of reviewing, classifying, and labeling open issues.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
- GitHub CLI authenticated (`gh auth status`)
|
|
21
|
+
- Label taxonomy deployed (see GHIM-001 Phase 1)
|
|
22
|
+
- Access to repository issue list
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### Step 1: List Untriaged Issues
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
gh issue list --label "status: needs-triage" --json number,title,labels,createdAt,author --limit 50
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Step 2: Per-Issue Triage (Interactive)
|
|
33
|
+
|
|
34
|
+
For each issue, apply the triage checklist:
|
|
35
|
+
|
|
36
|
+
1. **Read the issue** — Open and understand the content
|
|
37
|
+
2. **Classify type** — Apply ONE `type:` label:
|
|
38
|
+
- `type: bug` — Something isn't working
|
|
39
|
+
- `type: feature` — New feature request
|
|
40
|
+
- `type: enhancement` — Improvement to existing feature
|
|
41
|
+
- `type: docs` — Documentation issue
|
|
42
|
+
- `type: test` — Test coverage
|
|
43
|
+
- `type: chore` — Maintenance/cleanup
|
|
44
|
+
3. **Assess priority** — Apply ONE `priority:` label:
|
|
45
|
+
- `priority: P1` — Critical, blocks users (SLA: 24h response)
|
|
46
|
+
- `priority: P2` — High, affects most users (SLA: 3 days)
|
|
47
|
+
- `priority: P3` — Medium, affects some users (SLA: 1 week)
|
|
48
|
+
- `priority: P4` — Low, edge cases (backlog)
|
|
49
|
+
4. **Assign area** — Apply ONE or more `area:` labels:
|
|
50
|
+
- `area: core`, `area: installer`, `area: synapse`, `area: cli`
|
|
51
|
+
- `area: pro`, `area: health-check`, `area: docs`, `area: devops`
|
|
52
|
+
5. **Update status** — Replace `status: needs-triage` with appropriate status:
|
|
53
|
+
- `status: confirmed` — Valid issue, ready for work
|
|
54
|
+
- `status: needs-info` — Need more details from reporter
|
|
55
|
+
6. **Check for duplicates** — If duplicate, label `duplicate` and close with reference
|
|
56
|
+
7. **Community labels** — If appropriate, add `community: good first issue` or `community: help wanted`
|
|
57
|
+
|
|
58
|
+
### Step 3: Apply Labels
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
gh issue edit {number} --add-label "type: bug,priority: P2,area: installer,status: confirmed" --remove-label "status: needs-triage"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Step 4: Batch Triage (Optional)
|
|
65
|
+
|
|
66
|
+
For bulk operations, use the triage script:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
node .aios-core/development/scripts/issue-triage.js --list
|
|
70
|
+
node .aios-core/development/scripts/issue-triage.js --apply {number} --type bug --priority P2 --area installer
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Step 5: Report
|
|
74
|
+
|
|
75
|
+
After triage session, generate summary:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
node .aios-core/development/scripts/issue-triage.js --report
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Triage Decision Tree
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Issue received
|
|
85
|
+
├── Is it a duplicate? → Label "duplicate", close with reference
|
|
86
|
+
├── Is it spam/invalid? → Label "status: invalid", close
|
|
87
|
+
├── Needs more info? → Label "status: needs-info", comment asking for details
|
|
88
|
+
└── Valid issue
|
|
89
|
+
├── Bug → "type: bug" + priority + area
|
|
90
|
+
├── Feature → "type: feature" + priority + area
|
|
91
|
+
├── Enhancement → "type: enhancement" + priority + area
|
|
92
|
+
├── Docs → "type: docs" + priority: P3/P4
|
|
93
|
+
└── Tests → "type: test" + area
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Priority Guidelines
|
|
97
|
+
|
|
98
|
+
| Signal | Priority |
|
|
99
|
+
|--------|----------|
|
|
100
|
+
| Blocks installation/usage for all users | P1 |
|
|
101
|
+
| Breaks core functionality, no workaround | P1 |
|
|
102
|
+
| Significant bug with workaround | P2 |
|
|
103
|
+
| Feature highly requested by community | P2 |
|
|
104
|
+
| Minor bug, edge case | P3 |
|
|
105
|
+
| Nice-to-have improvement | P3 |
|
|
106
|
+
| Cosmetic, low impact | P4 |
|
|
107
|
+
|
|
108
|
+
## Command Integration
|
|
109
|
+
|
|
110
|
+
This task is invocable via @devops:
|
|
111
|
+
- `*triage` — Start interactive triage session
|
|
112
|
+
- `*triage --batch` — Run batch triage with script
|
|
113
|
+
|
|
114
|
+
## Output
|
|
115
|
+
|
|
116
|
+
- All issues labeled with `type:`, `priority:`, `area:` labels
|
|
117
|
+
- `status: needs-triage` removed from all triaged issues
|
|
118
|
+
- Triage report with summary of actions taken
|