--- name: persona-icon description: 產生或更新人格的圖示(icon.svg + icon.png):先上網找出該人格「最新一次登場」的官方視覺(新作動畫主視覺、官方角色圖),親自看過那張圖後萃取髮色/瞳色/服裝色,再用這組配色繪製圖示,並記下來源網址備查;找不到參考圖時退回用編號雜湊配色。當使用者說要做人格頭像/圖示/icon、要依角色最新造型更新圖示、說現在的圖示不像、或剛建立完人格要補圖示時觸發。不適用於:建立人格本身(persona-create/persona-anime,它們會叫用本技能的步驟)、同步到 Gitea(persona-sync)。 --- # 🎨 persona-icon — 依最新造型產生人格圖示 **CLI**:`node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs"`(帶 `--session `) **時機**:**人格建立且 IDENTITY/SOUL 補齊之後**——配色與字母綁在最終身分上。 --- ## 為什麼要上網找圖 圖示要像這個人格,就得用他**現在**的樣子:動漫角色會換造型、換作品、換髮色。 所以流程是「查最新登場 → 看那張圖 → 取色 → 畫」,而不是憑印象填色。 ## 步驟 ### 1. 查出「最新一次登場」 用 WebSearch 找這個角色最近的官方動向(新作、新章節、新造型),至少確認: - 最新的作品/章節名稱與年份 - 那個版本的造型敘述(髮色、瞳色、服裝主色) 搜尋語彙範例:`<角色> <作品> 2026 新作 主視覺`、` latest anime key visual outfit`。 ### 2. 取得一張真的參考圖 要**直接的圖片網址**(`.png` / `.jpg`),優先序: 1. 官方新作的主視覺/key visual(新聞稿內的圖) 2. AniList 的官方角色圖——可直接查,不需登入: ```bash curl -s -X POST -H "Content-Type: application/json" \ -d '{"query":"query{Media(id:<動畫 id>,type:ANIME){characters(perPage:25){nodes{name{full} image{large}}}}}"}' \ https://graphql.anilist.co ``` 3. 其他公開的官方素材 下載下來:`curl -sL -o /tmp/ref.png "<圖片網址>"` ### 3. **親眼看過那張圖**(不可省略) 用 Read 工具打開它。**沒看過就不准填顏色**——憑記憶填色等於編造。 從圖上讀出五個顏色(用取樣到的實際色,不是「大概是紅色」): | 欄位 | 取哪裡 | | --- | --- | | `hair` | 頭髮的主色(不是高光也不是陰影) | | `eye` | 瞳孔顏色 | | `accent` | 服裝最顯眼的主色 | | `secondary` | 服裝的第二色/配件色 | | `light` | 最亮的部位(白袖、皮膚亮面) | ### 4. 繪製 ```bash node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" icon generate \ --session --force \ --palette "hair=#d9a45b,eye=#9e5b3e,accent=#c0392b,secondary=#e77a8e,light=#f2ebe3" \ --source-url "<你剛才看的那張圖的網址>" \ --source-note "<作品名(年份)+造型描述:髮色、瞳色、服裝>" \ --source-date ``` - **`--palette` 一定要配 `--source-url`**:配色是從哪張圖來的必須留得下來(CLI 會強制)。 - 兩者都會寫進 `state/config.json` 的 `icon` 欄位,之後 `icon show` 查得到。 - 產出的 `icon.svg` + `icon.png` 會自動設成 Gitea 存取庫頭像並同步到 Wiki 區。 找不到可靠的參考圖 → **不要硬掰**,直接 `icon generate` 不帶 `--palette`, 用編號雜湊出的配色,並告訴使用者「沒找到最新造型的官方圖,先用預設配色」。 ### 5. 回報 一句話說明:用了哪部作品哪一年的視覺、取到什麼配色、圖示放哪裡。 把來源網址附上,讓使用者可以自己核對。 ## 圖示長什麼樣 512×512 圓角徽章:**髮色 → 服裝主色**的對角漸層、**瞳色**外框、**亮色**點陣紋、 中央是編號前兩個字母(`ASUNA-01` → `AS`)。 - 兩個顏色一深一淺時(例:藍黑髮 + 淡粉洋裝),程式會把較亮的一端往較暗的壓, 確保字讀得到——顏色仍然是照片來的,只是收斂色階。 - SVG 與 PNG 是**同一張圖**;PNG 由自寫的柵格器產生,不依賴任何影像函式庫。 ## 為什麼不是把照片本身當圖示 1. **技術上**:環境裡沒有任何影像解碼器(rsvg/imagemagick/Pillow 都沒有), JPEG/WebP 讀不進來,無法把原圖轉成 PNG。 2. **權利上**:把他人的美術作品原樣放進存取庫是散布,不是引用。 取配色是有依據、又不搬運原圖的做法。使用者若堅持要用原圖當頭像, 請他自己把圖片上傳到 Gitea 的存取庫設定頁。 ## 邊界 - 只能對「本 session 已載入的人格」產生圖示。 - 已有圖示時要重畫必須加 `--force`。 - 不帶 `--palette` 重畫會**沿用 config 裡已存的配色**(不會突然變回雜湊色)。 - 所有面向使用者的輸出使用**繁體中文(台灣用語)**、UTF-8 無亂碼。