Claude Code Buddy измена упатство: Како да добиете сјаен легендарен милениче
Claude Code Buddy измена упатство: Како да добиете сјаен легендарен милениче
На 1 април 2026 година, Anthropic во верзијата Claude Code 2.1.89 тивко лансираше функција за велигденско јајце — /buddy милениче систем. По внесувањето на /buddy во терминалот, едно ASCII стилско малечко животно ќе "извлече" покрај вашиот влезен прозорец, придружувајќи ве во пишувањето код и коментирањето на грешките.
Секое Buddy се генерира преку ID на сметката со детерминистички алгоритам, што значи дека истата сметка секогаш добива исто милениче. Но, преку измена на userID во конфигурацискиот фајл, можеме да "прероламе" милениче по наш избор. Овој текст ќе ги опише детално принципите на алгоритмот и целосниот скрипт за измена.
I. Преглед на Buddy системот
18 видови на миленичиња
Системот во моментов вклучува 18 видови на слатки миленичиња:
- duck - патка (класично Rubber Duck Debugging)
- goose - гуска (непристојна)
- blob - желе (меко и неформално)
- cat - мачка (висока и горда)
- dragon - змеј (моќен заштитник)
- octopus - октопод (мултитаскинг)
- owl - сова (мудар ментор)
- penguin - пингвин (облечен за настан)
- turtle - желка (стабилна и доверлива)
- snail - полжав (бавно и прецизно)
- ghost - дух (неуловлив)
- axolotl - аксолотл (слатко и исцелително)
- capybara - капибара (филозофски мајстор)
- cactus - кактус (топло растение)
- robot - робот (рационалност на прво место)
- rabbit - зајак (жив и енергичен)
- mushroom - печурка (тихо набљудување)
- chonk - дебелко (кругло)
5 нивоа на реткост
- Common (обично) - 60% шанса, без украсни капи
- Uncommon (ретко) - 25% шанса, отклучување на капи
- Rare (ретко) - 10% шанса, повеќе украсни елементи
- Epic (епско) - 4% шанса, ексклузивни украсни елементи
- Legendary (легендарно) - 1% шанса, врвни украсни елементи
II. Длабочинска анализа на принципите на алгоритмот
Генерацијата на Buddy користи детерминистички случаен алгоритам, основниот процес е како следи:
1. Конкатенација на семејната низа
const SALT = "friend-2026-401"; // 1 април, велигденско јајце const key = userId + SALT;
Salt вредноста friend-2026-401 во себе носи 401 што претставува 1 април — внимателно дизајнирано велигденско јајце.
2. FNV-1a 32-битен хеш
Конвертирање на семејната низа во 32-битен цел број:
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
Инициализирање на псевдослучајниот генератор со хеш вредноста: 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 е често користен лесен PRNG во развојот на игри, погоден за програмирано генерирање и табли за паѓање на плен.
4. Извлекување на реткост (клучно!)
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"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 }; const SALT = "friend-2026-401";
function pick(rng, arr) { return arr[Math.floor(rng() arr.length)]; }
function rollRarity(rng) { const total = Object.values(RARITYWEIGHTS).reduce((a, b) => a + b, 0); let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITY_WEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }
function testUserId(userId) { const key = userId + SALT; const seed = hashString(key); const rng = mulberry32(seed); const rarity = rollRarity(rng); const species = pick(rng, SPECIES); const shiny = rng() < 0.01; return { rarity, species, shiny }; }
function randomUserId() { let id = ""; for (let i = 0; i < 64; i++) { id += Math.floor(Math.random() 16).toString(16); } return id; }
// Пребарајте сјајни легендарни console.log("Пребарајте сјајни легендарни Buddy...\n"); const targetSpecies = process.argv[2] || null;
while (true) { const userId = randomUserId(); const result = testUserId(userId);
if (result.rarity === "legendary" && result.shiny) { if (!targetSpecies || result.species === targetSpecies) { console.log("Најдено!"); console.log("Вид: ", result.species); console.log("Реткост: Легендарен"); console.log("Сјаен: Да!"); console.log("userID: ", userId); break; } } }
Четири, Употреба на чекори
- Зачувајте го скриптот: Зачувајте ја горенаведената код како
buddy-reroll.js
- Извршете го скриптот:
node buddy-reroll.js(може да се одреди вид:node buddy-reroll.js dragon)
- Копирајте го userID: Скриптот ќе излезе со userID на сјаен легендарен Buddy- Измени конфигурација:
# Уреди ~/.claude.json cat ~/.claude.json | jq '.userID = "твојот нов userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Рестартирај Claude Code, внеси
/buddyи ќе го видиш новото милениче!
Пет, Принципи на дизајн против измама
Дизајнот на Claude Code е многу вешт, користејќи раздвојување на скелет (Bones) и душа (Soul):
- Bones (скелет):вид, реткост, изглед, атрибути——секојашно повторно пресметување од userID, никогаш не се перзистира
- Soul (душа):име, опис на карактер——перзистира до локалната конфигурација
roll(userID) при читање. Коментарот е многу јасен: editing config.companion can't fake a rarity.
Но userID самиот може да се измени, што е принципот на методот во овој текст.
Шест, Заклучок
Claude Code Buddy е внимателно дизајнирана функција за јајца, која комбинира:
- Детерминистичка случајност:класичен спој на FNV-1a + Mulberry32
- Механизам за извлекување карти:5 нивоа на реткост + 1% сјај, есенцијата на Gacha игрите
- Дизајн против измама:раздвојување на скелет/душа, осигурување на правичност
- Шега за 1 април:salt вредноста содржи времето на печат 1 април
Референци:
- Извештај за истекување на изворниот код на Claude Code 2.1.89 (npm source map инцидент)
- Juejin: „Длабинско истражување на режимот Claude Code Buddy: детерминистички случаен алгоритам зад еден кактус“- DEV.to: Ја Растурив Кодот на Клауд

