zshrc ターミナルとObsidianとMCPの融合を目指して

朝、目覚めてから30分後、一旦机でターミナルをたちあげて、
『おはよう』とシェルにコマンドを打ち込む。

そこから睡眠時間を記録し、体調を管理する。
Obsidianのファイルの growthcode_health.md ファイルに追記される。

1日の記録  GrowthCode 学習

GrowthCode 自分の人生をグロースするためのAIプロジェクト

.zshrc とは…

.zshrc は、Zシェル(Zsh)の設定ファイル
起動前に読み込まれる…。autoexec.bat みたいなもの?

『Zシェル(Zsh)』の『ランコマンド(RC)』なので、 『.(隠しコマンド)』で『.zshrc』となる。

  • Bash (Bourne Again SHell)

    • p]:inline” style=”–tw-border-spacing-x: 0; –tw-border-spacing-y: 0; –tw-translate-x: 0; –tw-translate-y: 0; –tw-rotate: 0; –tw-skew-x: 0; –tw-skew-y: 0; –tw-scale-x: 1; –tw-scale-y: 1; –tw-scroll-snap-strictness: proximity; –tw-ring-offset-width: 0px; –tw-ring-offset-color: #fff; –tw-ring-color: rgba(67, 128, 180, 0.5); –tw-ring-offset-shadow: 0 0 rgba(0,0,0,0); –tw-ring-shadow: 0 0 rgba(0,0,0,0); –tw-shadow: 0 0 rgba(0,0,0,0); –tw-shadow-colored: 0 0 rgba(0,0,0,0); box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding-left: 0.428571em; border: 0px solid #c0c1c6;”>スクリプト互換性が高い
    • p]:inline” style=”–tw-border-spacing-x: 0; –tw-border-spacing-y: 0; –tw-translate-x: 0; –tw-translate-y: 0; –tw-rotate: 0; –tw-skew-x: 0; –tw-skew-y: 0; –tw-scale-x: 1; –tw-scale-y: 1; –tw-scroll-snap-strictness: proximity; –tw-ring-offset-width: 0px; –tw-ring-offset-color: #fff; –tw-ring-color: rgba(67, 128, 180, 0.5); –tw-ring-offset-shadow: 0 0 rgba(0,0,0,0); –tw-ring-shadow: 0 0 rgba(0,0,0,0); –tw-shadow: 0 0 rgba(0,0,0,0); –tw-shadow-colored: 0 0 rgba(0,0,0,0); box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding-left: 0.428571em; border: 0px solid #c0c1c6;”>

      Zsh (Z Shell) macOSのデフォルトシェル

      • p]:inline” style=”–tw-border-spacing-x: 0; –tw-border-spacing-y: 0; –tw-translate-x: 0; –tw-translate-y: 0; –tw-rotate: 0; –tw-skew-x: 0; –tw-skew-y: 0; –tw-scale-x: 1; –tw-scale-y: 1; –tw-scroll-snap-strictness: proximity; –tw-ring-offset-width: 0px; –tw-ring-offset-color: #fff; –tw-ring-color: rgba(67, 128, 180, 0.5); –tw-ring-offset-shadow: 0 0 rgba(0,0,0,0); –tw-ring-shadow: 0 0 rgba(0,0,0,0); –tw-shadow: 0 0 rgba(0,0,0,0); –tw-shadow-colored: 0 0 rgba(0,0,0,0); box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding-left: 0.428571em; border: 0px solid #c0c1c6;”>高度なカスタマイズ性

.zshrc は Zsh が起動するたびに自動的に実行されるコマンドの集まりで、シェルのカスタマイズの要となるファイルです。

  1. 起動時の自動実行

    • p]:inline” style=”–tw-border-spacing-x: 0; –tw-border-spacing-y: 0; –tw-translate-x: 0; –tw-translate-y: 0; –tw-rotate: 0; –tw-skew-x: 0; –tw-skew-y: 0; –tw-scale-x: 1; –tw-scale-y: 1; –tw-scroll-snap-strictness: proximity; –tw-ring-offset-width: 0px; –tw-ring-offset-color: #fff; –tw-ring-color: rgba(67, 128, 180, 0.5); –tw-ring-offset-shadow: 0 0 rgba(0,0,0,0); –tw-ring-shadow: 0 0 rgba(0,0,0,0); –tw-shadow: 0 0 rgba(0,0,0,0); –tw-shadow-colored: 0 0 rgba(0,0,0,0); box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding-left: 0.428571em; border: 0px solid #c0c1c6;”>ログインシェルとして起動した場合にのみ実行編集後は source ~/.zshrc で変更を反映させます。
  2. 1. **システム設定ファイルの慣例**- Unix/Linux系OSでは、設定ファイルは通常 `.` で始まる名前が付けられます
    – これにより、`ls` コマンドで通常のファイル一覧を表示した際に表示されなくなります
    2. **誤操作防止**- 重要な設定ファイルを誤って削除したり編集したりするのを防ぐため
    – 通常のファイル操作から保護する役割があります
    3. **視認性の向上**- ホームディレクトリが多くのファイルで散らかるのを防ぎます
    – ユーザーが作成した通常のファイルと設定ファイルを区別しやすくします
    4. **セキュリティ**- パスワードやAPIキーなどの機密情報を含むことがあるため、誤って共有されるのを防ぎます

