Awesome-omni-skill start

Execute a task autonomously with real-time Telegram progress updates, automatic deployment, commit, and push. No user interaction required - makes all decisions independently.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/start" ~/.claude/skills/diegosouzapw-awesome-omni-skill-start-be1571 && rm -rf "$T"
manifest: skills/devops/start/SKILL.md
source content

Start Skill

自动执行任务,全程通过 Telegram 实时反馈进度,完成后自动部署、提交并推送代码。

核心原则

完全自主执行

  • ❌ 不使用
    AskUserQuestion
    - 自己做决策
  • ✅ 遇到选择时,使用最佳实践方案
  • ✅ 遇到不确定的情况,选择保守/安全的方案
  • ✅ 多个关键节点发送 Telegram 通知保持用户知情

Arguments

$ARGUMENTS
- 任务描述

示例:

  • /start 添加一个新的 outbound 配置管理模块
  • /start 修复空状态下无法创建配置的 bug
  • /start 优化前端性能,减少不必要的 re-render

完整工作流

1. 📨 发送"开始执行"通知
2. 🔍 分析任务需求
3. 📖 阅读相关代码
4. 💡 制定执行方案(不询问用户)
5. 🔧 执行任务
   - 在关键节点发送进度通知
   - 创建/修改文件
   - 运行必要的命令
6. ✅ 代码质量检查(biome + TypeScript + Rust fmt)
7. 🚀 部署(deploy script)
8. ✅ 如果部署成功:commit + push
9. 📤 发送完成通知
10. ❌ 如果失败:发送错误通知

使用的工具和脚本

  • Telegram 通知:
    /home/alan/code/start/.claude/scripts/telegram-notify.sh
  • 部署脚本:
    /home/alan/code/start/.claude/scripts/deploy.sh
  • Git 操作: 直接使用 git 命令

实施细节

1. 发送开始通知

/home/alan/code/start/.claude/scripts/telegram-notify.sh "🚀 开始执行任务

📋 任务: ${ARGUMENTS}

⏳ 正在分析需求..."

2. 分析和规划

  • 使用 Glob/Grep 查找相关代码
  • 使用 Read 阅读关键文件
  • 不使用 AskUserQuestion - 自主决策
  • 遵循项目 CLAUDE.md 中的最佳实践

决策原则:

  • 参考现有代码模式
  • 遵循项目架构约定
  • 选择最简单可行的方案
  • 保持代码一致性

3. 发送进度通知

在关键节点发送更新(每 2-3 个重要步骤):

/home/alan/code/start/.claude/scripts/telegram-notify.sh "⚙️ 进度更新

当前步骤: ${current_step}

已完成:
- ${completed_item_1}
- ${completed_item_2}

正在进行: ${current_action}"

建议的通知节点:

  • ✅ 开始执行任务
  • ✅ 完成代码分析/规划
  • ✅ 完成后端代码(如适用)
  • ✅ 完成前端代码(如适用)
  • ✅ 代码质量检查通过/失败
  • ✅ 开始部署
  • ✅ 部署成功/失败
  • ✅ 任务完成

4. 执行任务

根据任务类型执行相应操作:

新功能 (feat):

  • 创建必要的文件
  • 遵循现有模块模式
  • 更新相关配置/路由

Bug 修复 (fix):

  • 定位问题代码
  • 实施修复
  • 验证修复效果

重构 (refactor):

  • 提取公共逻辑
  • 改进代码结构
  • 保持功能不变

优化 (perf):

  • 识别性能瓶颈
  • 实施优���方案
  • 测量改进效果

5. 代码质量检查

在部署之前必须执行所有适用的检查:

# 发送检查开始通知
/home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "🔍 开始代码质量检查

运行 Biome 和 TypeScript 检查..."

# 1. Biome 检查 (必须)
echo "Running Biome check..."
if ! bun run check; then
    /home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "❌ Biome 检查失败

