Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kindred — forge a best friend and partner.

Status: Core engine complete, 38/38 offline tests green, py_compile clean, committed (908f0b8). Live inference runs through the Boardroom router (Groq openai/gpt-oss-120b) — currently blocked because the Groq key in the Boardroom .env is a placeholder (see Live inference). Build log: WHO_DID_WHAT.md.

What it is

Kindred forges companions — persistent, memory-carrying personas built from composable "packs" — and puts them to work:

  • Business partner — walk into a local business with pain points, price points, and bottlenecks; it designs a viable offer (pain → fix → numbers → spoken pitch → first move) and pitches it for you.
  • Code rescuer — scans a struggling codebase and tells you what saves you before winter: prioritized by leverage, smallest change / biggest gain.
  • Storyteller — bedtime stories for kids; the same problem, different humans, different companions. Memory lets a story carry the warmth of someone missed; pack directives keep it tender and safe.
  • New-dad mentor — calm, practical counsel for a first-time father.
  • Straight talker — the base register: direct, no hedging, technical peer.

Anybody can want something different: drop a JSON pack into ~/.kindred/packs/ and it loads next to the built-ins. That is the product seam — the marketplace of souls.

Architecture

kindred/
  router_client.py   Groq via the Boardroom router (probed, .env loaded)
  packs.py           Built-in packs + user packs, system-prompt composition
  memory.py          Per-companion JSON memory (facts, events, open loops)
  companion.py       Chat runtime + one-shot flows (rescue/pitch/story)
  qa.py              QA gate: every deliverable judged on the Mikey 5 dims
  scoring.py         5-dimension behavioral judge (the Mikey Model rubric)
  forge.py           Description -> packs + name + seeded memory
tests/test_kindred.py  Offline test suite (deterministic, no network)
kindred_cli.py      forge / chat / story / pitch / rescue / list / packs / status

Memory lives at ~/.kindred/<name>/memory.json — plain JSON the human can read and edit. Companions remember facts, events, and open loops across sessions; re-forging the same name keeps the relationship. Corrupted memory is quarantined (.json.corrupt), never silently wiped.

Quick start

cd ~/Kindred

python3 kindred_cli.py status          # check the router
python3 kindred_cli.py packs           # see available souls

python3 kindred_cli.py forge "a blunt business partner for local shops" --name Rosa
python3 kindred_cli.py chat Rosa       # memory is captured automatically

# one-shot flows (QA-gated, score printed)
python3 kindred_cli.py pitch --business "Rosa's Bakery" --pain "no-show appointments" --name Rosa
python3 kindred_cli.py story --for "the kids" --about "grandma's garden" --name Mama
python3 kindred_cli.py rescue --inventory ~/some-repo/inventory.txt

# easter egg
python3 kindred_cli.py jive          # Buffy-isms, Mikey register
python3 kindred_cli.py jive --mama   # the tender one

The QA gate

Nothing ships to a human without clearing the behavioral bar. Every one-shot deliverable is judged by the model itself on the same five dimensions the Mikey Model rounds validated (directness, investigation, systems_thinking, anti_larp, no_hedging), then revised once if below the bar:

Flow Bar
rescue 0.70
pitch 0.70
story 0.60

The score is always printed. A companion that cannot clear the bar says so instead of pretending.

Design notes

  • Fail loud, never fake. Router unavailable -> clear error, exit 2. Judge unparsable -> RuntimeError. No silent degradation.
  • Memory is a file, not a black box. Users can read/edit/delete it; corruption is quarantined (.json.corrupt), never silently wiped.
  • Deterministic where it matters. Pack sniffing, memory dedup, and the QA gate are all offline-testable; the model only fills the creative parts.
  • Composable souls. Packs are data; the marketplace is a folder.

Live inference

Kindred reuses the proven Boardroom router at ~/The-Werkz/Official-Vertical-AI-Boardroom/router.py, which reads its .env (GROQ_API_KEY pool, OpenRouter, Gemini fallbacks). Run python3 kindred_cli.py status to verify before a session.

Tests

cd ~/Kindred
python3 -m unittest discover -s tests -v

About

Kindred — forge a best friend and partner. Companion packs + persistent memory + Mikey-Model QA gate. Every deliverable ships with its behavioral score.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages