add
This commit is contained in:
184
scripts/ai-integration.sh
Executable file
184
scripts/ai-integration.sh
Executable file
@ -0,0 +1,184 @@
|
||||
#!/bin/bash
|
||||
# AI統合ヘルパースクリプト
|
||||
|
||||
# カラー定義
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
# 設定
|
||||
CLAUDE_LOG_DIR="$HOME/claude-logs"
|
||||
CHATGPT_LOG_DIR="$HOME/chatgpt-logs"
|
||||
AI_CONTEXT_DIR="$HOME/.ai-context"
|
||||
|
||||
# ディレクトリ作成
|
||||
mkdir -p "$CLAUDE_LOG_DIR" "$CHATGPT_LOG_DIR" "$AI_CONTEXT_DIR"
|
||||
|
||||
# ChatGPTの会話をClaude Codeにインポート
|
||||
import_chatgpt_conversation() {
|
||||
local chatgpt_file="$1"
|
||||
local context_name="${2:-imported-context}"
|
||||
|
||||
if [[ ! -f "$chatgpt_file" ]]; then
|
||||
echo -e "${YELLOW}ファイルが見つかりません: $chatgpt_file${NC}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# コンテキストファイルを作成
|
||||
cat > "$AI_CONTEXT_DIR/$context_name.md" << EOF
|
||||
# インポートされたChatGPT会話
|
||||
インポート日時: $(date)
|
||||
ソースファイル: $chatgpt_file
|
||||
|
||||
## 会話内容
|
||||
$(cat "$chatgpt_file")
|
||||
|
||||
## Claude Codeへの指示
|
||||
この会話の内容を踏まえて、以下の点に注意して作業を進めてください:
|
||||
1. ChatGPTで議論された設計方針を尊重する
|
||||
2. 未解決の課題があれば解決する
|
||||
3. 実装の詳細を具体化する
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN}✓ ChatGPT会話をインポートしました: $AI_CONTEXT_DIR/$context_name.md${NC}"
|
||||
|
||||
# Claude Codeを起動
|
||||
claude "以下のChatGPTとの会話を確認して、実装を進めてください: @$AI_CONTEXT_DIR/$context_name.md"
|
||||
}
|
||||
|
||||
# 複数AIで同じタスクを実行して比較
|
||||
multi_ai_task() {
|
||||
local task="$1"
|
||||
local output_dir="$AI_CONTEXT_DIR/comparisons/$(date +%Y%m%d-%H%M%S)"
|
||||
mkdir -p "$output_dir"
|
||||
|
||||
echo -e "${BLUE}複数AIでタスクを実行中...${NC}"
|
||||
|
||||
# Claude Code
|
||||
echo -e "${GREEN}Claude Code:${NC}"
|
||||
claude "$task" > "$output_dir/claude_response.md" 2>&1
|
||||
|
||||
# 他のAI(例:ollama)
|
||||
if command -v ollama &> /dev/null; then
|
||||
echo -e "${GREEN}Ollama (llama2):${NC}"
|
||||
echo "$task" | ollama run llama2 > "$output_dir/ollama_response.md" 2>&1
|
||||
fi
|
||||
|
||||
# 結果を統合
|
||||
cat > "$output_dir/comparison.md" << EOF
|
||||
# AI比較結果
|
||||
タスク: $task
|
||||
実行日時: $(date)
|
||||
|
||||
## Claude Code
|
||||
\`\`\`
|
||||
$(cat "$output_dir/claude_response.md")
|
||||
\`\`\`
|
||||
|
||||
## その他のAI
|
||||
$(ls "$output_dir"/*.md | grep -v comparison.md | while read f; do
|
||||
echo "### $(basename "$f" .md)"
|
||||
echo '```'
|
||||
cat "$f"
|
||||
echo '```'
|
||||
done)
|
||||
|
||||
## 分析
|
||||
各AIの回答を比較して、最適なアプローチを選択してください。
|
||||
EOF
|
||||
|
||||
echo -e "${GREEN}✓ 比較結果: $output_dir/comparison.md${NC}"
|
||||
}
|
||||
|
||||
# AIコンテキストチェーン(前のAIの出力を次のAIの入力に)
|
||||
ai_chain() {
|
||||
local initial_prompt="$1"
|
||||
local chain_file="$AI_CONTEXT_DIR/chains/$(date +%Y%m%d-%H%M%S).md"
|
||||
mkdir -p "$(dirname "$chain_file")"
|
||||
|
||||
echo "# AIチェーン実行" > "$chain_file"
|
||||
echo "開始時刻: $(date)" >> "$chain_file"
|
||||
echo "初期プロンプト: $initial_prompt" >> "$chain_file"
|
||||
echo "" >> "$chain_file"
|
||||
|
||||
# Step 1: 設計(仮想的なChatGPT応答)
|
||||
echo "## Step 1: 設計フェーズ" >> "$chain_file"
|
||||
echo "ChatGPTに設計を依頼..." >> "$chain_file"
|
||||
# ここでChatGPT APIを呼ぶか、手動で設計を入力
|
||||
|
||||
# Step 2: 実装(Claude Code)
|
||||
echo -e "${BLUE}Claude Codeで実装中...${NC}"
|
||||
echo "## Step 2: 実装フェーズ (Claude Code)" >> "$chain_file"
|
||||
claude "$initial_prompt を実装してください。前段の設計を参考に。" | tee -a "$chain_file"
|
||||
|
||||
echo -e "${GREEN}✓ AIチェーン完了: $chain_file${NC}"
|
||||
}
|
||||
|
||||
# tmuxセッション管理
|
||||
setup_ai_tmux() {
|
||||
local session_name="ai-workspace"
|
||||
|
||||
# 既存のセッションをチェック
|
||||
if tmux has-session -t "$session_name" 2>/dev/null; then
|
||||
echo -e "${YELLOW}既存のセッションにアタッチします${NC}"
|
||||
tmux attach -t "$session_name"
|
||||
return
|
||||
fi
|
||||
|
||||
# 新しいセッションを作成
|
||||
tmux new-session -d -s "$session_name" -n "claude" "claude --resume"
|
||||
tmux new-window -t "$session_name" -n "editor" "$EDITOR"
|
||||
tmux new-window -t "$session_name" -n "terminal"
|
||||
tmux new-window -t "$session_name" -n "logs" "tail -f $CLAUDE_LOG_DIR/*.log"
|
||||
|
||||
# レイアウト設定
|
||||
tmux select-window -t "$session_name:claude"
|
||||
tmux split-window -h -p 30 "watch -n 1 'ls -la $CLAUDE_LOG_DIR | tail -10'"
|
||||
|
||||
echo -e "${GREEN}✓ tmuxセッション '$session_name' を作成しました${NC}"
|
||||
tmux attach -t "$session_name"
|
||||
}
|
||||
|
||||
# ヘルプメッセージ
|
||||
show_help() {
|
||||
cat << EOF
|
||||
AI統合ヘルパー
|
||||
|
||||
使用方法:
|
||||
$(basename "$0") import <chatgpt_file> [context_name] - ChatGPT会話をインポート
|
||||
$(basename "$0") compare <task> - 複数AIでタスクを実行
|
||||
$(basename "$0") chain <prompt> - AIチェーン実行
|
||||
$(basename "$0") tmux - AI作業用tmuxセッション作成
|
||||
$(basename "$0") help - このヘルプを表示
|
||||
|
||||
例:
|
||||
$(basename "$0") import ~/chatgpt-logs/feature-design.md architecture
|
||||
$(basename "$0") compare "FizzBuzz問題を解いて"
|
||||
$(basename "$0") chain "RESTful APIを設計して実装"
|
||||
$(basename "$0") tmux
|
||||
EOF
|
||||
}
|
||||
|
||||
# メイン処理
|
||||
case "$1" in
|
||||
import)
|
||||
import_chatgpt_conversation "$2" "$3"
|
||||
;;
|
||||
compare)
|
||||
multi_ai_task "$2"
|
||||
;;
|
||||
chain)
|
||||
ai_chain "$2"
|
||||
;;
|
||||
tmux)
|
||||
setup_ai_tmux
|
||||
;;
|
||||
help|--help|-h)
|
||||
show_help
|
||||
;;
|
||||
*)
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
54
scripts/claude-arch-safety-check.sh
Executable file
54
scripts/claude-arch-safety-check.sh
Executable file
@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# Arch Linux用のClaude Code安全チェックスクリプト
|
||||
|
||||
COMMAND="$1"
|
||||
|
||||
# Arch Linux特有の危険なコマンド
|
||||
ARCH_DANGEROUS=(
|
||||
"pacman -Rdd" # 依存関係無視の削除
|
||||
"pacman -Syu --noconfirm" # 確認なしのシステム更新
|
||||
"rm -rf /boot" # ブートローダー削除
|
||||
"rm -rf /etc/pacman" # pacman設定削除
|
||||
"makepkg --asroot" # rootでのパッケージビルド
|
||||
"yaourt" # 非推奨のAURヘルパー
|
||||
)
|
||||
|
||||
# 警告が必要なコマンド
|
||||
ARCH_WARNING=(
|
||||
"pacman -Syu"
|
||||
"pacman -R"
|
||||
"systemctl disable"
|
||||
"systemctl mask"
|
||||
"mkinitcpio"
|
||||
"grub-mkconfig"
|
||||
)
|
||||
|
||||
# 基本的な危険コマンドチェック
|
||||
source "$(dirname "$0")/safe-command-check.sh" 2>/dev/null || true
|
||||
|
||||
# Arch特有のチェック
|
||||
for pattern in "${ARCH_DANGEROUS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "❌ Arch Linuxで危険なコマンド: $COMMAND"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
for pattern in "${ARCH_WARNING[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "⚠️ システムに影響するコマンド: $COMMAND"
|
||||
echo "実行前にスナップショットの作成を推奨します"
|
||||
read -p "続行しますか? (yes/no): " confirm
|
||||
if [[ "$confirm" != "yes" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# AURヘルパーの使用をチェック
|
||||
if [[ "$COMMAND" =~ (yay|paru|aurman) ]]; then
|
||||
echo "📦 AURヘルパーを使用: $COMMAND"
|
||||
echo "AURパッケージは信頼できるか確認してください"
|
||||
fi
|
||||
|
||||
exit 0
|
184
scripts/claude-help.sh
Executable file
184
scripts/claude-help.sh
Executable file
@ -0,0 +1,184 @@
|
||||
#!/bin/bash
|
||||
# Claude Code拡張ヘルプコマンド
|
||||
|
||||
# カラー定義
|
||||
BLUE='\033[0;34m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
CYAN='\033[0;36m'
|
||||
NC='\033[0m'
|
||||
|
||||
# ヘルプカテゴリを表示
|
||||
show_category() {
|
||||
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo -e "${GREEN}$1${NC}"
|
||||
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
}
|
||||
|
||||
# メインヘルプ関数
|
||||
claude_help() {
|
||||
clear
|
||||
echo -e "${CYAN}🤖 Claude Code 拡張ヘルプ${NC}\n"
|
||||
|
||||
show_category "📝 テキスト入力ショートカット"
|
||||
cat << 'EOF'
|
||||
^A (Ctrl+A) ・・・行頭に移動
|
||||
^E (Ctrl+E) ・・・行末に移動
|
||||
^B (Ctrl+B) ・・・1文字前に戻る
|
||||
^F (Ctrl+F) ・・・1文字後に進む
|
||||
^W (Ctrl+W) ・・・単語単位で削除
|
||||
^K (Ctrl+K) ・・・カーソル位置から行末まで削除
|
||||
^U (Ctrl+U) ・・・カーソル位置から行頭まで削除
|
||||
^J (Ctrl+J) ・・・改行(Enter代替)
|
||||
^R (Ctrl+R) ・・・履歴検索
|
||||
|
||||
EOF
|
||||
|
||||
show_category "🎮 Claude Code特有の操作"
|
||||
cat << 'EOF'
|
||||
ESC×1 ・・・入力中のテキストを全消去
|
||||
ESC×2 ・・・前のメッセージに戻る
|
||||
\ + Enter ・・・複数行入力(確実に動作)
|
||||
Tab ・・・オートコンプリート
|
||||
↑/↓ ・・・コマンド履歴
|
||||
|
||||
EOF
|
||||
|
||||
show_category "🚀 起動オプション"
|
||||
cat << 'EOF'
|
||||
claude --resume ・・・前回のセッションを復元
|
||||
claude --dangerously-skip-permissions ・・・許可確認をスキップ(危険)
|
||||
claude --thinking ・・・思考プロセスを表示
|
||||
claude --model MODEL_NAME ・・・特定のモデルを使用
|
||||
claude IMAGE.png ・・・画像を含めて起動
|
||||
|
||||
EOF
|
||||
|
||||
show_category "💭 思考モード"
|
||||
cat << 'EOF'
|
||||
think ・・・標準的な思考モード
|
||||
think hard ・・・より深い思考モード
|
||||
ultrathink ・・・最も深い思考モード(時間がかかる)
|
||||
|
||||
EOF
|
||||
|
||||
show_category "📚 公式ドキュメント"
|
||||
cat << 'EOF'
|
||||
概要 : https://docs.anthropic.com/en/docs/claude-code/overview
|
||||
クイックスタート: https://docs.anthropic.com/en/docs/claude-code/quickstart
|
||||
メモリ管理 : https://docs.anthropic.com/en/docs/claude-code/memory
|
||||
ワークフロー: https://docs.anthropic.com/en/docs/claude-code/common-workflows
|
||||
設定 : https://docs.anthropic.com/en/docs/claude-code/settings
|
||||
トラブルシューティング: https://docs.anthropic.com/en/docs/claude-code/troubleshooting
|
||||
|
||||
EOF
|
||||
|
||||
show_category "🛠️ スラッシュコマンド"
|
||||
cat << 'EOF'
|
||||
/help ・・・ヘルプを表示
|
||||
/clear ・・・会話をクリア
|
||||
/init ・・・CLAUDE.mdを生成
|
||||
/web ・・・Web検索を有効化
|
||||
/exit ・・・セッションを終了
|
||||
|
||||
EOF
|
||||
|
||||
show_category "⚡ Tips"
|
||||
cat << 'EOF'
|
||||
• 画像はクリップボードから直接ペースト可能
|
||||
• #で始まるメッセージはCLAUDE.mdに追加される
|
||||
• ~/.claude/settings.jsonで詳細設定が可能
|
||||
• ~/.claude/CLAUDE.mdでグローバル設定を記述
|
||||
|
||||
EOF
|
||||
|
||||
echo -e "${YELLOW}詳細は 'claude-help [カテゴリ]' で確認できます${NC}"
|
||||
echo -e "${YELLOW}カテゴリ: shortcuts, options, thinking, docs, slash, tips${NC}"
|
||||
}
|
||||
|
||||
# カテゴリ別ヘルプ
|
||||
case "$1" in
|
||||
"shortcuts"|"s")
|
||||
show_category "📝 テキスト入力ショートカット詳細"
|
||||
cat << 'EOF'
|
||||
基本移動:
|
||||
^A (Ctrl+A) - カーソルを行頭に移動
|
||||
^E (Ctrl+E) - カーソルを行末に移動
|
||||
^B (Ctrl+B) - 1文字左へ移動
|
||||
^F (Ctrl+F) - 1文字右へ移動
|
||||
|
||||
単語移動:
|
||||
Alt+B - 1単語左へ移動
|
||||
Alt+F - 1単語右へ移動
|
||||
|
||||
削除・編集:
|
||||
^W (Ctrl+W) - 単語単位で後方削除
|
||||
^K (Ctrl+K) - カーソル位置から行末まで削除
|
||||
^U (Ctrl+U) - カーソル位置から行頭まで削除
|
||||
^D (Ctrl+D) - カーソル位置の文字を削除
|
||||
^Y (Ctrl+Y) - 最後に削除したテキストを貼り付け
|
||||
|
||||
履歴・検索:
|
||||
^R (Ctrl+R) - インクリメンタル履歴検索
|
||||
^G (Ctrl+G) - 履歴検索をキャンセル
|
||||
↑/↓ - コマンド履歴を順番に表示
|
||||
EOF
|
||||
;;
|
||||
|
||||
"options"|"o")
|
||||
show_category "🚀 起動オプション詳細"
|
||||
cat << 'EOF'
|
||||
セッション管理:
|
||||
--resume 前回のセッションを復元
|
||||
--dangerously-skip-permissions 許可確認をスキップ(注意)
|
||||
|
||||
思考モード:
|
||||
--thinking 思考プロセスを表示
|
||||
|
||||
モデル選択:
|
||||
--model claude-3-opus-20240229 特定のモデルを使用
|
||||
|
||||
設定:
|
||||
--settings path/to/settings.json カスタム設定ファイルを使用
|
||||
|
||||
その他:
|
||||
claude IMAGE.png 画像を含めて起動
|
||||
claude "質問内容" 直接質問を投げる
|
||||
EOF
|
||||
;;
|
||||
|
||||
"docs"|"d")
|
||||
show_category "📚 公式ドキュメントリンク"
|
||||
cat << 'EOF'
|
||||
基本:
|
||||
概要: https://docs.anthropic.com/en/docs/claude-code/overview
|
||||
クイックスタート: https://docs.anthropic.com/en/docs/claude-code/quickstart
|
||||
|
||||
機能:
|
||||
メモリ管理: https://docs.anthropic.com/en/docs/claude-code/memory
|
||||
ワークフロー: https://docs.anthropic.com/en/docs/claude-code/common-workflows
|
||||
IDE統合: https://docs.anthropic.com/en/docs/claude-code/ide-integrations
|
||||
MCP: https://docs.anthropic.com/en/docs/claude-code/mcp
|
||||
|
||||
設定・管理:
|
||||
設定: https://docs.anthropic.com/en/docs/claude-code/settings
|
||||
フック: https://docs.anthropic.com/en/docs/claude-code/hooks
|
||||
セキュリティ: https://docs.anthropic.com/en/docs/claude-code/security
|
||||
|
||||
トラブルシューティング:
|
||||
トラブルシューティング: https://docs.anthropic.com/en/docs/claude-code/troubleshooting
|
||||
|
||||
その他:
|
||||
GitHub Issues: https://github.com/anthropics/claude-code/issues
|
||||
EOF
|
||||
;;
|
||||
|
||||
"")
|
||||
claude_help
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "不明なカテゴリ: $1"
|
||||
echo "利用可能: shortcuts, options, thinking, docs, slash, tips"
|
||||
;;
|
||||
esac
|
139
scripts/claude-zsh-functions.sh
Normal file
139
scripts/claude-zsh-functions.sh
Normal file
@ -0,0 +1,139 @@
|
||||
#!/bin/zsh
|
||||
# Claude Code用のzsh関数集
|
||||
|
||||
# 拡張ヘルプ関数
|
||||
function claude-help() {
|
||||
local script_path="${0:a:h}/claude-help.sh"
|
||||
|
||||
# スクリプトが見つからない場合のフォールバック
|
||||
if [[ ! -f "$script_path" ]]; then
|
||||
script_path="$HOME/git/claude/scripts/claude-help.sh"
|
||||
fi
|
||||
|
||||
if [[ -f "$script_path" ]]; then
|
||||
bash "$script_path" "$@"
|
||||
else
|
||||
echo "Error: claude-help.sh not found"
|
||||
echo "Expected location: $script_path"
|
||||
fi
|
||||
}
|
||||
|
||||
# クイックリファレンス(従来の関数を改良)
|
||||
function claude-readme() {
|
||||
# カラー定義
|
||||
local BLUE='\033[0;34m'
|
||||
local GREEN='\033[0;32m'
|
||||
local YELLOW='\033[1;33m'
|
||||
local NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}Claude Code クイックリファレンス${NC}"
|
||||
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
||||
echo '
|
||||
ショートカット:
|
||||
^A/^E ・・・行頭/行末に移動
|
||||
^B/^F ・・・1文字前/後に移動
|
||||
^W ・・・単語削除(高速)
|
||||
^J ・・・改行(Enter代替)
|
||||
|
||||
Claude特有:
|
||||
ESC×1 ・・・入力を全消去
|
||||
ESC×2 ・・・前のメッセージに戻る
|
||||
\ + Enter ・・・複数行入力
|
||||
|
||||
よく使うコマンド:
|
||||
claude --resume ・・・セッション復元
|
||||
claude --dangerously-skip-permissions ・・・許可スキップ
|
||||
think / think hard / ultrathink ・・・思考モード
|
||||
'
|
||||
echo -e "${YELLOW}詳細は 'claude-help' で確認${NC}"
|
||||
}
|
||||
|
||||
# Claude Codeセッションの管理
|
||||
function claude-session() {
|
||||
case "$1" in
|
||||
"save")
|
||||
# 現在のセッションIDを保存
|
||||
echo "Session saved (use 'claude --resume' to restore)"
|
||||
;;
|
||||
"list")
|
||||
# 利用可能なセッションをリスト
|
||||
ls -la ~/.claude/sessions/ 2>/dev/null || echo "No sessions found"
|
||||
;;
|
||||
*)
|
||||
echo "Usage: claude-session [save|list]"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Claude Code用の安全チェック付き実行
|
||||
function claude-safe() {
|
||||
local hooks_dir="$HOME/git/claude/scripts"
|
||||
|
||||
# 安全チェックスクリプトを設定
|
||||
export CLAUDE_BEFORE_BASH="$hooks_dir/claude-arch-safety-check.sh"
|
||||
|
||||
# Claude Codeを起動
|
||||
claude "$@"
|
||||
|
||||
# 環境変数をクリア
|
||||
unset CLAUDE_BEFORE_BASH
|
||||
}
|
||||
|
||||
# プロジェクト固有のCLAUDE.mdを編集
|
||||
function claude-edit-config() {
|
||||
local config_file="CLAUDE.md"
|
||||
|
||||
if [[ ! -f "$config_file" ]]; then
|
||||
echo "Creating new CLAUDE.md..."
|
||||
cat > "$config_file" << 'EOF'
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
[プロジェクトの概要をここに記載]
|
||||
|
||||
## Commands
|
||||
[よく使うコマンドをここに記載]
|
||||
|
||||
## Architecture
|
||||
[アーキテクチャの説明をここに記載]
|
||||
EOF
|
||||
fi
|
||||
|
||||
${EDITOR:-vim} "$config_file"
|
||||
}
|
||||
|
||||
# Claude Codeのドキュメントを開く
|
||||
function claude-docs() {
|
||||
local topic="${1:-overview}"
|
||||
local base_url="https://docs.anthropic.com/en/docs/claude-code"
|
||||
|
||||
case "$topic" in
|
||||
"shortcuts"|"keys")
|
||||
open "$base_url/interactive-mode" 2>/dev/null || xdg-open "$base_url/interactive-mode"
|
||||
;;
|
||||
"settings")
|
||||
open "$base_url/settings" 2>/dev/null || xdg-open "$base_url/settings"
|
||||
;;
|
||||
"memory")
|
||||
open "$base_url/memory" 2>/dev/null || xdg-open "$base_url/memory"
|
||||
;;
|
||||
*)
|
||||
open "$base_url/$topic" 2>/dev/null || xdg-open "$base_url/$topic"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# エイリアス定義
|
||||
alias ch='claude-help'
|
||||
alias cr='claude-readme'
|
||||
alias cs='claude-safe'
|
||||
alias ce='claude-edit-config'
|
||||
alias cd-docs='claude-docs'
|
||||
|
||||
# 初回実行時のメッセージ
|
||||
if [[ -z "$CLAUDE_ZSH_LOADED" ]]; then
|
||||
export CLAUDE_ZSH_LOADED=1
|
||||
echo "Claude Code helper functions loaded. Type 'claude-help' for more info."
|
||||
fi
|
47
scripts/safe-command-check.sh
Executable file
47
scripts/safe-command-check.sh
Executable file
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
# Claude Code用の安全なコマンドチェッカー
|
||||
|
||||
COMMAND="$1"
|
||||
|
||||
# 危険なコマンドパターン
|
||||
DANGEROUS_PATTERNS=(
|
||||
"rm -rf /"
|
||||
"rm -rf ~"
|
||||
":(){ :|:& };:" # Fork bomb
|
||||
"> /dev/sda"
|
||||
"dd if=/dev/zero"
|
||||
"mkfs"
|
||||
"format"
|
||||
)
|
||||
|
||||
# 確認が必要なコマンド
|
||||
CONFIRM_PATTERNS=(
|
||||
"sudo"
|
||||
"rm -rf"
|
||||
"git push --force"
|
||||
"npm publish"
|
||||
"pip install"
|
||||
)
|
||||
|
||||
# 危険なコマンドをチェック
|
||||
for pattern in "${DANGEROUS_PATTERNS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "❌ 危険なコマンドを検出しました: $COMMAND"
|
||||
echo "このコマンドは実行できません。"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# 確認が必要なコマンドをチェック
|
||||
for pattern in "${CONFIRM_PATTERNS[@]}"; do
|
||||
if [[ "$COMMAND" =~ $pattern ]]; then
|
||||
echo "⚠️ 確認が必要なコマンド: $COMMAND"
|
||||
read -p "本当に実行しますか? (yes/no): " confirm
|
||||
if [[ "$confirm" != "yes" ]]; then
|
||||
echo "コマンドをキャンセルしました。"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "✅ コマンドは安全です: $COMMAND"
|
57
scripts/setup-help.sh
Executable file
57
scripts/setup-help.sh
Executable file
@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
# Claude Code カスタムヘルプのセットアップスクリプト
|
||||
|
||||
set -e
|
||||
|
||||
# カラー定義
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo -e "${GREEN}Claude Code カスタムヘルプをセットアップします${NC}"
|
||||
|
||||
# スクリプトディレクトリの確認
|
||||
SCRIPT_DIR="$HOME/git/claude/scripts"
|
||||
if [[ ! -d "$SCRIPT_DIR" ]]; then
|
||||
echo -e "${YELLOW}スクリプトディレクトリを作成します...${NC}"
|
||||
mkdir -p "$SCRIPT_DIR"
|
||||
fi
|
||||
|
||||
# 実行権限の付与
|
||||
echo -e "${GREEN}実行権限を設定中...${NC}"
|
||||
chmod +x "$SCRIPT_DIR"/*.sh 2>/dev/null || true
|
||||
|
||||
# .zshrcへの追加確認
|
||||
ZSHRC="$HOME/.zshrc"
|
||||
SOURCE_LINE="source \"\$HOME/git/claude/scripts/claude-zsh-functions.sh\""
|
||||
|
||||
if grep -q "claude-zsh-functions.sh" "$ZSHRC" 2>/dev/null; then
|
||||
echo -e "${YELLOW}既に.zshrcに設定があります${NC}"
|
||||
else
|
||||
echo -e "${GREEN}.zshrcに設定を追加しますか?${NC}"
|
||||
read -p "続行しますか? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "" >> "$ZSHRC"
|
||||
echo "# Claude Code Helper Functions" >> "$ZSHRC"
|
||||
echo "$SOURCE_LINE" >> "$ZSHRC"
|
||||
echo -e "${GREEN}✓ .zshrcに追加しました${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}手動で以下を.zshrcに追加してください:${NC}"
|
||||
echo "$SOURCE_LINE"
|
||||
fi
|
||||
fi
|
||||
|
||||
# テスト実行
|
||||
echo -e "\n${GREEN}セットアップ完了!${NC}"
|
||||
echo -e "${YELLOW}以下のコマンドでテストしてください:${NC}"
|
||||
echo " source ~/.zshrc"
|
||||
echo " claude-help"
|
||||
echo ""
|
||||
echo -e "${GREEN}利用可能なコマンド:${NC}"
|
||||
echo " claude-help - 拡張ヘルプ表示"
|
||||
echo " ch - claude-helpの短縮形"
|
||||
echo " cr - クイックリファレンス"
|
||||
echo " cs - 安全モードで起動"
|
||||
echo " claude-docs - 公式ドキュメントを開く"
|
Reference in New Issue
Block a user