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.
- package/.aiox-core/cli/commands/pro/buyer.js +379 -0
- package/.aiox-core/cli/commands/pro/index.js +191 -52
- package/.aiox-core/cli/commands/validate/index.js +2 -0
- package/.aiox-core/core/code-intel/helpers/dev-helper.js +1 -1
- package/.aiox-core/core/code-intel/helpers/devops-helper.js +0 -1
- package/.aiox-core/core/code-intel/helpers/planning-helper.js +1 -1
- package/.aiox-core/core/code-intel/helpers/qa-helper.js +2 -2
- package/.aiox-core/core/config/schemas/framework-config.schema.json +1 -0
- package/.aiox-core/core/config/template-overrides.js +1 -1
- package/.aiox-core/core/doctor/checks/ide-sync.js +81 -25
- package/.aiox-core/core/doctor/checks/rules-files.js +0 -1
- package/.aiox-core/core/doctor/checks/skills-count.js +83 -15
- package/.aiox-core/core/graph-dashboard/cli.js +1 -2
- package/.aiox-core/core/graph-dashboard/data-sources/code-intel-source.js +1 -1
- package/.aiox-core/core/ids/layer-classifier.js +1 -1
- package/.aiox-core/core/pro/pro-updater.js +578 -0
- package/.aiox-core/core/synapse/context/context-tracker.js +107 -9
- package/.aiox-core/core/synapse/layers/layer-processor.js +1 -1
- package/.aiox-core/core-config.yaml +15 -1
- package/.aiox-core/data/capability-detection.js +15 -15
- package/.aiox-core/data/entity-registry.yaml +18 -2
- package/.aiox-core/data/registry-update-log.jsonl +5 -0
- package/.aiox-core/data/tok3-token-comparison.js +0 -4
- package/.aiox-core/data/tool-search-validation.js +1 -1
- package/.aiox-core/development/agents/aiox-master.md +44 -6
- package/.aiox-core/development/agents/data-engineer.md +4 -4
- package/.aiox-core/development/agents/devops.md +52 -2
- package/.aiox-core/development/agents/po.md +1 -1
- package/.aiox-core/development/agents/qa.md +5 -11
- package/.aiox-core/development/agents/sm.md +3 -3
- package/.aiox-core/development/agents/ux-design-expert.md +1 -1
- package/.aiox-core/development/scripts/unified-activation-pipeline.js +29 -3
- package/.aiox-core/development/tasks/dev-develop-story.md +46 -7
- package/.aiox-core/development/tasks/devops-pro-access-grant.md +93 -0
- package/.aiox-core/development/tasks/devops-pro-activate.md +42 -0
- package/.aiox-core/development/tasks/devops-pro-check-access.md +34 -0
- package/.aiox-core/development/tasks/devops-pro-request-reset.md +34 -0
- package/.aiox-core/development/tasks/devops-pro-resend-verification.md +32 -0
- package/.aiox-core/development/tasks/devops-pro-reset-password.md +36 -0
- package/.aiox-core/development/tasks/devops-pro-validate-login.md +36 -0
- package/.aiox-core/development/tasks/devops-pro-verify-status.md +33 -0
- package/.aiox-core/development/tasks/qa-gate.md +54 -4
- package/.aiox-core/development/tasks/validate-next-story.md +39 -2
- package/.aiox-core/framework-config.yaml +1 -0
- package/.aiox-core/infrastructure/scripts/codex-skills-sync/README.md +69 -0
- package/.aiox-core/infrastructure/scripts/codex-skills-sync/bootstrap.js +727 -0
- package/.aiox-core/infrastructure/scripts/codex-skills-sync/index.js +10 -0
- package/.aiox-core/infrastructure/scripts/codex-skills-sync/validate.js +65 -4
- package/.aiox-core/infrastructure/scripts/generate-settings-json.js +29 -4
- package/.aiox-core/infrastructure/scripts/ide-sync/agent-parser.js +4 -0
- package/.aiox-core/infrastructure/scripts/ide-sync/index.js +67 -7
- package/.aiox-core/infrastructure/scripts/ide-sync/transformers/claude-code.js +145 -3
- package/.aiox-core/infrastructure/scripts/repair-agent-references.js +263 -0
- package/.aiox-core/infrastructure/scripts/validate-claude-integration.js +60 -8
- package/.aiox-core/infrastructure/scripts/validate-paths.js +13 -0
- package/.aiox-core/install-manifest.yaml +134 -82
- package/.aiox-core/utils/filters/index.js +2 -1
- package/.claude/commands/AIOX/agents/aiox-master.md +21 -0
- package/.claude/commands/AIOX/agents/analyst.md +21 -0
- package/.claude/commands/AIOX/agents/architect.md +21 -0
- package/.claude/commands/AIOX/agents/data-engineer.md +21 -0
- package/.claude/commands/AIOX/agents/dev.md +21 -0
- package/.claude/commands/AIOX/agents/devops.md +21 -0
- package/.claude/commands/AIOX/agents/pm.md +21 -0
- package/.claude/commands/AIOX/agents/po.md +21 -0
- package/.claude/commands/AIOX/agents/qa.md +21 -0
- package/.claude/commands/AIOX/agents/sm.md +21 -0
- package/.claude/commands/AIOX/agents/squad-creator.md +21 -0
- package/.claude/commands/AIOX/agents/ux-design-expert.md +21 -0
- package/.claude/commands/AIOX/scripts/agent-config-loader.js +624 -0
- package/.claude/commands/AIOX/scripts/generate-greeting.js +160 -0
- package/.claude/commands/AIOX/scripts/greeting-builder.js +866 -0
- package/.claude/commands/AIOX/scripts/session-context-loader.js +286 -0
- package/.claude/commands/AIOX/stories/story-6.1.4.md +1404 -0
- package/.claude/commands/cohort-squad/agents/cohort-manager.md +156 -0
- package/.claude/commands/design-system/agents/brad-frost.md +1097 -0
- package/.claude/commands/design-system/agents/dan-mall.md +857 -0
- package/.claude/commands/design-system/agents/dave-malouf.md +2272 -0
- package/.claude/commands/design-system/agents/design-chief.md +102 -0
- package/.claude/commands/design-system/agents/nano-banana-generator.md +162 -0
- package/.claude/commands/greet.md +101 -0
- package/.claude/commands/synapse/manager.md +75 -0
- package/.claude/commands/synapse/tasks/add-rule.md +94 -0
- package/.claude/commands/synapse/tasks/create-command.md +109 -0
- package/.claude/commands/synapse/tasks/create-domain.md +127 -0
- package/.claude/commands/synapse/tasks/diagnose-synapse.md +245 -0
- package/.claude/commands/synapse/tasks/edit-rule.md +109 -0
- package/.claude/commands/synapse/tasks/suggest-domain.md +116 -0
- package/.claude/commands/synapse/tasks/toggle-domain.md +83 -0
- package/.claude/commands/synapse/templates/domain-template +8 -0
- package/.claude/commands/synapse/templates/manifest-entry-template +4 -0
- package/.claude/commands/synapse/utils/manifest-parser-reference.md +134 -0
- package/.claude/hooks/precompact-session-digest.cjs +2 -2
- package/.claude/skills/AIOX/agents/aiox-master/SKILL.md +511 -0
- package/.claude/skills/AIOX/agents/analyst/SKILL.md +281 -0
- package/.claude/skills/AIOX/agents/architect/SKILL.md +482 -0
- package/.claude/skills/AIOX/agents/data-engineer/SKILL.md +503 -0
- package/.claude/skills/AIOX/agents/dev/SKILL.md +568 -0
- package/.claude/skills/AIOX/agents/devops/SKILL.md +597 -0
- package/.claude/skills/AIOX/agents/pm/SKILL.md +385 -0
- package/.claude/skills/AIOX/agents/po/SKILL.md +343 -0
- package/.claude/skills/AIOX/agents/qa/SKILL.md +451 -0
- package/.claude/skills/AIOX/agents/sm/SKILL.md +295 -0
- package/.claude/skills/AIOX/agents/squad-creator/SKILL.md +352 -0
- package/.claude/skills/AIOX/agents/ux-design-expert/SKILL.md +503 -0
- package/.claude/skills/architect-first/SKILL.md +275 -0
- package/.claude/skills/architect-first/assets/architecture-template.md +505 -0
- package/.claude/skills/architect-first/assets/config-template.yaml +351 -0
- package/.claude/skills/architect-first/references/architecture-checklist.md +216 -0
- package/.claude/skills/architect-first/references/pre-implementation-checklist.md +119 -0
- package/.claude/skills/architect-first/references/stop-rules-guide.md +291 -0
- package/.claude/skills/architect-first/references/testing-strategy-guide.md +477 -0
- package/.claude/skills/architect-first/scripts/architecture_validator.py +490 -0
- package/.claude/skills/architect-first/scripts/check_coupling.py +306 -0
- package/.claude/skills/architect-first/scripts/validate_risk_mitigation.py +382 -0
- package/.claude/skills/checklist-runner/SKILL.md +113 -0
- package/.claude/skills/clone-mind.md +329 -0
- package/.claude/skills/coderabbit-review/SKILL.md +106 -0
- package/.claude/skills/course-generation-workflow.md +76 -0
- package/.claude/skills/enhance-workflow.md +466 -0
- package/.claude/skills/mcp-builder/LICENSE.txt +202 -0
- package/.claude/skills/mcp-builder/SKILL.md +328 -0
- package/.claude/skills/mcp-builder/reference/evaluation.md +602 -0
- package/.claude/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/.claude/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/.claude/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/.claude/skills/mcp-builder/scripts/connections.py +151 -0
- package/.claude/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/.claude/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/.claude/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/.claude/skills/ralph.md +181 -0
- package/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/skill-creator/SKILL.md +209 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.claude/skills/squad.md +301 -0
- package/.claude/skills/synapse/SKILL.md +132 -0
- package/.claude/skills/synapse/assets/README.md +50 -0
- package/.claude/skills/synapse/references/brackets.md +100 -0
- package/.claude/skills/synapse/references/commands.md +118 -0
- package/.claude/skills/synapse/references/domains.md +126 -0
- package/.claude/skills/synapse/references/layers.md +186 -0
- package/.claude/skills/synapse/references/manifest.md +142 -0
- package/.claude/skills/tech-search/SKILL.md +431 -0
- package/.claude/skills/tech-search/prompts/page-extract.md +133 -0
- package/README.en.md +2 -2
- package/README.md +8 -2
- package/bin/aiox.js +55 -4
- package/bin/utils/framework-guard.js +4 -2
- package/bin/utils/pro-detector.js +119 -28
- package/bin/utils/validate-publish.js +6 -6
- package/docs/aiox-agent-flows/devops-system.md +18 -0
- package/docs/aiox-workflows/README.md +1 -0
- package/docs/aiox-workflows/pro-access-grant-workflow.md +218 -0
- package/docs/guides/pro/access-grant-ops-playbook.md +370 -0
- package/docs/guides/pro/install-gate-setup.md +12 -6
- package/docs/guides/pro/squad-creator-handoff-pro-access-ops.md +134 -0
- package/docs/guides/supabase-ops-handoff.md +768 -0
- package/package.json +12 -1
- package/packages/aiox-pro-cli/bin/aiox-pro.js +33 -12
- package/packages/installer/src/config/configure-environment.js +118 -50
- package/packages/installer/src/installer/aiox-core-installer.js +124 -27
- package/packages/installer/src/installer/brownfield-upgrader.js +66 -9
- package/packages/installer/src/installer/dependency-installer.js +4 -0
- package/packages/installer/src/pro/pro-scaffolder.js +5 -5
- package/packages/installer/src/updater/index.js +151 -10
- package/packages/installer/src/wizard/ide-config-generator.js +73 -7
- package/packages/installer/src/wizard/index.js +119 -31
- package/packages/installer/src/wizard/pro-setup.js +118 -47
- package/packages/installer/src/wizard/validation/validators/dependency-validator.js +32 -25
- package/packages/installer/src/wizard/validation/validators/file-structure-validator.js +26 -0
- package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +84 -1
- package/packages/installer/tests/unit/claude-md-template-v5/claude-md-template-v5.test.js +1 -1
- package/packages/installer/tests/unit/doctor/doctor-checks.test.js +85 -19
- package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +4 -4
- package/packages/installer/tests/unit/generate-settings-json/generate-settings-json.test.js +5 -5
- package/packages/installer/tests/unit/ide-sync-integration/ide-sync-integration.test.js +4 -4
- package/packages/installer/tests/unit/merger/yaml-merger.test.js +11 -11
- package/pro/README.md +12 -1
- package/pro/license/index.js +3 -11
- package/pro/license/license-api.js +25 -0
- package/pro/license/license-cache.js +135 -31
- package/pro/license/license-crypto.js +59 -3
- package/pro/package.json +5 -4
- package/pro/squads/README.md +16 -16
- package/pro/squads/index.js +1 -1
- package/scripts/e2e/installed-skills-smoke.js +264 -0
- package/scripts/package-synapse.js +3 -3
- package/scripts/validate-package-completeness.js +8 -11
- package/.aiox-core/lib/build.json +0 -1
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Doctor Check: Skills Count
|
|
3
3
|
*
|
|
4
|
-
* Counts
|
|
5
|
-
* PASS: >=7
|
|
4
|
+
* Counts SKILL.md files in .claude/skills/ recursively.
|
|
5
|
+
* PASS: >=7 total skills and all AIOX agent skills present.
|
|
6
|
+
* WARN: skills exist but AIOX agent skills are incomplete.
|
|
7
|
+
* FAIL: 0 or directory missing.
|
|
6
8
|
*
|
|
7
9
|
* @module aiox-core/doctor/checks/skills-count
|
|
8
10
|
* @story INS-4.8
|
|
@@ -13,8 +15,61 @@ const fs = require('fs');
|
|
|
13
15
|
|
|
14
16
|
const name = 'skills-count';
|
|
15
17
|
|
|
18
|
+
function countSkillFiles(dir) {
|
|
19
|
+
let count = 0;
|
|
20
|
+
let entries;
|
|
21
|
+
|
|
22
|
+
try {
|
|
23
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
24
|
+
} catch (error) {
|
|
25
|
+
if (error && error.code === 'ENOENT') return 0;
|
|
26
|
+
throw new Error(`Cannot read skills directory "${dir}": ${error.message}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
for (const entry of entries) {
|
|
30
|
+
const fullPath = path.join(dir, entry.name);
|
|
31
|
+
if (entry.isDirectory()) {
|
|
32
|
+
count += countSkillFiles(fullPath);
|
|
33
|
+
} else if (entry.isFile() && entry.name === 'SKILL.md') {
|
|
34
|
+
count++;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return count;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function countAgentSkillFiles(agentSkillsDir) {
|
|
42
|
+
let entries;
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
entries = fs.readdirSync(agentSkillsDir, { withFileTypes: true });
|
|
46
|
+
} catch (error) {
|
|
47
|
+
if (error && error.code === 'ENOENT') return 0;
|
|
48
|
+
throw new Error(`Cannot read AIOX agent skills directory "${agentSkillsDir}": ${error.message}`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return entries.filter((entry) => (
|
|
52
|
+
entry.isDirectory() && fs.existsSync(path.join(agentSkillsDir, entry.name, 'SKILL.md'))
|
|
53
|
+
)).length;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function countSourceAgents(sourceAgentsDir) {
|
|
57
|
+
let entries;
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
entries = fs.readdirSync(sourceAgentsDir, { withFileTypes: true });
|
|
61
|
+
} catch (error) {
|
|
62
|
+
if (error && error.code === 'ENOENT') return 0;
|
|
63
|
+
throw new Error(`Cannot read source agents directory "${sourceAgentsDir}": ${error.message}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return entries.filter((entry) => entry.isFile() && entry.name.endsWith('.md')).length;
|
|
67
|
+
}
|
|
68
|
+
|
|
16
69
|
async function run(context) {
|
|
17
70
|
const skillsDir = path.join(context.projectRoot, '.claude', 'skills');
|
|
71
|
+
const agentSkillsDir = path.join(skillsDir, 'AIOX', 'agents');
|
|
72
|
+
const sourceAgentsDir = path.join(context.projectRoot, '.aiox-core', 'development', 'agents');
|
|
18
73
|
|
|
19
74
|
if (!fs.existsSync(skillsDir)) {
|
|
20
75
|
return {
|
|
@@ -25,24 +80,22 @@ async function run(context) {
|
|
|
25
80
|
};
|
|
26
81
|
}
|
|
27
82
|
|
|
28
|
-
let
|
|
83
|
+
let count;
|
|
84
|
+
let agentSkillCount;
|
|
85
|
+
let sourceAgentCount;
|
|
29
86
|
try {
|
|
30
|
-
|
|
31
|
-
|
|
87
|
+
count = countSkillFiles(skillsDir);
|
|
88
|
+
agentSkillCount = countAgentSkillFiles(agentSkillsDir);
|
|
89
|
+
sourceAgentCount = countSourceAgents(sourceAgentsDir);
|
|
90
|
+
} catch (error) {
|
|
32
91
|
return {
|
|
33
92
|
check: name,
|
|
34
93
|
status: 'FAIL',
|
|
35
|
-
message:
|
|
94
|
+
message: error.message,
|
|
36
95
|
fixCommand: 'npx aiox-core install --force',
|
|
37
96
|
};
|
|
38
97
|
}
|
|
39
98
|
|
|
40
|
-
const skills = entries.filter(
|
|
41
|
-
(d) => d.isDirectory() && fs.existsSync(path.join(skillsDir, d.name, 'SKILL.md')),
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
const count = skills.length;
|
|
45
|
-
|
|
46
99
|
if (count === 0) {
|
|
47
100
|
return {
|
|
48
101
|
check: name,
|
|
@@ -52,11 +105,20 @@ async function run(context) {
|
|
|
52
105
|
};
|
|
53
106
|
}
|
|
54
107
|
|
|
108
|
+
if (sourceAgentCount > 0 && agentSkillCount !== sourceAgentCount) {
|
|
109
|
+
return {
|
|
110
|
+
check: name,
|
|
111
|
+
status: 'WARN',
|
|
112
|
+
message: `${count} skills found, but AIOX agent skills are incomplete (${agentSkillCount}/${sourceAgentCount})`,
|
|
113
|
+
fixCommand: 'npx aiox-core install --force',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
55
117
|
if (count >= 7) {
|
|
56
118
|
return {
|
|
57
119
|
check: name,
|
|
58
120
|
status: 'PASS',
|
|
59
|
-
message: `${count} skills found`,
|
|
121
|
+
message: `${count} skills found (${agentSkillCount}/${sourceAgentCount} AIOX agent skills)`,
|
|
60
122
|
fixCommand: null,
|
|
61
123
|
};
|
|
62
124
|
}
|
|
@@ -64,9 +126,15 @@ async function run(context) {
|
|
|
64
126
|
return {
|
|
65
127
|
check: name,
|
|
66
128
|
status: 'WARN',
|
|
67
|
-
message: `Only ${count}/7 skills found`,
|
|
129
|
+
message: `Only ${count}/7 skills found (${agentSkillCount}/${sourceAgentCount} AIOX agent skills)`,
|
|
68
130
|
fixCommand: 'npx aiox-core install --force',
|
|
69
131
|
};
|
|
70
132
|
}
|
|
71
133
|
|
|
72
|
-
module.exports = {
|
|
134
|
+
module.exports = {
|
|
135
|
+
name,
|
|
136
|
+
run,
|
|
137
|
+
countSkillFiles,
|
|
138
|
+
countAgentSkillFiles,
|
|
139
|
+
countSourceAgents,
|
|
140
|
+
};
|
|
@@ -278,9 +278,8 @@ Examples:
|
|
|
278
278
|
|
|
279
279
|
/**
|
|
280
280
|
* Handle default summary view: dependency tree (compact) + stats + provider status.
|
|
281
|
-
* @param {Object} args - Parsed CLI args
|
|
282
281
|
*/
|
|
283
|
-
async function handleSummary(
|
|
282
|
+
async function handleSummary() {
|
|
284
283
|
const codeIntelSource = new CodeIntelSource();
|
|
285
284
|
const registrySource = new RegistrySource();
|
|
286
285
|
const metricsSource = new MetricsSource();
|
|
@@ -44,7 +44,7 @@ const LAYER_RULES = [
|
|
|
44
44
|
* @returns {'L1' | 'L2' | 'L3' | 'L4'} The boundary layer
|
|
45
45
|
*/
|
|
46
46
|
function classifyLayer(entityPath) {
|
|
47
|
-
if (typeof entityPath !==
|
|
47
|
+
if (typeof entityPath !== 'string') return 'L4';
|
|
48
48
|
|
|
49
49
|
// Normalize: forward slashes, no leading ./ or /
|
|
50
50
|
const normalized = entityPath
|