跳到主要内容

案例库

实际使用场景和完整实现方案。

案例分类

🚀 开发者场景

📝 内容创作者场景

🎓 学习者场景

👔 知识工作者场景


案例1: 全栈开发者的一天

背景

张三是一名全栈开发者,主要工作:

  • 前端开发 (React)
  • 后端API (Node.js)
  • 数据库维护 (PostgreSQL)
  • 代码审查
  • 技术文档

痛点

  • 每天打开相同的工具和项目
  • 频繁切换上下文
  • 代码提交message质量不一致
  • 忘记定期推送代码
  • 会议后忘记整理笔记

解决方案

1. 晨间启动工作流

#!/bin/bash
# morning-routine.sh

echo "☀️ 早上好!"

# 检查网络
if ! ping -c 1 google.com &> /dev/null; then
echo "❌ 网络未连接"
exit 1
fi

# 拉取所有项目最新代码
echo "📥 更新项目..."
for dir in ~/Developer/*/; do
if [ -d "$dir/.git" ]; then
echo " $(basename $dir)"
(cd "$dir" && git pull --quiet)
fi
done

# 启动开发服务
echo "🚀 启动服务..."
cd ~/Developer/main-project

# Docker服务
docker-compose up -d
sleep 3

# 后端
npm run backend &

# 前端
npm run frontend &

# 打开工作环境
echo "💻 打开工作环境..."
code .
open "http://localhost:3000"
open "http://localhost:3001/api/docs"

# 打开今日笔记
open ~/Documents/Notes/Daily/$(date +%Y-%m-%d).md

# 检查日程
echo ""
echo "📅 今日日程:"
icalBuddy -n eventsToday

echo "✅ 准备就绪!"

触发方式: Raycast命令 "morning"

2. 智能提交工作流

#!/bin/bash
# smart-commit.sh

# 检查是否有改动
if [ -z "$(git status --porcelain)" ]; then
echo "✅ Nothing to commit"
exit 0
fi

# 显示改动
echo "📊 Changes:"
git status -sb
echo ""

# 运行检查
echo "🔍 Running checks..."

# Lint
if npm run lint --silent; then
echo "✅ Lint passed"
else
echo "❌ Lint failed"
read -p "Continue anyway? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi

# 类型检查
if npm run type-check --silent 2>/dev/null; then
echo "✅ Type check passed"
fi

# 测试相关文件
CHANGED=$(git diff --name-only --cached | grep -E '\.(js|ts|jsx|tsx)$')
if [ -n "$CHANGED" ]; then
echo "🧪 Running tests..."
if npm test -- --findRelatedTests $CHANGED --silent; then
echo "✅ Tests passed"
else
echo "⚠️ Tests failed"
read -p "Continue anyway? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
fi
fi

# AI生成commit message
echo "🤖 Generating commit message..."
DIFF=$(git diff --cached)

COMMIT_MSG=$(echo "$DIFF" | claude-cli "
Generate a conventional commit message following these rules:
- Format: <type>(<scope>): <subject>
- Types: feat, fix, docs, style, refactor, test, chore
- Subject: imperative mood, lowercase, no period
- Keep under 72 characters

Only output the commit message, nothing else.
")

if [ -z "$COMMIT_MSG" ]; then
# AI失败,手动输入
read -p "Commit message: " COMMIT_MSG
fi

echo ""
echo "📝 Commit message:"
echo " $COMMIT_MSG"
echo ""

read -p "OK? (Y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Nn]$ ]]; then
read -p "Enter message: " COMMIT_MSG
fi

# 提交
git add .
git commit -m "$COMMIT_MSG"

echo "✅ Committed"

# 询问是否推送
read -p "Push? (Y/n): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Nn]$ ]]; then
BRANCH=$(git branch --show-current)
git push origin $BRANCH
echo "🚀 Pushed to $BRANCH"
fi

触发方式:

  • Raycast命令 "commit"
  • Git别名: git smartcommit

3. 自动化会议笔记

#!/bin/bash
# meeting-note.sh

TITLE=$1
DATE=$(date +"%Y-%m-%d")
TIME=$(date +"%H:%M")
FILE=~/Documents/Notes/Meetings/${DATE}-${TITLE}.md

# 创建笔记
cat > "$FILE" << EOF
# $TITLE

**日期**: $DATE $TIME
**参与者**:

## 会前准备
-

## 讨论要点

## 决策事项

## 行动项
- [ ]

## 下次会议
EOF

# 打开笔记
code "$FILE"

# 设置提醒: 会后1小时整理
osascript -e "
tell application \"Reminders\"
tell list \"Work\"
make new reminder with properties {name:\"整理会议笔记: $TITLE\", due date:((current date) + 1 * hours)}
end tell
end tell
"

echo "✅ Meeting note created"

4. 定时推送提醒

#!/bin/bash
# push-reminder.sh (crontab: 0 17 * * 1-5)

# 工作日下午5点运行

for dir in ~/Developer/*/; do
if [ -d "$dir/.git" ]; then
cd "$dir"

