Claude Code Buddy Úprava: Ako získať lesklého legendárneho domáceho maznáčika
Claude Code Buddy Úprava: Ako získať lesklého legendárneho domáceho maznáčika
/buddy do terminálu sa vedľa vášho vstupného poľa "vyliahne" malá ASCII štýlová zvieratko, ktoré vás bude sprevádzať pri písaní kódu a komentovaní chýb.Každý Buddy je generovaný pomocou ID účtu prostredníctvom deterministického algoritmu, čo znamená, že ten istý účet vždy získa toho istého domáceho maznáčika. Ale zmenou userID v konfiguračnom súbore môžeme "prehodnotiť" obľúbeného domáceho maznáčika. Tento článok podrobne popisuje princíp algoritmu a kompletný skript na úpravu.
I. Prehľad systému Buddy
18 druhov zvierat
Systém momentálne obsahuje 18 roztomilých druhov:
- duck - kačka (klasické Rubber Duck Debugging)
- goose - husa (nezbedná)
- blob - želé (mäkké a neforemné)
- cat - mačka (chladná a hrdá)
- dragon - drak (mocný strážca)
- octopus - chobotnica (viacvláknové myslenie)
- owl - sova (múdry mentor)
- penguin - tučniak (formálne oblečený)
- turtle - korytnačka (stabilná a spoľahlivá)
- snail - slimák (pomaly, ale precízne)
- ghost - duch (neviditeľný)
- axolotl - axolotl (roztomilé a liečivé)
- capybara - kapybara (zen majster)
- cactus - kaktus (teplé rastliny)
- robot - robot (racionalita na prvom mieste)
- rabbit - zajac (skákajúci)
- mushroom - huba (tichý pozorovateľ)
- chonk - tučný (guľatý)
5 úrovní vzácnosti
- Common (bežný) - 60% pravdepodobnosť, bez ozdôb na klobúku
- Uncommon (zriedkavý) - 25% pravdepodobnosť, odomknutie klobúka
- Rare (vzácny) - 10% pravdepodobnosť, viac ozdôb
- Epic (epický) - 4% pravdepodobnosť, exkluzívne ozdoby
- Legendary (legendárny) - 1% pravdepodobnosť, najvyššie ozdoby
II. Hlboká analýza princípu algoritmu
Generovanie Buddy využíva deterministický náhodný algoritmus, základný proces je nasledovný:
1. Spojenie reťazca semena
const SALT = "friend-2026-401"; // 1. apríla aprílový žart const key = userId + SALT;
Hodnota Salt friend-2026-401 obsahuje 401, čo predstavuje 1. apríl — starostlivo navrhnutý aprílový žart.
2. FNV-1a 32-bitový hash
Prevod reťazca semena na 32-bitové celé číslo:
function hashString(s) { let h = 2166136261; // FNV offset basis for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); // FNV prime } return h >>> 0; }
3. Mulberry32 PRNG
Inicializácia generátora pseudonáhodných čísel pomocou hash hodnoty: function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }
Mulberry32 je ľahký PRNG (pseudo-náhodný generátor čísel) bežne používaný vo vývoji hier, vhodný na procedurálne generovanie a tabuľky loot dropov.
4. Vzorkovanie vzácnosti (kľúčové!)
const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 };
function rollRarity(rng) { const total = 60 + 25 + 10 + 4 + 1; // = 100 let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITYWEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }
重要:RARITIES 数组的顺序必须是从低到高,这是加权随机选择的标准实现。
三、完整 Reroll 脚本
以下脚本可以搜索并生成闪光传说级 Buddy 的 userID:
// Claude Code Buddy Reroll 脚本 // 基于 Claude Code 源码逆向分析
// FNV-1a 32-bit hash function hashString(s) { let h = 2166136261; for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); } return h >>> 0; }
// Mulberry32 PRNG function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }
const SPECIES = [ "duck", "goose", "blob", "cat", "dragon", "octopus", "owl", "penguin", "turtle", "snail", "ghost", "axolotl", "capybara", "cactus", "robot", "rabbit", "mushroom", "chonk" ];const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"];\nconst RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 };\nconst SALT = "friend-2026-401";\n\nfunction pick(rng, arr) {\n return arr[Math.floor(rng() arr.length)];\n}\n\nfunction rollRarity(rng) {\n const total = Object.values(RARITYWEIGHTS).reduce((a, b) => a + b, 0);\n let roll = rng() total;\n for (const rarity of RARITIES) {\n roll -= RARITYWEIGHTS[rarity];\n if (roll < 0) return rarity;\n }\n return "common";\n}\n\nfunction testUserId(userId) {\n const key = userId + SALT;\n const seed = hashString(key);\n const rng = mulberry32(seed);\n const rarity = rollRarity(rng);\n const species = pick(rng, SPECIES);\n const shiny = rng() < 0.01;\n return { rarity, species, shiny };\n}\n\nfunction randomUserId() {\n let id = "";\n for (let i = 0; i < 64; i++) {\n id += Math.floor(Math.random() 16).toString(16);\n }\n return id;\n}\n\n// Hľadanie lesklých legiend\nconsole.log("Hľadanie lesklých legiend Buddy...\n");\nconst targetSpecies = process.argv[2] || null;\n\nwhile (true) {\n const userId = randomUserId();\n const result = testUserId(userId);\n\n if (result.rarity === "legendary" && result.shiny) {\n if (!targetSpecies || result.species === targetSpecies) {\n console.log("Našiel som to!");\n console.log("Druh:", result.species);\n console.log("Rarita: Legenda");\n console.log("Lesklý: Áno!");\n console.log("userID:", userId);\n break;\n }\n }\n}\n\n## Štyri, kroky použitia\n\n- Uložiť skript: Uložte vyššie uvedený kód ako buddy-reroll.js\n\n- Spustiť skript: node buddy-reroll.js (môžete špecifikovať druh: node buddy-reroll.js dragon)\n\n- Kopírovať userID: Skript vygeneruje userID pre lesklého legendárneho Buddyho.- Úprava konfigurácie: # Upravte ~/.claude.json cat ~/.claude.json | jq '.userID = "tvojnový_userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Reštartujte Claude Code,zadajte
/buddya uvidíte nového maznáčika!
Päť, princíp dizajnu proti podvádzaniu
Dizajn Claude Code je veľmi premyslený, využíva architektúru oddelenia kostry (Bones) a duše (Soul):
- Bones(kostra):druh, vzácnosť, vzhľad, atribúty——každý raz sa prepočítava z userID, nikdy sa neuchováva
- Soul(duša):meno, popis osobnosti——uchováva sa v miestnej konfigurácii
roll(userID). Komentár je veľmi jasný:editing config.companion can't fake a rarity.
Ale userID samotný je možné upraviť, čo je princípom metódy v tomto článku.
Šesť, zhrnutie
Claude Code Buddy je starostlivo navrhnutá easter egg funkcia, ktorá kombinuje:
- Deterministická náhoda:klasická kombinácia FNV-1a + Mulberry32
- Mechanizmus ťahania kariet:5 úrovní vzácnosti + 1% lesklé, esencia Gacha hier
- Dizajn proti podvádzaniu:oddelenie kostry/duše, zabezpečenie spravodlivosti
- Aprílový žart:salt hodnota skrýva časovú pečiatku 1. apríla
Referenčné materiály:
- Únik zdrojového kódu Claude Code 2.1.89 (nehoda npm source map)
- Juejin: „Hlboké preskúmanie režimu Claude Code Buddy: deterministický náhodný algoritmus za kaktusom“- DEV.to: Roztrhol som zdrojový kód Claude

