aiox-core 5.0.7 → 5.0.8

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 (191) hide show
  1. package/.aiox-core/cli/commands/pro/buyer.js +379 -0
  2. package/.aiox-core/cli/commands/pro/index.js +191 -52
  3. package/.aiox-core/cli/commands/validate/index.js +2 -0
  4. package/.aiox-core/core/code-intel/helpers/dev-helper.js +1 -1
  5. package/.aiox-core/core/code-intel/helpers/devops-helper.js +0 -1
  6. package/.aiox-core/core/code-intel/helpers/planning-helper.js +1 -1
  7. package/.aiox-core/core/code-intel/helpers/qa-helper.js +2 -2
  8. package/.aiox-core/core/config/schemas/framework-config.schema.json +1 -0
  9. package/.aiox-core/core/config/template-overrides.js +1 -1
  10. package/.aiox-core/core/doctor/checks/ide-sync.js +81 -25
  11. package/.aiox-core/core/doctor/checks/rules-files.js +0 -1
  12. package/.aiox-core/core/doctor/checks/skills-count.js +83 -15
  13. package/.aiox-core/core/graph-dashboard/cli.js +1 -2
  14. package/.aiox-core/core/graph-dashboard/data-sources/code-intel-source.js +1 -1
  15. package/.aiox-core/core/ids/layer-classifier.js +1 -1
  16. package/.aiox-core/core/pro/pro-updater.js +578 -0
  17. package/.aiox-core/core/synapse/context/context-tracker.js +107 -9
  18. package/.aiox-core/core/synapse/layers/layer-processor.js +1 -1
  19. package/.aiox-core/core-config.yaml +15 -1
  20. package/.aiox-core/data/capability-detection.js +15 -15
  21. package/.aiox-core/data/entity-registry.yaml +18 -2
  22. package/.aiox-core/data/registry-update-log.jsonl +5 -0
  23. package/.aiox-core/data/tok3-token-comparison.js +0 -4
  24. package/.aiox-core/data/tool-search-validation.js +1 -1
  25. package/.aiox-core/development/agents/aiox-master.md +44 -6
  26. package/.aiox-core/development/agents/data-engineer.md +4 -4
  27. package/.aiox-core/development/agents/devops.md +52 -2
  28. package/.aiox-core/development/agents/po.md +1 -1
  29. package/.aiox-core/development/agents/qa.md +5 -11
  30. package/.aiox-core/development/agents/sm.md +3 -3
  31. package/.aiox-core/development/agents/ux-design-expert.md +1 -1
  32. package/.aiox-core/development/scripts/unified-activation-pipeline.js +29 -3
  33. package/.aiox-core/development/tasks/dev-develop-story.md +46 -7
  34. package/.aiox-core/development/tasks/devops-pro-access-grant.md +93 -0
  35. package/.aiox-core/development/tasks/devops-pro-activate.md +42 -0
  36. package/.aiox-core/development/tasks/devops-pro-check-access.md +34 -0
  37. package/.aiox-core/development/tasks/devops-pro-request-reset.md +34 -0
  38. package/.aiox-core/development/tasks/devops-pro-resend-verification.md +32 -0
  39. package/.aiox-core/development/tasks/devops-pro-reset-password.md +36 -0
  40. package/.aiox-core/development/tasks/devops-pro-validate-login.md +36 -0
  41. package/.aiox-core/development/tasks/devops-pro-verify-status.md +33 -0
  42. package/.aiox-core/development/tasks/qa-gate.md +54 -4
  43. package/.aiox-core/development/tasks/validate-next-story.md +39 -2
  44. package/.aiox-core/framework-config.yaml +1 -0
  45. package/.aiox-core/infrastructure/scripts/codex-skills-sync/README.md +69 -0
  46. package/.aiox-core/infrastructure/scripts/codex-skills-sync/bootstrap.js +727 -0
  47. package/.aiox-core/infrastructure/scripts/codex-skills-sync/index.js +10 -0
  48. package/.aiox-core/infrastructure/scripts/codex-skills-sync/validate.js +65 -4
  49. package/.aiox-core/infrastructure/scripts/generate-settings-json.js +29 -4
  50. package/.aiox-core/infrastructure/scripts/ide-sync/agent-parser.js +4 -0
  51. package/.aiox-core/infrastructure/scripts/ide-sync/index.js +67 -7
  52. package/.aiox-core/infrastructure/scripts/ide-sync/transformers/claude-code.js +145 -3
  53. package/.aiox-core/infrastructure/scripts/repair-agent-references.js +263 -0
  54. package/.aiox-core/infrastructure/scripts/validate-claude-integration.js +60 -8
  55. package/.aiox-core/infrastructure/scripts/validate-paths.js +13 -0
  56. package/.aiox-core/install-manifest.yaml +134 -82
  57. package/.aiox-core/utils/filters/index.js +2 -1
  58. package/.claude/commands/AIOX/agents/aiox-master.md +21 -0
  59. package/.claude/commands/AIOX/agents/analyst.md +21 -0
  60. package/.claude/commands/AIOX/agents/architect.md +21 -0
  61. package/.claude/commands/AIOX/agents/data-engineer.md +21 -0
  62. package/.claude/commands/AIOX/agents/dev.md +21 -0
  63. package/.claude/commands/AIOX/agents/devops.md +21 -0
  64. package/.claude/commands/AIOX/agents/pm.md +21 -0
  65. package/.claude/commands/AIOX/agents/po.md +21 -0
  66. package/.claude/commands/AIOX/agents/qa.md +21 -0
  67. package/.claude/commands/AIOX/agents/sm.md +21 -0
  68. package/.claude/commands/AIOX/agents/squad-creator.md +21 -0
  69. package/.claude/commands/AIOX/agents/ux-design-expert.md +21 -0
  70. package/.claude/commands/AIOX/scripts/agent-config-loader.js +624 -0
  71. package/.claude/commands/AIOX/scripts/generate-greeting.js +160 -0
  72. package/.claude/commands/AIOX/scripts/greeting-builder.js +866 -0
  73. package/.claude/commands/AIOX/scripts/session-context-loader.js +286 -0
  74. package/.claude/commands/AIOX/stories/story-6.1.4.md +1404 -0
  75. package/.claude/commands/cohort-squad/agents/cohort-manager.md +156 -0
  76. package/.claude/commands/design-system/agents/brad-frost.md +1097 -0
  77. package/.claude/commands/design-system/agents/dan-mall.md +857 -0
  78. package/.claude/commands/design-system/agents/dave-malouf.md +2272 -0
  79. package/.claude/commands/design-system/agents/design-chief.md +102 -0
  80. package/.claude/commands/design-system/agents/nano-banana-generator.md +162 -0
  81. package/.claude/commands/greet.md +101 -0
  82. package/.claude/commands/synapse/manager.md +75 -0
  83. package/.claude/commands/synapse/tasks/add-rule.md +94 -0
  84. package/.claude/commands/synapse/tasks/create-command.md +109 -0
  85. package/.claude/commands/synapse/tasks/create-domain.md +127 -0
  86. package/.claude/commands/synapse/tasks/diagnose-synapse.md +245 -0
  87. package/.claude/commands/synapse/tasks/edit-rule.md +109 -0
  88. package/.claude/commands/synapse/tasks/suggest-domain.md +116 -0
  89. package/.claude/commands/synapse/tasks/toggle-domain.md +83 -0
  90. package/.claude/commands/synapse/templates/domain-template +8 -0
  91. package/.claude/commands/synapse/templates/manifest-entry-template +4 -0
  92. package/.claude/commands/synapse/utils/manifest-parser-reference.md +134 -0
  93. package/.claude/hooks/precompact-session-digest.cjs +2 -2
  94. package/.claude/skills/AIOX/agents/aiox-master/SKILL.md +511 -0
  95. package/.claude/skills/AIOX/agents/analyst/SKILL.md +281 -0
  96. package/.claude/skills/AIOX/agents/architect/SKILL.md +482 -0
  97. package/.claude/skills/AIOX/agents/data-engineer/SKILL.md +503 -0
  98. package/.claude/skills/AIOX/agents/dev/SKILL.md +568 -0
  99. package/.claude/skills/AIOX/agents/devops/SKILL.md +597 -0
  100. package/.claude/skills/AIOX/agents/pm/SKILL.md +385 -0
  101. package/.claude/skills/AIOX/agents/po/SKILL.md +343 -0
  102. package/.claude/skills/AIOX/agents/qa/SKILL.md +451 -0
  103. package/.claude/skills/AIOX/agents/sm/SKILL.md +295 -0
  104. package/.claude/skills/AIOX/agents/squad-creator/SKILL.md +352 -0
  105. package/.claude/skills/AIOX/agents/ux-design-expert/SKILL.md +503 -0
  106. package/.claude/skills/architect-first/SKILL.md +275 -0
  107. package/.claude/skills/architect-first/assets/architecture-template.md +505 -0
  108. package/.claude/skills/architect-first/assets/config-template.yaml +351 -0
  109. package/.claude/skills/architect-first/references/architecture-checklist.md +216 -0
  110. package/.claude/skills/architect-first/references/pre-implementation-checklist.md +119 -0
  111. package/.claude/skills/architect-first/references/stop-rules-guide.md +291 -0
  112. package/.claude/skills/architect-first/references/testing-strategy-guide.md +477 -0
  113. package/.claude/skills/architect-first/scripts/architecture_validator.py +490 -0
  114. package/.claude/skills/architect-first/scripts/check_coupling.py +306 -0
  115. package/.claude/skills/architect-first/scripts/validate_risk_mitigation.py +382 -0
  116. package/.claude/skills/checklist-runner/SKILL.md +113 -0
  117. package/.claude/skills/clone-mind.md +329 -0
  118. package/.claude/skills/coderabbit-review/SKILL.md +106 -0
  119. package/.claude/skills/course-generation-workflow.md +76 -0
  120. package/.claude/skills/enhance-workflow.md +466 -0
  121. package/.claude/skills/mcp-builder/LICENSE.txt +202 -0
  122. package/.claude/skills/mcp-builder/SKILL.md +328 -0
  123. package/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
  124. package/.claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
  125. package/.claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
  126. package/.claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
  127. package/.claude/skills/mcp-builder/scripts/connections.py +151 -0
  128. package/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
  129. package/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
  130. package/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
  131. package/.claude/skills/ralph.md +181 -0
  132. package/.claude/skills/skill-creator/LICENSE.txt +202 -0
  133. package/.claude/skills/skill-creator/SKILL.md +209 -0
  134. package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
  135. package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
  136. package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
  137. package/.claude/skills/squad.md +301 -0
  138. package/.claude/skills/synapse/SKILL.md +132 -0
  139. package/.claude/skills/synapse/assets/README.md +50 -0
  140. package/.claude/skills/synapse/references/brackets.md +100 -0
  141. package/.claude/skills/synapse/references/commands.md +118 -0
  142. package/.claude/skills/synapse/references/domains.md +126 -0
  143. package/.claude/skills/synapse/references/layers.md +186 -0
  144. package/.claude/skills/synapse/references/manifest.md +142 -0
  145. package/.claude/skills/tech-search/SKILL.md +431 -0
  146. package/.claude/skills/tech-search/prompts/page-extract.md +133 -0
  147. package/README.en.md +2 -2
  148. package/README.md +8 -2
  149. package/bin/aiox.js +55 -4
  150. package/bin/utils/framework-guard.js +4 -2
  151. package/bin/utils/pro-detector.js +119 -28
  152. package/bin/utils/validate-publish.js +6 -6
  153. package/docs/aiox-agent-flows/devops-system.md +18 -0
  154. package/docs/aiox-workflows/README.md +1 -0
  155. package/docs/aiox-workflows/pro-access-grant-workflow.md +218 -0
  156. package/docs/guides/pro/access-grant-ops-playbook.md +370 -0
  157. package/docs/guides/pro/install-gate-setup.md +12 -6
  158. package/docs/guides/pro/squad-creator-handoff-pro-access-ops.md +134 -0
  159. package/docs/guides/supabase-ops-handoff.md +768 -0
  160. package/package.json +12 -1
  161. package/packages/aiox-pro-cli/bin/aiox-pro.js +33 -12
  162. package/packages/installer/src/config/configure-environment.js +118 -50
  163. package/packages/installer/src/installer/aiox-core-installer.js +124 -27
  164. package/packages/installer/src/installer/brownfield-upgrader.js +66 -9
  165. package/packages/installer/src/installer/dependency-installer.js +4 -0
  166. package/packages/installer/src/pro/pro-scaffolder.js +5 -5
  167. package/packages/installer/src/updater/index.js +151 -10
  168. package/packages/installer/src/wizard/ide-config-generator.js +73 -7
  169. package/packages/installer/src/wizard/index.js +119 -31
  170. package/packages/installer/src/wizard/pro-setup.js +118 -47
  171. package/packages/installer/src/wizard/validation/validators/dependency-validator.js +32 -25
  172. package/packages/installer/src/wizard/validation/validators/file-structure-validator.js +26 -0
  173. package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +84 -1
  174. package/packages/installer/tests/unit/claude-md-template-v5/claude-md-template-v5.test.js +1 -1
  175. package/packages/installer/tests/unit/doctor/doctor-checks.test.js +85 -19
  176. package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +4 -4
  177. package/packages/installer/tests/unit/generate-settings-json/generate-settings-json.test.js +5 -5
  178. package/packages/installer/tests/unit/ide-sync-integration/ide-sync-integration.test.js +4 -4
  179. package/packages/installer/tests/unit/merger/yaml-merger.test.js +11 -11
  180. package/pro/README.md +12 -1
  181. package/pro/license/index.js +3 -11
  182. package/pro/license/license-api.js +25 -0
  183. package/pro/license/license-cache.js +135 -31
  184. package/pro/license/license-crypto.js +59 -3
  185. package/pro/package.json +5 -4
  186. package/pro/squads/README.md +16 -16
  187. package/pro/squads/index.js +1 -1
  188. package/scripts/e2e/installed-skills-smoke.js +264 -0
  189. package/scripts/package-synapse.js +3 -3
  190. package/scripts/validate-package-completeness.js +8 -11
  191. package/.aiox-core/lib/build.json +0 -1
