PRODUCT NOTE / 道具
2026-09-22、ゲームのフォルダ名を game から nukero に変えた。
git の履歴もビルドのキャッシュもフォルダと一緒に動いたが、Claude Code の会話の記録だけは、自分で移さないと付いてこなかった。
調べ直すと、会話の記録・メモリー・スキルはそれぞれ別の単位で分かれていて、作業ツリーとビルドのキャッシュは分かれていない。
この取り違えで踏んだことが、この 2 か月でほかに 3 つあった。このノートはその記録です。
| 対象 | 個人開発で使っている Claude Code(主に VS Code 拡張 2.1.272。ターミナルの CLI は 2.1.220)。手元の記録は ~/.claude/projects/ の下に 15 フォルダ・会話 161 本(2026-09-22 時点) |
|---|---|
| 仕組みの出典 | 公式ドキュメントの sessions / memory / skills の各ページ(2026-09-22 に確認)と、手元の ~/.claude/projects/ の実物 |
| この解の要点 | 会話の記録は開いたフォルダの絶対パス、メモリーはgit リポジトリ、同じ名前のスキルは個人のほうが先。作業ツリーとビルドのキャッシュは、会話が何本あっても 1 つ |
| このノートの範囲 | 個人開発のリポジトリで起きたことだけ。仕事の事例は入れていない |
| 最終更新 | 2026-09-23 |
| 関連 | 大量の文章と問題文をどうテストするか ・ Claude Code と働く1年目の教科書 |
Claude Code は、開いたフォルダの絶対パスから作った名前のフォルダに会話を保存している。フォルダの名前を変えると、会話は消えないが、新しい名前で開いたときの一覧に出てこなくなる。
メモリーは git リポジトリごとなので、あるアプリで覚えたことは別のアプリでは読まれない。一方で、作業ツリーとビルドのキャッシュ、それに使用量の枠は会話ごとに分かれていないので、同じリポジトリを 2 本の会話で触ると互いの変更とビルドを踏み、どれか 1 つが枠を使い切ると全部の会話が同時に止まる。
改名・並走・同じ名前のスキルのときは、どれが付いてきて、どれが共有されるかを先に確かめる。
公式ドキュメントと手元の実物を突き合わせた表。右の列は、実際に踏んだことを書いている。
| 持ち物 | 置き場所 | 分かれる単位 | 動かす・重ねると |
|---|---|---|---|
| 会話の記録 | ~/.claude/projects/ の下、変換した名前のフォルダに 1 会話 1 ファイル | 開いたフォルダの絶対パス。英数字以外を - に置き換える(/Users/nzw/_develop/game → -Users-nzw--develop-game) | フォルダの名前を変えると一覧に出てこない。既定では 30 日で消える |
| 自動メモリー | 同じフォルダの中の memory/ | git リポジトリ。中のサブフォルダと worktree は 1 つを共有する | 別のリポジトリで覚えたことは読まれない |
| スキル | ~/.claude/skills/(個人)と、リポジトリの .claude/skills/(プロジェクト) | 同じ名前が両方にあると、個人のほうが動く | リポジトリ側を正にしたいなら、個人のスキルの本文でそう言うしかない |
| CLAUDE.md | ~/CLAUDE.md とリポジトリの中 | 開いたフォルダから上へたどって読む | ~/_develop/ の下なら、どのリポジトリでも ~/CLAUDE.md が読まれる |
| 使用量の枠 | claude.ai のアカウント | 分かれていない。開いている窓・会話・サブエージェントで 1 つを分け合う | 1 つの会話が使い切ると、別のフォルダで開いている会話も同時に止まる |
| 作業ツリー | リポジトリそのもの。ビルドのキャッシュ(Xcode の DerivedData)も同じ | 分かれていない。会話が何本あっても 1 つ | 相手の変更がそのまま見え、相手の clean でこちらのビルドが落ちる |
game から nukero に変えた。開いているウィンドウを閉じてから、フォルダ本体と会話の記録のフォルダの両方を mv し、最後に Flutter の生成ファイルを作り直す。
# 1. このフォルダを開いているウィンドウを閉じてから
mv ~/_develop/game ~/_develop/nukero
# 2. 会話の記録も引き継ぐなら
mv ~/.claude/projects/-Users-nzw--develop-game ~/.claude/projects/-Users-nzw--develop-nukero
# 3. nukero を開いて一度だけ(iOS の生成ファイルに古いパスが残っている)
cd ~/_develop/nukero && flutter clean && flutter pub get本人が聞いたのは「名前を変えるとキャッシュが全部消えるか」で、git の履歴・build/・.dart_tool/ はフォルダの中にあるので消えない。
消えないが付いてこないのが会話の記録で、保存先のフォルダ名が作業フォルダの絶対パスから作られている。会話の一覧は、既定では開いたフォルダの分しか出さない(公式ドキュメントの CLI の説明)。
ID を指定した再開なら 2.1.223 からほかのフォルダの記録まで探すが、ID を手で打つ使い方はしていないので、記録ごと移しておくほうが確実だった。
会話 3 本・25 MB を移し、git もビルドも問題なかった。ただ、手順の 1 行目に「閉じてから」と書いてあったのに、改名のあとも古い名前のまま動いていた会話で次の依頼を送った。
その会話は古い名前の記録フォルダを作り直して、そこへ 27 行を書いた。Claude の最初の 2 つのコマンドは、もう無い game に cd して失敗し、3 つ目で改名に気づいている。
いまは同じ ID の会話が、移した側(3,514 行)と作り直された側(27 行)の 2 か所にある。
公式ドキュメントの規則どおりなら、nukero で ID を指定すると 27 行が欠けた移した側が開き、ほかのフォルダからだと 2 か所にあるので「見つからない」になる。
xcodebuild が動いていないかを見て、動いていたら終わるまで待つ。コミットの前に git status と git log を取り直す。相手のビルドは止めない。2026-08-08、DayGrid で、こちらが触っていない 3 ファイルが作業ツリーで書き換わり、会話を始めて 28 分後には、別の会話がコミットとプッシュまで済ませていた。
12 時ごろには、実機向けの release ビルドが、並走していた xcodebuild … clean build に DerivedData を消されて落ちた(build.db: disk I/O error)。
DerivedData はプロジェクトのパスで決まるので、2 本の会話が同じ場所を使う。
同じ日の 12 時、Certly でも、本のフォルダの会話で直した教材の誤り 6 か所が、アプリのフォルダの会話のコミットで古い文に戻っていた(3 日後の 08-11 に気づいて直し直した)。
規則は DayGrid のメモリーに書いた。ただメモリーはリポジトリごとなので、この規則は DayGrid のフォルダで開いた会話でしか読まれない。
Certly で起きた同じ型は、本のフォルダのメモリーに別に書いてある。
2026-09-06 に全アプリ共通のリリーススキルを ~/.claude/skills/release/ に作り、手順はスキル、版の場所やビルドのフラグなどの値は各リポジトリの docs/release.md に分けた。
すでに自前の release スキルを持っていた 5 アプリは移さず、共通スキルに「リポジトリに .claude/skills/release/ があるなら、そちらが正」と書いた。
2026-09-21、共通機能を棚卸ししていて、Engly のスキル(最終更新 2026-07-30)には update.json も APK_BUILD も 1 回も出てこないことが分かった(APK_BUILD を付けずにビルドすると、アプリの更新チェックが丸ごと動かない)。
同じ名前のスキルが個人とプロジェクトの両方にあると、Claude Code が動かすのは個人のほう(公式ドキュメント、2026-09-22 に確認)で、その共通スキルは「リポジトリにあるなら、そちらが正」と言って止まる。
手順が足りているのは共通スキルのほうなのに、決まりの上では足りていないほうが正になっていた。
Certly の教材と本の出典に残っている旧ドメインの URL(docs.claude.com/en/docs/claude-code/…)を、まとめて新しいドメイン(code.claude.com/docs/en/…)に置き換えない。
直すなら 1 本ずつ開いて確かめる。
2026-09-02 に、ドキュメントが新しいドメインへ移り、旧 URL は 301 で飛ぶことを確かめた。移設と一緒にページの統廃合もあって、カスタムコマンドはスキルのページにまとめられ、/iam は新しいドメインに無かった。
ドメインだけ置き換えると、301 で届いていたリンクが 404 になる。
2026-09-22 に見直すと、旧 URL はまだ 301 で届き、/iam は「Authentication」のページとして 200 を返すようになっていた。
3 週間で答えが変わったので、ドキュメントを出典にするときは確かめた日を一緒に書く(大量の文章と問題文をどうテストするかの「取得日」と同じ扱い)。
settings.json の cleanupPeriodDays で変えられる)。/ だけでなく _ も . も - になるので、~/_develop/nzw.jp は -Users-nzw--develop-nzw-jp になる。nzw.jp と nzw-jp というフォルダは同じ名前になる。記録を探すときは、元のフォルダ名ではなく変換した名前で探す。/Users/nzw/_develop/game で始まるパスが 3,264 回出てくる。cd もこれだった。ここまでは記録の話だった。手順と決まりのほうも、同じように置き場所で役割を分けている。数は 2026-09-23 時点の手元の実数。
| 置き場所 | 中身 | どこから読まれるか |
|---|---|---|
個人~/.claude/skills/ | 6 本。release(リリースを通す)/new-app(アプリの立ち上げ)/anonymize(社外秘をぼかす)/appstore-capture・appstore-screenshots(ストアの画像)/meno(文書を読み込むための問答) | どのフォルダからでも。同じ名前ならリポジトリ側より先に動く |
リポジトリ<repo>/.claude/skills/ | 8 本。各アプリの release(Certly・DayGrid・Dotpile・Engly)、Dotpile の add-questions、Engly の add-tts・quiz-nav・dev-rules、社内エージェントの github-issue | そのリポジトリを開いたときだけ |
リポジトリ<repo>/.claude/commands/ | MyDictly の 4 本(release 591 行・build-apk・screenshots・sync-oss)。スキルより前からある書き方 | 同上。同じ名前のスキルがあれば、スキルのほうが動く |
| 組み込み | Claude Code が持っているもの。artifact-design・dataviz・claude-api など | どこからでも |
30 日ぶんの会話の記録を数えると、いちばん使っているのは /release で 14 回(Certly 5・Dotpile 4・Bearise 2・DayGrid 2・nzw.jp 1)。次が artifact-design 6 回、dataviz 3 回、claude-api 2 回だった。自分で作ったスキルは、毎回やることが同じで、順番を間違えると外に出てしまうもの(リリース・ストアの画像・匿名化)に寄っている。
| ファイル | 役割 | いまの量 |
|---|---|---|
| ~/CLAUDE.md | どのリポジトリでも読まれる決まり。返答は日本語・直したら必ず自分で動かして確かめる・HTML に絵文字を使わない・発売日は books.json だけを直す・共通機能は app-kit を先に読む | 235 行 |
| <repo>/CLAUDE.md | そのアプリ固有の設計と、踏んだ事故 | 10 本。最長は Certly の 2,705 行 |
| app-kit | アプリ共通機能のカタログ。1 機能 1 ファイルで「何のため・手本はどのアプリのどのファイルか・入れ方・踏んだ事故・確かめ方」 | 17 ファイル・908 行 |
| <repo>/docs/release.md | リリースの値(版を書く場所・ビルドのフラグ・配信先)。手順は共通スキルが持つ | いまは Bearise だけ |
| docs/release_notes_<版>.md | その回に何を出したか。ビルドの実測値まで残す | Certly は 10 本 |
| 自動メモリー | 次の会話に引き継ぐ事実。MEMORY.md が 1 行ずつの索引 | 14 フォルダ・93 件 |
| 開発ノート(このサイト) | なぜそう決めたか。外から読める形で残す | 28 ページ |
書き方の決めごとは 3 つある。
check_links.sh を置いて、手本を動かしたらリンク切れを見る(2026-09-23 で 149 本・切れ 0)。books.json だけが源で、HTML 側の 63 か所へは機械が書き戻す。手で直したときは 24 か所直して 6 か所が古いまま残った。置き場所の選び方は、結局このノートの表と同じになる。リポジトリの CLAUDE.md とメモリーは、そのフォルダを開いた会話しか読まない。アプリをまたいで効かせたいものは ~/CLAUDE.md か app-kit に置き、そこから各リポジトリの CLAUDE.md が指す。
使用量の枠は、フォルダにも窓にも紐づいていない。アカウントに 1 つで、開いている会話とサブエージェントがまとめて減らす。止まるときは全部が同時に止まる。
出るメッセージは 4 種類ある(公式ドキュメント)。session limit(数時間で戻る枠)と weekly limit(週の枠)はモデルを変えても戻らない。Opus limit と Sonnet limit はそのモデルだけなので、/model で別のモデルに移れば続けられる。
You've hit your session limit · resets 7:50pm (Asia/Tokyo)
You've hit your weekly limit · resets 5pm (Asia/Tokyo)
| 日付(JST) | 何をしていたか | 止まり方 |
|---|---|---|
| 2026-09-15 08:30 | 転職先を調べる作業を、調査のエージェント 4 つに分けていた | 4 つとも同時に上限で止まった。エージェントをやめて 1 社ずつ、検索の回数を絞って調べ直した |
| 2026-09-19 11:00 | 本の全章の日付表記を、6 つのエージェントで直していた | 週の枠。解除は 17:00。同時に止まったのは 4 つの会話で、フォルダは book と certly の 2 つにまたがっていた。実際に再開したのは 22:09 |
| 2026-09-22 19:08 | Certly の解説の英訳を 6 組のエージェントで回していた | 数時間の枠。解除は 19:50(42 分)。再開して同じ作業を続けた |
3 回ともサブエージェントを並べていたときだった。公式ドキュメントにも「一度の大きなファンアウトが、数時間の枠より先に週の枠を使い切ることがある」と書いてある。1 人で書いている感覚のまま 6 つ走らせると、6 倍の速さで減る。
困るのは残量そのものではなく、途中の作業が宙に浮くことだった。9-19 は 6 つのエージェントが章を直している最中に止まったので、再開後にまず「どの章がどこまで直っているか」を数えるところからやり直している。
/usage で枠と解除の時刻が出る。ステータス行に rate_limits を置くと残量が常に見える。使い切る前に「85% 使った」の警告も出る。/rate-limit-options)。手元のターミナルの CLI は 2.1.220 なのでまだ使えない。VS Code の拡張(2.1.272)で出るかは確かめていない。VS Code の拡張で、送った瞬間にこのエラーが出ることがある。
ReferenceError: Claude Code native binary at /Users/nzw/.vscode/extensions/
anthropic.claude-code-2.1.278-darwin-arm64/resources/native-binary/claude exists
but failed to launch. This usually means the binary does not match this system's
libc — e.g. spawning a musl-linked binary on a glibc Linux host fails because
the musl dynamic loader (/lib/ld-musl-*) is missing. Specify a matching binary
with options.pathToClaudeCodeExecutable.
文面は libc の話をしているが、実際に起きていたのは「その窓が開いているフォルダが無い」だった。2026-09-22 に game を nukero へ改名したあと、古い名前のまま開いていた窓だけがこれを出していた。拡張は毎回、その窓のフォルダを作業場所にして本体を起動するので、フォルダが無いと起動そのものが失敗する。メッセージが実行ファイルのパスを指すので、実行ファイルが壊れたように読める。
| 試したこと | 結果 |
|---|---|
| その実行ファイルを直接動かす | 2.1.278 (Claude Code) と返る。壊れていない |
同じ実行ファイルを、消えた game を作業場所にして起動 | ENOENT。エラーと同じ状態を作れる |
同じ実行ファイルを nukero で起動 | 版を返す |
| 窓ごとの回数(拡張のログ) | 消えたフォルダの窓だけ 7 回。ほかの 3 つ(Certly・Dotpile・nzw.jp)は 0 回 |
直すときの順番。
~/Library/Application Support/Code/logs/<起動時刻>/window<番号>/exthost/Anthropic.claude-code/Claude VSCode.log)に Spawning Claude with SDK query function - cwd: … の行があり、作業場所が書いてある。そのパスを ls する。claude を使わせる。メッセージが案内する options.pathToClaudeCodeExecutable は SDK の引数で、VS Code の設定には無い。拡張側の設定は claudeCode.claudeProcessWrapper。~/CLAUDE.md の「返答は必ず日本語」はどちらの会話でも読まれているので、メモリーをそろえれば直るとも言えない。update.json と APK_BUILD の手順が無いまま、決まりの上ではこちらが正になっている。/cd を試していない。動いている会話の作業フォルダを移すコマンドで、会話ごと新しいフォルダの記録へ移る(公式ドキュメント)。今回はこれを使わずに mv で移した。次に改名するときは、フォルダを変えたあと、動いている会話で /cd を使うほうを試す。/cd仕組みの説明は、2026-09-22 に確認した公式ドキュメントと、手元の Claude Code(VS Code 拡張 2.1.272・CLI 2.1.220)の実物に基づきます。
版によって変わります。件数は 2026-09-22 と 2026-09-23 に手元で数えたものです。
Claude 認定資格(CCAR-F / CCAR-P)の対策アプリ。間隔反復(FSRS-5)で忘れる直前に出し、選択肢ごとに「なぜ誤りか」まで解説する。
このノートで扱ったスキルの置き場所・--resume・会話の保存期間(cleanupPeriodDays)も、CCAR-F の問題と教科書に入っている。
Certly は Anthropic 非公式の学習ツールです。問題は公開されている試験ガイドと公式ドキュメントをもとに作ったオリジナルで、実際の試験問題ではありません。