2025-08-22-TUE 段階

# ========================================
# PATH設定 (zsh最適化)
# ========================================
typeset -U path  # 重複削除
path=(
    "$HOME/bin"
    "$HOME/.codeium/windsurf/bin"
    "$HOME/.lmstudio/bin"
    "/opt/homebrew/opt/python@3.10/bin"
    $path
)
export PATH

# ========================================
# zsh基本設定
# ========================================
# プロンプト設定 (zsh native)
export PS1="pk %1~ %# "

# zsh補完システム
autoload -Uz compinit
compinit

# zsh履歴設定
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=10000
setopt SHARE_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_ALL_DUPS
setopt HIST_FIND_NO_DUPS
setopt HIST_SAVE_NO_DUPS

# ========================================
# nvm設定 (zsh最適化)
# ========================================
export NVM_DIR="$HOME/.nvm"
# zsh用の遅延読み込み
nvm() {
    unfunction nvm
    [[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
    [[ -s "$NVM_DIR/bash_completion" ]] && source "$NVM_DIR/bash_completion"
    nvm "$@"
}

# ========================================
# 基本エイリアス (最適化・不要削除)
# ========================================
alias cdobs='cd "/Users/paul_kanda/Library/Mobile Documents/com~apple~CloudDocs/obsidian/iPhone"'

# ========================================
# Git Markdown 統合管理 (zsh最適化)
# ========================================
alias mdadd='git add *.md **/*.md && print "📝 All .md files added"'
alias mdcommit='git add *.md **/*.md && git commit -m "Update markdown files - $(date +%Y-%m-%d)" && print "✅ Markdown files committed"'
alias mdpush='git add *.md **/*.md && git commit -m "Update markdown files - $(date +%Y-%m-%d)" && git push origin main && print "🚀 Pushed to GitHub"'

# ========================================
# 環境変数とシークレット設定 (zsh最適化)
# ========================================
# 環境変数読み込み (zsh条件文)
[[ -f "$HOME/.local/bin/env" ]] && source "$HOME/.local/bin/env"
[[ -f "$HOME/.env_secrets" ]] && source "$HOME/.env_secrets"

# ========================================
# GrowthCode 統合学習効率追跡システム (zsh完全最適化)
# ========================================

# 📅 時間管理基盤 (zsh最適化)
alias 現在時刻='date "+%Y-%m-%d-%a-%H:%M" | tr "[:lower:]" "[:upper:]"'

# 🌙 健康データ記録システム (Obsidian連携 zsh最適化)
health_log() {
    local timestamp=$(現在時刻)
    # Obsidianのパスとファイル名を定義
    local obsidian_path="/Users/paul_kanda/_projects/obsidian-git"
    local log_file="$obsidian_path/growthcode_health.md" # ファイル名を固定

    print "## 🌙 Health Data for Obsidian: $timestamp"
    
    local sleep_hours sleep_start sleep_end health_score energy_score motivation_score stress_score
    
    print -n "睡眠時間 (X.X形式): "
    read sleep_hours
    print -n "就寝時刻 (HH:MM): "
    read sleep_start  
    print -n "起床時刻 (HH:MM): "
    read sleep_end
    print -n "体調 (1-5): "
    read health_score
    print -n "エネルギー (1-5): "
    read energy_score
    print -n "モチベーション (1-5): "
    read motivation_score
    print -n "ストレスレベル (1-5): "
    read stress_score
    
    # Markdown形式でログファイルに追記
    cat << EOF >> "$log_file"
---
### 🌙 健康ログ ${timestamp}

**睡眠**
- **睡眠時間**: ${sleep_hours}h
- **時間**: ${sleep_start} - ${sleep_end}

**コンディション**
- **体調**: ⭐${health_score}
- **エネルギー**: ⭐${energy_score}
- **モチベーション**: ⭐${motivation_score}
- **ストレス**: ⭐${stress_score}

EOF

    print "✅ Obsidianに健康データをMarkdown形式で記録しました: $log_file"
}

alias 健康記録='health_log'



# 📋 GrowthCode統合ログ生成 (zsh最適化)
growth_code_log() {
    local timestamp=$(現在時刻)
    local today_file="$(date "+%Y-%m-%d")-$(date "+%a" | tr "[:lower:]" "[:upper:]")"
    
    cat << EOF
## 📊 Daily Data Log: $timestamp

### 🌙 Health & Lifestyle
- 睡眠: [X.X]h ([XX:XX]-[XX:XX]) 質:⭐[X] 逆転度:[状態]
- 食事: 朝[XX:XX]/昼[XX:XX]/夜[XX:XX] 満足度:⭐[X]
- 体調: ⭐[X] エネルギー:⭐[X]

### 🧠 Mental & Motivation  
- モチベーション:⭐[X] 集中力:⭐[X] ストレス:⭐[X]
- 楽しさ:⭐[X] 満足度:⭐[X] 達成感:⭐[X]

### 🚀 Productivity & Learning
- 学習時間:[X.X]h 効率:⭐[X] 成果:⭐[X]
- 技術進捗: Swift:[XX%] AI協働:[XX%] 設計:[XX%]
- 重要な学び・発見: [記述]

### 🎯 Tomorrow's Optimization
- 改善アクション: [記述]
- 明日の重点: [記述]

### 🔗 関連ファイル
- [[$today_file]] - 今日の詳細記録
- [[GrowthCode総合最適化システム]] - データ分析・改善提案
EOF
}

alias growthcode='growth_code_log'

# 🌅 朝のセットアップ (zsh最適化)
morning_setup() {
    print "🌅 おはよう!GrowthCode最適化システム"
    print "📅 $(現在時刻)"
    print ""
    print "📋 今日のセットアップを開始します:"
    print "1. 健康データ記録"
    print "2. 今日の学習目標設定"
    print ""
    print "『健康記録』で体調データを入力してください"
}

alias おはよう='morning_setup'

# 🌙 夜の振り返り (Obsidian連携 zsh最適化)
evening_review() {
    print "🌙 今日もお疲れさまでした!"
    print "📊 今日の振り返りを開始します"
    print ""
    print "📝 今日のGrowthCodeデータログを日次レポートに追記します..."
    growthcode
    print ""
    print "💾 Markdownファイルを自動コミット中..."
    mdcommit
    print ""
    print "✅ 今日の記録完了!明日も効率的な学習を目指しましょう 🚀"
}

alias おつかれ='evening_review'

# 🗂️ 『追記』用統合エイリアス (Obsidian連携 zsh最適化)
alias 追記='print "📝 今日の学習レポートファイルに、学習内容を追記してください。『growthcode』で振り返りテンプレートを末尾に追加できます。"'

# 🔧 システム管理 (Obsidian連携 zsh最適化)
# データファイル初期化
init_growthcode() {
    local state_dir="$HOME/.growthcode"
    mkdir -p "$state_dir"
    print "✅ GrowthCodeの状態管理ディレクトリを準備しました: $state_dir"
}

alias 初期化='init_growthcode'



# ========================================
# zsh補完とキーバインド強化
# ========================================
# 補完メニューの有効化
zstyle ':completion:*' menu select

# 大文字小文字を区別しない補完
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

# 色付き補完
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"

# ========================================
# システム情報表示 (zsh最適化)
# ========================================
print "🚀 GrowthCode統合学習効率追跡システム (zsh最適化版) ロード完了"
print "📋 利用可能コマンド:"
print "   おはよう     - 朝のセットアップ"
print "   健康記録     - 健康データ入力"
print "   growthcode   - 日次データログ生成"
print "   おつかれ     - 夜の振り返り・自動コミット"
print "   追記         - Obsidian記録ガイド"
print "   初期化       - システム初期化"
print ""
# Added by LM Studio CLI (lms)
export PATH="$PATH:/Users/paul_kanda/.lmstudio/bin"
# End of LM Studio CLI section