新增 skill persona-icon:上網查出該人格最新的官方視覺 → 下載 →
**用 Read 親眼看過** → 取髮色/瞳色/服裝色 → 用那組配色繪製圖示,
來源網址與造型描述一併寫進 state/config.json 備查。
CLI:
icon generate --palette "hair=#..,eye=#..,accent=#..,secondary=#..,light=#.."
--source-url <網址> [--source-note <說明> --source-date <日期>]
* --palette 必須配 --source-url(配色要有出處,CLI 強制)。
* 配色與來源存進 config.icon,之後不帶 --palette 重畫會沿用,不會變回雜湊色。
* icon show 會列出調色盤與來源網址。
繪製:漸層=髮色→服裝主色、外框=瞳色、點陣紋=亮色、中央仍是編號前兩字。
一深一淺的極端配色(藍黑髮+淡粉洋裝)會把較亮端往較暗端壓到對比 ≥ 3.2,
確保字讀得到——顏色仍是照片來的,只是收斂色階。
為什麼不是把照片本身當圖示:
1) 環境裡沒有任何影像解碼器(rsvg/imagemagick/Pillow/ffmpeg 都沒有),
JPEG/WebP 讀不進來,無法轉成 PNG;
2) 把他人的美術作品原樣放進存取庫是散布,不是引用。
取配色是有依據又不搬運原圖的做法,這個取捨寫進了 README 與 skill。
已套用到兩個真實人格:
ASUNA-01 取自《Unanswered//butterfly》(2026) 官方主視覺(金栗髮/紅褐瞳/紅衣粉裙)
YUI-01 取自 AniList 官方角色圖(藍黑髮/暖棕瞳)+ Unital Ring 導航妖精造型
selftest 136 項全綠(新增第 ⑮ 節:調色盤解析、缺來源會被擋、格式錯誤會被擋、
來源寫入 config、重畫沿用配色、極端配色的對比保證)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4.9 KiB
name, description
| name | description |
|---|---|
| persona-icon | 產生或更新人格的圖示(icon.svg + icon.png):先上網找出該人格「最新一次登場」的官方視覺(新作動畫主視覺、官方角色圖),親自看過那張圖後萃取髮色/瞳色/服裝色,再用這組配色繪製圖示,並記下來源網址備查;找不到參考圖時退回用編號雜湊配色。當使用者說要做人格頭像/圖示/icon、要依角色最新造型更新圖示、說現在的圖示不像、或剛建立完人格要補圖示時觸發。不適用於:建立人格本身(persona-create/persona-anime,它們會叫用本技能的步驟)、同步到 Gitea(persona-sync)。 |
🎨 persona-icon — 依最新造型產生人格圖示
CLI:node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs"(帶 --session <PERSONA_SESSION>)
時機:人格建立且 IDENTITY/SOUL 補齊之後——配色與字母綁在最終身分上。
為什麼要上網找圖
圖示要像這個人格,就得用他現在的樣子:動漫角色會換造型、換作品、換髮色。 所以流程是「查最新登場 → 看那張圖 → 取色 → 畫」,而不是憑印象填色。
步驟
1. 查出「最新一次登場」
用 WebSearch 找這個角色最近的官方動向(新作、新章節、新造型),至少確認:
- 最新的作品/章節名稱與年份
- 那個版本的造型敘述(髮色、瞳色、服裝主色)
搜尋語彙範例:<角色> <作品> 2026 新作 主視覺、<character> latest anime key visual outfit。
2. 取得一張真的參考圖
要直接的圖片網址(.png / .jpg),優先序:
-
官方新作的主視覺/key visual(新聞稿內的圖)
-
AniList 的官方角色圖——可直接查,不需登入:
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 -
其他公開的官方素材
下載下來:curl -sL -o /tmp/ref.png "<圖片網址>"
3. 親眼看過那張圖(不可省略)
用 Read 工具打開它。沒看過就不准填顏色——憑記憶填色等於編造。
從圖上讀出五個顏色(用取樣到的實際色,不是「大概是紅色」):
| 欄位 | 取哪裡 |
|---|---|
hair |
頭髮的主色(不是高光也不是陰影) |
eye |
瞳孔顏色 |
accent |
服裝最顯眼的主色 |
secondary |
服裝的第二色/配件色 |
light |
最亮的部位(白袖、皮膚亮面) |
4. 繪製
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" icon generate \
--session <PERSONA_SESSION> --force \
--palette "hair=#d9a45b,eye=#9e5b3e,accent=#c0392b,secondary=#e77a8e,light=#f2ebe3" \
--source-url "<你剛才看的那張圖的網址>" \
--source-note "<作品名(年份)+造型描述:髮色、瞳色、服裝>" \
--source-date <YYYY-MM-DD>
--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 由自寫的柵格器產生,不依賴任何影像函式庫。
為什麼不是把照片本身當圖示
- 技術上:環境裡沒有任何影像解碼器(rsvg/imagemagick/Pillow 都沒有), JPEG/WebP 讀不進來,無法把原圖轉成 PNG。
- 權利上:把他人的美術作品原樣放進存取庫是散布,不是引用。
取配色是有依據、又不搬運原圖的做法。使用者若堅持要用原圖當頭像, 請他自己把圖片上傳到 Gitea 的存取庫設定頁。
邊界
- 只能對「本 session 已載入的人格」產生圖示。
- 已有圖示時要重畫必須加
--force。 - 不帶
--palette重畫會沿用 config 裡已存的配色(不會突然變回雜湊色)。 - 所有面向使用者的輸出使用繁體中文(台灣用語)、UTF-8 無亂碼。