# 检查是否有未推送的提交
UNPUSHED=$(git log @{u}.. --oneline 2>/dev/null)

if [ -n "$UNPUSHED" ]; then
PROJECT=$(basename "$dir")
osascript -e "display notification \"You have unpushed commits in $PROJECT\" with title \"🚨 Git Reminder\""
fi
fi
done

效果

  • ⏱️ 每天节省30分钟启动时间
  • 📈 提交message质量提升
  • ✅ 不再忘记推送代码
  • 📝 会议记录100%完成

案例2: 开源项目维护

背景

李四维护几个开源项目,需要:

  • 审查PR
  • 回复Issue
  • 发布版本
  • 更新文档
  • 监控CI/CD

痛点

  • Issue和PR太多,难以优先级排序
  • 回复消息耗时
  • 版本发布流程繁琐
  • 容易忘记更新CHANGELOG

解决方案

1. Issue分类助手

#!/bin/bash
# triage-issues.sh

REPO=$1 # 例如: owner/repo

# 获取新Issue
NEW_ISSUES=$(gh issue list -R $REPO --state open --json number,title,body,author --limit 50)

# AI分类
echo "$NEW_ISSUES" | jq -c '.[]' | while read issue; do
NUMBER=$(echo $issue | jq -r '.number')
TITLE=$(echo $issue | jq -r '.title')
BODY=$(echo $issue | jq -r '.body')
AUTHOR=$(echo $issue | jq -r '.author.login')

# AI分析
ANALYSIS=$(echo "Title: $TITLE\nBody: $BODY" | claude-cli "
Analyze this GitHub issue:
1. Type: [bug, feature, question, documentation]
2. Priority: [critical, high, medium, low]
3. Complexity: [easy, medium, hard]
4. Suggested labels

JSON format only
")

TYPE=$(echo $ANALYSIS | jq -r '.type')
PRIORITY=$(echo $ANALYSIS | jq -r '.priority')
LABELS=$(echo $ANALYSIS | jq -r '.labels | join(",")')

# 添加标签
gh issue edit $NUMBER -R $REPO --add-label "$TYPE,$PRIORITY,$LABELS"

echo "✅ Triaged #$NUMBER: $TITLE"
done

echo "Done!"

2. PR审查助手

#!/bin/bash
# review-pr.sh

PR_NUMBER=$1
REPO=$2

# 获取PR信息
PR_INFO=$(gh pr view $PR_NUMBER -R $REPO --json title,body,files,additions,deletions)

# 获取diff
DIFF=$(gh pr diff $PR_NUMBER -R $REPO)

# AI审查
REVIEW=$(echo "$DIFF" | claude-cli "
Review this pull request:

PR Title: $(echo $PR_INFO | jq -r '.title')
PR Body: $(echo $PR_INFO | jq -r '.body')
Changes: +$(echo $PR_INFO | jq -r '.additions') -$(echo $PR_INFO | jq -r '.deletions')

Provide:
1. Overall assessment
2. Potential issues (bugs, security, performance)
3. Code quality feedback
4. Suggestions for improvement
5. Approval recommendation: [APPROVE, REQUEST_CHANGES, COMMENT]

Format in markdown for GitHub comment
")

# 输出审查意见
echo "$REVIEW"
echo ""

read -p "Post this review? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
gh pr review $PR_NUMBER -R $REPO --comment --body "$REVIEW"
echo "✅ Review posted"
fi

3. 自动化发布

#!/bin/bash
# release.sh

VERSION=$1

if [ -z "$VERSION" ]; then
echo "Usage: release.sh <version>"
exit 1
fi

echo "🚀 Releasing version $VERSION"

# 1. 运行测试
echo "1️⃣ Running tests..."
npm test || { echo "❌ Tests failed"; exit 1; }

# 2. 更新版本
echo "2️⃣ Updating version..."
npm version $VERSION --no-git-tag-version

# 3. 生成CHANGELOG
echo "3️⃣ Generating changelog..."
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")

if [ -z "$LAST_TAG" ]; then
COMMITS=$(git log --pretty=format:"- %s" --reverse)
else
COMMITS=$(git log $LAST_TAG..HEAD --pretty=format:"- %s" --reverse)
fi

# AI美化CHANGELOG
CHANGELOG=$(echo "$COMMITS" | claude-cli "
Format these commits into a nice changelog:
- Group by type (Features, Bug Fixes, etc.)
- Improve wording
- Remove noise

Output in markdown
")

# 追加到CHANGELOG.md
echo -e "\n## [$VERSION] - $(date +%Y-%m-%d)\n\n$CHANGELOG" | cat - CHANGELOG.md > temp && mv temp CHANGELOG.md

# 4. 提交
echo "4️⃣ Committing..."
git add .
git commit -m "chore: release v$VERSION"
git tag -a "v$VERSION" -m "Release v$VERSION"

# 5. 推送
echo "5️⃣ Pushing..."
git push && git push --tags

# 6. 发布到npm (如果是npm包)
if [ -f "package.json" ]; then
read -p "Publish to npm? (y/N): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
npm publish
echo "✅ Published to npm"
fi
fi

# 7. 创建GitHub Release
echo "7️⃣ Creating GitHub release..."
gh release create "v$VERSION" \
--title "Release v$VERSION" \
--notes "$CHANGELOG"

echo "✅ Release v$VERSION complete!"

效果

  • 🏷️ Issue自动分类标签
  • ⏱️ PR审查速度提升3倍
  • 📦 发布流程从30分钟降到5分钟
  • 📝 CHANGELOG自动生成

案例3: 多项目并行开发

背景

王五同时负责3个项目:

  • 项目A (React前端)
  • 项目B (Node.js后端)
  • 项目C (React Native移动端)

痛点

  • 切换项目需要记住各种命令
  • 每个项目环境不同
  • 容易混淆分支
  • 提交到错误的仓库

解决方案

项目统一管理

#!/bin/bash
# project-manager.sh

PROJECT_ROOT="$HOME/Developer"

# 项目配置
declare -A PROJECTS=(
["project-a"]="3000:npm run dev:frontend"
["project-b"]="3001:npm run dev:backend"
["project-c"]="8081:npx react-native start"
)

function list_projects() {
echo "📂 Projects:"
for project in "${!PROJECTS[@]}"; do
echo " - $project"
done
}

function switch_to() {
local project=$1

if [ -z "${PROJECTS[$project]}" ]; then
echo "❌ Unknown project: $project"
list_projects
exit 1
fi

local dir="$PROJECT_ROOT/$project"

if [ ! -d "$dir" ]; then
echo "❌ Directory not found: $dir"
exit 1
fi

# 切换目录
cd "$dir"

# 显示项目信息
echo "📁 $project"
echo "🌿 Branch: $(git branch --show-current)"
echo "📝 Status: $(git status -sb | head -1)"
echo ""

# 检查是否有未提交的改动
if [ -n "$(git status --porcelain)" ]; then
echo "⚠️ Uncommitted changes!"
git status -s
echo ""
fi

# 打开编辑器
code .

# 启动开发服务器
local config=${PROJECTS[$project]}
local port=$(echo $config | cut -d: -f1)
local cmd=$(echo $config | cut -d: -f2-)

read -p "Start dev server on port $port? (Y/n): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Nn]$ ]]; then
eval "$cmd" &
sleep 2
open "http://localhost:$port"
fi
}

function status_all() {
echo "📊 All Projects Status"
echo "━━━━━━━━━━━━━━━━━━━━"

for project in "${!PROJECTS[@]}"; do
dir="$PROJECT_ROOT/$project"
if [ -d "$dir" ]; then
cd "$dir"
echo ""
echo "📁 $project"
echo " Branch: $(git branch --show-current)"

# 未推送的提交
unpushed=$(git log @{u}.. --oneline 2>/dev/null | wc -l)
if [ $unpushed -gt 0 ]; then
echo " ⚠️ Unpushed commits: $unpushed"
fi

# 未提交的改动
if [ -n "$(git status --porcelain)" ]; then
echo " ⚠️ Uncommitted changes"
fi
fi
done
}

# 命令路由
case $1 in
list)
list_projects
;;
status)
status_all
;;
*)
switch_to "$1"
;;
esac

使用方式:

# Raycast命令
project project-a # 切换到项目A
project status # 查看所有项目状态
project list # 列出所有项目

效果

  • 🚀 项目切换时间从5分钟降到30秒
  • ✅ 不再提交到错误的仓库
  • 📊 随时掌握所有项目状态

案例4: 技术博客作者

背景

赵六是技术博客作者,工作流程:

  • 收集灵感
  • 写作
  • 代码示例
  • 截图
  • 发布

痛点

  • 灵感转瞬即逝
  • 写作时查资料打断思路
  • 代码示例需要测试
  • 截图整理麻烦

解决方案

1. 灵感快速捕获

#!/bin/bash
# quick-idea.sh

IDEA=$1
IDEAS_FILE="$HOME/Documents/Blog/ideas.md"

if [ -z "$IDEA" ]; then
# 从剪贴板获取
IDEA=$(pbpaste)
fi

# 添加到想法列表
echo "- [ ] $IDEA [$(date +%Y-%m-%d)]" >> "$IDEAS_FILE"

