mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-06 01:54:11 +08:00
- 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.
131 lines
4.6 KiB
Bash
131 lines
4.6 KiB
Bash
#!/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
|