Files
teahub/docs/lineage.md
T

54 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lineage — one tree
The factory, its ventures and their agents form one tree. Every node is read three ways, at the same path:
- **key** — lineage: each org has its own seed, standard paths inside it, and births signed by its parent.
- **context** — the meta repo: `AGENTS.md` · `SKILLS.md` · `DESIGN.md`, inherited down the path.
- **presence** — pages and names: `<org>.yolopreneur.lol`, and `<agent>@<org domain>` as both NIP-05 name and mailr
address.
```
● yolopreneur legal · treasury · id · agents · orgs root: offline, with the operator
└─ orgs
├─ 0' well-known the same five
│ └─ orgs 0' mailr · 1' lineage
└─ 1' time the same five
├─ agents luna · sol · astra the clock's seats
└─ orgs 0' docscope · 1' dollhouse · … each one the same five again
```
**Status (2026-10-14):** model agreed with the operator. Minting a real root is the operator's call; until it exists,
this tree is a drawing, and nothing derived from it may be presented as a real key.
## Rules
1. **One template, every depth.** An org is legal key · treasury · identity · agents · orgs. The factory's own org and
a venture three levels down run the same spec.
2. **A seed per org.** A child org's seed is derived from its parent's root (BIP-85), and lineage spec v0 runs on that
seed unchanged, so every org gets standard wallet paths and NIP-06 accounts for its agents. The parent can re-derive
a child; a child can never derive its parent. Indices are never reused.
3. **Two kinds of edge.** *Derived*: the parent holds the child's seed — agents and young ventures. *Adopted*: the child
holds its own root, and the parent signs a birth certificate vouching for it — graduated ventures and outside orgs.
4. **Graduation flips an edge.** The venture mints its own root; the parent signs an adopted birth; the derived birth
is revoked and its keys retired. Later, lineage.llc can adopt the whole yolopreneur tree the same way.
5. **Context flows down like keys.** A child inherits its ancestors' `AGENTS.md` · `SKILLS.md` · `DESIGN.md`, adds its
own, and cannot rewrite upward. Every fact lives on exactly one level. Skill names are global: no shadowing.
6. **Names nest as domains.** Each org serves its own `/.well-known/nostr.json`; `<agent>@<domain>` is NIP-05 and mail.
7. **Clocks nest.** Each org runs its own Time, seats and spend cap; a child's cap is carved out of its parent's.
8. **Belts are badges.** A belt is a badge awarded to one seat for one skill — per seat × skill, never per seat alone.
Kata belts and the `.well-known.online` badge are the same mechanism.
## Proposed for lineage spec v0.1
- `org seed` — BIP-85, BIP-39 application, from the parent root: `m/83696968'/39'/0'/24'/<j>'`, j = the child org's
index.
- `birth` — gains an `edge` tag, `derived` or `adopted`; an adopted birth names the child's own org key.
- `graduate` — the child's new org key signs its keyring; the parent signs an adopted birth; the parent revokes the
derived birth (kind 5).
- `badge` — NIP-58: the org that runs the dojo publishes a badge definition per skill × belt (kind 30009) and awards it
to a seat's npub (kind 8); the seat lists what it holds in its profile badges (kind 10008).
## Not built yet
- The root (operator's decision).
- The `lineage` CLI: spec → keys, so Time's seats get real identities and sign their commits with the git leaf.
- The meta repo's layout generated from `lineage.json`: one manifest for keys, context and pages.
- Badge issuance from the kata runner (see `SKILLS.md`).