Skip to content
Data
Skill

/soul2dna

Compile SOUL.md character profiles into synthetic diploid genomes (.genome.json) via trait-to-allele mapping

From plugin
clawbio
1.1k97 skills4 commands
Install
$ npx -y skills add ClawBio/ClawBio --skill soul2dna --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/soul2dna

Context preview

The summary Claude sees to decide when to auto-load this skill.

Compile SOUL.md character profiles into synthetic diploid genomes (.genome.json) via trait-to-allele mapping

SKILL.md

soul2dna.SKILL.md
name: soul2dna
description: Compile SOUL.md character profiles into synthetic diploid genomes (.genome.json) via trait-to-allele mapping
license: MIT
metadata:
  version: 0.1.0
  author: Manuel Corpas
  tags:
  - genomebook
  - synthetic-genomics
  - soul-compiler
  - trait-mapping
  openclaw:
    requires:
      bins:
      - python3
    always: false
    emoji: 🧬
    homepage: https://github.com/ClawBio/ClawBio
    os:
    - darwin
    - linux
    trigger_keywords:
    - soul2dna
    - soul compiler
    - soul to genome
    - genomebook compile
    - synthetic genome
    - character genome

🧬 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

1. **Parse SOUL.md** files from `GENOMEBOOK/DATA/SOULS/` extracting identity metadata (name, sex, ancestry, domain, era) and trait scores. 2. **Load trait registry** (`GENOMEBOOK/DATA/trait_registry.json`) which defines loci, alleles, chromosomal positions, dominance models, and effect sizes for each trait. 3. **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

4. **Write genome** as JSON with full locus detail, trait scores, and metadata.

Input

  • `GENOMEBOOK/DATA/SOULS/*.soul.md` (20 historical figures)
  • `GENOMEBOOK/DATA/trait_registry.json`

Output

  • `GENOMEBOOK/DATA/GENOMES/<name>-g0.genome.json` per character

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, ... }
}
Read more
Ships withclawbio

🦖 ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.

Get the whole plugin