ObsidianのDaily Note作成をClaude Codeで半自動化してみた

ObsidianのDaily Note作成をClaude Codeで半自動化してみた

2025.08.01

はじめに

データ事業本部のkasamaです。
今回は、個人ナレッジ管理を始めてから3週間が経過し、色々と更新を行い、Claude CodeのCustom slash commandsを利用した半自動化を行ったりしたので紹介したいと思います。こちらのブログは前回から更新した内容を中心に紹介するので、まずは前回のブログから参照いただければと思います。

https://dev.classmethod.jp/articles/claudecode-obsidian-vertex-ai-knowledge-system/

前提

実際に3週間運用してみて、英語フィードバックのスクリプト手動実行やObsidianのDaily Note手動更新が少し手間であると感じました。
以下がそれぞれの処理フローです。

英語フィードバック作成フロー
業務開始時のObsidian Daily Note作成フロー
業務開始時のObsidian Daily Note更新フロー

処理フローを改めてみると大体同じルーティーンで更新をしているので、なんとか自動化できないかなと考えました。

ADR(Architecture Decision Record)

検討した選択肢

選択肢 説明 音声入力 自動化 ローカル連携 カレンダー連携 評価
理想形:macOSスケジューラー + ポップアップ通知 業務開始/終了時に自動でPCにポップアップ通知が表示され、音声対話を開始。完了後にDaily Noteが自動生成される仕組み 実装コストが高く、ちょっとしたアプリ開発が必要
Google Gemini(スマホアプリ) スマホで音声対話し、Google Calendarから予定を取得してDaily Noteを作成 × ローカルPCへファイル保存が自動で簡単にはできない
Google Gemini(Web UI) ブラウザ上でGeminiを使用してDaily Note作成 × ローカルPCへファイル保存が自動で簡単にはできない
Claude Desktop デスクトップアプリ版のClaudeを使用 × × 音声入力機能がない
Claude Code Mac音声入力+Custom slash commands ○※ 採用

※Mac標準の音声入力機能(Ctrl×2)を利用

決定事項

Claude Code + Custom slash commands + Mac音声入力を採用しました。

理由

  1. 音声入力の実現: Mac標準の音声入力機能(Ctrl×2)を活用することで、対話形式での記録が可能
  2. 半自動化の実現: Custom slash commandsにより、複雑な処理フローを簡潔なコマンドで実行可能
  3. ローカル環境との親和性: ローカルファイルの読み書きが直接可能で、Obsidianとの連携がスムーズ
  4. 拡張性: Python/Bashスクリプトとの連携により、Google Calendar APIなど外部サービスとの統合も容易

留意事項

  • 完全自動化ではなく半自動化(コマンド実行とPermission許可が必要)
  • 音声入力でありライブ形式の対話型ではない

今後の改善案

  • 対話形式での自動化の模索

実装

今回の実装コードは、Github上に格納してあるのでご確認いただければと思います。
https://github.com/cm-yoshikikasama/obsidian-claude-feedback-sample

@obsidian-claude-feedback-sample % tree -la
.
├── .claude → Update!
│   ├── audio_video_to_text
│   │   ├── .env
│   │   ├── audio_video_to_text.py
│   │   ├── input
│   │   │   └── .gitkeep
│   │   └── output
│   ├── commands
│   │   ├── daily-evening.md
│   │   ├── daily-morning.md
│   │   ├── english-lesson.md
│   │   └── meeting-minutes.md
│   ├── format-md.sh
│   ├── requirements.txt
│   ├── settings.json
│   └── today_cal
│       ├── cal_client_secret.json
│       ├── today-calendar.py
│       └── token.json
├── .gitignore
├── .prettierrc
├── 00_Configs
│   ├── Extra
│   │   └── .gitkeep
│   └── Templates
│       └── Daily.md
├── 01_Daily
│   └── .gitkeep
├── 02_Inbox
│   └── 雑メモ.md
├── 03_eng_study
│   └── .gitkeep
├── 04_Meetings
│   └── .gitkeep
├── CLAUDE.md
├── package-lock.json
├── package.json
└── README.md

前回のブログから更新した内容だけ紹介します。

先ほど話した通り、Claude Codeで半自動化するため、Custom slash commandsを作成しました。プロジェクトレベルでコマンドを適用するためには、.claude/commands/にmdを作成します。mdの作成方法は、以下を参考にしました。
https://docs.anthropic.com/ja/docs/claude-code/slash-commands#カスタムスラッシュコマンド
https://zenn.dev/hacobu/articles/d4a194b95aacd5

上記に記載した処理フローをClaude Codeで半自動化するように指示した内容です。

.claude/daily-evening.md
---
allowed-tools: Bash(cd:*), Bash(source:*), Bash(python:*), Write, Read, Glob, Edit
description: Update daily note with today's achievements and tomorrow's plan
---

# Daily Note Evening Assistant(夜用・更新)

## Project Configuration

```
PROJECT_A = "Aプロジェクト"
PROJECT_B = "Bプロジェクト"
PROJECT_C = "Cプロジェクト"
```

## Your task

1. Get Google Calendar events for today
2. Find and read today's daily note
3. Ask user 6 questions one by one about achievements and reflection
4. Update the existing daily note file with responses

### Step 1: Get Calendar Events

```bash
cd .claude && uv run today_cal/today-calendar.py
```

Parse calendar output to understand today's events and generate relevant questions.

### Step 2: Find Today's Daily Note

- Locate today's daily note in `01_Daily/[YYYY-MM-DD].md` format
- Read the file to understand current content structure

### Step 3: Ask User Questions with Calendar Context (一つずつ質問)

First, analyze the Google Calendar events and match them to projects. Then ask these questions one by one, incorporating calendar information. Wait for each response before proceeding:

**質問1: {PROJECT_A}の実績**
Google Calendarから、{PROJECT_A}関連で以下の予定がありました:
[カレンダーの該当イベントをリスト表示]
この作業を実施しましたね。他に追記することがあれば教えてください。なければ「なし」とお答えください。

**質問2: {PROJECT_B}の実績**
Google Calendarから、{PROJECT_B}関連で以下の予定がありました:
[カレンダーの該当イベントをリスト表示]
この作業を実施しましたね。他に追記することがあれば教えてください。なければ「なし」とお答えください。

**質問3: {PROJECT_C}の実績**
Google Calendarから、{PROJECT_C}関連で以下の予定がありました:
[カレンダーの該当イベントをリスト表示]
この作業を実施しましたね。他に追記することがあれば教えてください。なければ「なし」とお答えください。

**質問4: ブログ・その他の実績**
Google Calendarから、その他の予定で以下がありました:
[カレンダーの該当イベントをリスト表示]
ブログやその他の活動で今日やったことがあれば教えてください。カレンダー以外の活動も含めてお答えください。なければ「なし」とお答えください。

**質問5: 今日の振り返り**
今日1日を振り返って、感謝したこと、よかったこと・うまくいったこと、今日の教訓や心に残った言葉などを自由に話してください。

**質問6: 明日やること(全体)**
明日やる予定のタスクを教えてください。プロジェクト別({PROJECT_A}、{PROJECT_B}、{PROJECT_C}、ブログ、その他)に分けてお答えください。なければ「未定」とお答えください。

### Step 4: Update Daily Note File

After collecting all responses, update the daily note file:

1. Read `01_Daily/[date].md` file
2. Update MTG・イベント section:
    - Mark ALL Google Calendar events as `- [x]` (attended)
    - For events that exist in daily note but NOT in Google Calendar, mark with strikethrough: `- [ ] ~~event name~~ (実施せず)`
3. Update 今日のTodo section:
    - Mark completed items as `- [x]`
    - Update progress details (e.g., "実装進める" → "実装80%完了、動作検証に移行")
    - Keep incomplete items as `- [ ]`
4. Update 今日の振り返り section:
    - 感謝: Add user responses as bullet points
    - Good: Add user responses as bullet points
    - Motto: Add user responses
5. Update 明日やる section:
    - Replace "未定" with specific tasks from user responses
    - Format as checkboxes

**Execute all steps and update the file immediately.**

更新例:

