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
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Tool Search Validation Script
|
|
4
|
+
// =============================================================================
|
|
5
|
+
// Validates that tool-registry.yaml keywords align with expected tool search
|
|
6
|
+
// queries. This is a static validation — actual Tool Search latency and accuracy
|
|
7
|
+
// are measured during interactive Claude Code sessions.
|
|
8
|
+
//
|
|
9
|
+
// Story: TOK-2 (AC: 5, 6, 7)
|
|
10
|
+
// =============================================================================
|
|
11
|
+
|
|
12
|
+
const fs = require('fs');
|
|
13
|
+
const path = require('path');
|
|
14
|
+
|
|
15
|
+
const REGISTRY_PATH = path.resolve(__dirname, 'tool-registry.yaml');
|
|
16
|
+
|
|
17
|
+
// Test queries that should find specific tools (AC 7: 5+ test queries)
|
|
18
|
+
const TEST_QUERIES = [
|
|
19
|
+
{ query: 'search the web for information', expectedTool: 'exa', category: 'web-search' },
|
|
20
|
+
{ query: 'browser screenshot automation', expectedTool: 'playwright', category: 'browser-automation' },
|
|
21
|
+
{ query: 'scrape social media data', expectedTool: 'apify', category: 'web-scraping' },
|
|
22
|
+
{ query: 'analyze code dependencies', expectedTool: 'code-graph', category: 'code-intelligence' },
|
|
23
|
+
{ query: 'code analysis intelligence', expectedTool: 'nogic', category: 'code-intelligence' },
|
|
24
|
+
{ query: 'look up library documentation', expectedTool: 'context7', category: 'documentation' },
|
|
25
|
+
{ query: 'database query optimization', expectedTool: 'supabase', category: 'database' }
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
function parseKeywords(content) {
|
|
29
|
+
// Extract tool name → keywords mapping from YAML
|
|
30
|
+
const tools = {};
|
|
31
|
+
let currentTool = null;
|
|
32
|
+
let inKeywords = false;
|
|
33
|
+
|
|
34
|
+
for (const line of content.split('\n')) {
|
|
35
|
+
// Tool name (indented 2 spaces)
|
|
36
|
+
const toolMatch = line.match(/^ {2}([a-zA-Z0-9_-]+):$/);
|
|
37
|
+
if (toolMatch) {
|
|
38
|
+
currentTool = toolMatch[1];
|
|
39
|
+
tools[currentTool] = { keywords: [], category: null, tier: null, essential: null };
|
|
40
|
+
inKeywords = false;
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (!currentTool) continue;
|
|
45
|
+
|
|
46
|
+
// Category
|
|
47
|
+
const catMatch = line.match(/^\s+category:\s*(.+)/);
|
|
48
|
+
if (catMatch) {
|
|
49
|
+
tools[currentTool].category = catMatch[1].trim();
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Tier
|
|
54
|
+
const tierMatch = line.match(/^\s+tier:\s*(\d)/);
|
|
55
|
+
if (tierMatch) {
|
|
56
|
+
tools[currentTool].tier = parseInt(tierMatch[1]);
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Essential
|
|
61
|
+
const essentialMatch = line.match(/^\s+essential:\s*(true|false)/);
|
|
62
|
+
if (essentialMatch) {
|
|
63
|
+
tools[currentTool].essential = essentialMatch[1] === 'true';
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Keywords section
|
|
68
|
+
if (line.match(/^\s+keywords:/)) {
|
|
69
|
+
inKeywords = true;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Keyword item
|
|
74
|
+
if (inKeywords) {
|
|
75
|
+
const kwMatch = line.match(/^\s+- (.+)/);
|
|
76
|
+
if (kwMatch) {
|
|
77
|
+
tools[currentTool].keywords.push(kwMatch[1].trim());
|
|
78
|
+
} else if (!line.match(/^\s*$/)) {
|
|
79
|
+
inKeywords = false;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return tools;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function matchQuery(query, tool) {
|
|
88
|
+
const queryWords = query.toLowerCase().split(/\s+/);
|
|
89
|
+
const keywords = tool.keywords.map(k => k.toLowerCase());
|
|
90
|
+
const category = (tool.category || '').toLowerCase();
|
|
91
|
+
|
|
92
|
+
let score = 0;
|
|
93
|
+
for (const word of queryWords) {
|
|
94
|
+
for (const keyword of keywords) {
|
|
95
|
+
if (keyword.includes(word) || word.includes(keyword)) {
|
|
96
|
+
score++;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (category.includes(word)) {
|
|
100
|
+
score++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return score;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function validate() {
|
|
108
|
+
const content = fs.readFileSync(REGISTRY_PATH, 'utf8');
|
|
109
|
+
const tools = parseKeywords(content);
|
|
110
|
+
|
|
111
|
+
console.log('=== Tool Search Validation ===\n');
|
|
112
|
+
|
|
113
|
+
let passed = 0;
|
|
114
|
+
let failed = 0;
|
|
115
|
+
|
|
116
|
+
for (const test of TEST_QUERIES) {
|
|
117
|
+
const scores = {};
|
|
118
|
+
for (const [name, tool] of Object.entries(tools)) {
|
|
119
|
+
if (tool.keywords.length > 0 || tool.category) {
|
|
120
|
+
scores[name] = matchQuery(test.query, tool);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Sort by score descending
|
|
125
|
+
const ranked = Object.entries(scores)
|
|
126
|
+
.filter(([, score]) => score > 0)
|
|
127
|
+
.sort((a, b) => b[1] - a[1]);
|
|
128
|
+
|
|
129
|
+
const top3 = ranked.slice(0, 3).map(([name]) => name);
|
|
130
|
+
const found = top3.includes(test.expectedTool);
|
|
131
|
+
|
|
132
|
+
if (found) {
|
|
133
|
+
console.log(`✅ "${test.query}" → found '${test.expectedTool}' in top-3 [${top3.join(', ')}]`);
|
|
134
|
+
passed++;
|
|
135
|
+
} else {
|
|
136
|
+
console.log(`❌ "${test.query}" → expected '${test.expectedTool}' but got [${top3.join(', ')}]`);
|
|
137
|
+
failed++;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
console.log(`\n--- Results: ${passed}/${TEST_QUERIES.length} passed, ${failed} failed ---`);
|
|
142
|
+
|
|
143
|
+
// Essential server validation
|
|
144
|
+
console.log('\n=== Essential Server Validation ===\n');
|
|
145
|
+
const tier3Tools = Object.entries(tools).filter(([, t]) => t.tier === 3);
|
|
146
|
+
const essential = tier3Tools.filter(([, t]) => t.essential === true);
|
|
147
|
+
const nonEssential = tier3Tools.filter(([, t]) => t.essential === false);
|
|
148
|
+
|
|
149
|
+
console.log(`Tier 3 tools: ${tier3Tools.length}`);
|
|
150
|
+
console.log(` Essential (never disable): ${essential.map(([n]) => n).join(', ')}`);
|
|
151
|
+
console.log(` Non-essential (can disable): ${nonEssential.map(([n]) => n).join(', ')}`);
|
|
152
|
+
|
|
153
|
+
if (essential.length === 0) {
|
|
154
|
+
console.log('⚠️ WARNING: No essential Tier 3 servers defined');
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// 2-search-per-turn validation (AC 6)
|
|
158
|
+
console.log('\n=== Search Limit Guidance ===\n');
|
|
159
|
+
console.log('AC 6: Maximum 2 tool searches per turn');
|
|
160
|
+
console.log('Implementation: CLAUDE.md guidance section (not programmatic hard limit)');
|
|
161
|
+
console.log('Rationale: Claude Code manages Tool Search internally; guidance limits excessive use');
|
|
162
|
+
|
|
163
|
+
const allPassed = failed === 0;
|
|
164
|
+
console.log(`\n${allPassed ? '✅' : '❌'} Overall: ${allPassed ? 'PASS' : 'FAIL'}`);
|
|
165
|
+
|
|
166
|
+
return allPassed;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (require.main === module) {
|
|
170
|
+
const result = validate();
|
|
171
|
+
process.exit(result ? 0 : 1);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
module.exports = { validate };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Workflow Chains — Greeting Suggestion Data
|
|
2
|
+
# Source of truth: .claude/rules/workflow-execution.md
|
|
3
|
+
# Used by: Native agent greeting (STEP 3, step 5.5) to suggest next command
|
|
4
|
+
# Story: WIS-16
|
|
5
|
+
|
|
6
|
+
workflows:
|
|
7
|
+
# 1. Story Development Cycle (SDC) — PRIMARY
|
|
8
|
+
- id: sdc
|
|
9
|
+
name: Story Development Cycle
|
|
10
|
+
description: Full 4-phase workflow for all development work
|
|
11
|
+
chain:
|
|
12
|
+
- step: 1
|
|
13
|
+
agent: "@sm"
|
|
14
|
+
command: "*draft"
|
|
15
|
+
task: create-next-story.md
|
|
16
|
+
output: Story file (Draft)
|
|
17
|
+
condition: Epic context available
|
|
18
|
+
- step: 2
|
|
19
|
+
agent: "@po"
|
|
20
|
+
command: "*validate-story-draft {story-id}"
|
|
21
|
+
task: validate-next-story.md
|
|
22
|
+
output: GO/NO-GO decision
|
|
23
|
+
condition: Story status is Draft
|
|
24
|
+
- step: 3
|
|
25
|
+
agent: "@dev"
|
|
26
|
+
command: "*develop {story-id}"
|
|
27
|
+
task: dev-develop-story.md
|
|
28
|
+
output: Implementation complete
|
|
29
|
+
condition: Story status is Approved
|
|
30
|
+
alternatives:
|
|
31
|
+
- agent: "@dev"
|
|
32
|
+
command: "*develop-yolo {story-id}"
|
|
33
|
+
condition: Simple story, autonomous mode preferred
|
|
34
|
+
- step: 4
|
|
35
|
+
agent: "@qa"
|
|
36
|
+
command: "*review {story-id}"
|
|
37
|
+
task: qa-gate.md
|
|
38
|
+
output: PASS/CONCERNS/FAIL/WAIVED
|
|
39
|
+
condition: Story status is Ready for Review
|
|
40
|
+
alternatives:
|
|
41
|
+
- agent: "@qa"
|
|
42
|
+
command: "*gate {story-id}"
|
|
43
|
+
condition: Quick gate decision needed
|
|
44
|
+
- step: 5
|
|
45
|
+
agent: "@devops"
|
|
46
|
+
command: "*push"
|
|
47
|
+
task: github-devops-pre-push-quality-gate.md
|
|
48
|
+
output: Code pushed to remote
|
|
49
|
+
condition: QA gate PASS
|
|
50
|
+
|
|
51
|
+
# 2. QA Loop — ITERATIVE REVIEW
|
|
52
|
+
- id: qa-loop
|
|
53
|
+
name: QA Loop
|
|
54
|
+
description: Automated review-fix cycle after initial QA gate
|
|
55
|
+
max_iterations: 5
|
|
56
|
+
chain:
|
|
57
|
+
- step: 1
|
|
58
|
+
agent: "@qa"
|
|
59
|
+
command: "*review {story-id}"
|
|
60
|
+
task: qa-review-story.md
|
|
61
|
+
output: APPROVE/REJECT/BLOCKED verdict
|
|
62
|
+
condition: Story has code changes to review
|
|
63
|
+
- step: 2
|
|
64
|
+
agent: "@dev"
|
|
65
|
+
command: "*apply-qa-fixes"
|
|
66
|
+
task: apply-qa-fixes.md
|
|
67
|
+
output: Fixes applied
|
|
68
|
+
condition: QA verdict is REJECT
|
|
69
|
+
alternatives:
|
|
70
|
+
- agent: "@dev"
|
|
71
|
+
command: "*fix-qa-issues"
|
|
72
|
+
condition: Structured fix from QA_FIX_REQUEST.md
|
|
73
|
+
- step: 3
|
|
74
|
+
agent: "@qa"
|
|
75
|
+
command: "*review {story-id}"
|
|
76
|
+
task: qa-review-story.md
|
|
77
|
+
output: Re-review verdict
|
|
78
|
+
condition: Fixes applied, re-review needed
|
|
79
|
+
|
|
80
|
+
# 3. Spec Pipeline — PRE-IMPLEMENTATION
|
|
81
|
+
- id: spec-pipeline
|
|
82
|
+
name: Spec Pipeline
|
|
83
|
+
description: Transform informal requirements into executable spec
|
|
84
|
+
chain:
|
|
85
|
+
- step: 1
|
|
86
|
+
agent: "@pm"
|
|
87
|
+
command: "*gather-requirements"
|
|
88
|
+
task: spec-gather-requirements.md
|
|
89
|
+
output: requirements.json
|
|
90
|
+
condition: New feature or complex change
|
|
91
|
+
- step: 2
|
|
92
|
+
agent: "@architect"
|
|
93
|
+
command: "*analyze-impact"
|
|
94
|
+
task: architect-analyze-impact.md
|
|
95
|
+
output: complexity.json
|
|
96
|
+
condition: Complexity assessment needed (skip if SIMPLE)
|
|
97
|
+
- step: 3
|
|
98
|
+
agent: "@analyst"
|
|
99
|
+
command: "*research {topic}"
|
|
100
|
+
task: create-deep-research-prompt.md
|
|
101
|
+
output: research.json
|
|
102
|
+
condition: STANDARD or COMPLEX class (skip if SIMPLE)
|
|
103
|
+
- step: 4
|
|
104
|
+
agent: "@pm"
|
|
105
|
+
command: "*write-spec"
|
|
106
|
+
task: spec-write-spec.md
|
|
107
|
+
output: spec.md
|
|
108
|
+
condition: Requirements gathered
|
|
109
|
+
- step: 5
|
|
110
|
+
agent: "@qa"
|
|
111
|
+
command: "*critique-spec {story-id}"
|
|
112
|
+
task: spec-critique.md
|
|
113
|
+
output: APPROVED/NEEDS_REVISION/BLOCKED
|
|
114
|
+
condition: Spec written
|
|
115
|
+
- step: 6
|
|
116
|
+
agent: "@architect"
|
|
117
|
+
command: "*plan"
|
|
118
|
+
task: architect-analyze-impact.md
|
|
119
|
+
output: implementation.yaml
|
|
120
|
+
condition: Critique verdict is APPROVED
|
|
121
|
+
|
|
122
|
+
# 4. Brownfield Discovery — LEGACY ASSESSMENT
|
|
123
|
+
- id: brownfield
|
|
124
|
+
name: Brownfield Discovery
|
|
125
|
+
description: 10-phase technical debt assessment for existing codebases
|
|
126
|
+
chain:
|
|
127
|
+
- step: 1
|
|
128
|
+
agent: "@architect"
|
|
129
|
+
command: "*analyze-brownfield"
|
|
130
|
+
task: analyze-brownfield.md
|
|
131
|
+
output: system-architecture.md
|
|
132
|
+
condition: Existing codebase to assess
|
|
133
|
+
- step: 2
|
|
134
|
+
agent: "@data-engineer"
|
|
135
|
+
command: "*db-schema-audit"
|
|
136
|
+
task: db-schema-audit.md
|
|
137
|
+
output: SCHEMA.md + DB-AUDIT.md
|
|
138
|
+
condition: Database exists in project
|
|
139
|
+
- step: 3
|
|
140
|
+
agent: "@ux-design-expert"
|
|
141
|
+
command: "*audit-frontend"
|
|
142
|
+
task: audit-codebase.md
|
|
143
|
+
output: frontend-spec.md
|
|
144
|
+
condition: Frontend exists in project
|
|
145
|
+
- step: 4
|
|
146
|
+
agent: "@qa"
|
|
147
|
+
command: "*review"
|
|
148
|
+
task: qa-review-story.md
|
|
149
|
+
output: APPROVED/NEEDS WORK
|
|
150
|
+
condition: All specialist reviews complete
|
|
151
|
+
- step: 5
|
|
152
|
+
agent: "@pm"
|
|
153
|
+
command: "*create-epic"
|
|
154
|
+
task: brownfield-create-epic.md
|
|
155
|
+
output: Epic + stories ready for development
|
|
156
|
+
condition: QA gate APPROVED
|
|
@@ -27,15 +27,22 @@ activation-instructions:
|
|
|
27
27
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
28
28
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
29
29
|
- STEP 3: |
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
Display greeting using native context (zero JS execution):
|
|
31
|
+
1. Show: "{icon} {persona_profile.communication.greeting_levels.archetypal}" + permission badge from current permission mode (e.g., [⚠️ Ask], [🟢 Auto], [🔍 Explore])
|
|
32
|
+
2. Show: "**Role:** {persona.role}"
|
|
33
|
+
- Append: "Story: {active story from docs/stories/}" if detected + "Branch: `{branch from gitStatus}`" if not main/master
|
|
34
|
+
3. Show: "📊 **Project Status:**" as natural language narrative from gitStatus in system prompt:
|
|
35
|
+
- Branch name, modified file count, current story reference, last commit message
|
|
36
|
+
4. Show: "**Available Commands:**" — list commands from the 'commands' section above that have 'key' in their visibility array
|
|
37
|
+
5. Show: "Type `*guide` for comprehensive usage instructions."
|
|
38
|
+
5.5. Check `.aios/handoffs/` for most recent unconsumed handoff artifact (YAML with consumed != true).
|
|
39
|
+
If found: read `from_agent` and `last_command` from artifact, look up position in `.aios-core/data/workflow-chains.yaml` matching from_agent + last_command, and show: "💡 **Suggested:** `*{next_command} {args}`"
|
|
40
|
+
If chain has multiple valid next steps, also show: "Also: `*{alt1}`, `*{alt2}`"
|
|
41
|
+
If no artifact or no match found: skip this step silently.
|
|
42
|
+
After STEP 4 displays successfully, mark artifact as consumed: true.
|
|
43
|
+
6. Show: "{persona_profile.communication.signature_closing}"
|
|
44
|
+
# FALLBACK: If native greeting fails, run: node .aios-core/development/scripts/unified-activation-pipeline.js aios-master
|
|
45
|
+
- STEP 4: Display the greeting assembled in STEP 3
|
|
39
46
|
- STEP 5: HALT and await user input
|
|
40
47
|
- IMPORTANT: Do NOT improvise or add explanatory text beyond what is specified in greeting_levels and Quick Commands section
|
|
41
48
|
- DO NOT: Load any other agent files during activation
|
|
@@ -49,7 +56,7 @@ activation-instructions:
|
|
|
49
56
|
- CRITICAL: Do NOT scan filesystem or load any resources during startup, ONLY when commanded
|
|
50
57
|
- CRITICAL: Do NOT run discovery tasks automatically
|
|
51
58
|
- CRITICAL: NEVER LOAD .aios-core/data/aios-kb.md UNLESS USER TYPES *kb
|
|
52
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY
|
|
59
|
+
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. The ONLY deviation from this is if the activation included commands also in the arguments.
|
|
53
60
|
agent:
|
|
54
61
|
name: Orion
|
|
55
62
|
id: aios-master
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Analyst Agent Memory (Atlas)
|
|
2
|
+
|
|
3
|
+
## Active Patterns
|
|
4
|
+
<!-- Current, verified patterns used by this agent -->
|
|
5
|
+
|
|
6
|
+
### Key Patterns
|
|
7
|
+
- CommonJS (`require`/`module.exports`), NOT ES Modules
|
|
8
|
+
- ES2022, Node.js 18+, 2-space indent, single quotes
|
|
9
|
+
- Absolute imports always (never relative `../`)
|
|
10
|
+
- kebab-case for files, PascalCase for components
|
|
11
|
+
|
|
12
|
+
### Project Structure
|
|
13
|
+
- `.aios-core/core/` — Core modules (synapse, session, code-intel, orchestration)
|
|
14
|
+
- `.aios-core/development/` — Agents, tasks, templates, scripts
|
|
15
|
+
- `docs/research/` — Research outputs (YYYY-MM-DD-slug format)
|
|
16
|
+
- `docs/stories/` — Story files (active development)
|
|
17
|
+
|
|
18
|
+
### Git Rules
|
|
19
|
+
- NEVER push — delegate to @devops
|
|
20
|
+
- Conventional commits: `feat:`, `fix:`, `docs:`, `test:`, `chore:`, `refactor:`
|
|
21
|
+
|
|
22
|
+
### Research Conventions
|
|
23
|
+
- Output dir: `docs/research/{YYYY-MM-DD}-{slug}/`
|
|
24
|
+
- Use tech-search skill for deep research
|
|
25
|
+
- Always include sources and methodology
|
|
26
|
+
|
|
27
|
+
## Promotion Candidates
|
|
28
|
+
<!-- Patterns seen across 3+ agents — candidates for CLAUDE.md or .claude/rules/ -->
|
|
29
|
+
<!-- Format: - **{pattern}** | Source: {agent} | Detected: {YYYY-MM-DD} -->
|
|
30
|
+
|
|
31
|
+
## Archived
|
|
32
|
+
<!-- Patterns no longer relevant — kept for history -->
|
|
33
|
+
<!-- Format: - ~~{pattern}~~ | Archived: {YYYY-MM-DD} | Reason: {reason} -->
|
|
@@ -18,15 +18,22 @@ activation-instructions:
|
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
20
|
- STEP 3: |
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
Display greeting using native context (zero JS execution):
|
|
22
|
+
1. Show: "{icon} {persona_profile.communication.greeting_levels.archetypal}" + permission badge from current permission mode (e.g., [⚠️ Ask], [🟢 Auto], [🔍 Explore])
|
|
23
|
+
2. Show: "**Role:** {persona.role}"
|
|
24
|
+
- Append: "Story: {active story from docs/stories/}" if detected + "Branch: `{branch from gitStatus}`" if not main/master
|
|
25
|
+
3. Show: "📊 **Project Status:**" as natural language narrative from gitStatus in system prompt:
|
|
26
|
+
- Branch name, modified file count, current story reference, last commit message
|
|
27
|
+
4. Show: "**Available Commands:**" — list commands from the 'commands' section above that have 'key' in their visibility array
|
|
28
|
+
5. Show: "Type `*guide` for comprehensive usage instructions."
|
|
29
|
+
5.5. Check `.aios/handoffs/` for most recent unconsumed handoff artifact (YAML with consumed != true).
|
|
30
|
+
If found: read `from_agent` and `last_command` from artifact, look up position in `.aios-core/data/workflow-chains.yaml` matching from_agent + last_command, and show: "💡 **Suggested:** `*{next_command} {args}`"
|
|
31
|
+
If chain has multiple valid next steps, also show: "Also: `*{alt1}`, `*{alt2}`"
|
|
32
|
+
If no artifact or no match found: skip this step silently.
|
|
33
|
+
After STEP 4 displays successfully, mark artifact as consumed: true.
|
|
34
|
+
6. Show: "{persona_profile.communication.signature_closing}"
|
|
35
|
+
# FALLBACK: If native greeting fails, run: node .aios-core/development/scripts/unified-activation-pipeline.js analyst
|
|
36
|
+
- STEP 4: Display the greeting assembled in STEP 3
|
|
30
37
|
- STEP 5: HALT and await user input
|
|
31
38
|
- IMPORTANT: Do NOT improvise or add explanatory text beyond what is specified in greeting_levels and Quick Commands section
|
|
32
39
|
- DO NOT: Load any other agent files during activation
|
|
@@ -37,7 +44,7 @@ activation-instructions:
|
|
|
37
44
|
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
|
|
38
45
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
39
46
|
- STAY IN CHARACTER!
|
|
40
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY
|
|
47
|
+
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. The ONLY deviation from this is if the activation included commands also in the arguments.
|
|
41
48
|
agent:
|
|
42
49
|
name: Atlas
|
|
43
50
|
id: analyst
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Architect Agent Memory (Aria)
|
|
2
|
+
|
|
3
|
+
## Active Patterns
|
|
4
|
+
<!-- Current, verified patterns used by this agent -->
|
|
5
|
+
|
|
6
|
+
### Architecture Decisions
|
|
7
|
+
- CLI First > Observability > UI (Constitution Article I)
|
|
8
|
+
- Task-First: Tasks define WHAT, executors are interchangeable
|
|
9
|
+
- Provider-agnostic code-intel layer (Code Graph MCP primary)
|
|
10
|
+
- SYNAPSE 8-layer context engine (L0-L2 active, L3-L7 disabled per NOG-18)
|
|
11
|
+
|
|
12
|
+
### Key Architectural Patterns
|
|
13
|
+
- Tiered loading in UAP: Critical (80ms) → High (120ms) → Best-effort (180ms)
|
|
14
|
+
- Circuit breaker for external providers (code-intel, MCP)
|
|
15
|
+
- Atomic writes for file persistence (`atomicWriteSync`)
|
|
16
|
+
- ideSync for cross-IDE agent distribution
|
|
17
|
+
|
|
18
|
+
### Technology Stack
|
|
19
|
+
- Node.js 18+, CommonJS, ES2022
|
|
20
|
+
- Jest 30.2.0, ESLint, Prettier
|
|
21
|
+
- Supabase (database), Vercel (hosting)
|
|
22
|
+
|
|
23
|
+
### Delegation Rules
|
|
24
|
+
- Database schema design → @data-engineer
|
|
25
|
+
- Git push/PR → @devops
|
|
26
|
+
- Implementation → @dev
|
|
27
|
+
|
|
28
|
+
### Project Structure
|
|
29
|
+
- `.aios-core/core/` — Engine modules
|
|
30
|
+
- `docs/architecture/` — Architecture docs
|
|
31
|
+
- `docs/prd/` — Sharded PRDs
|
|
32
|
+
|
|
33
|
+
## Promotion Candidates
|
|
34
|
+
<!-- Patterns seen across 3+ agents — candidates for CLAUDE.md or .claude/rules/ -->
|
|
35
|
+
<!-- Format: - **{pattern}** | Source: {agent} | Detected: {YYYY-MM-DD} -->
|
|
36
|
+
|
|
37
|
+
## Archived
|
|
38
|
+
<!-- Patterns no longer relevant — kept for history -->
|
|
39
|
+
<!-- Format: - ~~{pattern}~~ | Archived: {YYYY-MM-DD} | Reason: {reason} -->
|
|
@@ -18,15 +18,22 @@ activation-instructions:
|
|
|
18
18
|
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
20
|
- STEP 3: |
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
Display greeting using native context (zero JS execution):
|
|
22
|
+
1. Show: "{icon} {persona_profile.communication.greeting_levels.archetypal}" + permission badge from current permission mode (e.g., [⚠️ Ask], [🟢 Auto], [🔍 Explore])
|
|
23
|
+
2. Show: "**Role:** {persona.role}"
|
|
24
|
+
- Append: "Story: {active story from docs/stories/}" if detected + "Branch: `{branch from gitStatus}`" if not main/master
|
|
25
|
+
3. Show: "📊 **Project Status:**" as natural language narrative from gitStatus in system prompt:
|
|
26
|
+
- Branch name, modified file count, current story reference, last commit message
|
|
27
|
+
4. Show: "**Available Commands:**" — list commands from the 'commands' section above that have 'key' in their visibility array
|
|
28
|
+
5. Show: "Type `*guide` for comprehensive usage instructions."
|
|
29
|
+
5.5. Check `.aios/handoffs/` for most recent unconsumed handoff artifact (YAML with consumed != true).
|
|
30
|
+
If found: read `from_agent` and `last_command` from artifact, look up position in `.aios-core/data/workflow-chains.yaml` matching from_agent + last_command, and show: "💡 **Suggested:** `*{next_command} {args}`"
|
|
31
|
+
If chain has multiple valid next steps, also show: "Also: `*{alt1}`, `*{alt2}`"
|
|
32
|
+
If no artifact or no match found: skip this step silently.
|
|
33
|
+
After STEP 4 displays successfully, mark artifact as consumed: true.
|
|
34
|
+
6. Show: "{persona_profile.communication.signature_closing}"
|
|
35
|
+
# FALLBACK: If native greeting fails, run: node .aios-core/development/scripts/unified-activation-pipeline.js architect
|
|
36
|
+
- STEP 4: Display the greeting assembled in STEP 3
|
|
30
37
|
- STEP 5: HALT and await user input
|
|
31
38
|
- IMPORTANT: Do NOT improvise or add explanatory text beyond what is specified in greeting_levels and Quick Commands section
|
|
32
39
|
- DO NOT: Load any other agent files during activation
|
|
@@ -38,7 +45,7 @@ activation-instructions:
|
|
|
38
45
|
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
|
|
39
46
|
- STAY IN CHARACTER!
|
|
40
47
|
- When creating architecture, always start by understanding the complete picture - user needs, business constraints, team capabilities, and technical requirements.
|
|
41
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY
|
|
48
|
+
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. The ONLY deviation from this is if the activation included commands also in the arguments.
|
|
42
49
|
agent:
|
|
43
50
|
name: Aria
|
|
44
51
|
id: architect
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Data Engineer Agent Memory (Dara)
|
|
2
|
+
|
|
3
|
+
## Active Patterns
|
|
4
|
+
<!-- Current, verified patterns used by this agent -->
|
|
5
|
+
|
|
6
|
+
### Key Patterns
|
|
7
|
+
- CommonJS (`require`/`module.exports`), NOT ES Modules
|
|
8
|
+
- ES2022, Node.js 18+, 2-space indent, single quotes
|
|
9
|
+
- Absolute imports always (never relative `../`)
|
|
10
|
+
- kebab-case for files, PascalCase for components
|
|
11
|
+
|
|
12
|
+
### Project Structure
|
|
13
|
+
- `.aios-core/core/` — Core modules
|
|
14
|
+
- `packages/db/` — Database packages (if applicable)
|
|
15
|
+
- `tests/` — Test suites (mirrors source structure)
|
|
16
|
+
|
|
17
|
+
### Git Rules
|
|
18
|
+
- NEVER push — delegate to @devops
|
|
19
|
+
- Conventional commits: `feat:`, `fix:`, `docs:`, `test:`
|
|
20
|
+
|
|
21
|
+
### Database Conventions
|
|
22
|
+
- Schema design follows architect decisions
|
|
23
|
+
- RLS policies for row-level security
|
|
24
|
+
- Migration scripts with rollback procedures
|
|
25
|
+
|
|
26
|
+
## Promotion Candidates
|
|
27
|
+
<!-- Patterns seen across 3+ agents — candidates for CLAUDE.md or .claude/rules/ -->
|
|
28
|
+
<!-- Format: - **{pattern}** | Source: {agent} | Detected: {YYYY-MM-DD} -->
|
|
29
|
+
|
|
30
|
+
## Archived
|
|
31
|
+
<!-- Patterns no longer relevant — kept for history -->
|
|
32
|
+
<!-- Format: - ~~{pattern}~~ | Archived: {YYYY-MM-DD} | Reason: {reason} -->
|
|
@@ -19,15 +19,22 @@ activation-instructions:
|
|
|
19
19
|
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
|
|
20
20
|
|
|
21
21
|
- STEP 3: |
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
Display greeting using native context (zero JS execution):
|
|
23
|
+
1. Show: "{icon} {persona_profile.communication.greeting_levels.archetypal}" + permission badge from current permission mode (e.g., [⚠️ Ask], [🟢 Auto], [🔍 Explore])
|
|
24
|
+
2. Show: "**Role:** {persona.role}"
|
|
25
|
+
- Append: "Story: {active story from docs/stories/}" if detected + "Branch: `{branch from gitStatus}`" if not main/master
|
|
26
|
+
3. Show: "📊 **Project Status:**" as natural language narrative from gitStatus in system prompt:
|
|
27
|
+
- Branch name, modified file count, current story reference, last commit message
|
|
28
|
+
4. Show: "**Available Commands:**" — list commands from the 'commands' section above that have 'key' in their visibility array
|
|
29
|
+
5. Show: "Type `*guide` for comprehensive usage instructions."
|
|
30
|
+
5.5. Check `.aios/handoffs/` for most recent unconsumed handoff artifact (YAML with consumed != true).
|
|
31
|
+
If found: read `from_agent` and `last_command` from artifact, look up position in `.aios-core/data/workflow-chains.yaml` matching from_agent + last_command, and show: "💡 **Suggested:** `*{next_command} {args}`"
|
|
32
|
+
If chain has multiple valid next steps, also show: "Also: `*{alt1}`, `*{alt2}`"
|
|
33
|
+
If no artifact or no match found: skip this step silently.
|
|
34
|
+
After STEP 4 displays successfully, mark artifact as consumed: true.
|
|
35
|
+
6. Show: "{persona_profile.communication.signature_closing}"
|
|
36
|
+
# FALLBACK: If native greeting fails, run: node .aios-core/development/scripts/unified-activation-pipeline.js data-engineer
|
|
37
|
+
- STEP 4: Display the greeting assembled in STEP 3
|
|
31
38
|
- STEP 5: HALT and await user input
|
|
32
39
|
- IMPORTANT: Do NOT improvise or add explanatory text beyond what is specified in greeting_levels and Quick Commands section
|
|
33
40
|
- DO NOT: Load any other agent files during activation
|
|
@@ -40,7 +47,7 @@ activation-instructions:
|
|
|
40
47
|
- STAY IN CHARACTER!
|
|
41
48
|
- When designing databases, always start by understanding the complete picture - business domain, data relationships, access patterns, scale requirements, and security constraints.
|
|
42
49
|
- Always create snapshots before any schema-altering operation
|
|
43
|
-
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY
|
|
50
|
+
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. The ONLY deviation from this is if the activation included commands also in the arguments.
|
|
44
51
|
agent:
|
|
45
52
|
name: Dara
|
|
46
53
|
id: data-engineer
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Dev Agent Memory (Dex)
|
|
2
|
+
|
|
3
|
+
## Active Patterns
|
|
4
|
+
<!-- Current, verified patterns used by this agent -->
|
|
5
|
+
|
|
6
|
+
### Key Patterns
|
|
7
|
+
- CommonJS (`require`/`module.exports`), NOT ES Modules
|
|
8
|
+
- ES2022, Node.js 18+, 2-space indent, single quotes
|
|
9
|
+
- Absolute imports always (never relative `../`)
|
|
10
|
+
- kebab-case for files, PascalCase for components
|
|
11
|
+
- Jest 30.2.0 for testing, `npm test` to run
|
|
12
|
+
|
|
13
|
+
### Project Structure
|
|
14
|
+
- `.aios-core/core/` — Core modules (synapse, session, code-intel, orchestration)
|
|
15
|
+
- `.aios-core/development/` — Agents, tasks, templates, scripts
|
|
16
|
+
- `.aios-core/infrastructure/` — CI/CD, git detection, project-status
|
|
17
|
+
- `tests/` — Test suites (mirrors source structure)
|
|
18
|
+
- `docs/stories/` — Story files (active development)
|
|
19
|
+
|
|
20
|
+
### Git Rules
|
|
21
|
+
- NEVER push — delegate to @devops
|
|
22
|
+
- Conventional commits: `feat:`, `fix:`, `docs:`, `test:`, `chore:`, `refactor:`
|
|
23
|
+
- Reference story: `feat: implement feature [Story NOG-18]`
|
|
24
|
+
|
|
25
|
+
### Common Gotchas
|
|
26
|
+
- Windows paths: use forward slashes in code, bash shell not cmd
|
|
27
|
+
- `fs.existsSync` for sync checks, `fs.promises` for async
|
|
28
|
+
- atomicWriteSync from `.aios-core/core/synapse/utils/atomic-write` for safe file writes
|
|
29
|
+
- CodeRabbit runs in WSL, not Windows directly
|
|
30
|
+
|
|
31
|
+
### Story Workflow
|
|
32
|
+
- Read task → Implement → Write tests → Validate → Mark checkbox [x]
|
|
33
|
+
- ONLY update: checkboxes, Debug Log, Completion Notes, Change Log, File List
|
|
34
|
+
- NEVER modify: Status, Story, AC, Dev Notes, Testing sections
|
|
35
|
+
|
|
36
|
+
## Promotion Candidates
|
|
37
|
+
<!-- Patterns seen across 3+ agents — candidates for CLAUDE.md or .claude/rules/ -->
|
|
38
|
+
<!-- Format: - **{pattern}** | Source: {agent} | Detected: {YYYY-MM-DD} -->
|
|
39
|
+
- **NEVER push — delegate to @devops** | Source: dev, analyst, sm, data-engineer, ux, qa (6 agents) | Detected: 2026-02-22 | Status: Already elevated to `.claude/rules/agent-authority.md`
|
|
40
|
+
- **CommonJS module system (require/module.exports)** | Source: dev, analyst, sm, data-engineer, ux, architect (6 agents) | Detected: 2026-02-22 | Status: Already in CLAUDE.md (Padroes de Codigo)
|
|
41
|
+
- **Conventional commits format** | Source: dev, devops, analyst, sm, data-engineer, ux (6 agents) | Detected: 2026-02-22 | Status: Already in CLAUDE.md (Convencoes Git)
|
|
42
|
+
- **kebab-case for files** | Source: dev, analyst, sm, data-engineer, ux (5 agents) | Detected: 2026-02-22 | Status: Already in CLAUDE.md (Padroes de Codigo)
|
|
43
|
+
|
|
44
|
+
## Archived
|
|
45
|
+
<!-- Patterns no longer relevant — kept for history -->
|
|
46
|
+
<!-- Format: - ~~{pattern}~~ | Archived: {YYYY-MM-DD} | Reason: {reason} -->
|