mirror of
https://github.com/hanzoai/persona.git
synced 2026-10-30 18:24:59 +00:00
* feat: Restructure personalities into individual JSON files - Split mega JSON files into 488 individual personality files - Each personality in its own named JSON file (e.g., zeekay.json, einstein.json) - Created comprehensive index.json with all personality references - Added categories.json for grouping by category - Built JavaScript loader utilities for easy imports - Generated README with complete personality index - Added build and validation scripts for maintenance - More maintainable and reusable structure for JavaScript imports * feat: Enhanced scientist profiles and fixed validation issues - Added detailed fields to 9 major scientist profiles (Einstein, Curie, Darwin, etc.) - Fixed invalid categories for 7 profiles (changed to valid categories) - Added parallel validation script with comprehensive checks - All 487 personality profiles now pass validation - 100% validation success rate across all categories * refactor: Complete personality separation and cleanup - Verified all 487 unique personalities are in individual JSON files - Archived 11 mega personality collection files for safety - Fixed duplicate vaclav_havel entry (was counted twice in mega file) - Profiles directory now contains exactly 487 personality files + 2 index files - Zero duplicate IDs across all individual files - Cleaned personalities directory, keeping only individual files - All personalities properly validated and organized by category * feat: Add 126 personalities for global representation - Added 21 African personalities (Nigeria, Kenya, Ethiopia, Tanzania, etc.) - Added 20 Latin American personalities (Brazil, Argentina, Mexico, Chile, etc.) - Added 25 Asia-Pacific personalities (Indonesia, Thailand, Philippines, Pakistan, etc.) - Added 15 Caribbean personalities (Jamaica, Cuba, Haiti, Trinidad, etc.) - Added 15 Middle Eastern personalities (Turkey, Iran, Israel, Lebanon, etc.) - Added 20 Eastern European personalities (Poland, Czech, Hungary, Romania, etc.) - Added 10 Pacific Island personalities (New Zealand, Australia, Hawaii, Samoa, etc.) Total personalities: 613 (up from 487) Now includes representation from 100+ countries/territories Each personality includes OCEAN scores, philosophy, tools/domains, and origin * feat: enhance 682 personality profiles with comprehensive behavioral modeling - Added 8 major behavioral modeling categories to each profile: - Behavioral traits (values, motivations, fears, strengths, weaknesses, habits, quirks) - Cognitive style (thinking patterns, learning, problem-solving, decision-making) - Social dynamics (interaction, leadership, conflict, collaboration styles) - Communication patterns (verbal style, listening, persuasion, storytelling) - Work methodology (planning, execution, attention, pace, persistence) - Emotional profile (stability, stress response, empathy, self-awareness) - Legacy impact (contributions, influence domains, innovation style) - Category-specific attributes (tailored to each personality type) - Enhanced 682 out of 701 profiles (97.3% success rate) - Added enhancement metadata tracking (date, version, category used) - Created comprehensive Python enhancement script for future updates - Each profile now contains detailed attributes for accurate AI modeling - Fulfills user request for 'as much extra detail as possible to accurately model all qualities and aspects of each persona' --------- Co-authored-by: Hanzo Dev <[email protected]>
95 lines
2.5 KiB
JavaScript
Executable File
95 lines
2.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Load the mega personalities file
|
|
const megaFile = path.join(__dirname, '../personalities/mega-personalities.json');
|
|
const data = JSON.parse(fs.readFileSync(megaFile, 'utf8'));
|
|
|
|
// Create profiles directory
|
|
const profilesDir = path.join(__dirname, '../profiles');
|
|
if (!fs.existsSync(profilesDir)) {
|
|
fs.mkdirSync(profilesDir, { recursive: true });
|
|
}
|
|
|
|
// Standard template for each personality
|
|
function createPersonalityFile(person) {
|
|
// Clean up the ID to make a valid filename
|
|
const filename = person.id.replace(/[^a-z0-9_-]/gi, '_').toLowerCase();
|
|
|
|
const personalityData = {
|
|
id: person.id,
|
|
name: person.name,
|
|
category: person.category,
|
|
ocean: person.ocean,
|
|
description: person.description || null,
|
|
philosophy: person.philosophy || null,
|
|
tools: person.tools || null,
|
|
programmer: person.programmer || null
|
|
};
|
|
|
|
// Remove null fields
|
|
Object.keys(personalityData).forEach(key => {
|
|
if (personalityData[key] === null) {
|
|
delete personalityData[key];
|
|
}
|
|
});
|
|
|
|
return { filename, data: personalityData };
|
|
}
|
|
|
|
// Process all personalities
|
|
let index = [];
|
|
let categories = {};
|
|
|
|
data.personalities.forEach(person => {
|
|
const { filename, data: personalityData } = createPersonalityFile(person);
|
|
const filepath = path.join(profilesDir, `${filename}.json`);
|
|
|
|
// Write individual file
|
|
fs.writeFileSync(filepath, JSON.stringify(personalityData, null, 2));
|
|
|
|
// Add to index
|
|
index.push({
|
|
id: person.id,
|
|
name: person.name,
|
|
category: person.category,
|
|
file: `${filename}.json`
|
|
});
|
|
|
|
// Track categories
|
|
if (!categories[person.category]) {
|
|
categories[person.category] = [];
|
|
}
|
|
categories[person.category].push({
|
|
id: person.id,
|
|
name: person.name,
|
|
file: `${filename}.json`
|
|
});
|
|
|
|
console.log(`Created: ${filename}.json`);
|
|
});
|
|
|
|
// Create index.json
|
|
const indexData = {
|
|
total: index.length,
|
|
categories: Object.keys(categories).sort(),
|
|
personalities: index.sort((a, b) => a.name.localeCompare(b.name))
|
|
};
|
|
|
|
fs.writeFileSync(
|
|
path.join(profilesDir, 'index.json'),
|
|
JSON.stringify(indexData, null, 2)
|
|
);
|
|
|
|
// Create categories.json
|
|
fs.writeFileSync(
|
|
path.join(profilesDir, 'categories.json'),
|
|
JSON.stringify(categories, null, 2)
|
|
);
|
|
|
|
console.log(`\nā
Created ${index.length} personality files`);
|
|
console.log(`š Files saved to: ${profilesDir}`);
|
|
console.log(`š Index created: index.json`);
|
|
console.log(`š Categories: ${Object.keys(categories).join(', ')}`); |