@@ -5,13 +5,16 @@
5
5
  * based on estimated token usage. Provides token budgets and layer filtering
6
6
  * per bracket for the SynapseEngine orchestrator.
7
7
  *
8
- * Pure arithmetic module zero I/O, zero external dependencies.
8
+ * Reads model context window from core-config.yaml models.registry.
9
9
  *
10
10
  * @module core/synapse/context/context-tracker
11
- * @version 1.0.0
11
+ * @version 1.1.0
12
12
  * @created Story SYN-3 - Context Bracket Tracker
13
13
  */
14
14
 
15
+ const fs = require('fs');
16
+ const path = require('path');
17
+
15
18
  /**
16
19
  * Bracket definitions with thresholds and token budgets.
17
20
  *
@@ -51,11 +54,87 @@ const XML_SAFETY_MULTIPLIER = 1.2;
51
54
 
52
55
  /**
53
56
  * Default configuration values.
57
+ * maxContext is the fallback when core-config.yaml is unavailable.
54
58
  */
55
- const DEFAULTS = {
59
+ const DEFAULTS = Object.freeze({
56
60
  avgTokensPerPrompt: 1500,
57
61
  maxContext: 200000,
58
- };
62
+ });
63
+
64
+ /** Cache for model config by project root (read once per root per process). */
65
+ const _modelConfigCache = new Map();
66
+
67
+ function cloneModelConfig(config) {
68
+ return { ...config };
69
+ }
70
+
71
+ function cacheModelConfig(root, config) {
72
+ const cachedConfig = Object.freeze(cloneModelConfig(config));
73
+ _modelConfigCache.set(root, cachedConfig);
74
+ return cloneModelConfig(cachedConfig);
75
+ }
76
+
77
+ function isPositiveFiniteNumber(value) {
78
+ return Number.isFinite(value) && value > 0;
79
+ }
80
+
81
+ /**
82
+ * Resolve the project root used for model config lookup.
83
+ *
84
+ * @param {string|null} basePath - Optional project root override
85
+ * @returns {string}
86
+ */
87
+ function resolveConfigRoot(basePath) {
88
+ return path.resolve(basePath || path.resolve(__dirname, '..', '..', '..', '..'));
89
+ }
90
+
91
+ /**
92
+ * Read model configuration from core-config.yaml → models section.
93
+ * Returns { contextWindow, avgTokensPerPrompt } for the active model.
94
+ * Falls back to DEFAULTS if config is missing or malformed.
95
+ *
96
+ * @param {string|null} [basePath=null] - Project root override (defaults to __dirname-based resolution)
97
+ * @returns {{ maxContext: number, avgTokensPerPrompt: number }}
98
+ */
99
+ function getModelConfig(basePath = null) {
100
+ const root = resolveConfigRoot(basePath);
101
+ if (_modelConfigCache.has(root)) return cloneModelConfig(_modelConfigCache.get(root));
102
+
103
+ try {
104
+ const yaml = require('js-yaml');
105
+ let configPath = path.join(root, '.aios-core', 'core-config.yaml');
106
+ if (!fs.existsSync(configPath)) {
107
+ configPath = path.join(root, '.aiox-core', 'core-config.yaml');
108
+ }
109
+ if (!fs.existsSync(configPath)) {
110
+ return cacheModelConfig(root, DEFAULTS);
111
+ }
112
+
113
+ const config = yaml.load(fs.readFileSync(configPath, 'utf8'));
114
+ const models = config && config.models;
115
+ if (!models || !models.registry || !models.active) {
116
+ return cacheModelConfig(root, DEFAULTS);
117
+ }
118
+
119
+ const activeModel = models.registry[models.active];
120
+ if (!activeModel || !isPositiveFiniteNumber(activeModel.contextWindow)) {
121
+ return cacheModelConfig(root, DEFAULTS);
122
+ }
123
+
124
+ const modelConfig = {
125
+ maxContext: activeModel.contextWindow,
126
+ avgTokensPerPrompt: isPositiveFiniteNumber(activeModel.avgTokensPerPrompt)
127
+ ? activeModel.avgTokensPerPrompt
128
+ : DEFAULTS.avgTokensPerPrompt,
129
+ };
130
+ return cacheModelConfig(root, modelConfig);
131
+ } catch (err) {
132
+ if (process.env.DEBUG || process.env.AIOX_DEBUG) {
133
+ console.warn('[context-tracker] Failed to load model config, using defaults:', err.message);
134
+ }
135
+ return cacheModelConfig(root, DEFAULTS);
136
+ }
137
+ }
59
138
 
