Skip to content

FP-sudo/weekday-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

weekday-validator

Claude Codeで日本語テキストを書くとき、日付と曜日の不一致を自動検出するフックです。

何が解決できる?

メルマガ、告知文、議事録、HTMLなどで「4月29日は月曜」と書いたけど実は水曜だった... こういう 曜日の書き間違い をClaude Codeが自動で検出・修正してくれます。

ファイルを保存するたびにバックグラウンドでチェックが走り、間違いがあればその場で警告が出ます。

検出例

[日付エラー] 行12: "4月29日‹月›" → 正しくは【水曜日】です

Claudeはこの警告を受け取ると、自動的に正しい曜日に修正します。


対応フォーマット

フォーマット
年月日(曜日) 2026年4月29日(水) / 2026年4月29日(水曜日)
月日(曜日) 4月29日(水) / 4月29日(水)
スラッシュ(年あり) 2026/4/29(水) / 2026-4-29(水)
スラッシュ(年なし) 4/29(水)
  • 半角括弧 () と全角括弧 () の両方に対応
  • 年を省略した場合は現在の年(または翌年)を自動推定
  • 対象ファイル: .md .html .txt .csv .json

インストール方法

前提条件

  • Claude Code がインストール済み
  • Python 3.10以上

方法1: GitHubからクローン(推奨)

git clone https://github.com/FP-sudo/weekday-validator.git
cd weekday-validator
bash install.sh

方法2: ZIPダウンロード

  1. Releases からZIPをダウンロード
  2. 解凍して bash install.sh を実行

方法3: 手動インストール

# 1. スクリプトを配置
mkdir -p ~/.claude/hooks
cp validate_dates.py ~/.claude/hooks/
chmod +x ~/.claude/hooks/validate_dates.py

# 2. ~/.claude/settings.json に以下を追加(hooks > PostToolUse 配列内)
{
  "hooks": {
    "PostToolUse": [
      {
        "hooks": [
          {
            "command": "python3 ~/.claude/hooks/validate_dates.py",
            "statusMessage": "曜日チェック中...",
            "timeout": 10,
            "type": "command"
          }
        ],
        "matcher": "Write|Edit|MultiEdit"
      }
    ]
  }
}

インストール後の動作

インストールが完了すると、Claude Codeで以下のツールが実行されるたびに自動チェックが走ります:

トリガー 説明
Write 新規ファイル作成時
Edit ファイル編集時
MultiEdit 複数箇所の同時編集時

何もしなくてOK — バックグラウンドで動作し、曜日の間違いがある場合のみ警告が表示されます。


アンインストール

cd weekday-validator
bash install.sh --uninstall

スクリプトの削除とsettings.jsonからのフック設定除去を自動で行います。


仕組み

ファイル編集 (Write/Edit)
    |
    v
PostToolUse hook 発火
    |
    v
validate_dates.py 実行
    |
    v
正規表現で日付+曜日パターンを検出
    |
    v
Python datetime で正しい曜日を計算
    |
    v
不一致 → stderr にエラー出力 (exit 2)
一致 → 正常終了 (exit 0)
    |
    v
Claudeがエラーを受け取り自動修正

FAQ

Q: 英語の曜日にも対応している?

A: 現在は日本語の曜日(月火水木金土日)のみ対応しています。

Q: 既存のhook設定に影響はある?

A: ありません。既存のPostToolUse設定はそのまま維持され、新しいエントリが追加されるだけです。インストール前にsettings.jsonのバックアップも自動作成されます。

Q: Claude Code以外でも使える?

A: スクリプト単体としても使えます。stdinにJSON形式でファイルパスを渡せば動作します:

echo '{"tool_input":{"file_path":"test.md"}}' | python3 validate_dates.py

ライセンス

MIT

About

Claude Codeで日付+曜日の不一致を自動検出するPostToolUseフック

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors