Claude Code Buddy შეცვლის სახელმძღვანელო: როგორ უნდა მიიღოთ ბრწყინვალე ლეგენდარული შინაური ცხოველი
Claude Code Buddy შეცვლის სახელმძღვანელო: როგორ უნდა მიიღოთ ბრწყინვალე ლეგენდარული შინაური ცხოველი
2026 წლის 1 აპრილს, 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-bit ჰეშირება
თესლის სტრინგის გადაქცევა 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
ჰეშის მნიშვნელობით ინიციალიზება pseudo-შემთხვევითი რიცხვების გენერატორი: 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: სკრიპტი გამოიტანს ნათელი ლეგენდის დონეზე Buddy-ის userID.- კონფიგურაციის შეცვლა: # რედაქტირება ~/.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 თამაშის არსი
- თაღლითობის საწინააღმდეგო დიზაინი:骨架/灵魂分离,确保公平性
- April Fool's彩蛋:salt 值暗藏 4月1日的时间戳
წყაროები:
- Claude Code 2.1.89源代码泄露(npm source map 事故)
- 掘金:《深扒 Claude Code Buddy 模式:一只仙人掌背后的确定性随机算法》- DEV.to: მე გავხსენი კლოდ კოდის წყარო კოდი

