Skip to content
Chapter 7 of 8

Personalize the rest of you

TELOS is your why. But you are more than your goals, and LifeOS has a place for the rest of you. The USER/ tree also holds PRINCIPAL_IDENTITY.md (who you are), WRITINGSTYLE.md and RHETORICALSTYLE.md (how you write and argue, so the DA produces text that sounds like you and not like generic AI), OPINIONS.md (your actual positions), RESUME.md, CONTACTS.md, CORECONTENT.md, DEFINITIONS.md, and folders for BUSINESS and WORK, plus FEED.md. Fill these and the DA stops guessing who you are.

You should not type all of that from scratch either, because you have written most of it already, somewhere. Tell your DA: help me migrate my context. The Migrate skill classifies each chunk of your old material against the USER taxonomy and commits it to the right file with provenance, a record of where every line came from, so nothing is orphaned and every claim is traceable. That is the whole trick: classify, route, keep the source.

Then encode your actual expertise as Skills. A skill is a packaged capability the DA can invoke, and the naming convention carries meaning: an underscore prefix marks a private skill, one that holds your personal data and stays yours, while system capabilities ship as installable Packs. Your domain knowledge, the thing you know that most people do not, becomes a skill the system can run on demand. Remember the principle: the system gets smaller as the models get bigger, so a skill is a compact, true description of a capability, not a mountain of rules. In this lab you route a set of sample notes into the USER taxonomy with provenance and prove each one landed in the correct target.

The lab: read it, then run it

labs/lifeos-mastery/lm7-migrate-classify.py
#!/usr/bin/env python3
"""
LAB LM7: Migrate your context. Classify each chunk, route it, keep the provenance.

You do not start LifeOS empty. You already have a life written down somewhere:
old notes, a resume, opinions, a writing sample. The Migrate skill brings that in
by classifying each chunk against the USER taxonomy and committing it to the right
file WITH provenance, a record of where it came from, so nothing is orphaned and
you can always trace a line back to its source. In this lab you route a handful of
sample chunks into the taxonomy and prove each landed in the correct target and
carried its provenance. Every chunk here is invented for the lesson.

Run: python3 modules/academy-content/labs/lifeos-mastery/lm7-migrate-classify.py
"""
import sys

# STEP 1: the USER taxonomy, each target with keywords that route a chunk to it.
TAXONOMY = {
    "TELOS/GOALS.md":       ["goal", "ship", "by 2026", "target", "milestone"],
    "WRITINGSTYLE.md":      ["i write", "voice", "no em dash", "sentence", "tone"],
    "OPINIONS.md":          ["i believe", "i think", "in my view", "opinion"],
    "RESUME.md":            ["experience", "role", "director", "worked at", "years"],
    "CONTACTS.md":          ["email", "phone", "reach", "contact"],
}

def classify(chunk):
    text = chunk.lower()
    best, score = None, 0
    for target, kws in TAXONOMY.items():
        hits = sum(1 for k in kws if k in text)
        if hits > score:
            best, score = target, hits
    return best

# STEP 2: sample chunks, each with its true home (the ground truth) and a source.
chunks = [
    ("Ship the personal-site rebuild by 2026 as my next milestone", "TELOS/GOALS.md", "old-notes.md:12"),
    ("I write in short direct sentences and I never use an em dash", "WRITINGSTYLE.md", "style.txt:3"),
    ("I believe most AI advice is folklore, in my view you test it", "OPINIONS.md", "journal.md:88"),
    ("15 years of experience, most recently a Director role", "RESUME.md", "resume.pdf:1"),
    ("Best email to reach me and my phone are below", "CONTACTS.md", "vcard.txt:1"),
]

print("STEP 1-2: classify and route each chunk, attaching provenance")
routed = []
for text, expected, source in chunks:
    target = classify(text)
    routed.append({"target": target, "expected": expected, "source": source, "committed": target is not None})
    mark = "OK " if target == expected else "!! "
    print(f"  [{mark}] {text[:44]:44} -> {target}   (from {source})")

# STEP 3: invariants. Every chunk routed to its correct taxonomy target, and every
# committed chunk carries a non-empty provenance (source) so none is orphaned.
all_correct = all(r["target"] == r["expected"] for r in routed)
all_have_provenance = all(r["source"] for r in routed if r["committed"])
none_orphaned = all(r["committed"] for r in routed)
print("")
print(f"STEP 3: every chunk routed correctly    : {all_correct}")
print(f"        every commit carries provenance : {all_have_provenance}")
print(f"        nothing orphaned                : {none_orphaned}")

ok = all_correct and all_have_provenance and none_orphaned
print("")
print(f"MIGRATION ROUTES CORRECTLY (every chunk to its taxonomy target, with provenance): {'YES' if ok else 'NO'}")
if not ok:
    sys.exit(1)
print("Your existing context is now inside LifeOS, traceable to its source. Next: run it as a daily OS.")
Runnable lab
lm7-migrate-classify.py

Route sample notes into the USER taxonomy with provenance and prove each chunk lands in the correct target.

Proves: MIGRATION ROUTES CORRECTLY (every chunk to its taxonomy target, with provenance): YES

Open the notebook

Runs in your browser via Pyodide. First run loads the runtime once; no install, no server.

Now the system knows your why, your voice, your positions, and your expertise. It is genuinely yours. The last chapter steps back and shows you how to run it: the DA as your primary interface, the Algorithm for hard work, the self-improvement loop that makes it better over time, and how the whole thing keeps getting stronger through upgrades.
Check your understanding
  1. 1. How do you bring years of existing notes into LifeOS?

  2. 2. What does an underscore prefix on a skill name mean?

  3. 3. Why encode your expertise as skills rather than long instruction files?