aios-core 4.2.14 → 4.3.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.
Files changed (288) hide show
  1. package/.aios-core/cli/commands/validate/index.js +1 -1
  2. package/.aios-core/core/code-intel/helpers/creation-helper.js +183 -0
  3. package/.aios-core/core/code-intel/helpers/devops-helper.js +166 -0
  4. package/.aios-core/core/code-intel/helpers/planning-helper.js +248 -0
  5. package/.aios-core/core/code-intel/helpers/qa-helper.js +187 -0
  6. package/.aios-core/core/code-intel/helpers/story-helper.js +146 -0
  7. package/.aios-core/core/config/schemas/framework-config.schema.json +155 -7
  8. package/.aios-core/core/config/schemas/project-config.schema.json +329 -15
  9. package/.aios-core/core/config/template-overrides.js +84 -0
  10. package/.aios-core/core/docs/troubleshooting-guide.md +1 -1
  11. package/.aios-core/core/doctor/checks/agent-memory.js +63 -0
  12. package/.aios-core/core/doctor/checks/claude-md.js +56 -0
  13. package/.aios-core/core/doctor/checks/code-intel.js +57 -0
  14. package/.aios-core/core/doctor/checks/commands-count.js +81 -0
  15. package/.aios-core/core/doctor/checks/core-config.js +53 -0
  16. package/.aios-core/core/doctor/checks/entity-registry.js +53 -0
  17. package/.aios-core/core/doctor/checks/git-hooks.js +50 -0
  18. package/.aios-core/core/doctor/checks/graph-dashboard.js +48 -0
  19. package/.aios-core/core/doctor/checks/hooks-claude-count.js +107 -0
  20. package/.aios-core/core/doctor/checks/ide-sync.js +68 -0
  21. package/.aios-core/core/doctor/checks/index.js +46 -0
  22. package/.aios-core/core/doctor/checks/node-version.js +33 -0
  23. package/.aios-core/core/doctor/checks/npm-packages.js +35 -0
  24. package/.aios-core/core/doctor/checks/rules-files.js +61 -0
  25. package/.aios-core/core/doctor/checks/settings-json.js +121 -0
  26. package/.aios-core/core/doctor/checks/skills-count.js +72 -0
  27. package/.aios-core/core/doctor/fix-handler.js +165 -0
  28. package/.aios-core/core/doctor/formatters/json.js +14 -0
  29. package/.aios-core/core/doctor/formatters/text.js +59 -0
  30. package/.aios-core/core/doctor/index.js +94 -0
  31. package/.aios-core/core/graph-dashboard/cli.js +361 -0
  32. package/.aios-core/core/graph-dashboard/data-sources/code-intel-source.js +234 -0
  33. package/.aios-core/core/graph-dashboard/data-sources/metrics-source.js +95 -0
  34. package/.aios-core/core/graph-dashboard/data-sources/registry-source.js +106 -0
  35. package/.aios-core/core/graph-dashboard/formatters/dot-formatter.js +45 -0
  36. package/.aios-core/core/graph-dashboard/formatters/html-formatter.js +1437 -0
  37. package/.aios-core/core/graph-dashboard/formatters/json-formatter.js +13 -0
  38. package/.aios-core/core/graph-dashboard/formatters/mermaid-formatter.js +59 -0
  39. package/.aios-core/core/graph-dashboard/index.js +21 -0
  40. package/.aios-core/core/graph-dashboard/renderers/stats-renderer.js +217 -0
  41. package/.aios-core/core/graph-dashboard/renderers/status-renderer.js +125 -0
  42. package/.aios-core/core/graph-dashboard/renderers/tree-renderer.js +119 -0
  43. package/.aios-core/core/health-check/base-check.js +1 -1
  44. package/.aios-core/core/health-check/check-registry.js +1 -1
  45. package/.aios-core/core/health-check/checks/deployment/build-config.js +1 -1
  46. package/.aios-core/core/health-check/checks/deployment/ci-config.js +1 -1
  47. package/.aios-core/core/health-check/checks/deployment/deployment-readiness.js +1 -1
  48. package/.aios-core/core/health-check/checks/deployment/docker-config.js +1 -1
  49. package/.aios-core/core/health-check/checks/deployment/env-file.js +1 -1
  50. package/.aios-core/core/health-check/checks/deployment/index.js +1 -1
  51. package/.aios-core/core/health-check/checks/index.js +1 -1
  52. package/.aios-core/core/health-check/checks/local/disk-space.js +1 -1
  53. package/.aios-core/core/health-check/checks/local/environment-vars.js +1 -1
  54. package/.aios-core/core/health-check/checks/local/git-install.js +1 -1
  55. package/.aios-core/core/health-check/checks/local/ide-detection.js +1 -1
  56. package/.aios-core/core/health-check/checks/local/index.js +1 -1
  57. package/.aios-core/core/health-check/checks/local/memory.js +1 -1
  58. package/.aios-core/core/health-check/checks/local/network.js +1 -1
  59. package/.aios-core/core/health-check/checks/local/npm-install.js +1 -1
  60. package/.aios-core/core/health-check/checks/local/shell-environment.js +1 -1
  61. package/.aios-core/core/health-check/checks/project/agent-config.js +1 -1
  62. package/.aios-core/core/health-check/checks/project/aios-directory.js +1 -1
  63. package/.aios-core/core/health-check/checks/project/dependencies.js +1 -1
  64. package/.aios-core/core/health-check/checks/project/framework-config.js +1 -1
  65. package/.aios-core/core/health-check/checks/project/index.js +1 -1
  66. package/.aios-core/core/health-check/checks/project/node-version.js +1 -1
  67. package/.aios-core/core/health-check/checks/project/package-json.js +1 -1
  68. package/.aios-core/core/health-check/checks/project/task-definitions.js +1 -1
  69. package/.aios-core/core/health-check/checks/project/workflow-dependencies.js +1 -1
  70. package/.aios-core/core/health-check/checks/repository/branch-protection.js +1 -1
  71. package/.aios-core/core/health-check/checks/repository/commit-history.js +1 -1
  72. package/.aios-core/core/health-check/checks/repository/conflicts.js +1 -1
  73. package/.aios-core/core/health-check/checks/repository/git-repo.js +1 -1
  74. package/.aios-core/core/health-check/checks/repository/git-status.js +1 -1
  75. package/.aios-core/core/health-check/checks/repository/gitignore.js +1 -1
  76. package/.aios-core/core/health-check/checks/repository/index.js +1 -1
  77. package/.aios-core/core/health-check/checks/repository/large-files.js +1 -1
  78. package/.aios-core/core/health-check/checks/repository/lockfile-integrity.js +1 -1
  79. package/.aios-core/core/health-check/checks/services/api-endpoints.js +1 -1
  80. package/.aios-core/core/health-check/checks/services/claude-code.js +1 -1
  81. package/.aios-core/core/health-check/checks/services/gemini-cli.js +1 -1
  82. package/.aios-core/core/health-check/checks/services/github-cli.js +1 -1
  83. package/.aios-core/core/health-check/checks/services/index.js +1 -1
  84. package/.aios-core/core/health-check/checks/services/mcp-integration.js +1 -1
  85. package/.aios-core/core/health-check/engine.js +1 -1
  86. package/.aios-core/core/health-check/healers/backup-manager.js +1 -1
  87. package/.aios-core/core/health-check/healers/index.js +1 -1
  88. package/.aios-core/core/health-check/index.js +9 -2
  89. package/.aios-core/core/health-check/reporters/console.js +1 -1
  90. package/.aios-core/core/health-check/reporters/index.js +1 -1
  91. package/.aios-core/core/health-check/reporters/json.js +1 -1
  92. package/.aios-core/core/health-check/reporters/markdown.js +1 -1
  93. package/.aios-core/core/ids/layer-classifier.js +65 -0
  94. package/.aios-core/core/ids/registry-updater.js +49 -0
  95. package/.aios-core/core/index.esm.js +1 -1
  96. package/.aios-core/core/index.js +1 -1
  97. package/.aios-core/core/session/context-detector.js +2 -7
  98. package/.aios-core/core/synapse/context/context-tracker.js +9 -1
  99. package/.aios-core/core/synapse/engine.js +33 -13
  100. package/.aios-core/core/synapse/runtime/hook-runtime.js +40 -2
  101. package/.aios-core/core/synapse/session/session-manager.js +3 -2
  102. package/.aios-core/core/synapse/utils/atomic-write.js +79 -0
  103. package/.aios-core/core-config.yaml +34 -1
  104. package/.aios-core/data/aios-kb.md +2 -2
  105. package/.aios-core/data/capability-detection.js +290 -0
  106. package/.aios-core/data/entity-registry.yaml +10424 -2127
  107. package/.aios-core/data/mcp-discipline.js +166 -0
  108. package/.aios-core/data/mcp-tool-examples.yaml +215 -0
  109. package/.aios-core/data/tok2-validation.js +168 -0
  110. package/.aios-core/data/tok3-token-comparison.js +123 -0
  111. package/.aios-core/data/tool-registry.yaml +648 -0
  112. package/.aios-core/data/tool-search-validation.js +174 -0
  113. package/.aios-core/development/agents/analyst/MEMORY.md +33 -0
  114. package/.aios-core/development/agents/architect/MEMORY.md +39 -0
  115. package/.aios-core/development/agents/data-engineer/MEMORY.md +32 -0
  116. package/.aios-core/development/agents/dev/MEMORY.md +46 -0
  117. package/.aios-core/development/agents/dev.md +1 -1
  118. package/.aios-core/development/agents/devops/MEMORY.md +39 -0
  119. package/.aios-core/development/agents/devops.md +22 -0
  120. package/.aios-core/development/agents/pm/MEMORY.md +38 -0
  121. package/.aios-core/development/agents/po/MEMORY.md +45 -0
  122. package/.aios-core/development/agents/qa/MEMORY.md +42 -0
  123. package/.aios-core/development/agents/qa.md +1 -1
  124. package/.aios-core/development/agents/sm/MEMORY.md +31 -0
  125. package/.aios-core/development/agents/ux/MEMORY.md +31 -0
  126. package/.aios-core/development/checklists/issue-triage-checklist.md +35 -0
  127. package/.aios-core/development/checklists/memory-audit-checklist.md +53 -0
  128. package/.aios-core/development/scripts/issue-triage.js +171 -0
  129. package/.aios-core/development/scripts/populate-entity-registry.js +412 -19
  130. package/.aios-core/development/scripts/unified-activation-pipeline.js +31 -10
  131. package/.aios-core/development/tasks/analyze-project-structure.md +48 -0
  132. package/.aios-core/development/tasks/brownfield-create-epic.md +41 -0
  133. package/.aios-core/development/tasks/create-doc.md +44 -0
  134. package/.aios-core/development/tasks/create-next-story.md +10 -0
  135. package/.aios-core/development/tasks/dev-develop-story.md +1 -1
  136. package/.aios-core/development/tasks/github-devops-github-pr-automation.md +49 -0
  137. package/.aios-core/development/tasks/github-devops-pre-push-quality-gate.md +63 -0
  138. package/.aios-core/development/tasks/github-issue-triage.md +118 -0
  139. package/.aios-core/development/tasks/health-check.yaml +206 -171
  140. package/.aios-core/development/tasks/kb-mode-interaction.md +3 -3
  141. package/.aios-core/development/tasks/plan-create-context.md +47 -1
  142. package/.aios-core/development/tasks/plan-create-implementation.md +55 -0
  143. package/.aios-core/development/tasks/pr-automation.md +5 -5
  144. package/.aios-core/development/tasks/qa-gate.md +48 -0
  145. package/.aios-core/development/tasks/qa-review-story.md +24 -1
  146. package/.aios-core/development/tasks/resolve-github-issue.md +608 -0
  147. package/.aios-core/development/tasks/review-contributor-pr.md +152 -0
  148. package/.aios-core/development/tasks/setup-llm-routing.md +1 -1
  149. package/.aios-core/development/tasks/spec-research-dependencies.md +4 -0
  150. package/.aios-core/development/tasks/triage-github-issues.md +356 -0
  151. package/.aios-core/development/tasks/validate-agents.md +4 -0
  152. package/.aios-core/development/tasks/validate-next-story.md +10 -0
  153. package/.aios-core/development/templates/agent-handoff-tmpl.yaml +48 -0
  154. package/.aios-core/development/templates/code-intel-integration-pattern.md +199 -0
  155. package/.aios-core/development/templates/ptc-entity-validation.md +113 -0
  156. package/.aios-core/development/templates/ptc-qa-gate.md +100 -0
  157. package/.aios-core/development/templates/ptc-research-aggregation.md +94 -0
  158. package/.aios-core/development/templates/service-template/README.md.hbs +158 -158
  159. package/.aios-core/development/templates/service-template/__tests__/index.test.ts.hbs +237 -237
  160. package/.aios-core/development/templates/service-template/client.ts.hbs +403 -403
  161. package/.aios-core/development/templates/service-template/errors.ts.hbs +182 -182
  162. package/.aios-core/development/templates/service-template/index.ts.hbs +120 -120
  163. package/.aios-core/development/templates/service-template/package.json.hbs +87 -87
  164. package/.aios-core/development/templates/service-template/types.ts.hbs +145 -145
  165. package/.aios-core/development/templates/squad/agent-template.md +11 -0
  166. package/.aios-core/development/templates/squad/task-template.md +21 -0
  167. package/.aios-core/development/templates/squad-template/LICENSE +21 -21
  168. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.1-COMPLETE.md +1 -1
  169. package/.aios-core/docs/standards/AIOS-LIVRO-DE-OURO-V2.2-SUMMARY.md +1 -1
  170. package/.aios-core/framework-config.yaml +8 -0
  171. package/.aios-core/index.esm.js +1 -1
  172. package/.aios-core/index.js +1 -1
  173. package/.aios-core/infrastructure/integrations/ai-providers/index.js +1 -1
  174. package/.aios-core/infrastructure/schemas/task-v3-schema.json +6 -0
  175. package/.aios-core/infrastructure/scripts/collect-tool-usage.js +311 -0
  176. package/.aios-core/infrastructure/scripts/generate-optimization-report.js +497 -0
  177. package/.aios-core/infrastructure/scripts/generate-settings-json.js +300 -0
  178. package/.aios-core/infrastructure/scripts/git-config-detector.js +65 -9
  179. package/.aios-core/infrastructure/scripts/ide-sync/index.js +3 -1
  180. package/.aios-core/infrastructure/scripts/ide-sync/transformers/github-copilot.js +184 -0
  181. package/.aios-core/infrastructure/scripts/repository-detector.js +3 -3
  182. package/.aios-core/infrastructure/templates/aios-sync.yaml.template +182 -182
  183. package/.aios-core/infrastructure/templates/coderabbit.yaml.template +279 -279
  184. package/.aios-core/infrastructure/templates/github-workflows/ci.yml.template +169 -169
  185. package/.aios-core/infrastructure/templates/github-workflows/pr-automation.yml.template +330 -330
  186. package/.aios-core/infrastructure/templates/github-workflows/release.yml.template +196 -196
  187. package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +63 -63
  188. package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +18 -18
  189. package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +85 -85
  190. package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +145 -145
  191. package/.aios-core/install-manifest.yaml +541 -249
  192. package/.aios-core/lib/build.json +1 -0
  193. package/.aios-core/local-config.yaml.template +71 -71
  194. package/.aios-core/monitor/hooks/lib/__init__.py +1 -1
  195. package/.aios-core/monitor/hooks/lib/enrich.py +58 -58
  196. package/.aios-core/monitor/hooks/lib/send_event.py +47 -47
  197. package/.aios-core/monitor/hooks/notification.py +29 -29
  198. package/.aios-core/monitor/hooks/post_tool_use.py +45 -45
  199. package/.aios-core/monitor/hooks/pre_compact.py +29 -29
  200. package/.aios-core/monitor/hooks/pre_tool_use.py +40 -40
  201. package/.aios-core/monitor/hooks/stop.py +29 -29
  202. package/.aios-core/monitor/hooks/subagent_stop.py +29 -29
  203. package/.aios-core/monitor/hooks/user_prompt_submit.py +38 -38
  204. package/.aios-core/product/templates/adr.hbs +125 -125
  205. package/.aios-core/product/templates/dbdr.hbs +241 -241
  206. package/.aios-core/product/templates/epic.hbs +212 -212
  207. package/.aios-core/product/templates/ide-rules/claude-rules.md +77 -0
  208. package/.aios-core/product/templates/pmdr.hbs +186 -186
  209. package/.aios-core/product/templates/prd-v2.0.hbs +216 -216
  210. package/.aios-core/product/templates/prd.hbs +201 -201
  211. package/.aios-core/product/templates/story.hbs +263 -263
  212. package/.aios-core/product/templates/task.hbs +170 -170
  213. package/.aios-core/product/templates/tmpl-comment-on-examples.sql +158 -158
  214. package/.aios-core/product/templates/tmpl-migration-script.sql +91 -91
  215. package/.aios-core/product/templates/tmpl-rls-granular-policies.sql +104 -104
  216. package/.aios-core/product/templates/tmpl-rls-kiss-policy.sql +10 -10
  217. package/.aios-core/product/templates/tmpl-rls-roles.sql +135 -135
  218. package/.aios-core/product/templates/tmpl-rls-simple.sql +77 -77
  219. package/.aios-core/product/templates/tmpl-rls-tenant.sql +152 -152
  220. package/.aios-core/product/templates/tmpl-rollback-script.sql +77 -77
  221. package/.aios-core/product/templates/tmpl-seed-data.sql +140 -140
  222. package/.aios-core/product/templates/tmpl-smoke-test.sql +16 -16
  223. package/.aios-core/product/templates/tmpl-staging-copy-merge.sql +139 -139
  224. package/.aios-core/product/templates/tmpl-stored-proc.sql +140 -140
  225. package/.aios-core/product/templates/tmpl-trigger.sql +152 -152
  226. package/.aios-core/product/templates/tmpl-view-materialized.sql +133 -133
  227. package/.aios-core/product/templates/tmpl-view.sql +177 -177
  228. package/.aios-core/scripts/pm.sh +0 -0
  229. package/.aios-core/user-guide.md +15 -15
  230. package/.aios-core/utils/filters/constants.js +10 -0
  231. package/.aios-core/utils/filters/content-filter.js +223 -0
  232. package/.aios-core/utils/filters/field-filter.js +126 -0
  233. package/.aios-core/utils/filters/index.js +180 -0
  234. package/.aios-core/utils/filters/schema-filter.js +157 -0
  235. package/.claude/CLAUDE.md +62 -0
  236. package/.claude/hooks/enforce-architecture-first.py +196 -196
  237. package/.claude/hooks/enforce-git-push-authority.sh +33 -0
  238. package/.claude/hooks/mind-clone-governance.py +192 -192
  239. package/.claude/hooks/read-protection.py +151 -151
  240. package/.claude/hooks/slug-validation.py +176 -176
  241. package/.claude/hooks/sql-governance.py +182 -182
  242. package/.claude/hooks/synapse-engine.cjs +28 -5
  243. package/.claude/hooks/write-path-validation.py +194 -194
  244. package/.claude/rules/agent-authority.md +105 -0
  245. package/.claude/rules/agent-handoff.md +97 -0
  246. package/.claude/rules/agent-memory-imports.md +15 -0
  247. package/.claude/rules/coderabbit-integration.md +101 -0
  248. package/.claude/rules/ids-principles.md +119 -0
  249. package/.claude/rules/story-lifecycle.md +145 -0
  250. package/.claude/rules/tool-examples.md +64 -0
  251. package/.claude/rules/tool-response-filtering.md +57 -0
  252. package/.claude/rules/workflow-execution.md +150 -0
  253. package/LICENSE +33 -33
  254. package/bin/aios-graph.js +9 -0
  255. package/bin/aios-init.js +2 -2
  256. package/bin/aios-minimal.js +0 -0
  257. package/bin/aios.js +17 -221
  258. package/bin/utils/detect-fsmonitor.js +70 -0
  259. package/bin/utils/framework-guard.js +238 -0
  260. package/bin/utils/validate-publish.js +108 -0
  261. package/package.json +6 -3
  262. package/packages/aios-install/bin/aios-install.js +0 -0
  263. package/packages/aios-install/bin/edmcp.js +0 -0
  264. package/packages/aios-pro-cli/bin/aios-pro.js +2 -0
  265. package/packages/installer/src/installer/brownfield-upgrader.js +68 -5
  266. package/packages/installer/src/merger/index.js +3 -0
  267. package/packages/installer/src/merger/strategies/index.js +6 -0
  268. package/packages/installer/src/merger/strategies/yaml-merger.js +181 -0
  269. package/packages/installer/src/updater/index.js +4 -4
  270. package/packages/installer/src/wizard/i18n.js +321 -3
  271. package/packages/installer/src/wizard/ide-config-generator.js +152 -25
  272. package/packages/installer/src/wizard/index.js +119 -1
  273. package/packages/installer/src/wizard/pro-setup.js +137 -121
  274. package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +261 -0
  275. package/packages/installer/tests/unit/claude-md-template-v5/claude-md-template-v5.test.js +192 -0
  276. package/packages/installer/tests/unit/doctor/doctor-checks.test.js +551 -0
  277. package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +134 -0
  278. package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +186 -0
  279. package/packages/installer/tests/unit/generate-settings-json/generate-settings-json.test.js +309 -0
  280. package/packages/installer/tests/unit/ide-sync-integration/ide-sync-integration.test.js +230 -0
  281. package/packages/installer/tests/unit/merger/strategies.test.js +2 -2
  282. package/packages/installer/tests/unit/merger/yaml-merger.test.js +327 -0
  283. package/scripts/check-markdown-links.py +352 -352
  284. package/scripts/dashboard-parallel-dev.sh +0 -0
  285. package/scripts/dashboard-parallel-phase3.sh +0 -0
  286. package/scripts/dashboard-parallel-phase4.sh +0 -0
  287. package/scripts/install-monitor-hooks.sh +0 -0
  288. package/scripts/package-synapse.js +2 -1
@@ -5,25 +5,339 @@
5
5
  "description": "Team-shared project settings stored in .aios-core/project-config.yaml",
6
6
  "type": "object",
7
7
  "properties": {
8
- "project_name": {
9
- "type": "string",
10
- "description": "Project name"
8
+ "project": {
9
+ "type": "object",
10
+ "description": "Project metadata",
11
+ "properties": {
12
+ "type": {
13
+ "type": "string",
14
+ "enum": ["EXISTING_AIOS", "NEW_PROJECT", "BROWNFIELD"],
15
+ "description": "Project installation type"
16
+ },
17
+ "installed_at": {
18
+ "type": "string",
19
+ "format": "date-time",
20
+ "description": "ISO 8601 installation timestamp"
21
+ },
22
+ "version": {
23
+ "type": "string",
24
+ "description": "Project config version"
25
+ }
26
+ },
27
+ "required": ["type"],
28
+ "additionalProperties": false
11
29
  },
12
- "project_type": {
13
- "type": "string",
14
- "enum": ["fullstack", "api", "frontend", "library", "cli"],
15
- "description": "Project type"
30
+ "documentation_paths": {
31
+ "type": "object",
32
+ "description": "Paths to documentation artifacts",
33
+ "properties": {
34
+ "qa_dir": { "type": "string" },
35
+ "prd_file": { "type": "string" },
36
+ "prd_version": { "type": "string" },
37
+ "prd_sharded": { "type": "boolean" },
38
+ "prd_sharded_location": { "type": "string" },
39
+ "architecture_file": { "type": "string" },
40
+ "architecture_version": { "type": "string" },
41
+ "architecture_sharded": { "type": "boolean" },
42
+ "architecture_sharded_location": { "type": "string" },
43
+ "stories_dir": { "type": "string" },
44
+ "dev_debug_log": { "type": "string" },
45
+ "slash_prefix": { "type": "string", "description": "Prefix for slash commands in IDEs" },
46
+ "custom_technical_documents": {
47
+ "oneOf": [
48
+ { "type": "array", "items": { "type": "string" } },
49
+ { "type": "null" }
50
+ ]
51
+ },
52
+ "dev_load_always_files": {
53
+ "type": "array",
54
+ "items": { "type": "string" },
55
+ "description": "Files loaded on every dev agent activation"
56
+ },
57
+ "dev_load_always_files_fallback": {
58
+ "type": "array",
59
+ "items": { "type": "string" },
60
+ "description": "Fallback files for i18n variants"
61
+ }
62
+ },
63
+ "additionalProperties": false
16
64
  },
17
- "environments": {
65
+ "github_integration": {
18
66
  "type": "object",
19
- "description": "Environment-specific configurations",
20
- "additionalProperties": {
21
- "type": "object"
22
- }
67
+ "description": "GitHub integration settings",
68
+ "properties": {
69
+ "enabled": { "type": "boolean" },
70
+ "cli_required": { "type": "boolean" },
71
+ "features": {
72
+ "type": "object",
73
+ "properties": {
74
+ "pr_creation": { "type": "boolean" },
75
+ "issue_management": { "type": "boolean" }
76
+ },
77
+ "additionalProperties": false
78
+ },
79
+ "pr": {
80
+ "type": "object",
81
+ "properties": {
82
+ "title_format": { "type": "string" },
83
+ "include_story_id": { "type": "boolean" },
84
+ "conventional_commits": {
85
+ "type": "object",
86
+ "properties": {
87
+ "enabled": { "type": "boolean" },
88
+ "branch_type_map": {
89
+ "type": "object",
90
+ "additionalProperties": { "type": "string" }
91
+ },
92
+ "default_type": { "type": "string" }
93
+ },
94
+ "additionalProperties": false
95
+ },
96
+ "auto_assign_reviewers": { "type": "boolean" },
97
+ "draft_by_default": { "type": "boolean" }
98
+ },
99
+ "additionalProperties": false
100
+ },
101
+ "semantic_release": {
102
+ "type": "object",
103
+ "properties": {
104
+ "enabled": { "type": "boolean" }
105
+ },
106
+ "additionalProperties": false
107
+ }
108
+ },
109
+ "additionalProperties": false
23
110
  },
24
- "deploy_target": {
25
- "type": "string",
26
- "description": "Deployment target platform"
111
+ "coderabbit_integration": {
112
+ "type": "object",
113
+ "description": "CodeRabbit automated review integration",
114
+ "properties": {
115
+ "enabled": { "type": "boolean" },
116
+ "self_healing": {
117
+ "type": "object",
118
+ "properties": {
119
+ "enabled": { "type": "boolean" },
120
+ "type": { "type": "string", "enum": ["light", "full"] },
121
+ "max_iterations": { "type": "integer", "minimum": 1 },
122
+ "timeout_minutes": { "type": "integer", "minimum": 1 }
123
+ },
124
+ "additionalProperties": false
125
+ },
126
+ "severity_handling": {
127
+ "type": "object",
128
+ "properties": {
129
+ "CRITICAL": { "type": "string", "enum": ["auto_fix", "document_as_debt", "ignore"] },
130
+ "HIGH": { "type": "string", "enum": ["auto_fix", "document_as_debt", "ignore"] },
131
+ "MEDIUM": { "type": "string", "enum": ["auto_fix", "document_as_debt", "ignore"] },
132
+ "LOW": { "type": "string", "enum": ["auto_fix", "document_as_debt", "ignore"] }
133
+ },
134
+ "additionalProperties": false
135
+ },
136
+ "graceful_degradation": {
137
+ "type": "object",
138
+ "properties": {
139
+ "skip_if_not_installed": { "type": "boolean" },
140
+ "fallback_message": { "type": "string" }
141
+ },
142
+ "additionalProperties": false
143
+ },
144
+ "report_location": { "type": "string" }
145
+ },
146
+ "additionalProperties": false
147
+ },
148
+ "squads": {
149
+ "type": "object",
150
+ "description": "Squad system configuration",
151
+ "properties": {
152
+ "template_location": { "type": "string" },
153
+ "auto_load": { "type": "boolean" }
154
+ },
155
+ "additionalProperties": false
156
+ },
157
+ "logging": {
158
+ "type": "object",
159
+ "description": "Logging, status, and agent identity configuration",
160
+ "properties": {
161
+ "decision_logging": {
162
+ "type": "object",
163
+ "properties": {
164
+ "enabled": { "type": "boolean" },
165
+ "async": { "type": "boolean" },
166
+ "location": { "type": "string" },
167
+ "index_file": { "type": "string" },
168
+ "format": { "type": "string" },
169
+ "performance": {
170
+ "type": "object",
171
+ "properties": {
172
+ "max_overhead": { "type": "integer", "minimum": 0 }
173
+ },
174
+ "additionalProperties": false
175
+ }
176
+ },
177
+ "additionalProperties": false
178
+ },
179
+ "project_status": {
180
+ "type": "object",
181
+ "properties": {
182
+ "enabled": { "type": "boolean" },
183
+ "auto_load_on_agent_activation": { "type": "boolean" },
184
+ "show_in_greeting": { "type": "boolean" },
185
+ "cache_time_seconds": { "type": "integer", "minimum": 0 },
186
+ "components": {
187
+ "type": "object",
188
+ "properties": {
189
+ "git_branch": { "type": "boolean" },
190
+ "git_status": { "type": "boolean" },
191
+ "recent_work": { "type": "boolean" },
192
+ "current_epic": { "type": "boolean" },
193
+ "current_story": { "type": "boolean" }
194
+ },
195
+ "additionalProperties": false
196
+ },
197
+ "status_file": { "type": "string" },
198
+ "max_modified_files": { "type": "integer", "minimum": 1 },
199
+ "max_recent_commits": { "type": "integer", "minimum": 1 }
200
+ },
201
+ "additionalProperties": false
202
+ },
203
+ "agent_identity": {
204
+ "type": "object",
205
+ "properties": {
206
+ "greeting": {
207
+ "type": "object",
208
+ "properties": {
209
+ "context_detection": { "type": "boolean" },
210
+ "session_detection": { "type": "string" },
211
+ "workflow_detection": { "type": "string" },
212
+ "performance": {
213
+ "type": "object",
214
+ "properties": {
215
+ "git_check_cache": { "type": "boolean" },
216
+ "git_check_ttl": { "type": "integer", "minimum": 0 }
217
+ },
218
+ "additionalProperties": false
219
+ }
220
+ },
221
+ "additionalProperties": false
222
+ }
223
+ },
224
+ "additionalProperties": false
225
+ }
226
+ },
227
+ "additionalProperties": false
228
+ },
229
+ "story_backlog": {
230
+ "type": "object",
231
+ "description": "Story backlog settings",
232
+ "properties": {
233
+ "enabled": { "type": "boolean" },
234
+ "location": { "type": "string" },
235
+ "prioritization": { "type": "string" }
236
+ },
237
+ "additionalProperties": false
238
+ },
239
+ "pv_mind_context": {
240
+ "type": "object",
241
+ "description": "PV Mind context configuration",
242
+ "properties": {
243
+ "enabled": { "type": "boolean" },
244
+ "location": { "type": "string" },
245
+ "features": {
246
+ "type": "object",
247
+ "properties": {
248
+ "persona_voice": { "type": "boolean" },
249
+ "technical_depth": { "type": "string" },
250
+ "communication_style": { "type": "string" }
251
+ },
252
+ "additionalProperties": false
253
+ }
254
+ },
255
+ "additionalProperties": false
256
+ },
257
+ "auto_claude": {
258
+ "type": "object",
259
+ "description": "Auto-Claude autonomous execution settings",
260
+ "properties": {
261
+ "enabled": { "type": "boolean" },
262
+ "version": { "type": "string" },
263
+ "migrated_at": { "type": "string", "format": "date-time" },
264
+ "worktree": {
265
+ "type": "object",
266
+ "properties": {
267
+ "enabled": { "type": "boolean" },
268
+ "auto_create": { "type": "string" },
269
+ "auto_cleanup": { "type": "string" },
270
+ "max_worktrees": { "type": "integer", "minimum": 1 },
271
+ "stale_days": { "type": "integer", "minimum": 1 },
272
+ "branch_prefix": { "type": "string" }
273
+ },
274
+ "additionalProperties": false
275
+ },
276
+ "spec_pipeline": {
277
+ "type": "object",
278
+ "properties": { "enabled": { "type": "boolean" } },
279
+ "additionalProperties": false
280
+ },
281
+ "execution": {
282
+ "type": "object",
283
+ "properties": { "enabled": { "type": "boolean" } },
284
+ "additionalProperties": false
285
+ },
286
+ "qa": {
287
+ "type": "object",
288
+ "properties": { "enabled": { "type": "boolean" } },
289
+ "additionalProperties": false
290
+ }
291
+ },
292
+ "additionalProperties": false
293
+ },
294
+ "boundary": {
295
+ "type": "object",
296
+ "description": "Framework boundary protection configuration",
297
+ "properties": {
298
+ "frameworkProtection": {
299
+ "type": "boolean",
300
+ "description": "Enable/disable deny rules for framework protection",
301
+ "default": true
302
+ },
303
+ "protected": {
304
+ "type": "array",
305
+ "items": { "type": "string" },
306
+ "description": "Glob patterns of protected framework paths"
307
+ },
308
+ "exceptions": {
309
+ "type": "array",
310
+ "items": { "type": "string" },
311
+ "description": "Glob patterns excluded from protection"
312
+ }
313
+ },
314
+ "required": ["frameworkProtection"],
315
+ "additionalProperties": false
316
+ },
317
+ "template_overrides": {
318
+ "type": "object",
319
+ "description": "Template customization overrides (from L1 defaults)",
320
+ "properties": {
321
+ "story": {
322
+ "type": "object",
323
+ "properties": {
324
+ "sections_order": {
325
+ "oneOf": [
326
+ { "type": "array", "items": { "type": "string" } },
327
+ { "type": "null" }
328
+ ],
329
+ "description": "Custom section order for story templates. null = use template default."
330
+ },
331
+ "optional_sections": {
332
+ "type": "array",
333
+ "items": { "type": "string" },
334
+ "description": "Section IDs that can be skipped in story templates"
335
+ }
336
+ },
337
+ "additionalProperties": false
338
+ }
339
+ },
340
+ "additionalProperties": false
27
341
  }
28
342
  },
29
343
  "additionalProperties": true
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Template Overrides — Consumer Helper
5
+ *
6
+ * Reads template_overrides from an already-resolved config (output of resolveConfig()).
7
+ * Does NOT call resolveConfig() itself — the caller passes in the merged config.
8
+ *
9
+ * @module template-overrides
10
+ * @see ADR-PRO-002 — Configuration Hierarchy
11
+ */
12
+
13
+ /** Known story template section IDs (from story-tmpl.yaml) */
14
+ const KNOWN_STORY_SECTIONS = [
15
+ 'community-origin',
16
+ 'status',
17
+ 'executor-assignment',
18
+ 'story',
19
+ 'acceptance-criteria',
20
+ 'coderabbit-integration',
21
+ 'tasks-subtasks',
22
+ 'dev-notes',
23
+ 'change-log',
24
+ 'dev-agent-record',
25
+ 'qa-results',
26
+ ];
27
+
28
+ /**
29
+ * Extract and normalize template overrides from resolved config.
30
+ *
31
+ * @param {object} resolvedConfig - Merged config from resolveConfig()
32
+ * @returns {{ story: { sections_order: string[]|null, optional_sections: string[] } }}
33
+ */
34
+ function getTemplateOverrides(resolvedConfig) {
35
+ const overrides = resolvedConfig?.template_overrides ?? {};
36
+ const story = overrides.story ?? {};
37
+
38
+ const sectionsOrder = Array.isArray(story.sections_order)
39
+ ? story.sections_order
40
+ : null;
41
+
42
+ const optionalSections = Array.isArray(story.optional_sections)
43
+ ? story.optional_sections
44
+ : [];
45
+
46
+ // Validate section IDs
47
+ const allSections = [
48
+ ...(sectionsOrder ?? []),
49
+ ...optionalSections,
50
+ ];
51
+
52
+ const unknown = allSections.filter((id) => !KNOWN_STORY_SECTIONS.includes(id));
53
+ if (unknown.length > 0) {
54
+ throw new Error(
55
+ `Unknown story section ID(s) in template_overrides: ${unknown.join(', ')}. ` +
56
+ `Valid IDs: ${KNOWN_STORY_SECTIONS.join(', ')}`
57
+ );
58
+ }
59
+
60
+ return {
61
+ story: {
62
+ sections_order: sectionsOrder,
63
+ optional_sections: optionalSections,
64
+ },
65
+ };
66
+ }
67
+
68
+ /**
69
+ * Check whether a section is optional in the current config.
70
+ *
71
+ * @param {object} resolvedConfig - Merged config from resolveConfig()
72
+ * @param {string} sectionId - Story template section ID
73
+ * @returns {boolean}
74
+ */
75
+ function isSectionOptional(resolvedConfig, sectionId) {
76
+ const { story } = getTemplateOverrides(resolvedConfig);
77
+ return story.optional_sections.includes(sectionId);
78
+ }
79
+
80
+ module.exports = {
81
+ KNOWN_STORY_SECTIONS,
82
+ getTemplateOverrides,
83
+ isSectionOptional,
84
+ };
@@ -103,7 +103,7 @@ This guide helps diagnose and resolve common issues when using the Synkra AIOS m
103
103
  3. Check working directory:
104
104
  ```bash
105
105
  pwd
106
- # Should be in @synkra/aios-core root
106
+ # Should be in aios-core root
107
107
  ```
108
108
 
109
109
  ## Template Processing Problems
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Doctor Check: Agent Memory
3
+ *
4
+ * Validates MEMORY.md files exist for all 10 agents in development/agents/.
5
+ *
6
+ * @module aios-core/doctor/checks/agent-memory
7
+ * @story INS-4.1
8
+ */
9
+
10
+ const path = require('path');
11
+ const fs = require('fs');
12
+
13
+ const name = 'agent-memory';
14
+
15
+ const EXPECTED_AGENTS = [
16
+ 'dev',
17
+ 'qa',
18
+ 'architect',
19
+ 'pm',
20
+ 'po',
21
+ 'sm',
22
+ 'analyst',
23
+ 'data-engineer',
24
+ 'ux',
25
+ 'devops',
26
+ ];
27
+
28
+ async function run(context) {
29
+ const agentsDir = path.join(context.projectRoot, '.aios-core', 'development', 'agents');
30
+
31
+ if (!fs.existsSync(agentsDir)) {
32
+ return {
33
+ check: name,
34
+ status: 'FAIL',
35
+ message: 'Agents directory not found',
36
+ fixCommand: 'aios doctor --fix',
37
+ };
38
+ }
39
+
40
+ const missing = EXPECTED_AGENTS.filter(
41
+ (agent) => !fs.existsSync(path.join(agentsDir, agent, 'MEMORY.md')),
42
+ );
43
+
44
+ if (missing.length === 0) {
45
+ return {
46
+ check: name,
47
+ status: 'PASS',
48
+ message: `${EXPECTED_AGENTS.length}/${EXPECTED_AGENTS.length} MEMORY.md files present`,
49
+ fixCommand: null,
50
+ };
51
+ }
52
+
53
+ const present = EXPECTED_AGENTS.length - missing.length;
54
+
55
+ return {
56
+ check: name,
57
+ status: 'WARN',
58
+ message: `${present}/${EXPECTED_AGENTS.length} MEMORY.md files present (missing: ${missing.join(', ')})`,
59
+ fixCommand: 'aios doctor --fix',
60
+ };
61
+ }
62
+
63
+ module.exports = { name, run, EXPECTED_AGENTS };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Doctor Check: CLAUDE.md
3
+ *
4
+ * Validates .claude/CLAUDE.md exists and has required section headings.
5
+ *
6
+ * @module aios-core/doctor/checks/claude-md
7
+ * @story INS-4.1
8
+ */
9
+
10
+ const path = require('path');
11
+ const fs = require('fs');
12
+
13
+ const name = 'claude-md';
14
+
15
+ const REQUIRED_SECTIONS = [
16
+ 'Constitution',
17
+ 'Framework vs Project Boundary',
18
+ 'Sistema de Agentes',
19
+ ];
20
+
21
+ async function run(context) {
22
+ const claudeMdPath = path.join(context.projectRoot, '.claude', 'CLAUDE.md');
23
+
24
+ if (!fs.existsSync(claudeMdPath)) {
25
+ return {
26
+ check: name,
27
+ status: 'FAIL',
28
+ message: 'CLAUDE.md not found',
29
+ fixCommand: 'aios doctor --fix',
30
+ };
31
+ }
32
+
33
+ const content = fs.readFileSync(claudeMdPath, 'utf8');
34
+
35
+ const missingSections = REQUIRED_SECTIONS.filter(
36
+ (section) => !content.includes(section),
37
+ );
38
+
39
+ if (missingSections.length === 0) {
40
+ return {
41
+ check: name,
42
+ status: 'PASS',
43
+ message: 'All required sections present',
44
+ fixCommand: null,
45
+ };
46
+ }
47
+
48
+ return {
49
+ check: name,
50
+ status: 'WARN',
51
+ message: `Missing sections: ${missingSections.join(', ')}`,
52
+ fixCommand: 'aios doctor --fix',
53
+ };
54
+ }
55
+
56
+ module.exports = { name, run };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Doctor Check: Code Intelligence
3
+ *
4
+ * Reads code-intel provider status. Returns INFO (not FAIL) if not configured.
5
+ *
6
+ * @module aios-core/doctor/checks/code-intel
7
+ * @story INS-4.1
8
+ */
9
+
10
+ const path = require('path');
11
+ const fs = require('fs');
12
+
13
+ const name = 'code-intel';
14
+
15
+ async function run(context) {
16
+ const codeIntelDir = path.join(context.projectRoot, '.aios-core', 'core', 'code-intel');
17
+
18
+ if (!fs.existsSync(codeIntelDir)) {
19
+ return {
20
+ check: name,
21
+ status: 'INFO',
22
+ message: 'Code-intel module not found (optional)',
23
+ fixCommand: null,
24
+ };
25
+ }
26
+
27
+ const configPath = path.join(context.projectRoot, '.aios-core', 'core-config.yaml');
28
+ if (!fs.existsSync(configPath)) {
29
+ return {
30
+ check: name,
31
+ status: 'INFO',
32
+ message: 'Provider not configured (graceful fallback active)',
33
+ fixCommand: null,
34
+ };
35
+ }
36
+
37
+ const content = fs.readFileSync(configPath, 'utf8');
38
+ const hasCodeIntel = content.includes('codeIntel:') || content.includes('code_intel:');
39
+
40
+ if (hasCodeIntel) {
41
+ return {
42
+ check: name,
43
+ status: 'PASS',
44
+ message: 'Code-intel provider configured',
45
+ fixCommand: null,
46
+ };
47
+ }
48
+
49
+ return {
50
+ check: name,
51
+ status: 'INFO',
52
+ message: 'Provider not configured (graceful fallback active)',
53
+ fixCommand: null,
54
+ };
55
+ }
56
+
57
+ module.exports = { name, run };