chore: rename the app to Pullcept across code, config, docs and design - #56
Conversation
アプリ名を `Li+ Chat` / `liplus-chat` から **Pullcept** へ揃えた。表示名だけを 変えるのではなく、識別子・環境変数・`.mcp.json` の鍵の前置きまで一度に動かして いる。二つの名前が同居する状態を残さないため、部分的な改名にはしていない。 - 表示名 `Li+ Chat` → `Pullcept`(ウィンドウタイトル、`index.html`、`design/`) - package `name` / `productName` / crate name → `pullcept`、lib は `pullcept_lib` - バンドル識別子 → `org.liplus-project.pullcept` - `.mcp.json` の鍵の前置き `liplus-chat-room` → `pullcept-room` - 環境変数 `LIPLUS_*` → `PULLCEPT_*`(サイドカーと `mcp-config` の双方で一致) - room id 既定値 `liplus-chat` → `pullcept` - localStorage の鍵 `liplus-chat.display-*` → `pullcept.display-*` `package-lock.json` と `src-tauri/Cargo.lock` はツールチェーン(`npm install --package-lock-only` / `cargo metadata`)で再生成した。手で書き換えていない。 差分は package 名の行だけである。 旧識別子からのフォールバック、旧前置きの刈り込み、旧環境変数の読み替えは いずれも入れていない。Master 以外に利用者が居らず、読み手の居ない互換層は 以後の全変更が引きずる負債になるためである(#55 の前提)。 Li+ 本体の `LI_PLUS_*`(アンダースコア入り)は別物であり触っていない。 `.gitignore` と `design/README.md` が指す生成物の名前も `pullcept-ui.html` へ 変えた。生成物そのものは追跡外であり #46 の再生成で置き換わる。 Refs #55 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
実装と同一 PR で docs を追随させた。事実の追随のみで、記述の構造は動かして いない。 - `README.md` — 見出し・概要・ライセンス節の名乗りを `Pullcept` へ。`.mcp.json` の登録鍵と起動フラグの例を `pullcept-room-<slug>-<hash>` へ。 - `docs/0-requirements.md` — 表題、architecture 図、`.mcp.json` の鍵の節、 切り分け手順、設計キャンバスのリンク名、および環境変数名を `PULLCEPT_*` へ。 ルームが 1 つであることを述べる箇所の `PULLCEPT_ROOM_ID` の固定値も `pullcept` へ揃えた。 散文で製品を指す箇所は `Pullcept`、識別子・鍵・パス・環境変数は `pullcept` / `PULLCEPT_*` とした。組織名 `Liplus-Project` と別リポジトリ(`liplus-desktop` `liplus-language`)は改名の対象外であり、そのまま残している。 Refs #55 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
smileygames
left a comment
There was a problem hiding this comment.
セルフレビュー(auto モード / 人間チェックなし)
完了条件の照合
| #55 の完了条件 | 結果 |
|---|---|
| 旧名が生成物を除きリポジトリから消えている | 満たす。下記の全文検索で 0 件 |
ウィンドウタイトルが Pullcept |
満たす |
identifier が org.liplus-project.pullcept |
満たす |
.mcp.json の鍵が pullcept-room- で始まる |
満たす。SERVER_PREFIX = "pullcept-room" |
環境変数が PULLCEPT_*、サイドカーと mcp-config で一致 |
満たす。下記 |
| 往復ハーネスが新しい名前で通る | 満たす。CI green |
| 旧名からのフォールバックや移行処理が入っていない | 満たす |
旧 .mcp.json エントリが掃除されないことが PR 本文に書かれている |
実装側の報告どおり本文に記載 |
差分の形が「純粋な改名」であることを確認した
122 insertions / 122 deletions。 完全に釣り合っている。追加も削除も無く、すべての変更行が置換である。
これは指示「改名は改名であること。ついでの整理も隣接コードの手直しもしない」が守られたことの、目視によらない確認になる。数が釣り合わなければ、置換以外が混ざっている。
対象は 22 ファイルで、親側の事前調査と一致する。超過も不足も無い。
残存の確認(検索による)
git grep を旧名 4 パターン(liplus-chat / liplus_chat / LIPLUS_ / Li+ Chat)で実行し、生成物 design/liplus-chat-ui.html を除いて 0 件。
識別子の照合
| 面 | 値 |
|---|---|
productName |
pullcept |
identifier |
org.liplus-project.pullcept |
SERVER_PREFIX |
pullcept-room |
| room id 既定 | pullcept(mcp-config の書き込みと sidecar の読み取りで一致) |
| 環境変数 | PULLCEPT_ROOM_URL / PULLCEPT_ROOM_TOKEN / PULLCEPT_ROOM_ID / PULLCEPT_AGENT_NAME / PULLCEPT_AGENT_HUE |
identifier の組織部分が liplus-project のまま残っているのは正しい。GitHub の組織名は Liplus-Project であり変更しない。#55 の命名表どおり。
サイドカーが読む環境変数名と mcp-config が書く環境変数名が一致していることを、両ファイルの literal で確認した。ここがずれると起動はするが部屋につながらない、という最も見つけにくい壊れ方をする。
ロックファイル
src-tauri/Cargo.lock(40 行)と package-lock.json(4 行)がマニフェストと同時に動いている。手書きではなくツールチェーンによる再生成であることは、CI の Rust コンパイルと npm ci が通っていることで裏が取れている。
移行コードが無いこと
旧識別子からの引き継ぎ、旧前置きの一度きりの刈り込み、旧環境変数のフォールバック — いずれも差分に現れない。#55 の制約どおり。
利用者が Master のみであることが前提であり(#55 premise)、読み手の居ない互換層を作らない判断は rules/model/subtractive-structural-beauty.md の binary に沿う。
検証
CI(check / CI)いずれも pass。親側で差分の行数収支、全文検索、識別子 5 種、環境変数の両側一致を確認した。
この PR の範囲外(親が行う)
- GitHub リポジトリ名の変更 — 人間の判断ゲート。Master の go-sign を得てから AI が実行する。
- ローカル clone の remote 更新
Li+config.mdのUSER_REPO5更新
マージ後、順に行う。
リリース種別
minor と判定する。バンドル識別子の変更により OS 上は別アプリとなり appdata が切り替わる。.mcp.json の鍵の前置きも変わる。いずれも system observable な構造変更。
自己レビュー通過。auto モードのため人間チェックはなく、このままマージへ進む。
Closes #55
Li+ Chat/liplus-chatを Pullcept へ改名した。表示名だけでなく、識別子・環境変数・.mcp.jsonの鍵の前置き・room id の既定値まで一度に動かしている。二つの名前が同居する状態は残していない。変更点
Pullceptname/productName/ crate namepullcept(lib はpullcept_lib)org.liplus-project.pullcept.mcp.json鍵の前置きpullcept-roomPULLCEPT_*pullceptpullcept.display-*lock ファイル(
package-lock.json/src-tauri/Cargo.lock)はツールチェーンで再生成した(npm install --package-lock-only/cargo metadata)。手で書き換えていない。差分は package 名の行だけである。散文で製品を指す箇所は
Pullcept、識別子・鍵・パス・環境変数はpullcept/PULLCEPT_*とした。組織名Liplus-Project、別リポジトリ(liplus-desktop/liplus-language)、および Li+ 本体のLI_PLUS_*は対象外であり触っていない。移行コードは入れていない
旧識別子からのフォールバック、旧前置きの刈り込み、旧環境変数の読み替えはいずれも書いていない(#55 の前提)。読み手の居ない互換層は、以後の全変更が引きずる負債になるため。
黙って残さないもの
.mcp.jsonエントリは掃除されない。 刈り込みの判定はSERVER_PREFIXの前方一致で行うため、前置きがpullcept-roomになった時点で既存のliplus-chat-room-*エントリはどの経路でも触られなくなる。利用者が居ないため掃除の機構は作らない。Master の手元の.mcp.jsonに残骸が出た場合は手で消せば足りる。org.liplus-project.pullceptは OS から見て別のアプリであり、旧識別子のconfig.jsonは引き継がれない。この issue を feat(account): make an account a thing that exists whether it is running #53 の直後に置いたのはそのためである。design/liplus-chat-ui.html(生成物、追跡外)はファイル名が旧名のまま残る。.gitignoreのエントリをdesign/pullcept-ui.htmlへ変えたので、手元に旧名のファイルがある場合は untracked として見えるようになる。docs(design): re-seed the UI canvas from the shipped launcher #46 の再生成で置き換わる。この PR の範囲外
#55 の手順 3 以降(GitHub リポジトリ名の変更、ローカル clone の remote 更新、
Li+config.mdのUSER_REPO5)は含まない。リポジトリ名の変更は人間の判断ゲートであり、マージ後に go-sign を得てから行う。検証
npm run build/npm run sidecar:check— 通過npm run sidecar:test(往復ハーネス)— 2 件通過cargo test(crates/mcp-config15 件、crates/room-floor)— 通過cargo check(src-tauri)— 通過liplus-chat/liplus_chat/LIPLUS_/Li+ Chatは追跡下のファイルから消えている。