Claude Code Buddy измена упатство: Како да добиете сјаен легендарен милениче

4/2/2026
6 min read

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% шанса, врвни украсни елементи
Исто така, постои независна 1% шанса за сјајно (Shiny), сјајните миленичиња имаат анимација со дуга! Шансата за сјајно легендарно милениче е 1% × 1% = 0.01%, приближно еден на десет илјади.

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 (душа):име, опис на карактер——перзистира до локалната конфигурација
Ова значи дека дури и ако директно уредиш полето rarity во конфигурацискиот фајл, системот ќе го замени со резултатот од roll(userID) при читање. Коментарот е многу јасен: editing config.companion can't fake a rarity.

Но userID самиот може да се измени, што е принципот на методот во овој текст.

Шест, Заклучок

Claude Code Buddy е внимателно дизајнирана функција за јајца, која комбинира:

  • Детерминистичка случајност:класичен спој на FNV-1a + Mulberry32

  • Механизам за извлекување карти:5 нивоа на реткост + 1% сјај, есенцијата на Gacha игрите

  • Дизајн против измама:раздвојување на скелет/душа, осигурување на правичност

  • Шега за 1 април:salt вредноста содржи времето на печат 1 април
Сега пробајте! Ви посакувам да извлечете посакуваното сјајно легендарно Buddy!

Референци:

  • Извештај за истекување на изворниот код на Claude Code 2.1.89 (npm source map инцидент)

  • Juejin: „Длабинско истражување на режимот Claude Code Buddy: детерминистички случаен алгоритам зад еден кактус“- DEV.to: Ја Растурив Кодот на Клауд
Published in Technology

You Might Also Like

Obsidian ја лансираше Defuddle, го подигна Obsidian Web Clipper на ново нивоTechnology

Obsidian ја лансираше Defuddle, го подигна Obsidian Web Clipper на ново ниво

Obsidian ја лансираше Defuddle, го подигна Obsidian Web Clipper на ново ниво Уште од почетокот, многу ми се допаѓа осно...

OpenAI ненадејно објави "три во едно": спојување на прелистувач, програмирање и ChatGPT, внатрешно признавање на погрешниот пат во изминатата годинаTechnology

OpenAI ненадејно објави "три во едно": спојување на прелистувач, програмирање и ChatGPT, внатрешно признавање на погрешниот пат во изминатата година

OpenAI ненадејно објави "три во едно": спојување на прелистувач, програмирање и ChatGPT, внатрешно признавање на погрешн...

2026, не се присилувајте на "самодисциплина"! Направете ги овие 8 мали работи, здравјето ќе дојде природноHealth

2026, не се присилувајте на "самодисциплина"! Направете ги овие 8 мали работи, здравјето ќе дојде природно

2026, не се присилувајте на "самодисциплина"! Направете ги овие 8 мали работи, здравјето ќе дојде природно Нова година ...

Тие мајки кои се трудат да ослабат, но не успеваат, сигурно се заглавени тукаHealth

Тие мајки кои се трудат да ослабат, но не успеваат, сигурно се заглавени тука

Тие мајки кои се трудат да ослабат, но не успеваат, сигурно се заглавени тука Март веќе помина наполовина, како напреду...

📝
Technology

AI Browser 24 часов стабилно работење водич

AI Browser 24 часов стабилно работење водич Овој туторијал објаснува како да се постави стабилна, долгорочна средина за ...

📝
Technology

Agent-Browser Конфигурациски водич: Повторна употреба на статусот на најава во прелистувачот преку CDP

Agent-Browser Конфигурациски водич: Повторна употреба на статусот на најава во прелистувачот преку CDP\n\nОвој водич ви ...