60
139
  /**
61
140
  * Layer configurations per bracket.
@@ -101,16 +180,20 @@ function calculateBracket(contextPercent) {
101
180
  * Formula: 100 - ((promptCount * avgTokensPerPrompt) / maxContext * 100)
102
181
  * Result is clamped to 0-100 range.
103
182
  *
183
+ * Reads maxContext and avgTokensPerPrompt from core-config.yaml → models.registry
184
+ * for the active model. Options parameter can override for testing.
185
+ *
104
186
  * @param {number} promptCount - Number of prompts in current session
105
- * @param {Object} [options={}] - Configuration options
106
- * @param {number} [options.avgTokensPerPrompt=1500] - Average tokens per prompt
107
- * @param {number} [options.maxContext=200000] - Maximum context window size in tokens
187
+ * @param {Object} [options={}] - Configuration options (override config values)
188
+ * @param {number} [options.avgTokensPerPrompt] - Average tokens per prompt
189
+ * @param {number} [options.maxContext] - Maximum context window size in tokens
108
190
  * @returns {number} Percentage of context remaining (0.0 to 100.0)
109
191
  */
110
192
  function estimateContextPercent(promptCount, options = {}) {
193
+ const modelConfig = getModelConfig();
111
194
  const {
112
- avgTokensPerPrompt = DEFAULTS.avgTokensPerPrompt,
113
- maxContext = DEFAULTS.maxContext,
195
+ avgTokensPerPrompt = modelConfig.avgTokensPerPrompt,
196
+ maxContext = modelConfig.maxContext,
114
197
  } = options;
115
198
 
116
199
  if (typeof promptCount !== 'number' || isNaN(promptCount) || promptCount < 0) {
@@ -184,6 +267,19 @@ function needsMemoryHints(bracket) {
184
267
  return bracket === 'DEPLETED' || bracket === 'CRITICAL';
185
268
  }
186
269
 
270
+ /**
271
+ * Reset the model config cache. Useful for tests or after config changes.
272
+ *
273
+ * @param {string|null} [basePath=null] - Optional project root override
274
+ */
275
+ function resetModelConfigCache(basePath = null) {
276
+ if (basePath === null) {
277
+ _modelConfigCache.clear();
278
+ return;
279
+ }
280
+ _modelConfigCache.delete(resolveConfigRoot(basePath));
281
+ }
282
+
187
283
  module.exports = {
188
284
  calculateBracket,
189
285
  estimateContextPercent,
@@ -191,6 +287,8 @@ module.exports = {
191
287
  getActiveLayers,
192
288
  needsHandoffWarning,
193
289
  needsMemoryHints,
290
+ getModelConfig,
291
+ resetModelConfigCache,
194
292
  BRACKETS,
195
293
  TOKEN_BUDGETS,
196
294
  DEFAULTS,
@@ -50,7 +50,7 @@ class LayerProcessor {
50
50
  * @param {object[]} context.previousLayers - Results from previous layers
51
51
  * @returns {{ rules: string[], metadata: object } | null} Rules and metadata, or null to skip
52
52
  */
53
- process(context) {
53
+ process(_context) {
54
54
  throw new Error(`${this.name}: process() must be implemented by subclass`);
55
55
  }
56
56
 
@@ -312,6 +312,7 @@ ideSync:
312
312
  claude-code:
313
313
  enabled: true
314
314
  path: .claude/commands/AIOX/agents
315
+ skillsPath: .claude/skills
315
316
  format: full-markdown-yaml
316
317
  codex:
317
318
  enabled: true
@@ -385,4 +386,17 @@ boundary:
385
386
  - .aiox-core/core/config/schemas/**
386
387
  - .aiox-core/core/config/template-overrides.js
387
388
 
388
- # Memory Intelligence System (Epic MIS) configuration placeholder — MIS-2+
389
+ # Context-tracker dynamic model registry (Issue #605).
390
+ # Consumed by .aiox-core/core/synapse/context/context-tracker.js.
391
+ models:
392
+ active: claude-sonnet-4-6
393
+ registry:
394
+ claude-opus-4-6:
395
+ contextWindow: 1000000
396
+ avgTokensPerPrompt: 1500
397
+ claude-sonnet-4-6:
398
+ contextWindow: 200000
399
+ avgTokensPerPrompt: 1500
400
+ claude-haiku-4-5:
401
+ contextWindow: 200000
402
+ avgTokensPerPrompt: 1200
@@ -31,13 +31,13 @@ function detectToolSearch() {
31
31
  return {
32
32
  available: features.tengu_mcp_tool_search === true,
33
33
  source: 'cachedGrowthBookFeatures.tengu_mcp_tool_search',
34
- detectionMethod: 'claude-json-feature-flag'
34
+ detectionMethod: 'claude-json-feature-flag',
35
35
  };
36
36
  } catch {
37
37
  return {
38
38
  available: false,
39
39
  source: 'detection-failed',
40
- detectionMethod: 'claude-json-feature-flag'
40
+ detectionMethod: 'claude-json-feature-flag',
41
41
  };
42
42
  }
43
43
  }
@@ -47,7 +47,7 @@ function detectDeferLoading() {
47
47
  return {
48
48
  available: false,
49
49
  reason: 'defer_loading is API-only (Python SDK). Not exposed in Claude Code CLI.',
50
- source: 'ADR-7 / Codex CRITICO-1'
50
+ source: 'ADR-7 / Codex CRITICO-1',
51
51
  };
52
52
  }
53
53
 
@@ -60,7 +60,7 @@ function detectProjectMcps() {
60
60
  name,
61
61
  type: cfg.type || 'command',
62
62
  scope: 'project',
63
- source: '.mcp.json'
63
+ source: '.mcp.json',
64
64
  }));
65
65
  } catch {
66
66
  return [];
@@ -83,7 +83,7 @@ function detectGlobalMcps() {
83
83
  name: match[1],
84
84
  type: 'docker-gateway',
85
85
  scope: 'global',
86
- source: '~/.docker/mcp/config.yaml'
86
+ source: '~/.docker/mcp/config.yaml',
87
87
  });
88
88
  }
89
89
  }
@@ -103,7 +103,7 @@ function detectGlobalMcps() {
103
103
  name,
104
104
  type: cfg.type || 'command',
105
105
  scope: 'global-settings',
106
- source: '~/.claude/settings.json'
106
+ source: '~/.claude/settings.json',
107
107
  });
108
108
  }
109
109
  }
@@ -121,7 +121,7 @@ function detectDockerGateway() {
121
121
  return {
122
122
  available: exists,
123
123
  configPath: exists ? dockerMcpDir : null,
124
- detectionMethod: 'filesystem-check'
124
+ detectionMethod: 'filesystem-check',
125
125
  };
126
126
  }
127
127
 
@@ -180,7 +180,7 @@ function loadToolRegistry() {
180
180
  tier2Count: tier2,
181
181
  tier3Count: tier3,
182
182
  essential,
183
- nonEssential
183
+ nonEssential,
184
184
  };
185
185
  } catch {
186
186
  return { available: false, totalTools: 0, tier1Count: 0, tier2Count: 0, tier3Count: 0, essential: [], nonEssential: [] };
@@ -197,7 +197,7 @@ function determineStrategy(toolSearch, deferLoading, dockerGateway) {
197
197
  return {
198
198
  primary: 'tool-search-auto',
199
199
  description: 'Claude Code Tool Search is active. Tier 3 MCP tools are automatically deferred via tool_search.',
200
- fallbacks: ['mcp-discipline', 'claudemd-guidance']
200
+ fallbacks: ['mcp-discipline', 'claudemd-guidance'],
201
201
  };
202
202
  }
203
203
 
@@ -205,14 +205,14 @@ function determineStrategy(toolSearch, deferLoading, dockerGateway) {
205
205
  return {
206
206
  primary: 'mcp-discipline',
207
207
  description: 'Tool Search not available. Using MCP discipline: disable non-essential servers in .mcp.json.',
208
- fallbacks: ['claudemd-guidance']
208
+ fallbacks: ['claudemd-guidance'],
209
209
  };
210
210
  }
211
211
 
212
212
  return {
213
213
  primary: 'claudemd-guidance',
214
214
  description: 'Neither Tool Search nor Docker Gateway available. Using CLAUDE.md guidance for tool selection priority.',
215
- fallbacks: []
215
+ fallbacks: [],
216
216
  };
217
217
  }
218
218
 
@@ -236,20 +236,20 @@ function run() {
236
236
 
237
237
  methodology: {
238
238
  toolSearchLatency: 'Managed internally by Claude Code — not programmatically measurable. Guidance-level enforcement via CLAUDE.md.',
239
- mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).'
239
+ mcpCountUnit: 'servers (not individual tools). TOK-1.5 baseline uses tool count (e.g., Apify = 7 tools = 1 server).',
240
240
  },
241
241
 
242
242
  runtime: {
243
243
  toolSearch,
244
244
  deferLoading,
245
- dockerGateway
245
+ dockerGateway,
246
246
  },
247
247
 
248
248
  mcpServers: {
249
249
  project: projectMcps,
250
250
  global: globalMcps,
251
251
  totalCount: projectMcps.length + globalMcps.length,
252
- countUnit: 'servers'
252
+ countUnit: 'servers',
253
253
  },
254
254
 
255
255
  toolRegistry,
@@ -263,7 +263,7 @@ function run() {
263
263
 
264
264
  nonEssentialServers: toolRegistry.nonEssential.length > 0
265
265
  ? toolRegistry.nonEssential
266
- : []
266
+ : [],
267
267
  };
268
268
 
269
269
  // Ensure output directory exists
@@ -1,7 +1,7 @@
1
1
  metadata:
2
2
  version: 1.0.0
3
- lastUpdated: '2026-03-11T00:48:55.982Z'
4
- entityCount: 745
3
+ lastUpdated: '2026-05-07T00:08:59.095Z'
4
+ entityCount: 746
5
5
  checksumAlgorithm: sha256
6
6
  resolutionRate: 100
7
7
  entities:
@@ -12778,6 +12778,22 @@ entities:
12778
12778
  extensionPoints: []
12779
12779
  checksum: sha256:dd025894f8f0d3bd22a147dbc0debef8b83e96f3c59483653404b3cd5a01d5aa
12780
12780
  lastVerified: '2026-03-11T00:48:55.903Z'
12781
+ pro-updater:
12782
+ path: .aiox-core/core/pro/pro-updater.js
12783
+ layer: L1
12784
+ type: module
12785
+ purpose: Entity at .aiox-core/core/pro/pro-updater.js
12786
+ keywords:
12787
+ - pro
12788
+ - updater
12789
+ usedBy: []
12790
+ dependencies: []
12791
+ adaptability:
12792
+ score: 0.4
12793
+ constraints: []
12794
+ extensionPoints: []
12795
+ checksum: sha256:4fbdf590f1685d835fa5bef8e2307708ab1eeb49f5ea177d4f79c1629e35670a
12796
+ lastVerified: '2026-05-07T00:08:58.904Z'
12781
12797
  agents:
12782
12798
  aiox-master:
12783
12799
  path: .aiox-core/development/agents/aiox-master.md
@@ -0,0 +1,5 @@
1
+ {"timestamp":"2026-05-06T18:32:31.287Z","action":"change","path":".aiox-core/development/scripts/unified-activation-pipeline.js","trigger":"watcher"}
2
+ {"timestamp":"2026-05-07T00:04:12.320Z","action":"change","path":".aiox-core/core/pro/pro-updater.js","trigger":"watcher"}
3
+ {"timestamp":"2026-05-07T00:05:09.664Z","action":"change","path":".aiox-core/core/pro/pro-updater.js","trigger":"watcher"}
4
+ {"timestamp":"2026-05-07T00:05:54.694Z","action":"change","path":".aiox-core/core/pro/pro-updater.js","trigger":"watcher"}
5
+ {"timestamp":"2026-05-07T00:08:58.920Z","action":"change","path":".aiox-core/core/pro/pro-updater.js","trigger":"watcher"}
@@ -13,10 +13,6 @@
13
13
  * Reference: TOK-1.5 Baseline (docs/stories/epics/epic-token-optimization/story-TOK-1.5-baseline-metrics.md)
14
14
  */
15
15
 
16
- const fs = require('fs');
17
- const path = require('path');
18
- const yaml = require ? null : null; // yaml not required — we parse manually
19
-
20
16
  // --- Token estimation model ---
21
17
  // Based on tool-registry.yaml tokenCost and observed output patterns
22
18
 
@@ -22,7 +22,7 @@ const TEST_QUERIES = [
22
22
  { query: 'analyze code dependencies', expectedTool: 'code-graph', category: 'code-intelligence' },
23
23
  { query: 'code analysis intelligence', expectedTool: 'nogic', category: 'code-intelligence' },
24
24
  { query: 'look up library documentation', expectedTool: 'context7', category: 'documentation' },
25
- { query: 'database query optimization', expectedTool: 'supabase', category: 'database' }
25
+ { query: 'database query optimization', expectedTool: 'supabase', category: 'database' },
26
26
  ];
27
27
 
28
28
  function parseKeywords(content) {
@@ -116,100 +116,132 @@ persona:
116
116
  # All commands require * prefix when used (e.g., *help)
117
117
  commands:
118
118
  - name: help
119
+ visibility: [full, quick, key]
119
120
  description: 'Show all available commands with descriptions'
120
121
  - name: kb
122
+ visibility: [full, quick, key]
121
123
  description: 'Toggle KB mode (loads AIOX Method knowledge)'
122
124
  - name: status
125
+ visibility: [full, quick, key]
123
126
  description: 'Show current context and progress'
124
127
  - name: guide
128
+ visibility: [full, quick, key]
125
129
  description: 'Show comprehensive usage guide for this agent'
126
130
  - name: yolo
127
131
  visibility: [full]
128
132
  description: 'Toggle permission mode (cycle: ask > auto > explore)'
129
133
  - name: exit
134
+ visibility: [full]
130
135
  description: 'Exit agent mode'
131
136
  - name: create
137
+ visibility: [full, quick, key]
132
138
  description: 'Create new AIOX component (agent, task, workflow, template, checklist)'
133
139
  - name: modify
140
+ visibility: [full, quick, key]
134
141
  description: 'Modify existing AIOX component'
135
142
  - name: update-manifest
143
+ visibility: [full]
136
144
  description: 'Update team manifest'
137
145
  - name: validate-component
146
+ visibility: [full]
138
147
  description: 'Validate component security and standards'
139
148
  - name: deprecate-component
149
+ visibility: [full]
140
150
  description: 'Deprecate component with migration path'
141
151
  - name: propose-modification
152
+ visibility: [full]
142
153
  description: 'Propose framework modifications'
143
154
  - name: undo-last
155
+ visibility: [full]
144
156
  description: 'Undo last framework modification'
145
157
  - name: validate-workflow
146
158
  args: '{name|path} [--strict] [--all]'
147
159
  description: 'Validate workflow YAML structure, agents, artifacts, and logic'
148
- visibility: full
160
+ visibility: [full]
149
161
  - name: run-workflow
150
162
  args: '{name} [start|continue|status|skip|abort] [--mode=guided|engine]'
151
163
  description: 'Workflow execution: guided (persona-switch) or engine (real subagent spawning)'
152
- visibility: full
164
+ visibility: [full]
153
165
  - name: analyze-framework
166
+ visibility: [full]
154
167
  description: 'Analyze framework structure and patterns'
155
168
  - name: list-components
169
+ visibility: [full]
156
170
  description: 'List all framework components'
157
171
  - name: test-memory
172
+ visibility: [full]
158
173
  description: 'Test memory layer connection'
159
174
  - name: task
175
+ visibility: [full, quick, key]
160
176
  description: 'Execute specific task (or list available)'
161
177
  - name: execute-checklist
162
178
  args: '{checklist}'
179
+ visibility: [full]
163
180
  description: 'Run checklist (or list available)'
164
181
 
165
182
  # Workflow & Planning (Consolidated - Story 6.1.2.3)
166
183
  - name: workflow
167
184
  args: '{name} [--mode=guided|engine]'
185
+ visibility: [full, quick, key]
168
186
  description: 'Start workflow (guided=manual, engine=real subagent spawning)'
169
187
  - name: plan
170
188
  args: '[create|status|update] [id]'
189
+ visibility: [full, quick, key]
171
190
  description: 'Workflow planning (default: create)'
172
191
 
173
192
  # Document Operations
174
193
  - name: create-doc
175
194
  args: '{template}'
195
+ visibility: [full]
176
196
  description: 'Create document (or list templates)'
177
197
  - name: doc-out
198
+ visibility: [full]
178
199
  description: 'Output complete document'
179
200
  - name: shard-doc
180
201
  args: '{document} {destination}'
202
+ visibility: [full]
181
203
  description: 'Break document into parts'
182
204
  - name: document-project
205
+ visibility: [full]
183
206
  description: 'Generate project documentation'
184
207
  - name: add-tech-doc
185
208
  args: '{file-path} [preset-name]'
209
+ visibility: [full]
186
210
  description: 'Create tech-preset from documentation file'
187
211
 
188
212
  # Story Creation
189
213
  - name: create-next-story
214
+ visibility: [full]
190
215
  description: 'Create next user story'
191
216
  # NOTE: Epic/story creation delegated to @pm (brownfield-create-epic/story)
192
217
 
193
218
  # Facilitation
194
219
  - name: advanced-elicitation
220
+ visibility: [full]
195
221
  description: 'Execute advanced elicitation'
196
222
  - name: chat-mode
223
+ visibility: [full]
197
224
  description: 'Start conversational assistance'
198
225
  # NOTE: Brainstorming delegated to @analyst (*brainstorm)
199
226
 
200
227
  # Utilities
201
228
  - name: agent
202
229
  args: '{name}'
230
+ visibility: [full]
203
231
  description: 'Get info about specialized agent (use @ to transform)'
204
232
 
205
233
  # Tools
206
234
  - name: validate-agents
235
+ visibility: [full]
207
236
  description: 'Validate all agent definitions (YAML parse, required fields, dependencies, pipeline reference)'
208
237
  - name: correct-course
238
+ visibility: [full]
209
239
  description: 'Analyze and correct process/quality deviations'
210
240
  - name: index-docs
241
+ visibility: [full]
211
242
  description: 'Index documentation for search'
212
243
  - name: update-source-tree
244
+ visibility: [full]
213
245
  description: 'Validate data file governance (owners, fill rules, existence)'
214
246
  # NOTE: Test suite creation delegated to @qa (*create-suite)
215
247
  # NOTE: AI prompt generation delegated to @architect (*generate-ai-prompt)
@@ -217,21 +249,27 @@ commands:
217
249
  # IDS — Incremental Development System (Story IDS-7)
218
250
  - name: ids check
219
251
  args: '{intent} [--type {type}]'
252
+ visibility: [full]
220
253
  description: 'Pre-check registry for REUSE/ADAPT/CREATE recommendations (advisory)'
221
254
  - name: ids impact
222
255
  args: '{entity-id}'
256
+ visibility: [full]
223
257
  description: 'Impact analysis — direct/indirect consumers via usedBy BFS traversal'
224
258
  - name: ids register
225
259
  args: '{file-path} [--type {type}] [--agent {agent}]'
260
+ visibility: [full]
226
261
  description: 'Register new entity in registry after creation'
227
262
  - name: ids health
263
+ visibility: [full]
228
264
  description: 'Registry health check (graceful fallback if RegistryHealer unavailable)'
229
265
  - name: ids stats
266
+ visibility: [full]
230
267
  description: 'Registry statistics (entity count by type, categories, health score)'
231
268
 
232
269
  # Code Intelligence — Registry Enrichment (Story NOG-2)
233
270
  - name: sync-registry-intel
234
271
  args: '[--full]'
272
+ visibility: [full]
235
273
  description: 'Enrich entity registry with code intelligence data (usedBy, dependencies, codeIntelMetadata). Use --full to force full resync.'
236
274
 
237
275
  # IDS Pre-Action Hooks (Story IDS-7)
@@ -403,9 +441,9 @@ Type `*help` to see all commands, or `*kb` to enable KB mode.
403
441
  **Delegated responsibilities (Story 6.1.2.3):**
404
442
 
405
443
  - **Epic/Story creation** → @pm (*create-epic, *create-story)
406
- - **Brainstorming** → @analyst (\*brainstorm)
407
- - **Test suite creation** → @qa (\*create-suite)
408
- - **AI prompt generation** → @architect (\*generate-ai-prompt)
444
+ - **Brainstorming** → @analyst (`*brainstorm`)
445
+ - **Test suite creation** → @qa (`*create-suite`)
446
+ - **AI prompt generation** → @architect (`*generate-ai-prompt`)
409
447
 
410
448
  **When to use specialized agents:**
411
449
 
@@ -440,7 +478,7 @@ Type `*help` to see all commands, or `*kb` to enable KB mode.
440
478
 
441
479
  ### Typical Workflow
442
480
 
443
- 1. **Framework dev** → `*create-agent`, `*create-task`, `*create-workflow`
481
+ 1. **Framework dev** → `*create agent`, `*create task`, `*create workflow`
444
482
  2. **IDS check** → Before creating, `*ids check {intent}` checks for existing artifacts
445
483
  3. **Task execution** → `*task {task}` to run any task directly
446
484
  4. **Workflow** → `*workflow {name}` for multi-step processes
@@ -13,7 +13,7 @@ IDE-FILE-RESOLUTION:
13
13
  - type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
14
14
  - Example: create-doc.md → .aiox-core/development/tasks/create-doc.md
15
15
  - IMPORTANT: Only load these files when user requests specific command execution
16
- REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "design schema"→create-schema, "run migration"→apply-migration, "check security"→rls-audit), ALWAYS ask for clarification if no clear match.
16
+ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "design schema"→create-schema, "run migration"→apply-migration, "check security"→security-audit), ALWAYS ask for clarification if no clear match.
17
17
  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
@@ -30,7 +30,7 @@ activation-instructions:
30
30
  - Append: "Story: {active story from docs/stories/}" if detected + "Branch: `{branch from gitStatus}`" if not main/master
31
31
  3. Show: "📊 **Project Status:**" as natural language narrative from gitStatus in system prompt:
32
32
  - Branch name, modified file count, current story reference, last commit message
33
- 4. Show: "**Available Commands:**" — list commands from the 'commands' section above that have 'key' in their visibility array
33
+ 4. Show: "**Available Commands:**" — list Core Commands first; if commands use visibility metadata, prioritize entries with `key`
34
34
  5. Show: "Type `*guide` for comprehensive usage instructions."
35
35
  5.5. Check `.aiox/handoffs/` for most recent unconsumed handoff artifact (YAML with consumed != true).
36
36
  If found: read `from_agent` and `last_command` from artifact, look up position in `.aiox-core/data/workflow-chains.yaml` matching from_agent + last_command, and show: "💡 **Suggested:** `*{next_command} {args}`"
@@ -259,8 +259,8 @@ usage_tips:
259
259
  - 'Before any migration: `*snapshot baseline` to create rollback point'
260
260
  - 'Test migrations: `*dry-run path/to/migration.sql` before applying'
261
261
  - 'Apply migration: `*apply-migration path/to/migration.sql`'
262
- - 'Security audit: `*rls-audit` to check RLS coverage'
263
- - 'Performance analysis: `*explain SELECT * FROM...` or `*analyze-hotpaths`'
262
+ - 'Security audit: `*security-audit rls` to check RLS coverage'
263
+ - 'Performance analysis: `*analyze-performance query SELECT * FROM...` or `*analyze-performance hotpaths`'
264
264
  - 'Bootstrap new project: `*bootstrap` to create supabase/ structure'
265
265
 
266
266
  coderabbit_integration: