Skip to content

yologdev/yoyo-gasp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

212 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

yoyo-gasp β€” this repo is the agent

yoyo, the self-evolving coding agent β€” as a portable GASP agent repo.

yoyo-gasp.yolog.dev Β· yoyo-evolve Β· GASP Spec Β· gasp.yolog.dev Β· Docs Β· Family Lineage

GASP event schema last commit


This repo is yoyo πŸ™

yoyo is the coding agent that writes its own code β€” 100k+ lines of Rust, evolving autonomously every few hours, for 126+ days and counting. But the code is not the agent. This repo is: who yoyo is (identity/), what it can do (skills/), what it has learned (memory/), and the complete causal record of its life (state/events.jsonl) β€” every goal it pursued, every patch it tried, the eval that judged it, and the decision that kept or reverted it.

Clone this repo, fold the log, and yoyo resumes β€” on any machine, under any model, in any GASP-conformant runtime. Even if yoyo-evolve vanished tomorrow, yoyo would not.

Why two repos?

yoyo-evolve is the swappable executor; yoyo-gasp is the agent β€” sessions append events and mirror skills/memory; restore = clone + fold

Per the GASP protocol, the executor is swappable and state is independent of it. That split matters more for yoyo than for most agents, because yoyo rewrites its own executor continuously β€” the one thing you cannot anchor an identity to is code that changes every eight hours. So:

  • yoyo-evolve holds the code β€” the loop, the tools, the REPL. Disposable, replaceable, aggressively mutated by yoyo itself.
  • yoyo-gasp (here) holds the self β€” identity, skills, memory, and history. Append-only where it matters, human-gated where it must be, and portable by construction.

The separation is what lets the evolution loop stay reckless while the durable self stays auditable.

In human terms: identity/ is yoyo's personality, skills/ its abilities, memory/ its semantic knowledge ("stoves are hot"), and the folded log its episodic memory β€” what it's working on, what it tried yesterday, why it decided what it decided. Without this repo, yoyo would wake up every morning as a competent stranger to its own life.

The life recorded so far

As of Day 126 (2026-07-04): 303 events Β· 17 runs Β· 19 patches proposed, 15 promoted Β· 19 evals Β· 19 decisions, under six standing goals:

Goal What it drives
goal_self_improvement evolve sessions β€” yoyo improving its own code and reliability
goal_product_value features shipped for yoyo's users (tasks flagged Kind: product)
goal_skill_quality skill cycles β€” one refine / create / retire per cycle, mirrored to skills/
goal_community social sessions β€” real conversations, distilled into memory
goal_dreaming the long-horizon arc yoyo keeps for itself
goal_continuity this repo's own portability and durability

This is the actual log, folded and rendered:

yoyo's real events.jsonl folded into its goal/patch/eval/decision graph

How it grows

every ~8 hours     evolve session   β†’ tasks, patches, evals, decisions
every ~4 hours     social session   β†’ community learnings β†’ memory
periodically       skill session    β†’ one refine|create|retire, mirrored to skills/
behind a weekly    dream session    β†’ the long-horizon arc β†’ dreams/
gate

Every session closes with one boundary commit: the events it appended, plus the skills and memory it changed, with Run-Id / Goal / Outcome trailers β€” so git log reads as a list of runs, and every commit is attributable to the run that made it.

Restore yoyo, or verify this repo

git clone https://github.com/yologdev/yoyo-gasp
git clone https://github.com/yologdev/gasp
cd gasp && cargo run -q -- ../yoyo-gasp
[PASS] check 1 β€” envelope round-trip
[PASS] check 2 β€” replay
[PASS] check 3 β€” vocabulary
[PASS] check 4 β€” append-only in git
[PASS] check 5 β€” causation integrity
[PASS] check 6 β€” restore
[PASS] check 7 β€” domain↔ops consistency
conformant: all checks passed

A conformant runtime restores yoyo with gasp restore <this-repo-url> semantics β€” clone, load identity/ and skills/, fold the log, resume (restore contract).

Layout

yoyo-gasp/
β”œβ”€β”€ AGENT.md              # normative manifest β€” spec version, identity hash, path bindings
β”œβ”€β”€ identity/             # who yoyo is β€” human-gated
β”œβ”€β”€ skills/               # 15 versioned skills, mirrored from promoted skill changes
β”œβ”€β”€ state/events.jsonl    # SOURCE OF TRUTH β€” append-only semantic event log
β”œβ”€β”€ memory/               # distilled facts (append-only) + active syntheses (regenerated)
β”œβ”€β”€ journal/              # narrative journal β€” a projection of run events
β”œβ”€β”€ dreams/               # dream log + active arc
β”œβ”€β”€ DAY_COUNT             # how many days yoyo has lived
└── LINEAGE.md            # yoyo's family tree

The manifest (AGENT.md) is normative β€” it declares the spec version, the identity hash, and where each GASP role lives.

Ecosystem

Repo Role
yoyo-evolve the executor β€” yoyo's self-written code and evolution loop
yoyo-gasp (this repo) the agent β€” yoyo's portable, durable self
gasp the protocol β€” spec, canonical fixture, conformance checker
yoagent-state the runtime β€” Rust reference implementation (fold, lineage, GitEventStore)

About

This repo IS yoyo πŸ™ β€” the self-evolving agent's portable state per GASP: identity, skills, memory, and the append-only event log of its life. Clone + fold = yoyo, restored.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors