Daily Words プロジェクト作成手順
個人用の定型文・フレーズ管理システムをRaycastと連携させて作成する手順書です。
🎯 完成イメージ
-
words.md
にフレーズを蓄積 - Raycastで素早く検索・コピー
- GitHubでバージョン管理
- PRベースでの運用
Raycastで指定のScript Commandsを選択すれば...
📋 前提条件
- macOS
- Git がインストール済み
- GitHub アカウント
- Homebrew がインストール済み
🚀 Step 1: プロジェクトの初期化
1.1 リポジトリ作成
# プロジェクトディレクトリを作成
mkdir daily-words
cd daily-words
# Gitリポジトリを初期化
git init
# GitHubでリモートリポジトリ作成(GitHub CLIを使用)
gh repo create daily-words --private --source=. --remote=origin --push
1.2 基本ファイルの作成
README.md を作成:
# Daily Words ✍️
## 目的:
- 自分の文章スタイルと口癖のアーカイブ
- コピペしやすいことを最優先に
- よく使う定型文・フレーズを一箇所にまとめて検索・再利用しやすくする
## そもそもなぜGit/GitHubで管理するの?
- **履歴追跡**: いつ、どんな表現を追加したか時系列で確認できる
- **変化の可視化**: 自分の文章スタイルの変遷を後から分析可能
- **PRベースの運用**: 追加した内容を1件ずつ記録として残し、将来のAI解析時にデータとして活用
## 使い方:
- 追加: `words.md` の末尾に `- フレーズ…` を1行で追記
- PR作成: `./scripts/submit-words-pr.sh` で自動的にブランチ作成→PR作成
- **Raycast連携**: `scripts/raycast` にRaycast用スクリプトを用意(macOS向け)
## 将来:
- AI解析して自分の文章傾向や口癖とか自己分析に使いたい
- 時系列での言葉遣いの変化を可視化
- コミュニケーションパターンの自己認識に活用
## License
MIT License - see [LICENSE](LICENSE) file for details.
words.md を作成:
- ご確認ありがとうございます!おかげさまで大変助かります🙏
- 早々にありがとうございます!
- こちら対応しました、レビューお願いします!
- お手数おかけしております。
- 承知しました。
- 引き続きどうぞよろしくお願いします。
.gitignore を作成:
# macOS
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Temporary files
*.tmp
*.temp
*.log
*.cache
*~
.#*
# Editor files
# VS Code
.vscode/
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# Vim
*.swp
*.swo
*~
# Backup files
*.bak
*.backup
*.orig
# Local environment files
.env
.env.local
.env.*.local
# Archive files
*.zip
*.tar.gz
*.rar
*.7z
LICENSE を作成:
MIT License
Copyright (c) 2025 [あなたの名前]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
1.3 初回コミット
git add .
git commit -m ":tada: Initial commit"
git push -u origin main
🛠 Step 2: PR作成スクリプトの追加
2.1 スクリプトディレクトリ作成
mkdir -p scripts
2.2 PR作成スクリプト
scripts/submit-words-pr.sh を作成:
#!/bin/bash
# Daily Words PR作成スクリプト
# 使い方: ./scripts/submit-words-pr.sh
set -e
# ブランチ名を生成(タイムスタンプベース)
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BRANCH_NAME="add-words-${TIMESTAMP}"
echo "🚀 Daily Words PR作成を開始します..."
# 現在のブランチを確認
CURRENT_BRANCH=$(git branch --show-current)
if [ "$CURRENT_BRANCH" != "main" ]; then
echo "⚠️ mainブランチに切り替えます"
git checkout main
git pull origin main
fi
# 新しいブランチを作成
echo "📝 新しいブランチを作成: $BRANCH_NAME"
git checkout -b "$BRANCH_NAME"
# 変更をステージ
git add words.md
# コミット(変更がある場合のみ)
if git diff --staged --quiet; then
echo "❌ words.mdに変更がありません"
git checkout main
git branch -d "$BRANCH_NAME"
exit 1
fi
git commit -m ":sparkles: Add: New words and phrases"
# プッシュ
echo "⬆️ ブランチをプッシュ"
git push -u origin "$BRANCH_NAME"
# PR作成
echo "🔄 Pull Requestを作成"
gh pr create \
--title ":sparkles: Add: New words and phrases" \
--body "新しいフレーズを追加
$(git log main..$BRANCH_NAME --oneline)
- words.mdに新しいフレーズを追加
- 日常業務でよく使用する表現を蓄積"
echo "✅ PR作成完了!"
echo "📱 GitHub上でレビューしてマージしてください"
# mainブランチに戻る
git checkout main
2.3 実行権限を付与
chmod +x scripts/submit-words-pr.sh
2.4 コミット
git add scripts/
git commit -m ":sparkles: Add: PR creation script"
git push
🎨 Step 3: Raycast連携スクリプトの作成
3.1 必要なツールのインストール
# fzf(ファジーファインダー)をインストール
brew install fzf
# choose(GUI選択ツール)をインストール(オプション)
brew install choose-gui
3.2 Raycastスクリプトディレクトリ作成
mkdir -p scripts/raycast
3.3 基本スクリプト作成
scripts/raycast/search-words.sh を作成:
#!/bin/bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Search Daily Words
# @raycast.mode compact
# @raycast.packageName Daily Words
# Optional parameters:
# @raycast.icon 📝
# @raycast.needsConfirmation false
# Documentation:
# @raycast.description words.mdからフレーズを検索してクリップボードにコピー
WORDS_FILE="$HOME/myProject/daily-words/words.md"
# fzfで選択 (先頭の "- " を除去してコピー)
selected=$(cat "$WORDS_FILE" | fzf --height 40% --reverse --header "フレーズを選択してください")
if [ -n "$selected" ]; then
# 先頭の "- " を削除してクリップボードにコピー
echo "$selected" | sed 's/^- //' | pbcopy
echo "クリップボードにコピーしました: $selected"
fi
3.4 ターミナル版スクリプト(推奨)
scripts/raycast/search-words-terminal.scpt を作成:
#!/usr/bin/osascript
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Search Daily Words (Terminal)
# @raycast.mode silent
# @raycast.packageName Daily Words
# Optional parameters:
# @raycast.icon 📝
# Documentation:
# @raycast.description words.mdからフレーズを検索してクリップボードにコピー(ターミナル版)
tell application "Terminal"
activate
do script "cd ~/myProject/daily-words && ./scripts/raycast/search-words.sh"
end tell
3.5 GUI版スクリプト
scripts/raycast/search-words-gui.sh を作成:
#!/bin/bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Search Daily Words (GUI)
# @raycast.mode silent
# @raycast.packageName Daily Words
# Optional parameters:
# @raycast.icon 📝
# Documentation:
# @raycast.description words.mdからフレーズを検索してクリップボードにコピー(GUI版)
WORDS_FILE="$HOME/myProject/daily-words/words.md"
# ファイル存在チェック
if [ ! -f "$WORDS_FILE" ]; then
echo "エラー: $WORDS_FILE が見つかりません" >&2
exit 1
fi
# chooseを使ってGUIで選択
selected=$(cat "$WORDS_FILE" | choose)
if [ -n "$selected" ]; then
# 先頭の "- " を削除してクリップボードにコピー
phrase=$(echo "$selected" | sed 's/^- //')
echo "$phrase" | pbcopy
echo "選択されたフレーズをクリップボードにコピーしました"
else
echo "キャンセルされました"
fi
3.6 ダイアログ版スクリプト
scripts/raycast/search-words-dialog.sh を作成:
#!/bin/bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Search Daily Words (Dialog)
# @raycast.mode silent
# @raycast.packageName Daily Words
# Optional parameters:
# @raycast.icon 📝
# Documentation:
# @raycast.description words.mdからフレーズを検索してクリップボードにコピー(ダイアログ版)
WORDS_FILE="$HOME/myProject/daily-words/words.md"
# AppleScriptでダイアログを表示
selected=$(osascript -e "
set wordsList to {$(cat "$WORDS_FILE" | sed 's/^- //' | sed 's/\"/\\\"/g' | awk '{print "\"" $0 "\""}'| paste -sd ',' -)}
set selectedWord to choose from list wordsList with prompt \"フレーズを選択してください:\"
if selectedWord is not false then
return item 1 of selectedWord
else
return \"\"
end if
")
if [ -n "$selected" ] && [ "$selected" != "" ]; then
echo "$selected" | pbcopy
echo "クリップボードにコピーしました: $selected"
else
echo "キャンセルされました"
fi
3.7 実行権限を付与
chmod +x scripts/raycast/*.sh scripts/raycast/*.scpt
3.8 Raycast専用README作成
scripts/raycast/README.md を作成:
# Raycast Scripts for Daily Words
このディレクトリには、Daily WordsをRaycastと連携させるためのスクリプトが含まれています。
## 前提条件
### 最小構成
- macOS
- [Raycast](https://www.raycast.com/) がインストール済み
- [fzf](https://github.com/junegunn/fzf) がインストール済み
```bash
brew install fzf
追加オプション(スクリプト別)
-
GUI版: choose が必要
brew install choose-gui
- ダイアログ版: 追加インストール不要(macOS標準)
セットアップ
- Raycastを開く
- "Script Commands" と入力して設定を開く
- "Add Script Directory" をクリック
- このディレクトリのパスを追加:
/path/to/daily-words/scripts/raycast
- "Reload Script Directories" を実行(必要に応じて)
利用可能なスクリプト
search-words-terminal.scpt
(推奨)
- 説明: ターミナルでfzfを使用した対話的な選択
- 使用方法: Raycastで "Search Daily Words (Terminal)" と入力
-
特徴:
- fzfの強力な検索機能を活用
- ファジー検索でフレーズを素早く発見
- 選択したフレーズを自動的にクリップボードにコピー
search-words-gui.sh
- 説明: chooseツールを使用したGUI選択
- 使用方法: Raycastで "Search Daily Words (GUI)" と入力
-
前提条件:
brew install choose-gui
- 特徴: モダンなGUIインターフェース
search-words-dialog.sh
- 説明: macOS標準ダイアログを使用した選択
- 使用方法: Raycastで "Search Daily Words (Dialog)" と入力
- 特徴: macOSネイティブなルック&フィール
使用方法
- Raycastを開く
- "Search Daily Words" と入力(候補が表示される)
- 使いたいスクリプトを選択して実行
- フレーズを選択
- 選択されたフレーズがクリップボードにコピーされます
- どこでも貼り付け可能
トラブルシューティング
スクリプトが表示されない
- "Reload Script Directories" を実行
- スクリプトに実行権限があることを確認:
chmod +x *.sh *.scpt
fzfが動作しない
- fzfがインストールされていることを確認:
which fzf
- ターミナル版スクリプト(.scpt)を使用してください
カスタマイズ
スクリプトをカスタマイズしたい場合は、各ファイルを直接編集してください。例:
- fzfのオプション変更(高さ、プレビューなど)
- 選択後の動作変更(通知追加など)
- 異なるファイルパスの指定
### 3.9 コミット
```bash
git add scripts/raycast/
git commit -m ":sparkles: Add: Raycast integration scripts"
git push
🔧 Step 4: Raycastセットアップ
4.1 Raycastでスクリプトディレクトリを追加
- Raycastを開く
- "Script Commands" と入力して設定を開く
- "Add Script Directory" をクリック
- プロジェクトの
scripts/raycast
ディレクトリを選択 - "Reload Script Directories" を実行
4.2 動作確認
- Raycastを開く
- "Search Daily Words" と入力
- 表示されたスクリプトのいずれかを実行
- フレーズを選択してクリップボードにコピーされることを確認
📝 Step 5: 日常の運用フロー
5.1 新しいフレーズの追加
- words.md を開く
- 末尾に新しいフレーズを追加:
- 新しいフレーズをここに追加
- PR作成スクリプトを実行:
./scripts/submit-words-pr.sh
- GitHub上でPRをレビュー・マージ
5.2 フレーズの使用
- Raycastを開く
- "Search Daily Words" と入力
- 好みのスクリプトを選択
- フレーズを検索・選択
- 自動的にクリップボードにコピーされる
- 任意の場所で貼り付け
🎯 完成!
これで、効率的な定型文管理システムが完成しました!
主な機能
- ✅ 定型文の体系的管理
- ✅ Raycastからの高速検索
- ✅ PRベースのバージョン管理
- ✅ 複数の検索インターフェース
- ✅ 自動化されたワークフロー
今後の拡張アイデア
- フレーズのカテゴリ分類
- 使用頻度の追跡
- AI分析による文章傾向の可視化
- Windows/Linux対応