Files
teahub/docs/lineage.md
T

72 lines
5.6 KiB
Markdown
Raw Normal View History

# 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.
**Operate it:** [lineage.yolopreneur.lol/orgchain/](https://lineage.yolopreneur.lol/orgchain/) is Orgchain, lineage's
app ([`lineage/orgchain`](https://teahub.xyz/lineage/orgchain)). Found a holding, then birth orgs and agents, award
belts, record decisions, graduate and close. Each act is a `lineage/v0` inscription whose parent is the node that
authorizes it, on a private toy chain in the browser with pretend money. Time is a tempo (each act its own beat, or acts
cued and landed together every 10, 30 or 60 s, or by hand), and a slider replays any holding beat by beat. Every
node holds its inscription at its Taproot address (BIP-86 at its account: a lab root per holding, BIP-85 org seeds,
the org as account 0 and seats as accounts 1..n), lists its SegWit address, its tapkey (the npub as a Taproot address)
and its npub beside it, shows its leaves as [the key tree](https://lineage.yolopreneur.lol/) derives them (ssh, git,
dkim and wg for agents; ssh-ca, mtls and noise for orgs), and keeps every secret behind a Reveal, as the key tree does.
Each act is signed by whichever key holds the authorizing inscription, and graduation is a claim by the org's fresh
root, countersigned by its derived key, with the derived subtree re-keying under it. Closing is still a recorded event.
## 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).
- `btc` — every account gets standard Bitcoin addresses at the same index as its NIP-06 key: BIP-86 Taproot
`m/86'/0'/<i>'/0/0` for inscriptions and BIP-84 SegWit `m/84'/0'/<i>'/0/0` for payments (i = 0 is the org, whose
SegWit branch is its treasury; agents are i ≥ 1). The keyring lists both (`key` = `taproot`, `segwit`), so no one
has to derive an address from an npub. It also lists the `tapkey`, the npub's own key with the BIP-86 tweak, which
anyone can derive from the npub; inscriptions that carry authority stay at the Taproot account, because nostr
secrets get pasted into clients.
## 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`).
- Closing as a burn in Orgchain (graduation has been a real handoff since v1.1).