Skillshub soul2dna
Compile SOUL.md character profiles into synthetic diploid genomes (.genome.json) via trait-to-allele mapping
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/ClawBio/ClawBio/soul2dna" ~/.claude/skills/comeonoliver-skillshub-soul2dna && rm -rf "$T"
manifest:
skills/ClawBio/ClawBio/soul2dna/SKILL.mdsource content
🧬 Soul2DNA Compiler
Purpose
Compile SOUL.md character profiles into synthetic diploid genomes. Each soul file describes a historical or fictional figure with trait scores (0.0 to 1.0). The compiler maps these scores to alleles at defined loci using additive, dominant, or recessive inheritance models, producing a
.genome.json file per character.
How It Works
- Parse SOUL.md files from
extracting identity metadata (name, sex, ancestry, domain, era) and trait scores.GENOMEBOOK/DATA/SOULS/ - Load trait registry (
) which defines loci, alleles, chromosomal positions, dominance models, and effect sizes for each trait.GENOMEBOOK/DATA/trait_registry.json - Assign genotypes at each locus based on trait score thresholds:
- Additive: <0.33 ref/ref, 0.33-0.66 ref/alt, >0.66 alt/alt
- Dominant: <0.40 ref/ref, 0.40-0.75 ref/alt, >0.75 alt/alt
- Recessive: <0.50 ref/ref, 0.50-0.80 ref/alt, >0.80 alt/alt
- Write genome as JSON with full locus detail, trait scores, and metadata.
Input
(20 historical figures)GENOMEBOOK/DATA/SOULS/*.soul.mdGENOMEBOOK/DATA/trait_registry.json
Output
per characterGENOMEBOOK/DATA/GENOMES/<name>-g0.genome.json
CLI Usage
# Compile all souls to genomes python skills/soul2dna/soul2dna.py # Demo mode (shows summary without writing files) python skills/soul2dna/soul2dna.py --demo
Output Format
Each
.genome.json contains:
{ "id": "einstein-g0", "name": "Albert Einstein", "sex": "Male", "sex_chromosomes": "XY", "ancestry": "...", "generation": 0, "parents": [null, null], "loci": { "<locus_id>": { "chromosome": "...", "alleles": ["A","G"], ... } }, "trait_scores": { "curiosity": 0.95, ... } }