```markdown
## MTG・イベント

- [x] 08:30 - (プロジェクトA)実装 # Google Calendarにあった予定
- [x] 11:00 - (プロジェクトB)内部MTG # Google Calendarにあった予定
- [ ] ~~14:00 - (プロジェクトC)内部MTG~~ (実施せず) # Daily noteにあったがGoogle Calendarになかった予定
- [x] 終日 - 自宅 # Google Calendarにあった予定

## 今日のTodo

- Aプロジェクト
    - [x] 実装80%完了、動作検証に移行 # 進捗を具体的に更新
- Bプロジェクト
    - [x] 単体テスト完了、結合テスト開始 # 進捗を具体的に更新
- Cプロジェクト
    - [x] アーキテクチャ検討完了、構成図作成中 # 進捗を具体的に更新
- ブログ
    - [ ] (予定なし) # 実施しなかった場合はそのまま
- その他
    - [ ] (予定なし)

## 今日の振り返り

### 感謝

- [ユーザーの回答内容]

### Good

- [ユーザーの回答内容]

### Motto

- [ユーザーの回答内容]

## 明日やる

- {PROJECT_A}
    - [ ] [具体的なタスク]
- {PROJECT_B}
    - [ ] [具体的なタスク]
- {PROJECT_C}
    - [ ] [具体的なタスク]
- ブログ
    - [ ] [具体的なタスク]
- その他
    - [ ] [具体的なタスク]
```

.claude/daily-morning.md
---
allowed-tools: Bash(cd:*), Bash(source:*), Bash(python:*), Write, Read, Glob
description: Create daily note from calendar events and previous day's tasks
---

# Daily Note Morning Assistant(朝用・作成)

## Project Configuration

```
PROJECT_A = "Aプロジェクト"
PROJECT_B = "Bプロジェクト"
PROJECT_C = "Cプロジェクト"
```

## Your task

1. Get Google Calendar events and add to MTG・イベント section
2. Get previous day's todo from latest daily note
3. Ask user for todo updates
4. Create today's daily note file

### Step 1: Get Calendar Events

```bash
cd .claude && uv run today_cal/today-calendar.py
```

Parse calendar output and convert each event to checkbox format for MTG・イベント section.

### Step 2: Get Previous Tasks

- Find latest daily note in `01_Daily/`
- Extract "明日やる" section content
- If no previous daily note exists, skip to Step 3B

### Step 3A: User Confirmation (when previous tasks exist)

Show previous tasks and ask: "今日のTodoに修正や追加はありますか?修正がある場合は具体的に教えてください。修正がなければ「そのまま」とお答えください。"

### Step 3B: User Input (when no previous tasks exist)

Ask user for today's todos by project:
"前回のdaily noteがないため、今日の各プロジェクトの予定を教えてください:

- Aプロジェクト:
- Bプロジェクト:
- Cプロジェクト:
- ブログ:
- その他: "

### Step 4: Create Daily Note

Create `01_Daily/[今日の日付].md`:

```markdown
---
tags:
    - { PROJECT_A }
    - { PROJECT_B }
    - { PROJECT_C }
---

# Daily [今日の日付]

## MTG・イベント

[Insert calendar events from Step 1 in checkbox format]

- [ ] [Event from Google Calendar]
- [ ] [Event from Google Calendar]

## 今日のTodo

- {PROJECT_A}
  [Previous day tasks + user updates]
- {PROJECT_B}
  [Previous day tasks + user updates]
- {PROJECT_C}
  [Previous day tasks + user updates]
- ブログ
  [Previous day tasks + user updates]
- その他
  [Previous day tasks + user updates]

## 今日の振り返り

### 感謝

-

### Good

-

### Motto

-

## 明日やる

- {PROJECT_A}
    - [ ] 未定
- {PROJECT_B}
    - [ ] 未定
- {PROJECT_C}
    - [ ] 未定
- ブログ
    - [ ] 未定
- その他
    - [ ] 未定
```

**Execute all steps and create the file immediately.**
.claude/english-lesson.md
---
allowed-tools: Bash(cd:*), Bash(source:*), Bash(python:*), Bash(ls:*), Bash(find:*), Write, Read, Glob, LS, Edit, MultiEdit, List
description: Generate English lesson feedback from audio transcription
argument-hint: YYYY-MM-DD
---

# English Lesson Feedback Generator

## Your task

1. Check and transcribe audio files from input directory
2. Read the latest transcript file
3. Load previous feedback for comparison
4. Generate detailed feedback and save to 03_eng_study folder

### Step 1: Check Audio Files and Transcribe

```bash
ls .claude/audio_video_to_text/input/
cd .claude/audio_video_to_text && uv run audio_video_to_text.py
```

### Step 2: Read Latest Transcript

