feat: AI工具配置文件内嵌完整规则 — 打开项目即自动生效

改为单一信源+内容嵌入模式:
- RULES.md: 唯一规范信源(218行)
- scripts/sync-ai-rules.sh: 一键同步脚本
- 7个工具配置文件全部内嵌完整规则内容(非引用)

支持的AI工具(打开项目自动加载):
- AGENTS.md → Codex CLI / Claude Code
- .cursorrules → Cursor IDE
- .github/copilot-instructions.md → GitHub Copilot
- .windsurfrules → Windsurf / Codeium
- .clinerules → Cline
- .qwenrules → Qwen Coder / 通义灵码
- .aider.conf.yml → Aider

使用: 编辑 RULES.md 后运行 bash scripts/sync-ai-rules.sh
This commit is contained in:
2026-06-06 09:47:10 +08:00
parent e8af9ea40a
commit 355c905026
8 changed files with 1727 additions and 59 deletions

156
scripts/sync-ai-rules.sh Executable file
View File

@@ -0,0 +1,156 @@
#!/usr/bin/env bash
# ============================================================
# sync-ai-rules.sh — 将 RULES.md 完整内容同步到所有 AI 工具配置文件
#
# 用法: bash scripts/sync-ai-rules.sh
#
# 设计原则:
# RULES.md 是唯一信源,本脚本将其内容嵌入到各工具配置文件
# 开发者只需编辑 RULES.md然后运行本脚本即可同步所有工具
# ============================================================
set -euo pipefail
cd "$(dirname "$0")/.."
RULES_FILE="RULES.md"
if [ ! -f "$RULES_FILE" ]; then
echo "$RULES_FILE not found"
exit 1
fi
RULES_CONTENT=$(cat "$RULES_FILE")
TIMESTAMP=$(date '+%Y-%m-%d %H:%M')
echo "📝 Syncing RULES.md → AI tool configs..."
# ============================================================
# 1. AGENTS.md (Codex CLI / Claude Code)
# ============================================================
cat > AGENTS.md << HEREDOC
# HealthLink-HIS — AI 开发规范
> 🤖 本文件由 Codex CLI、Claude Code 等工具自动读取。
> 工具进入项目目录时会自动加载此文件作为开发规范上下文。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ AGENTS.md"
# ============================================================
# 2. .cursorrules (Cursor IDE / Codeium Windsurf)
# ============================================================
cat > .cursorrules << HEREDOC
# HealthLink-HIS — AI 开发规范 (Cursor)
> 🤖 Cursor IDE 打开本项目时自动加载此文件。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ .cursorrules"
# ============================================================
# 3. .github/copilot-instructions.md (GitHub Copilot)
# ============================================================
mkdir -p .github
cat > .github/copilot-instructions.md << HEREDOC
# HealthLink-HIS — AI 开发规范 (GitHub Copilot)
> 🤖 GitHub Copilot 打开本项目时自动加载此文件。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ .github/copilot-instructions.md"
# ============================================================
# 4. .windsurfrules (Windsurf / Codeium)
# ============================================================
cat > .windsurfrules << HEREDOC
# HealthLink-HIS — AI 开发规范 (Windsurf)
> 🤖 Windsurf 打开本项目时自动加载此文件。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ .windsurfrules"
# ============================================================
# 5. .clinerules (Cline)
# ============================================================
cat > .clinerules << HEREDOC
# HealthLink-HIS — AI 开发规范 (Cline)
> 🤖 Cline 打开本项目时自动加载此文件。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ .clinerules"
# ============================================================
# 6. .qwenrules (Qwen Coder / 通义灵码)
# ============================================================
cat > .qwenrules << HEREDOC
# HealthLink-HIS — AI 开发规范 (Qwen Coder)
> 🤖 通义灵码 / Qwen Coder 打开本项目时自动加载此文件。
---
${RULES_CONTENT}
---
> 📅 最后同步: ${TIMESTAMP} | 源文件: RULES.md | 重新同步: \`bash scripts/sync-ai-rules.sh\`
HEREDOC
echo " ✅ .qwenrules"
# ============================================================
# 7. .aider.conf.yml (Aider) — YAML格式嵌入指令
# ============================================================
# Aider 支持 instruction-files 指向文件,同时也支持直接在 .aider.conf.yml 中写 instructions
# 这里用 instructions 指令把内容内联
cat > .aider.conf.yml << HEREDOC
# Aider configuration for HealthLink-HIS
# Aider 自动读取此文件获取开发规范
instructions: |
$(echo "$RULES_CONTENT" | sed 's/^/ /')
HEREDOC
echo " ✅ .aider.conf.yml"
echo ""
echo "🎉 All 7 AI tool configs synced from RULES.md"
echo " 文件大小:"
for f in AGENTS.md .cursorrules .github/copilot-instructions.md .windsurfrules .clinerules .qwenrules .aider.conf.yml; do
size=$(wc -c < "$f" 2>/dev/null || echo "0")
echo " $f: ${size} bytes"
done