# AI扩展想法
EXPANSION=$(echo "$IDEA" | claude-cli "
这是一个博客主题想法: $IDEA

提供:
1. 3个可能的文章角度
2. 目标受众
3. 参考资料关键词
4. 预估难度和时长
")

# 保存详细想法
echo -e "\n### $IDEA\n$EXPANSION\n" >> "$HOME/Documents/Blog/ideas-detailed.md"

echo "✅ Idea saved: $IDEA"

触发: 全局快捷键 ⌘+⌥+I

2. 写作环境

#!/bin/bash
# writing-mode.sh

TITLE=$1
SLUG=$(echo "$TITLE" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
FILE="$HOME/Documents/Blog/drafts/${SLUG}.md"

# 创建草稿
if [ ! -f "$FILE" ]; then
# AI生成大纲
OUTLINE=$(echo "$TITLE" | claude-cli "
为博客文章'$TITLE'生成大纲:
- 引言
- 3-5个主要部分
- 总结
Markdown格式
")

cat > "$FILE" << EOF
---
title: "$TITLE"
date: $(date +%Y-%m-%d)
draft: true
tags: []
---

$OUTLINE
EOF
fi

# 设置写作环境
echo "✍️ Writing mode activated"

# 关闭干扰
osascript -e 'tell application "Slack" to quit'
osascript -e 'tell application "Mail" to quit'

# 开启勿扰模式
osascript -e 'tell application "System Events" to keystroke "D" using {command down, shift down, option down, control down}'

# 打开编辑器
code "$FILE"

# 播放专注音乐
open -a "Music" && osascript -e 'tell application "Music" to play playlist "Focus"'

# 设置番茄钟
(
sleep 1500 # 25分钟
osascript -e 'display notification "休息一下!" with title "⏰ Writing Break"'
) &

echo "Happy writing!"

3. 代码示例管理

#!/bin/bash
# code-example.sh

ARTICLE=$1
EXAMPLE_NAME=$2

EXAMPLES_DIR="$HOME/Documents/Blog/code-examples/$ARTICLE"
mkdir -p "$EXAMPLES_DIR"

cd "$EXAMPLES_DIR"

# 创建示例项目
if [ ! -d "$EXAMPLE_NAME" ]; then
mkdir "$EXAMPLE_NAME"
cd "$EXAMPLE_NAME"

# 初始化
npm init -y
git init

# AI生成starter代码
claude-cli "
为博客示例'$ARTICLE - $EXAMPLE_NAME'生成初始代码:
- package.json配置
- 基础文件结构
- README说明
" > setup-instructions.md

echo "✅ Example project created"
fi

code "$EXAMPLES_DIR/$EXAMPLE_NAME"

效果

  • 💡 再也不丢失灵感
  • ⏱️ 写作专注时间提升50%
  • 🔧 代码示例管理有序
  • 📈 文章产出提升2倍

案例5: 自学编程

背景

小明是自学编程的学生,目标:

  • 系统学习前端开发
  • 做练习项目
  • 记录学习笔记
  • 准备面试

解决方案

学习系统

#!/bin/bash
# learn.sh

TOPIC=$1

LEARNING_DIR="$HOME/Learning"
TOPIC_DIR="$LEARNING_DIR/$TOPIC"

# 创建学习项目结构
mkdir -p "$TOPIC_DIR"/{notes,projects,resources,practice}

# AI生成学习计划
PLAN=$(claude-cli "
为学习'$TOPIC'创建30天学习计划:

格式:
## Week 1: 基础
- Day 1: ...
- Day 2: ...

每天包括:
- 学习内容
- 练习任务
- 参考资料

## Week 2-4: ...
")

echo "$PLAN" > "$TOPIC_DIR/PLAN.md"

# 创建第一天笔记
cat > "$TOPIC_DIR/notes/day-01.md" << EOF
# Day 1: Getting Started with $TOPIC

## 今日目标
- [ ]

## 学习笔记

## 代码练习

## 疑问

## 明日预习
EOF

# 设置每日提醒
osascript -e "
tell application \"Reminders\"
tell list \"Learning\"
make new reminder with properties {name:\"学习 $TOPIC\", due date:(current date)}
end tell
end tell
"

echo "✅ Learning project for $TOPIC created!"
echo "📚 Plan: $TOPIC_DIR/PLAN.md"

open "$TOPIC_DIR/PLAN.md"

效果

  • 📚 学习更系统化
  • ✅ 完成度提升
  • 📝 知识积累可视化

更多案例

完整案例库持续更新中...

每个案例都包含:

  • ✅ 真实场景
  • ✅ 可运行的代码
  • ✅ 实际效果数据

贡献案例

如果你有好的自动化案例,欢迎分享!

格式:

  1. 背景和痛点
  2. 解决方案 (附代码)
  3. 实际效果
  4. 经验教训

提示: 这些案例都是真实可用的,你可以直接复制使用或根据自己情况修改。