```bash
ls -la .claude/audio_video_to_text/output/
```

Find and read the latest `*_transcript.txt` file from output directory.

### Step 3: Load Previous Feedback

Read the latest feedback file from `03_eng_study/` folder (format: `yyyy-mm-dd-feedback.md`).

### Step 4: Generate Feedback

Analyze the lesson transcript and generate detailed feedback. Save to `03_eng_study/$ARGUMENTS-feedback.md`.

**Important: Read transcript and previous feedback before analysis.**

#### Feedback Requirements

Generate detailed feedback **in English** including:

#### Lesson Overview & Summary

- Content covered in today's lesson
- Vocabulary learned (with English and Japanese meanings)
- Materials and topics used
- Lesson flow and structure

#### English Proficiency Assessment

- Pronunciation and reading issues
- Fluency and naturalness
- Comprehension (response quality to instructor questions)

#### Grammar & Expression Improvements

- Grammar mistakes and unnatural expressions (quote specific utterances and explain why they're incorrect)
- Better expression suggestions (clear Before/After format)
- Vocabulary improvement suggestions

※Consolidate all errors in one section with comprehensive coverage

For grammar/expression improvements and long-term challenges, use this specific format:

- **Actual utterance**: "exact quote from recording"
- **Issue**: detailed explanation of why this is incorrect
- **Correct expression**: "proper expression"
- **Improvement method**: specific learning/practice approach

#### Basic Communication Scenarios - Grammar & Expression Suggestions

- Appropriate greetings and grammar patterns
- Self-introduction sentence structure and vocabulary choices
- Natural response patterns to "Do you have any questions?"
- Appropriate farewell expressions at lesson end
- Other basic conversational grammar patterns

#### Strengths & Growth Areas

- Expressions used appropriately
- Improvements from previous sessions (if any)

**Execute all steps and report the generated feedback file path to user.**
.claude/meeting-minutes.md
---
allowed-tools: Bash, Write, Read, Glob, LS
description: Generate meeting minutes from audio transcription
argument-hint: YYYY-MM-DD
---

# Meeting Minutes Generator

## Your task

1. Check and transcribe audio files from input directory
2. Read the latest transcript file
3. Generate detailed meeting minutes and save to 04_Meetings folder

### Step 1: Check Audio Files and Transcribe

```bash
ls .claude/audio_video_to_text/input/
cd .claude/audio_video_to_text && uv run audio_video_to_text.py
```

### Step 2: Read Latest Transcript

```bash
ls -la .claude/audio_video_to_text/output/
```

Find and read the latest `*_transcript.txt` file from output directory.

### Step 3: Generate Meeting Minutes

Analyze transcript and generate detailed meeting minutes in Japanese. Save to `04_Meetings/$ARGUMENTS-[meeting name].md`.

**Important: Read transcript before analysis. Generate all content in Japanese.**

#### Meeting Minutes Requirements

Generate detailed meeting minutes including:

1. **会議概要** - Meeting overview, date, participants, purpose
2. **報告事項** - Reports and important information
3. **討議事項** - Discussions and Q&A
4. **決定事項** - Decisions and agreements
5. **アクションアイテム** - Who, what, when (action items)
6. **メモ** - Important remarks and issues

**Execute all steps and report the generated meeting minutes file path to user.**

.claude/today_cal/today-calendar.pyは、Google Calendarから実行日の予定を取得して標準出力するシンプルな実装です。この情報を先ほどのdaily-eveningdaily-morningで使います。

.claude/today_cal/today-calendar.py
import os
from datetime import datetime, timedelta
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']

def get_today_events():
    creds = None
    credentials_path = os.path.join(os.path.dirname(__file__), 'cal_client_secret.json')
    token_path = os.path.join(os.path.dirname(__file__), 'token.json')

    if os.path.exists(token_path):
        creds = Credentials.from_authorized_user_file(token_path, SCOPES)

    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(credentials_path, SCOPES)
            creds = flow.run_local_server(port=0)

        with open(token_path, 'w') as token:
            token.write(creds.to_json())

    service = build('calendar', 'v3', credentials=creds)

    today = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
    tomorrow = today + timedelta(days=1)

    events_result = service.events().list(
        calendarId='primary',
        timeMin=today.isoformat() + 'Z',
        timeMax=tomorrow.isoformat() + 'Z',
        singleEvents=True,
        orderBy='startTime'
    ).execute()

    events = events_result.get('items', [])

    # 今日の日付を出力
    print(f"DATE: {today.strftime('%Y-%m-%d')}")

    if not events:
        print("今日の予定はありません")
        return

    for event in events:
        start = event['start'].get('dateTime', event['start'].get('date'))
        if 'T' in start:
            # 時刻付きの場合、時刻のみ表示
            time_part = datetime.fromisoformat(start.replace('Z', '+00:00')).strftime('%H:%M')
            print(f"{time_part} - {event['summary']}")
        else:
            # 終日イベントの場合
            print(f"終日 - {event['summary']}")

if __name__ == '__main__':
    get_today_events()

前回から大きく更新した点は以上になります。

セットアップ

Obsidian

こちらは前回のブログと同様なのでスキップします。

Google Cloud

次にVertex AIを使用してスクリプトを実行できるようにセットアップします。

Vertex AIの有効化については以下ブログのGoogle Cloudセットアップと同様ですので参照いただければと思います。
https://dev.classmethod.jp/articles/generating-meeting-minutes-from-mp4-with-vertex-ai-gemini/

Google Calendar APIを使用するためのセットアップも実施します。
セットアップ方法は以下の記事でわかりやすく画面キャプチャありで書かれていたので、こちらでは簡単に紹介します。

https://dev.classmethod.jp/articles/google-calendar-api-create-schedule/

#### Google Calendar APIの有効化

1. https://console.cloud.google.com/ にアクセス
2. 新しいプロジェクト作成 or 既存プロジェクト選択
3. APIs & Services → Library
4. Google Calendar API を検索して有効化

#### OAuth同意画面の設定(必須)

5. APIs & Services → OAuth consent screen
6. Internal(会社アカウントの場合)または External(個人アカウントの場合)を選択して CREATE
7. App Information を入力:
    - App name: 任意の名前(例:Calendar Reader)
    - User support email: 自分のメールアドレス
8. SAVE AND CONTINUE
9. Audience: Internal(会社)または External(個人)を選択
10. SAVE AND CONTINUE
11. Contact Information を入力:
    - Email addresses: 自分のメールアドレス
12. SAVE AND CONTINUE を押して完了

#### OAuth Client IDの作成

10. APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client IDs
11. Application typeを Desktop application に設定
12. 名前を適当に入力(例:Calendar Reader)
13. Create をクリック
14. cal_client_secret.json をダウンロード
15. ダウンロードした cal_client_secret.json を配置:

`.claude/today_cal/cal_client_secret.json`

Python環境

次にPython バージョン管理、仮想環境、パッケージ管理をするためにuvをインストールします。

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

インストール後にプロジェクトディレクトリに移動し、uvの仮想環境を作成し依存関係をインストールします。

cd .claude
uv venv --python 3.13
source .venv/bin/activate  # macOS/Linux
uv pip install -r requirements.txt

audio_video_to_text/ディレクトリに.envファイルを作成します。FILE_NAMEはinputのファイル名を拡張子ありで指定します。その他はGoogle Cloudの設定値を記載します。

PROJECT_ID=your-gcp-project-id
REGION=your-region
GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service-account-key.json
FILE_NAME=eng_record.mp3

音声・動画文字起こしで使用するFFmpegもinstallします。
FFmpegはMP4動画ファイルをMP3音声ファイルに変換するために使用します。

# macOS の場合
brew install node ffmpeg

Claude Code

Claude Codeについても公式でセットアップ方法があるのでそちらを参考にしていただければと思います。
https://docs.anthropic.com/en/docs/claude-code/setup

セットアップができたら、hooksでPrettierを使用するので、npm installでpackage.jsonからPrettierをインストールします。

@obsidian-claude-feedback-sample % npm install

added 1 package, and audited 2 packages in 706ms

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities 

npm listでinstallできたことを確認できます。

@obsidian-claude-feedback-sample % npm list
obsidian-claude-feedback-sample@1.0.0 /git/obsidian-claude-feedback-sample
└── prettier@3.6.2

Macの音声入力

音声入力のセットアップは以下の記事を参考にしました。私もCtrl2回で音声入力する設定にしています。
https://zenn.dev/suzukishouten/articles/c58cb56a41714e#音声入力のセットアップ

使ってみた

それでは実際に使ってみたいと思います。

dailiy-morning

前提として社内定例のみがカレンダーにあり、daily noteを初めて作成する状態です。
Screenshot 2025-08-01 at 7.11.18
Claude CodeのCustom slash commandsを実行します。
Screenshot 2025-08-01 at 7.22.12
前回のDaily Noteがないので、Macの音声入力から今日の予定を入力しました。
Screenshot 2025-08-01 at 7.24.03
今日の日付で正常に作成されました。
Screenshot 2025-08-01 at 7.24.58

作成されたmarkdownからもカレンダーからの予定が登録されていることがわかります。

Daily/2025-08-01.md
---
tags:
    - Aプロジェクト
    - Bプロジェクト
    - Cプロジェクト
---

# Daily 2025-08-01

## MTG・イベント

- [ ] Office(終日)
- [ ] 社内定例(15:00)

## 今日のTodo

- Aプロジェクト
    - [ ] 開発を引き続き進める
- Bプロジェクト
    - [ ] 設計を引き続き進める
- Cプロジェクト
    - [ ] エラーがあったら対応する
- ブログ
    - [ ] 特になし
- その他
    - [ ] 特になし

## 今日の振り返り

### 感謝

-

### Good

-

### Motto

-

## 明日やる

- Aプロジェクト
    - [ ] 未定
- Bプロジェクト
    - [ ] 未定
- Cプロジェクト
    - [ ] 未定
- ブログ
    - [ ] 未定
- その他
    - [ ] 未定

daily-evening

次にdaily-eveningを試します。先ほどのカレンダーから予定を更新した状態です。
Screenshot 2025-08-01 at 7.32.37
Claude CodeのCustom slash commandsを実行します。
Screenshot 2025-08-01 at 7.33.54
質問は全部で6回あり、質問ごとにMacで音声入力します。
Screenshot 2025-08-01 at 7.43.06
Screenshot 2025-08-01 at 7.43.18
最後に更新が完了しました。
Screenshot 2025-08-01 at 7.43.25

markdownも質問に沿って更新されています。

Daily/2025-08-01.md
---
tags:
    - Aプロジェクト
    - Bプロジェクト
    - Cプロジェクト
---

# Daily 2025-08-01

## MTG・イベント

- [x] Office(終日)
- [x] 09:00 - (A_project) 開発
- [x] 13:00 - (A_project) お客様定例
- [x] 13:30 - (B_project)設計
- [x] 15:00 - 社内定例
- [x] 16:00 - (B_project)設計レビュー
- [x] 17:00 - (blog)Claude Code × Obsidian執筆

## 今日のTodo

- Aプロジェクト
    - [x] 開発80%完了、動作確認中でテスト準備完了
- Bプロジェクト
    - [x] 設計完了、社内設計レビュー実施中
- Cプロジェクト
    - [ ] エラーがあったら対応する(対応なし)
- ブログ
    - [x] Claude Code × Obsidian執筆を途中まで進める
- その他
    - [x] 社内定例参加

## 今日の振り返り

### 感謝

- お客様との定例の際にマネージャーの方に不明点について補足いただけて助かった

### Good

- スケジュール通りに設計が進んだ

### Motto

-

## 明日やる

- Aプロジェクト
    - [ ] 引き続き開発を進めてテストまで実施
- Bプロジェクト
    - [ ] 設計のお客様レビュー実施
- Cプロジェクト
    - [ ] 障害があれば対応
- ブログ
    - [ ] Claude Code × Obsidian執筆を引き続き進める
- その他
    - [ ] 特になし

english-lesson

inputファイルに英語レッスンのmp3ファイルを格納し、.envにファイル名を記載した状態で、Custom slash commandsを実行します。

Screenshot 2025-08-01 at 7.49.17
Taskが問題なく完了しました。settings.jsonでuvコマンドなどのPermissionを許可してもたまに停止して、許可を求められたりするので、半自動での作成になります。
Screenshot 2025-07-31 at 18.50.08
Markdownファイルも問題なく生成されています。
Screenshot 2025-07-31 at 18.51.19

meeting-minutesのプロセスはenglish-lessonと類似しているため、ここでは詳細は省略します。

最後に

現状のClaude Codeや他サービスの機能を考慮した上での現在の実装なので、もっと楽に実現できるようになれば引き続き改善していく予定です。

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.