请修复 lint 和格式问题后重试"
    exit 1
fi

# 2. TypeScript 类型检查 (必须)
echo "Running TypeScript type check..."
if ! bun run type-check; then
    /home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "❌ TypeScript 类型检查失败

请修复类型错误后重试"
    exit 1
fi

# 3. Rust 格式检查 (如果修改了后端代码)
# 检查是否有 Rust 文件被修改
if git diff --name-only HEAD | grep -q '\.rs$'; then
    echo "Rust files modified, running cargo fmt check..."
    if ! cargo fmt --check; then
        /home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "❌ Rust 格式检查失败

运行 'cargo fmt' 修复格式问题"
        exit 1
    fi
fi

# 所有检查通过
/home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "✅ 代码质量检查通过

准备部署..."

6. 部署

# 发送部署开始通知
/home/alan/code/start/.claude/scripts/telegram-notify.sh "🚀 开始部署

构建前端和后端...
重启服务..."

# 执行部署
DEPLOY_OUTPUT=$(/home/alan/code/start/.claude/scripts/deploy.sh 2>&1)
DEPLOY_STATUS=$?

if [ $DEPLOY_STATUS -eq 0 ]; then
    /home/alan/code/start/.claude/scripts/telegram-notify.sh "✅ 部署成功

服务已重启并通过健康检查
准备提交代码..."
else
    /home/alan/code/start/.claude/scripts/telegram-notify.sh "❌ 部署失败

错误信息:
${DEPLOY_OUTPUT}

任务中止,未提交代码"
    exit 1
fi

7. Commit 和 Push

只在部署成功后执行:

# 检查是否有改动
if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
    # 分析改动,确定 commit 类型和消息
    git status
    git diff

    # 自主决定 commit message
    # 类型: feat, fix, refactor, perf, docs, style, test, build, chore
    # 格式: <type>(<scope>): <subject>

    git add .

    git commit -m "$(cat <<'EOF'
<type>(<scope>): <中文描述>

<详细说明>

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
EOF
)"

    # Push 到远程
    git push

    COMMIT_MSG=$(git log -1 --pretty=%B)
else
    COMMIT_MSG="无文件改动"
fi

8. 发送完成通知

# 获取 commit 信息和 GitHub URL
COMMIT_HASH=$(git rev-parse HEAD 2>/dev/null || echo "N/A")
REMOTE_URL=$(git remote get-url origin 2>/dev/null || echo "")

# 从 git remote URL 提取 owner/repo
# 支持格式: git@github.com:owner/repo.git 或 https://github.com/owner/repo.git
if [ -n "$REMOTE_URL" ]; then
    # 先移除 .git 后缀,再提取 owner/repo
    REPO_PATH=$(echo "$REMOTE_URL" | sed -E 's/\.git$//' | sed -E 's/.*[:/]([^/]+\/[^/]+)$/\1/')
    COMMIT_URL="https://github.com/${REPO_PATH}/commit/${COMMIT_HASH}"
else
    COMMIT_URL=""
fi

# 构建完成通知消息
FINAL_MESSAGE="✅ 任务完成

📋 任务: ${ARGUMENTS}

🔧 主要改动:
- ${change_1}
- ${change_2}
- ${change_3}

✨ 结果:
${outcomes}

📝 Commit:
${COMMIT_MSG}"

# 添加 GitHub 链接(如果可用)
if [ -n "$COMMIT_URL" ]; then
    FINAL_MESSAGE="${FINAL_MESSAGE}

🔗 查看更改: ${COMMIT_URL}"
fi

# 添加状态信息
FINAL_MESSAGE="${FINAL_MESSAGE}

🚀 部署状态: 成功
📤 推送状态: 完成"

