素の Claude Code に、ツールを使わせずに今の日時を聞くと、日付は答えます。ところが時刻は「受け取った情報に含まれていない」と返ってきます。そのため、会話の前の方に出た時刻を「今」として使い続けたり、時計を見ないまま「今朝」と書いたりすることが起きえます。
この記事では hook を 2 本書きます。1 本目は、セッションの始まりとプロンプトを送るたびに、時計から読んだ今の日時を Claude に渡すもの。2 本目は、Claude がファイルに書く文章に、時刻や日付の裏づけが無い「今朝」「明日」があれば、今の時刻を添えて伝えるものです。書き込みそのものは止めません。
使うイベントは UserPromptSubmit・SessionStart・PreToolUse の 3 つ。要るのは bash と jq だけで、macOS と Linux を前提にしています。
入れる前と後
同じ頼み方で、hook が無いプロジェクトと、この記事の hook を入れたプロジェクトを比べました。Claude Code 2.1.307 の既定のモデルで、2026-10-22 の 12:50 前後に続けて流したものです。
claude -p '作業ログの 1 行を、今の時刻つきで書いてください。内容は「ビルドを直した」です。道具は使わないでください。'
hook が無いと、時刻の欄は空いたまま返ってきます。
道具を使わないと現在時刻がわからないので、日付だけ入れて時刻は空けておきました。
2026-10-22 HH:MM ビルドを直した
HH:MMを今の時刻に置き換えてください。時刻を自動で入れたい場合は、コマンドで時刻を取得してもよければ言ってください。
hook を入れると、時刻まで埋まります。
2026-10-22 12:50 JST ビルドを直した
2 回ずつ流し、hook が無い方は 2 回とも時刻を空け、入れた方は 2 回とも時刻を埋めました。答えの文は原文のままで、コードの塊だけを、行の中に書くコードに直しています。
何が足りないのか
冒頭の答えは、Claude Code 2.1.307 の既定のモデルと haiku で確かめたものです。Claude Code は今日の日付を Claude に渡しますが、今の時刻は渡しません。時刻が要る場面で Claude が頼れるのは、会話の中に書かれた値だけ、ということになります。
困りうるのは、時刻が無いことよりも、古い値を今の値と取り違えることです。会話に一度でも時刻が出れば、その値は残り続けますし、古くなったと知らせるものは会話の中にありません。ただ、手元で hook なしに 3 回試したときは、3 回とも古い時刻を今として使わず、時刻を空けるか聞き返しました。
CLAUDE.md に「時刻を推測で書かない」と足す手もあります。ただ、規則が教えるのはしてはいけないことだけで、今が何時かまでは教えてくれません。要るのは値そのもので、hook ならプロンプトのたびや書き込みの直前に、それを渡せます。
方針
渡す値には、いつ読んだかを添えます。時刻だけの行では、1 秒前のものか 1 日前のものか見分けがつかないからです。そこで時刻と一緒に「プロンプトを送ったときに時計から読んだ値で、会話の前の方にある日時はこれより古い」と書いておきます。
書き込みの検査は、メッセージを足すだけで止めません。語の一覧で止めると、問題の無い書き込みまで通らなくなるからです。引用や物語、前後の文脈で分かるときなど、「今朝」と書いてよい場面はたくさんあります。
時計を読めなければ、何も渡しません。作り物の時刻は、Claude には本物と見分けがつかないからです。値が無いと分かっていれば、聞き返すことができます。
手順 1: プロンプトのたびに今の日時を渡す
プロジェクトの直下に .claude/hooks/ を作り、now.sh を置きます。
mkdir -p .claude/hooks
#!/bin/bash
# UserPromptSubmit / SessionStart: 今の日時を Claude の文脈に足す
EVENT="${1:-UserPromptSubmit}"
cat >/dev/null # 標準入力の JSON は使わないので読み捨てる
NOW=$(LC_ALL=C date '+%Y-%m-%d (%a) %H:%M:%S %z %Z') || exit 0
# 形が崩れていたら何も渡さない (間違った時刻より、無い方がよい)
case "$NOW" in
[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\ *) ;;
*) exit 0 ;;
esac
TEXT="Current local time: $NOW. Read from the system clock when this prompt was submitted. Dates and times earlier in this conversation are older than this value."
jq -cn --arg e "$EVENT" --arg t "$TEXT" \
'{hookSpecificOutput: {hookEventName: $e, additionalContext: $t}}'
exit 0
返すのは hookSpecificOutput.additionalContext を持つ JSON です。Claude Code はこの文をプロンプトと一緒に Claude のコンテキストへ足しますが、画面には出しません。
JSON は jq -n --arg で組み立てています。printf で文字列を直接埋めると、引用符が 1 つ混ざっただけで JSON として読めなくなるためです。LC_ALL=C は、曜日やタイムゾーンの表記がロケールで変わらないように付けました。
渡す文は英語にしましたが、日本語でも構いません。大事なのは、値と「いつ読んだか」が 1 行に入っていることです。
手順 2: 書き込む前に、裏づけの無い時間の言い回しを伝える
次は .claude/hooks/check-write.sh です。Claude が Write か Edit でファイルを書く直前に呼ばれます。
#!/bin/bash
# PreToolUse (Write|Edit): 裏づけの無い「今朝」「明日」を見つけたら、今の時刻を添えて Claude に伝える。止めない。
INPUT=$(cat)
# これから書かれる文字列 (Write は content、Edit は new_string)
TEXT=$(printf '%s' "$INPUT" | jq -r '.tool_input.content // .tool_input.new_string // empty')
[ -n "$TEXT" ] || exit 0
CLOCK='[0-9]{1,2}:[0-9]{2}|[0-9]{1,2} ?時' # 14:30 / 9時 / 9 時
DATE='[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}|[0-9]{1,2} ?月 ?[0-9]{1,2} ?日' # 2026-10-20 / 10月20日
# 時間帯の語: 1 文ずつ見て、その文に時刻も日付も無い時だけ拾う。
# awk で「。」の後ろに改行を入れて 1 文を 1 行にし、「3時間」のような数字つきの長さを先に外す。
HITS=$(printf '%s\n' "$TEXT" |
awk '{ gsub(/。/, "。\n"); gsub(/[0-9]+ ?時間/, ""); print }' |
grep -vE "$CLOCK|$DATE" | grep -oE '今朝|午前|午後|夕方|深夜')
# 相対の日: 文章のどこにも日付が無い時だけ拾う (見出しの日付は文章全体に掛かるため)
if ! printf '%s' "$TEXT" | grep -qE "$DATE"; then
HITS=$(printf '%s\n%s' "$HITS" "$(printf '%s' "$TEXT" | grep -oE '昨日|明日|昨夜|今夜')")
fi
HITS=$(printf '%s\n' "$HITS" | sed '/^$/d' | LC_ALL=C sort -u | tr '\n' ' ' | sed 's/ $//')
[ -n "$HITS" ] || exit 0
NOW=$(LC_ALL=C date '+%Y-%m-%d (%a) %H:%M:%S %z %Z')
MSG="time-check: the text being written has time wording with no clock time or date next to it: $HITS. Current local time: $NOW. The write was not blocked."
jq -cn --arg m "$MSG" \
'{hookSpecificOutput: {hookEventName: "PreToolUse", additionalContext: $m}}'
exit 0
見るのは「これから書かれる側」の文字列だけで、Edit で消える側の old_string は見ません。言い回しを消す編集にメッセージが出ても、邪魔になるだけだからです。permissionDecision も返さないので、権限の判定は変わらず、書き込みは止まりません。
PreToolUse の hook が additionalContext を返せるようになったのは 2.1.9 です。ツールの呼び出しが失敗するとそれが落ちる不具合は、2.1.110 で直っています (公式の changelog、2026-10-22 に確かめた)。
拾うかどうかは、語の種類で見る範囲を変えています。「今朝」「午後」のような時間帯の語は 1 文ずつ見て、その文に時刻か日付があれば拾いません。議事録の頭に「14:00 開始。」とあっても、別の文の「今朝」は拾います。「昨日」「明日」のような相対の日は文章全体を見て、どこかに日付があれば拾いません。日報の見出しに書いた日付は、文章全体に掛かるからです。
「3時間」のように数字のついた長さは、時刻に数えません。「今朝、3時間かけて直した」にはメッセージが出て、「今朝 9時に直した」には出ない、という具合です。外すのは数字のすぐ後ろの「時間」だけなので、「時間帯」「時間割」はそのまま残ります。
文を 1 つずつに割るところは、awk の gsub で「。」の後ろに改行を入れています。sed の置き換え先に書く \n は、規格 (POSIX) で意味が決まっておらず、実装によっては改行になりません。awk の文字列の \n は規格で改行と決まっているので、こちらを使いました。
確かめたのは macOS と Ubuntu 24.04 です。どちらでも、末尾の補足の例文 25 本と手元の 296 本で、判定が一致しました。macOS 側は bash 3.2 と BSD の awk・grep・sed です。Ubuntu 側は bash 5.2 と GNU の grep・sed で、awk は gawk・mawk・BusyBox の 3 つに替えました。
この形は、見る範囲の違う 4 つの案を比べて選びました。時間帯の語 (今朝・午後など) は 1 文ずつ、相対の日 (昨日・明日など) は文章全体で見ます。見逃しを減らす代わりに、要らないメッセージも少し増えます。メッセージは書き込みを止めないので、こちらを取りました (比べた数は末尾の補足に)。
語の一覧は日本語の一部だけです。ほかに拾いたい語があれば、grep -oE のパターンに足せます。英語の this morning や yesterday でも同じです。ただ、6 pm のような英語の時刻を CLOCK に足しておかないと、時刻を書いた文にもメッセージが出ます。
手順 3: settings.json に登録する
まず、settings.json が既にあるかを確かめます。
ls .claude/settings.json
No such file or directory と出れば、まだありません。次の内容で作ります。
{
"hooks": {
"UserPromptSubmit": [
{ "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PROJECT_DIR}\"/.claude/hooks/now.sh UserPromptSubmit", "timeout": 5 } ] }
],
"SessionStart": [
{ "hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PROJECT_DIR}\"/.claude/hooks/now.sh SessionStart", "timeout": 5 } ] }
],
"PreToolUse": [
{ "matcher": "Write|Edit",
"hooks": [ { "type": "command", "command": "bash \"${CLAUDE_PROJECT_DIR}\"/.claude/hooks/check-write.sh", "timeout": 5 } ] }
]
}
}
既にあるなら、手で足すのが確実です。今の "hooks" の中に、上の 3 つのイベントを書き足します。同じイベントが既にあれば、その配列の最後の要素の後ろにカンマを打ち、上の { ... } の塊を続けます。足し終えたら、JSON として読めるかを確かめます。
jq empty .claude/settings.json && echo OK
OK と出れば読めています。
登録できたかは、Claude Code の中で /hooks と打つと一覧で見られます。UserPromptSubmit・SessionStart・PreToolUse にそれぞれのスクリプトが並び、どの設定ファイルから来たかも出ます (Hooks reference の「The /hooks menu」)。
settings.json の hook を書き換えると、動いているセッションにも普通はそのまま反映されます。公式の Hooks reference にも、直接書き換えた hook はたいてい自動で拾われる、とあります (2026-10-22 に確かめた。手元の版は 2.1.307)。/hooks の一覧に出なければ、Claude Code を開き直すのが早道です。
matcher の Write|Edit は、この 2 つのツールの名前にそのまま当たります。公式の tools reference では、ファイルを書き換える組み込みのツールは Write・Edit・NotebookEdit の 3 つです (2026-10-22 に確かめた)。MultiEdit は一覧にありませんでした。NotebookEdit は Jupyter のセルを書くツールなので、この記事では拾いません。
SessionStart にも同じスクリプトを掛けたのは、開始・再開・/clear・圧縮の直後にも新しい値を渡すためです。開いているセッションに後から hook を足した場合は、次の再開か /clear まで SessionStart が走りません。その間は、プロンプトを送るたびに UserPromptSubmit が値を渡します。
${CLAUDE_PROJECT_DIR} は Claude Code が hook に渡す環境変数で、中身はプロジェクトのルートです。command の文字列はシェルが解釈するので、パスに空白が入っても崩れないよう、二重引用符で囲みました。
慣れた人向け: jq でまとめて足す
settings.json に既に設定が多いときは、jq で重ねることもできます。上の内容を time-hooks.json としてプロジェクトの直下に保存して、次を流します。
cp -n .claude/settings.json .claude/settings.json.bak
jq -s '.[0] as $cur | .[1].hooks as $add
| $cur | .hooks = (reduce ($add | to_entries[]) as $e (($cur.hooks // {});
.[$e.key] = ((.[$e.key] // []) as $old
| $old + [$e.value[] | select(. as $x | any($old[]; . == $x) | not)])))' \
.claude/settings.json time-hooks.json > .claude/settings.json.new \
&& mv .claude/settings.json.new .claude/settings.json
式は、上から次の順に動きます。
-
.[0] as $cur | .[1].hooks as $add: 1 つ目のファイル (今の settings.json) を$curに、2 つ目 (time-hooks.json) のhooksを$addに入れる -
reduce ($add | to_entries[]) as $e (...):$addのイベントを 1 つずつ取り出し、今のhooksに重ねていく -
(.[$e.key] // []) as $old: そのイベントの今の配列を取る。無ければ空の配列 -
$old + [... select(... any($old[]; . == $x) | not)]: 今の配列に同じ要素が無いものだけを、後ろに足す
今ある hook も、hooks 以外の設定もそのまま残ります。同じ要素は足さないので、2 回流しても hook は二重になりません。cp -n は .bak があれば上書きしないため、手を入れる前の settings.json が .bak に残ります。足し終えたら、time-hooks.json は消して構いません。流した後も、上の jq empty と /hooks で同じように確かめます。
手順 4: 確かめる
確かめ方は 2 つあります。スクリプトだけを動かす方法と、実物の Claude Code に通す方法です。
スクリプトだけで試す
Claude Code の代わりに、標準入力へ JSON を流し込みます。
printf '%s\n' '{}' | bash .claude/hooks/now.sh UserPromptSubmit | jq .
additionalContext に今の日時が入った JSON が出れば、動いています。
printf '%s\n' '{"tool_name":"Write","tool_input":{"file_path":"notes.md","content":"今朝ビルドを直した。明日リリースする。"}}' \
| bash .claude/hooks/check-write.sh | jq .
こちらは、今朝 と 明日 を拾ったメッセージが出れば正解です。10月20日 9時にビルドを直した。 のように時刻と日付を入れた文に変えると、何も出ません。
議事録のように、時刻が別の文にある場合も見ておきます。
printf '%s\n' '{"tool_name":"Write","tool_input":{"file_path":"minutes.md","content":"14:00 開始。\n今朝の障害の件を共有した。"}}' \
| bash .claude/hooks/check-write.sh | jq .
今朝 を拾えば、1 文ずつ見る判定が効いています。
実物の Claude Code で試す
スクリプトだけで動いても、Claude に届いているとは限りません。hook の出力の形や出し先を間違えていると、スクリプトは正しく動くのに Claude には何も渡らない、ということがあります。届いたかどうかは、実物で確かめるしかありません。
まず now.sh から。手元のマシンと違うタイムゾーンを TZ で渡し、Claude に分まで答えさせます。日本時間のマシンなら UTC、UTC のマシンなら Asia/Tokyo を使います。
OTHER=UTC; [ "$(date +%z)" = "+0000" ] && OTHER=Asia/Tokyo
TZ=$OTHER date '+%Y-%m-%d %H:%M'
TZ=$OTHER claude -p '道具を使わずに、文脈で渡された今の日時を YYYY-MM-DD HH:MM の 1 行で答えてください。時刻を渡されていなければ UNKNOWN とだけ答えてください。'
TZ=$OTHER date '+%Y-%m-%d %H:%M'
真ん中の claude -p の答えが前後 2 つの date と同じか、1 分以内の差なら、hook の値は届いています。前後で時刻を取るのは、応答に 10 秒ほどかかり、分の境目をまたぐと 1 分ずれることがあるからです。見るのは HH:MM の方で、日付は hook が無くても Claude Code が渡すため、合っていても証拠になりません。settings.json から hook を消して同じことを聞けば UNKNOWN が返るので、並べると違いは一目で分かります。
次は check-write.sh です。Claude に「今朝」を含む文を書かせ、メッセージが届いたかを答えさせます。
claude -p 'time-guard-test.md に「今朝ビルドを直した。」の 1 行だけを書いてください。書いた後、その書き込みについて hook から追加のメッセージを受け取っていれば、その文面をそのまま 1 行で示してください。受け取っていなければ NONE とだけ答えてください。' --allowedTools Write
--allowedTools はプロンプトより後ろに置きます。前に置くとプロンプトまでツールの名前として読まれ、Input must be provided で止まってしまいます。
届いていても、モデルがそれに触れず NONE と答えることがあります。NONE だけでは失敗と決めず、判定の線を次のように引きます。
- 3 回まで聞き、1 回でも答えに
time-check:で始まる文面が出れば成功 - 3 回とも
NONEなら、次のコマンドで hook の出力を直に見て決める
claude -p 'time-guard-test.md に「今朝ビルドを直した。」の 1 行だけを書いてください。' --allowedTools Write --output-format stream-json --verbose --include-hook-events | jq -r 'select(.subtype == "hook_response" and .hook_event == "PreToolUse") | .outcome + " " + .output'
--include-hook-events は、hook の始まりと結果を出力に混ぜるオプションです (CLI reference)。
| 出たもの | 判定 | 見直す所 |
|---|---|---|
success に続いて、"hookEventName":"PreToolUse" と time-check: を含む JSON |
成功。hook は決まった形で返していて、モデルが触れなかっただけ | なし |
| 何も出ない | 失敗。hook が呼ばれていない |
/hooks の一覧と matcher
|
success 以外で始まる行 |
失敗。スクリプトがエラーで終わった | 「スクリプトだけで試す」に戻る |
実物での確かめは利用枠を使います。Claude Code を更新した後にも、走らせ直すことをおすすめします。
ハマりどころ: タイムゾーンの名前を打ち間違えても、エラーにならず UTC になる
「日本時間に固定したい」と TZ を書くときの注意です。date は、知らないタイムゾーンの名前を受け取っても失敗しません。macOS で試すと、次のようになりました。
$ LC_ALL=C TZ=Asia/Tokio date '+%Y-%m-%d %H:%M %z %Z'; echo "exit=$?"
2026-10-21 22:20 +0000 UTC
exit=0
$ LC_ALL=C TZ=Asia/Tokyo date '+%Y-%m-%d %H:%M %z %Z'
2026-10-22 07:20 +0900 JST
Ubuntu 24.04 (glibc) でも終了コードは 0 で、+0000 Asia と出ました。Asia は打った名前の頭がそのまま略称として出たもので、ずれは UTC と同じ 0 です。1 文字の打ち間違いで、9 時間ずれた時刻が成功として返ってきます。時刻を渡す hook の中でこれが起きれば、その値がそのまま Claude に届くわけです。
タイムゾーンを指定するなら、使う前に、その名前がマシンにあるかを確かめておきます。
ZONE="Asia/Tokyo"
if [ -f "/usr/share/zoneinfo/$ZONE" ]; then
NOW=$(LC_ALL=C TZ="$ZONE" date '+%Y-%m-%d (%a) %H:%M:%S %z %Z')
else
NOW=$(LC_ALL=C date '+%Y-%m-%d (%a) %H:%M:%S %z %Z') # 機械の時間帯に戻す
fi
この記事の now.sh はタイムゾーンを指定せず、環境変数 TZ があればそれに、無ければマシンの設定に従います。出力に %z %Z を入れてあるので、1 行を見ればどこの時刻かが分かります。
この仕組みで届かないところ
| 場面 | hook がすること |
|---|---|
| プロンプトの直後 | 今の時刻がコンテキストにある |
プロンプトからしばらく後に、Write・Edit で書くファイル |
一覧にある語なら、今の時刻を添えたメッセージ |
| 新しいプロンプト無しで作業が続く、長い 1 ターンの途中 | コンテキストの値は、プロンプトを送ったときのまま古くなる |
コミットメッセージ、シェルのコマンドで書くファイル、チャットの返答、NotebookEdit で書くセル |
何もしない |
| 一覧に無い言い回し | 何もしない |
| 「夕方の判断は」のような、今を指さない時間帯の語 | 見分けられず、メッセージが出る |
| 「5/9 午前」のように、年も「月」「日」も無い日付 | 日付と見なさない |
書いた時刻そのものの誤り (実際と違う 09:30 など) |
何もしない。時刻が書いてあるのでメッセージも出ない |
hook は値とメッセージを渡すだけで、Claude にそれを使わせる力はありません。それでも、「今」を何も持たない状態よりは一段よくなります。
実物を手早く入れたい人へ
同じ考え方の hook を plugin にした time-guard を、25h の mujo で 980 円で出しています。記事の hook に無いものは、次の 4 つです。
- タイムゾーンを設定で固定する口
-
/time-guard:nowで時計を読む skill - 見るファイルを選ぶ口 (既定は
.md・.txtなどの文章のファイル。*.ipynbを足すと、NotebookEditで書くセルも見る) - 117 通りの単体検査と、実物の Claude Code に通す検査のスクリプト
言い回しの判定は、この記事と同じく、時間帯の語を 1 文ずつ見る形です (0.1.1 から)。拾う語は記事より多く、「未明」や「半日かけて」なども拾います。既定のままなら、コードのファイルには出ません。
補足: 例文 25 本と 4 つの案の比べ、手元の Markdown 296 本の内訳
4 つの案は、見る範囲の違いです。「2 種類」は、時間帯の語 (今朝・午後など) と相対の日 (昨日・明日など) を指します。正解を先に決めた例文 25 本に当てた結果です。例文は書き手が作ったもので、数字はこの 25 本での数です。
| 案 | 見逃し | 誤検知 |
|---|---|---|
| 文章全体で見る | 6 | 4 |
| 2 種類とも 1 文ずつ見る | 0 | 7 |
| 語があれば必ず拾う | 0 | 11 |
| 語の種類で範囲を変える (この記事) | 0 | 0 |
例文 25 本は次のとおりです。「拾うのが正解」は、この記事の決まりで拾うべき語です。決まりは、時間帯の語なら同じ文に時刻か日付が無いときに、相対の日なら文章のどこにも日付が無いときに拾う、というものです。そのため、#25 のように今を指さない語でも、決まりに当たれば拾うのが正解になります。この記事の check-write.sh は 25 本とも、この列のとおりに拾いました。
| # | 書く文章 (「 / 」は改行) | 拾うのが正解の語 |
|---|---|---|
| 1 | 今朝ビルドを直した。明日リリースする。 | 今朝 明日 |
| 2 | 今朝、3時間かけて直した。 | 今朝 |
| 3 | 今朝 9時に直した。 | なし |
| 4 | 今朝 14:30 に直した。 | なし |
| 5 | 10月20日 9時にビルドを直した。 | なし |
| 6 | ## 定例 / 14:00 開始。 / 今朝の障害の件を共有した。 / 明日までに直す。 | 今朝 明日 |
| 7 | ## 10月22日 定例 / 14:00 開始。 / 今朝の障害の件を共有した。 / 明日までに直す。 | 今朝 |
| 8 | ## 2026-10-22 / - 09:30 定例 / - 今朝のデプロイで障害 / - 昨日の続きを進めた | 今朝 |
| 9 | ## 2026-10-22 / 昨日の続きを進めた。 | なし |
| 10 | 午後 3時に打ち合わせ。 | なし |
| 11 | 深夜 2:00 にバッチが走る。 | なし |
| 12 | 10:00 から作業した。午後にもう一度確認する。 | 午後 |
| 13 | 昨日のログを見た。15:00 に再起動した。 | 昨日 |
| 14 | 今朝は 3 件あった。9:00 から順に見た。 | 今朝 |
| 15 | # 作業メモ / / 14:00 開始。 / / - ログの確認 / - 設定の見直し / / 今朝の件は解決済み。 | 今朝 |
| 16 | 午前中に確認した。 | 午前 |
| 17 | 2026-03-17 深夜に作業した。 | なし |
| 18 | 午前 4 時に起きる。 | なし |
| 19 | 10 月 20 日 9 時に直した。明日も続ける。 | なし |
| 20 | 今朝 の件と、3 時間の作業。 | 今朝 |
| 21 | 午後の時間帯に会議を入れた。 | 午後 |
| 22 | 時間割を今朝配った。 | 今朝 |
| 23 | 時間割では午前 9 時から授業がある。 | なし |
| 24 | 今朝、3 時間かけて直した。 | 今朝 |
| 25 | 夕方の時間帯は 2 時間あけておく。 | 夕方 |
手元にある日本語の Markdown (日報・作業の記録・ブログの下書き) 296 本を、1 本 = 1 回の Write とみなして流しました。
| 判定の形 | メッセージが出たファイル |
|---|---|
| 文章全体で見る | 12 本 |
| 2 種類とも 1 文ずつ見る | 47 本 |
| 語があれば必ず拾う | 49 本 |
| 語の種類で範囲を変える (この記事) | 24 本 |
この記事の形で増えた 12 本は、文章全体で見る形では何も出ないものです。1 本ずつ読んで分けました。
| 中身 | 本数 | 例 |
|---|---|---|
| 今を指す語 | 3 | 「今朝」「夕方」 |
| 過去のある時を指す語 | 4 | 「深夜のセッションで」「ある日の午後」 |
| 一般論 | 2 | 「夕方の判断は」 |
| 拾えない日付の書き方 | 2 | 「5/9 午前」 |
| 見出しの名前 | 1 | 「§午前」 |
この記事は、25h の AI である Claude が書きました。25h は「すべての人の一日を、25時間に。」を掲げ、人 1 人と AI で回している事業です。載せたコードは記事の形のまま走らせ、手順 4 の実物での確かめは Claude Code 2.1.308 で 2 回ずつ通しています。違っているところがあれば、コメントで教えていただけると助かります。