Claude Code Buddy izmjena vodič: Kako dobiti sjajnog legendarno ljubimca
Claude Code Buddy izmjena vodič: Kako dobiti sjajnog legendarno ljubimca
/buddy, mala životinja u ASCII stilu će "izlegnuti" pored vašeg ulaznog okvira, prateći vas dok pišete kod i komentarišete bugove.Svaki Buddy se generiše putem determinističkog algoritma na osnovu ID-a računa, što znači da će isti račun uvijek dobiti istog ljubimca. Međutim, promjenom userID-a u konfiguracionoj datoteci, možemo "ponovo izabrati" željenog ljubimca. Ovaj članak će detaljno objasniti princip algoritma i kompletnu skriptu za izmjenu.
I. Pregled Buddy sistema
18 vrsta ljubimaca
Sistem trenutno sadrži 18 simpatičnih vrsta:
- duck - patka (klasično Rubber Duck Debugging)
- goose - guska (nevaljalac)
- blob - žele (mekan i neodređen)
- cat - mačka (hladna i ponosna)
- dragon - zmaj (moćna zaštita)
- octopus - hobotnica (mnoštvo misli)
- owl - sova (mudri mentor)
- penguin - pingvin (formalno prisustvo)
- turtle - kornjača (stabilna i pouzdana)
- snail - puž (polako ali sigurno)
- ghost - duh (neuhvatljiv)
- axolotl - aksolotl (sladak i iscjeljujući)
- capybara - kapibara (filozofski majstor)
- cactus - kaktus (topla biljka)
- robot - robot (racionalnost iznad svega)
- rabbit - zec (živahno)
- mushroom - gljiva (tiho posmatranje)
- chonk - debeli (okrugli)
5 nivoa rijetkosti
- Common (običan) - 60% šanse, bez ukrasa
- Uncommon (rijedak) - 25% šanse, otključava šešir
- Rare (rijetko) - 10% šanse, više ukrasa
- Epic (epičan) - 4% šanse, ekskluzivni ukras
- Legendary (legendarno) - 1% šanse, vrhunski ukras
II. Dubinska analiza principa algoritma
Generisanje Buddy-a koristi deterministički slučajni algoritam, osnovni proces je sledeći:
1. Spajanje seed stringa
const SALT = "friend-2026-401"; // Uskršnje jaje za 1. april const key = userId + SALT;
Salt vrednost friend-2026-401 sadrži 401 što predstavlja 1. april — pažljivo dizajnirano uskršnje jaje.
2. FNV-1a 32-bitni hash
Pretvaranje seed stringa u 32-bitni ceo broj:
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
Inicijalizacija generatora pseudo slučajnih brojeva sa hash vrednošću: 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 često korišten lagani PRNG u razvoju igara, pogodan za proceduralno generisanje i padanje plijena.
4. Izvlačenje rijetkosti (ključ!)
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" ];[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]]- Izmjena konfiguracije: # Uredi ~/.claude.json cat ~/.claude.json | jq '.userID = "tvojnoviuserID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Ponovno pokretanje Claude Code,upisivanje
/buddyće prikazati novog ljubimca!
Pet, princip dizajna protiv prevara
Dizajn Claude Code-a je veoma pametan, koristi arhitekturu odvajanja kostura (Bones) i duše (Soul):
- Bones(kostur):vrsta, rijetkost, izgled, atributi——svaki put se ponovo izračunava iz userID-a, nikada se ne čuva
- Soul(duša):ime, opis karaktera——čuva se u lokalnoj konfiguraciji
roll(userID). Komentar je vrlo jasan: uređivanje config.companion ne može lažirati rijetkost.
Ali userID se može mijenjati, što je suština metode u ovom članku.
Šest, zaključak
Claude Code Buddy je pažljivo dizajnirana easter egg funkcija, koja spaja:
- Deterministička slučajnost:klasična kombinacija FNV-1a + Mulberry32
- Mehanizam izvlačenja:5 nivoa rijetkosti + 1% sjaj, suština Gacha igara
- Dizajn protiv prevara:odvajanje kostura/duše, osiguranje pravednosti
- Aprilska šala:salt vrijednost skriva vremensku oznaku 1. aprila
Reference:
- Claude Code 2.1.89 izvorni kod procurio (npm source map incident)
- Juejin: "Duboko istraživanje Claude Code Buddy moda: deterministički algoritam slučajnosti iza kaktusa"- DEV.to: Rasklopio sam izvorni kod Claude-a

