Proposal: model multiple entities, roles, and social circles (docs-only) - #2056
Closed
grimmolf wants to merge 1 commit into
Closed
Proposal: model multiple entities, roles, and social circles (docs-only)#2056grimmolf wants to merge 1 commit into
grimmolf wants to merge 1 commit into
Conversation
Adds LIFEOS/DOCUMENTATION/Proposals/MultiEntityLife.md, a proposal-only design document. LifeOS currently assumes one principal with one company, one work repo, one flat TELOS, and one free-text Role. This proposes first-class Entities (employer, businesses, nonprofits, clubs), Roles (employee, owner, member, ...), and social Circles (0 family, 1 friends, 2 social-contract groups, 3 everyone else) with information boundaries, as a data-model change that keeps one DA per human. It ranks eight code chokepoints by leverage, names existing conventions to reuse, and lays out four independently shippable non-breaking phases. No runtime change; all file:line citations verified against upstream main. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DGcHcnVs5smQ7NCihbvasf
Owner
|
Closing this as a PR and pointing it at Discussions. DOCUMENTATION/ ships in every release and mirrors to the public docs site, so a proposal there publishes as product doc. And multi-entity modeling is Vector's job in this system; core LifeOS models one principal. Happy to argue that in a Discussion thread. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
LifeOS is built around a single-entity assumption that the code states out loud: one principal with one company, one work repo, one flat TELOS, and one free-text
Role:. Most real lives aren't shaped that way: a day job plus one or more side businesses, and identity spread across family, friends, and the groups we belong to (workplace, church, club, neighborhood).This is a proposal-only PR. It adds one design document,
LIFEOS/DOCUMENTATION/Proposals/MultiEntityLife.md, that specifies a generalization and asks for review of the model before any code phase lands. It changes no runtime behavior.The problem, in the code
resolveCompanyDir()picks oneYOUR_COMPANIES/*dir and its own comment says it "works for exactly one person" (PULSE/Observability/observability.ts:2914-2920);/api/life/businesstakes no entity parameter (:4578).hooks/lib/work-config.ts:65-83,WorkConfig.repo: string | null), while a second path already loopsconfig.repos(plural) — the plural shape exists, inconsistently.TELOS.mdingests per-business TELOS documents and discards which business each goal belongs to;GenerateTelosSummary.tsparses flat ID lists with no grouping key;LIFEOS_STATE.jsonhas seven fixed dimensions and no per-entity split.business | personal | mixed(observability.ts:1768-1789, normalized at2655/2681), so several businesses collapse into one word.PRINCIPAL_IDENTITY.mdhas oneRole:slot for what is, in practice, several roles across several organizations.src/app/life/page.tsx:355-403,:78-95).The proposal
Three primitives, threaded through existing surfaces as a data-model change, not an agent-topology change (LifeOS already tried per-entity agents and retired them; that decision stands):
USER/ENTITIES.yamlregistry.employee | owner | partner | member | volunteer | support.It also disentangles a word that is currently used for three different axes (agent identity layers, social diligence tiers, and TELOS activity priorities) into Layer / Circle / Priority.
The document ranks eight chokepoints by leverage, names existing code and conventions to reuse rather than duplicate (the Telos skill's Project-TELOS analyzer, the
YOUR_COMPANIES/<name>/andWORK/<customer>/directory conventions, theProperty:label taxonomy, theincome_source.payermulti-source model), and lays out four independently shippable, non-breaking phases where a one-entity install behaves byte-for-byte as it does today.Testing evidence
Docs-only; no runtime change. Every file:line citation was verified against upstream
mainat this commit: the ten cited anchors (BUSINESS_DIR,VendorYaml,ObligationYaml,handleLifeFinances, bothscopenormalizations,resolveCompanyDir,handleLifeBusiness,handleLifeWork, the/api/life/businessroute) match line-for-line, and the shippedobservability.tsis byte-identical to upstream (blob787cf286). Example data in the registry snippet is synthetic.Requesting review on
USER/ENTITIES.yamlshould live inUSER/(private, per-install) with a shipped template.roleshould be an enum or free text with a suggested vocabulary.If the model is accepted, Phase 1 (registry + frontmatter contract, no behavior change) follows as a separate PR.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DGcHcnVs5smQ7NCihbvasf