# Telegram 消息长度限制:4096 字符
# 如果超过限制,截断详细信息部分
MAX_LENGTH=4000  # 留一些安全余地
if [ ${#FINAL_MESSAGE} -gt $MAX_LENGTH ]; then
    # 构建简化版消息
    FINAL_MESSAGE="✅ 任务完成

📋 任务: ${ARGUMENTS}

🔧 主要改动: (内容较长,详见 GitHub)

📝 Commit: $(echo "$COMMIT_MSG" | head -n 1)

🔗 查看更改: ${COMMIT_URL}

🚀 部署状态: 成功
📤 推送状态: 完成"
fi

# 发送通知
/home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "$FINAL_MESSAGE"

自主决策指南

架构决策

场景: 需要选择实现方式

  • ✅ 参考项目中现有类似功能的实现
  • ✅ 遵循 CLAUDE.md 中的架构约定
  • ✅ 选择最符合项目模式的方案

示例:

  • 添加新模块 → 参考 log/ruleset/inbound 模块的结构
  • 添加 API 端点 → 遵循
    /api/{module}
    约定
  • 前端状态管理 → 使用 TanStack Query

命名决策

场景: 需要命名文件/组件/变量

  • ✅ 遵循项目现有命名规范
  • ✅ 使用清晰描述性的名称
  • ✅ 保持与周围代码一致

示例:

  • 模块名 → 使用小写单数形式(log, ruleset, inbound)
  • 组件名 → 使用 PascalCase(FocusEditor, ConfigCard)
  • API 路由 → 使用复数形式 REST 约定

范围决策

场景: 不确定改动范围

  • ✅ 优先最小化改动
  • ✅ 只修改必要的文件
  • ✅ 避免过度工程化

示例:

  • Bug 修复 → 只修复问题本身,不重构周围代码
  • 新功能 → 实现核心功能,不添加"可能有用"的额外功能

技术选择

场景: 需要选择技术方案

  • ✅ 使用项目已有的技术栈
  • ✅ 不引入新的依赖(除非必须)
  • ✅ 遵循项目的技术决策

项目技术栈:

  • Backend: Rust + Axum + Tokio
  • Frontend: React + Rsbuild + TanStack Router + TanStack Query
  • UI: Radix UI + Tailwind CSS
  • Package Manager: Bun(不用 npm/pnpm)

错误处理

执行失败

任何步骤失败时:

/home/alan/code/start/.claude/scripts/telegram-notify.sh "❌ 任务失败

📋 任务: ${ARGUMENTS}

❌ 失败步骤: ${failed_step}

错误信息:
${error_message}

⚠️ 状态:
- 代码改动: ${changes_made}
- 部署状态: 未执行
- Commit 状态: 未执行"

部署失败

部署失败时不提交代码:

# 构建错误消息
ERROR_MESSAGE="⚠️ 部署失败,代码未提交

📋 任务: ${ARGUMENTS}

✅ 代码改动已完成:
${changes}

❌ 部署失败:
${deploy_error}

💡 建议:
检查日志: sudo journalctl -u sing-box-config-generator -n 50
代码改动已保留但未提交"

# Telegram 消息长度限制检查
MAX_LENGTH=4000
if [ ${#ERROR_MESSAGE} -gt $MAX_LENGTH ]; then
    ERROR_MESSAGE="⚠️ 部署失败,代码未提交

📋 任务: ${ARGUMENTS}

✅ 代码改动已完成(详见本地文件)

❌ 部署失败: (错误信息过长,详见本地日志)

💡 建议:
检查日志: sudo journalctl -u sing-box-config-generator -n 50
代码改动已保留但未提交"
fi

/home/alan/code/sing-box-config-generator/.claude/scripts/telegram-notify.sh "$ERROR_MESSAGE"

最佳实践

1. 充分沟通

  • 开始时说明执行计划
  • 关键节点及时反馈
  • 完成时总结改动

2. 遵循约定

  • 严格遵循 CLAUDE.md 指南
  • 参考现有代码模式
  • 保持代码一致性

3. 保证质量

  • 执行完整的代码质量检查
    • Biome 检查(必须)
    • TypeScript 类型检查(必须)
    • Rust fmt 检查(修改后端时)
  • 部署前验证代码
  • 通过健康检查再提交
  • 写清晰的 commit message

4. 错误恢复

  • 失败时清晰报告
  • 不隐藏错误信息
  • 提供恢复建议

示例场景

场景 1: 添加新模块

用户: /start 添加 outbound 配置管理模块

流程:
1. 📨 通知: "开始执行任务:添加 outbound 配置管理模块"
2. 🔍 阅读现有模块代码(log, ruleset, inbound)
3. 📨 通知: "已分析现有模块结构,开始实现后端 API"
4. 🔧 创建 src/backend/api/outbound.rs
5. 🔧 更新 src/main.rs 添加路由
6. 📨 通知: "后端完成,开始实现前端"
7. 🔧 创建 src/frontend/routes/outbound/
8. 🔧 创建 src/frontend/api/outbound.ts
9. 🔧 更新 Sidebar 添加导航
10. 📨 通知: "代码完成,开始质量检查"
11. ✅ 执行代码质量检查(biome + TypeScript + Rust fmt)
12. 📨 通知: "检查通过,开始部署"
13. 🚀 执行 deploy.sh
14. 📨 通知: "部署成功,提交代码"
15. ✅ Commit + Push
16. 📨 通知: "任务完成(包含 GitHub commit 链接)"

场景 2: Bug 修复

用户: /start 修复空状态下无法创建配置的问题

流程:
1. 📨 通知: "开始执行任务:修复空状态创建问题"
2. 🔍 分析问题原因
3. 📨 通知: "定位到问题:FocusEditor 在条件渲染内部,开始修复"
4. 🔧 修改 4 个配置模块的 index.tsx
5. 📨 通知: "修复完成,开始质量检查"
6. ✅ 执行代码质量检查(biome + TypeScript)
7. 📨 通知: "检查通过,开始部署"
8. 🚀 执行 deploy.sh
9. 📨 通知: "部署成功,提交代码"
10. ✅ Commit + Push
11. 📨 通知: "Bug 修复完成(包含 GitHub commit 链接)"

场景 3: 性能优化

用户: /start 优化前端性能,减少不必要的 re-render

流程:
1. 📨 通知: "开始执行任务:优化前端性能"
2. 🔍 分析性能瓶颈
3. �� 通知: "发现问题:组件过度渲染,使用 React.memo 优化"
4. 🔧 优化关键组件
5. 📨 通知: "优化完成,开始质量检查"
6. ✅ 执行代码质量检查(biome + TypeScript)
7. 📨 通知: "检查通过,开始部署"
8. 🚀 执行 deploy.sh
9. 📨 通知: "部署成功,提交代码"
10. ✅ Commit + Push
11. 📨 通知: "性能优化完成(包含 GitHub commit 链接)"

注意事项

  1. 不要使用 AskUserQuestion - 这是核心要求
  2. 频繁发送 Telegram 通知 - 让用户知道进度
  3. 必须执行代码质量检查 - 部署前运行所有适用的检查
  4. 检查失败立即停止 - 不要在检查失败时继续部署
  5. 部署失败不提交代码 - 保证代码质量
  6. 自主决策 - 遵循最佳实践和项目约定
  7. 保持简洁 - 只做必要的改动

配置要求

  • Telegram 通知已配置(见
    .claude/telegram-config.md
  • 部署脚本可用(
    .claude/scripts/deploy.sh
  • Git 仓库已初始化并配置远程仓库

相关文档

  • 项目指南:
    /home/alan/code/start/CLAUDE.md
  • Telegram 配置:
    /home/alan/code/start/.claude/telegram-config.md
  • 部署脚本:
    /home/alan/code/start/.claude/scripts/deploy.sh
  • 通知脚本:
    /home/alan/code/start/.claude/scripts/telegram-notify.sh