feat: Add command relationships and essential commands JSON files

- Introduced command-relationships.json to define relationships between various commands.
- Created essential-commands.json to provide detailed descriptions and usage scenarios for key commands.
- Implemented update-index.sh script for maintaining command index files, including backup and validation processes.
- Added templates for bug reports, feature requests, and questions to streamline issue reporting and feature suggestions.
This commit is contained in:
catlog22
2025-11-06 12:59:14 +08:00
parent 8e3dff3d0f
commit 6993677ed9
23 changed files with 8041 additions and 0 deletions

View File

@@ -0,0 +1,130 @@
#!/bin/bash
##############################################################################
# 命令索引更新脚本
# 用途: 维护者使用此脚本重新生成命令索引文件
# 使用: bash update-index.sh
##############################################################################
set -e # 遇到错误立即退出
# 颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SKILL_DIR="$(dirname "$SCRIPT_DIR")"
COMMANDS_DIR="$(dirname "$(dirname "$SKILL_DIR")")/commands"
INDEX_DIR="$SKILL_DIR/index"
echo -e "${GREEN}=== 命令索引更新工具 ===${NC}"
echo ""
echo "技能目录: $SKILL_DIR"
echo "命令目录: $COMMANDS_DIR"
echo "索引目录: $INDEX_DIR"
echo ""
# 检查命令目录是否存在
if [ ! -d "$COMMANDS_DIR" ]; then
echo -e "${RED}错误: 命令目录不存在: $COMMANDS_DIR${NC}"
exit 1
fi
# 检查 gemini 是否可用
if ! command -v gemini &> /dev/null; then
echo -e "${RED}错误: gemini 命令未找到${NC}"
echo "请确保 gemini CLI 工具已安装并在 PATH 中"
exit 1
fi
# 统计命令文件数量
COMMAND_COUNT=$(find "$COMMANDS_DIR" -name "*.md" -type f | wc -l)
echo -e "${YELLOW}发现 $COMMAND_COUNT 个命令文件${NC}"
echo ""
# 备份现有索引(如果存在)
if [ -d "$INDEX_DIR" ] && [ "$(ls -A $INDEX_DIR)" ]; then
BACKUP_DIR="$INDEX_DIR/.backup-$(date +%Y%m%d-%H%M%S)"
echo -e "${YELLOW}备份现有索引到: $BACKUP_DIR${NC}"
mkdir -p "$BACKUP_DIR"
cp "$INDEX_DIR"/*.json "$BACKUP_DIR/" 2>/dev/null || true
echo ""
fi
# 确保索引目录存在
mkdir -p "$INDEX_DIR"
echo -e "${GREEN}开始生成索引...${NC}"
echo ""
# 使用 gemini 生成索引
cd "$COMMANDS_DIR" && gemini -p "
PURPOSE: 解析所有命令文件(约 $COMMAND_COUNT 个)并重新生成结构化命令索引
TASK:
• 扫描所有 .md 命令文件(包括子目录)
• 提取每个命令的元数据name, description, arguments, category, subcategory
• 分析命令的使用场景和难度等级(初级/中级/高级)
• 识别命令之间的关联关系(通常一起使用的命令、前置依赖、后续推荐)
• 识别10-15个最常用的核心命令
• 按使用场景分类planning/implementation/testing/documentation/session-management
• 生成5个 JSON 索引文件到 $INDEX_DIR 目录
MODE: write
CONTEXT: @**/*.md | Memory: 命令分为4大类workflow, cli, memory, task需要理解每个命令的实际用途来生成准确的索引
EXPECTED: 生成5个规范的 JSON 文件:
1. all-commands.json - 包含所有命令的完整信息数组
2. by-category.json - 按 category/subcategory 层级组织
3. by-use-case.json - 按使用场景planning/implementation/testing等组织
4. essential-commands.json - 核心命令列表10-15个
5. command-relationships.json - 命令关联关系图command -> related_commands数组
每个命令对象包含name, description, arguments, category, subcategory, usage_scenario, difficulty, file_path
RULES: 保持一致的数据结构JSON格式严格遵循规范确保所有命令都被包含 | write=CREATE
" -m gemini-2.5-flash --approval-mode yolo
# 检查生成结果
if [ $? -eq 0 ]; then
echo ""
echo -e "${GREEN}✓ 索引生成成功!${NC}"
echo ""
echo "生成的索引文件:"
ls -lh "$INDEX_DIR"/*.json
echo ""
# 验证文件
echo -e "${YELLOW}验证索引文件...${NC}"
REQUIRED_FILES=("all-commands.json" "by-category.json" "by-use-case.json" "essential-commands.json" "command-relationships.json")
ALL_EXIST=true
for file in "${REQUIRED_FILES[@]}"; do
if [ -f "$INDEX_DIR/$file" ]; then
echo -e "${GREEN}${NC} $file"
else
echo -e "${RED}${NC} $file (缺失)"
ALL_EXIST=false
fi
done
echo ""
if [ "$ALL_EXIST" = true ]; then
echo -e "${GREEN}=== 索引更新完成!===${NC}"
echo ""
echo "后续步骤:"
echo "1. 验证生成的索引内容是否正确"
echo "2. 提交更新: git add .claude/skills/command-guide/index/"
echo "3. 创建提交: git commit -m \"docs: 更新命令索引\""
echo "4. 推送更新: git push"
echo ""
echo "团队成员执行 'git pull' 后将自动获取最新索引"
else
echo -e "${RED}=== 索引更新不完整,请检查错误 ===${NC}"
exit 1
fi
else
echo ""
echo -e "${RED}✗ 索引生成失败${NC}"
echo "请检查 gemini 输出的错误信息"
exit 1
fi