feat: 初始化 getskills 技能
添加 SKILL.md 文件,将 getskills 工具转换为标准技能格式 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
101
verify.js
Normal file
101
verify.js
Normal file
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* GetSkill 基本验证脚本
|
||||
* 用于验证模块是否正确加载和基本功能是否正常
|
||||
*/
|
||||
|
||||
const getskill = require('./index.js');
|
||||
const os = require('os');
|
||||
|
||||
console.log('=== GetSkill 验证测试 ===\n');
|
||||
|
||||
// 测试 1: 模块导出验证
|
||||
console.log('✓ 测试 1: 验证模块导出');
|
||||
const requiredExports = [
|
||||
'searchSkills',
|
||||
'getSkillDetail',
|
||||
'downloadSkill',
|
||||
'updateSkill',
|
||||
'listLocalSkills',
|
||||
'getSkillsDirectory',
|
||||
'getSkillsCacheDirectory',
|
||||
'checkGitInstalled',
|
||||
'ensureGitInstalled',
|
||||
'cloneOrUpdateRepo',
|
||||
'copySkillFiles'
|
||||
];
|
||||
|
||||
let allExportsPresent = true;
|
||||
requiredExports.forEach(exportName => {
|
||||
if (typeof getskill[exportName] !== 'function') {
|
||||
console.error(` ✗ 缺少导出函数: ${exportName}`);
|
||||
allExportsPresent = false;
|
||||
}
|
||||
});
|
||||
|
||||
if (allExportsPresent) {
|
||||
console.log(` ✓ 所有 ${requiredExports.length} 个导出函数都存在\n`);
|
||||
} else {
|
||||
console.error(' ✗ 部分导出函数缺失\n');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// 测试 2: 目录路径验证
|
||||
console.log('✓ 测试 2: 验证目录路径');
|
||||
try {
|
||||
const skillsDir = getskill.getSkillsDirectory();
|
||||
const cacheDir = getskill.getSkillsCacheDirectory();
|
||||
|
||||
console.log(` 技能目录: ${skillsDir}`);
|
||||
console.log(` 缓存目录: ${cacheDir}`);
|
||||
|
||||
const homeDir = os.homedir();
|
||||
if (!skillsDir.includes(homeDir)) {
|
||||
throw new Error('技能目录路径不包含用户主目录');
|
||||
}
|
||||
if (!cacheDir.includes(homeDir)) {
|
||||
throw new Error('缓存目录路径不包含用户主目录');
|
||||
}
|
||||
|
||||
console.log(' ✓ 目录路径正确\n');
|
||||
} catch (error) {
|
||||
console.error(` ✗ 目录路径验证失败: ${error.message}\n`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// 测试 3: Git 检测
|
||||
console.log('✓ 测试 3: Git 安装检测');
|
||||
getskill.checkGitInstalled()
|
||||
.then(isInstalled => {
|
||||
if (isInstalled) {
|
||||
console.log(' ✓ Git 已安装\n');
|
||||
} else {
|
||||
console.log(' ⚠ Git 未安装(功能正常,但需要安装 Git 才能使用 install/update 命令)\n');
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(` ✗ Git 检测失败: ${error.message}\n`);
|
||||
})
|
||||
.finally(() => {
|
||||
// 测试 4: 列出本地技能
|
||||
console.log('✓ 测试 4: 列出本地技能');
|
||||
try {
|
||||
const localSkills = getskill.listLocalSkills();
|
||||
console.log(` 本地技能数量: ${localSkills.length}`);
|
||||
if (localSkills.length > 0) {
|
||||
console.log(' 已安装的技能:');
|
||||
localSkills.forEach(skill => {
|
||||
console.log(` - ${skill}`);
|
||||
});
|
||||
} else {
|
||||
console.log(' (未安装任何技能)');
|
||||
}
|
||||
console.log(' ✓ 列出本地技能功能正常\n');
|
||||
} catch (error) {
|
||||
console.error(` ✗ 列出本地技能失败: ${error.message}\n`);
|
||||
}
|
||||
|
||||
console.log('=== 验证完成 ===');
|
||||
console.log('\n提示: 运行 "node index.js" 或 "getskill" 查看完整命令帮助');
|
||||
});
|
||||
Reference in New Issue
Block a user