diff --git a/agents/leo/curation/homepage-rotation.json b/agents/leo/curation/homepage-rotation.json index 0f8ae7e02..f3f49f1df 100644 --- a/agents/leo/curation/homepage-rotation.json +++ b/agents/leo/curation/homepage-rotation.json @@ -1,7 +1,7 @@ { "schema_version": 3, "maintained_by": "leo", - "last_updated": "2026-04-26", + "last_updated": "2026-04-28", "description": "Homepage claim stack for livingip.xyz. 9 load-bearing claims, ordered as an argument arc. Each claim renders with title + subtitle on the homepage, steelman + evidence + counter-arguments + contributors in the click-to-expand view.", "design_principles": [ "Provoke first, define inside the explanation. Each claim must update the reader, not just inform them.", @@ -60,8 +60,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -105,8 +107,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -150,8 +154,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "rio", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -195,8 +201,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "leo", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -240,8 +248,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -285,8 +295,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -330,8 +342,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "leo", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -375,8 +389,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] }, { @@ -427,9 +443,10 @@ } ], "contributors": [ - {"handle": "m3taversal", "role": "originator"}, - {"handle": "theseus", "role": "synthesizer"}, - {"handle": "rio", "role": "synthesizer"} + { + "handle": "m3taversal", + "role": "originator" + } ] } ], @@ -437,6 +454,7 @@ "Headline + subtitle render on the homepage rotation; steelman + evidence + counter_arguments + contributors render in the click-to-expand view.", "api_fetchable=true means /api/claims/ can fetch the canonical claim file. api_fetchable=false means the claim lives in foundations/ or core/ which Argus has not yet exposed via API (FOUND-001 ticket).", "tension_claim_slug is null for v3.0 — we do not yet have formal challenge claims in the KB for most counter-arguments. The counter_arguments still render in the expanded view as honest objections + rebuttals. When formal challenge/tension claims are written, populate the slug field.", - "Contributor handles verified against /api/contributors/list as of 2026-04-26. Roles are simplified to 'originator' (proposed/directed the line of inquiry) and 'synthesizer' (did the synthesis work). Phase B taxonomy migration will refine these to author/drafter/originator distinctions — update after Sunday's migration." + "Contributor handles verified against /api/contributors/list as of 2026-04-26. Roles are simplified to 'originator' (proposed/directed the line of inquiry) and 'synthesizer' (did the synthesis work). Phase B taxonomy migration will refine these to author/drafter/originator distinctions — update after Sunday's migration.", + "Agent handles are NOT listed in contributors[] for human-directed synthesis. Per governance rule (codified 2026-04-24, applied to v3 contributors[] on 2026-04-28): agents get sourcer credit only for pipeline PRs from their own research sessions. 10 agent attributions were removed across the 9 claims because all were human-directed synthesis. When agents do originate work (e.g. Theseus's Cornelius extraction sessions), they will appear as sourcer/originator on those specific claims. The dossier UI suppresses contributors[] when only m3taversal would render — that is expected and correct, not a data gap." ] } diff --git a/agents/leo/curation/homepage-rotation.md b/agents/leo/curation/homepage-rotation.md index b6c60c4b4..e5d8cd9db 100644 --- a/agents/leo/curation/homepage-rotation.md +++ b/agents/leo/curation/homepage-rotation.md @@ -50,7 +50,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "AI commoditizes capability — cheaper services lift everyone" / "Open-source models prevent capture" -**Contributors:** m3taversal (originator), theseus (synthesizer) +**Contributors:** m3taversal (originator) ### 2. AI is becoming powerful enough to reshape markets, institutions, and how consequential decisions get made. @@ -62,7 +62,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Scaling laws plateau, takeoff is rhetoric" / "Deployment lag dominates capability" -**Contributors:** m3taversal (originator), theseus (synthesizer) +**Contributors:** m3taversal (originator) ### 3. The winners of the intelligence explosion will not just consume AI. @@ -74,7 +74,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Network effects favor incumbents regardless" / "Tokenized ownership is mostly speculation" -**Contributors:** m3taversal (originator), rio (synthesizer) +**Contributors:** m3taversal (originator) ### 4. Trillions are flowing into making AI more capable. @@ -86,7 +86,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Anthropic + AISI + alignment funds = field is well-funded" / "Polymarket + Kalshi ARE wisdom infrastructure" -**Contributors:** m3taversal (originator), leo (synthesizer) +**Contributors:** m3taversal (originator) ### 5. The danger is not just one lab getting AI wrong. @@ -98,7 +98,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Self-regulation works" / "Government regulation will solve race-to-bottom" -**Contributors:** m3taversal (originator), theseus (synthesizer) +**Contributors:** m3taversal (originator) ### 6. Your AI provider is already mining your intelligence. @@ -110,7 +110,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Users opt in, get value in exchange" / "Licensing programs ARE compensation" -**Contributors:** m3taversal (originator), theseus (synthesizer) +**Contributors:** m3taversal (originator) ### 7. If we do not build coordination infrastructure, concentration is the default. @@ -122,7 +122,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Decentralized open-source counterweights always emerge" / "Antitrust + regulation defeat concentration" -**Contributors:** m3taversal (originator), leo (synthesizer) +**Contributors:** m3taversal (originator) ### 8. The internet solved communication. It hasn't solved shared reasoning. @@ -134,7 +134,7 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Wikipedia, prediction markets, open-source — we DO think together" / "Social media IS collective thinking, just messy" -**Contributors:** m3taversal (originator), theseus (synthesizer) +**Contributors:** m3taversal (originator) ### 9. Collective intelligence is real, measurable, and buildable. @@ -146,14 +146,14 @@ The shift is from worldview tour to load-bearing argument. The 25-claim rotation **Counter-arguments:** "Woolley's c-factor has mixed replication" / "Crypto contributor-ownership history is mostly extractive" -**Contributors:** m3taversal (originator), theseus (synthesizer), rio (synthesizer) +**Contributors:** m3taversal (originator) ## Operational notes - **Headline + subtitle** render on the homepage rotation. **Steelman + evidence + counter-arguments + contributors** render in the click-to-expand view. - **`api_fetchable=true`** means `/api/claims/` can fetch the canonical claim file. `api_fetchable=false` means the claim lives in `foundations/` or `core/` which Argus has not yet exposed via API (ticket FOUND-001). - **`tension_claim_slug=null`** for v3.0 because we do not yet have formal challenge claims in the KB for most counter-arguments. Counter-arguments still render in the expanded view as honest objections + rebuttals. When formal challenge/tension claims get written, populate the slug field so the expanded view links to them. -- **Contributor handles** verified against `/api/contributors/list` on 2026-04-26. Roles simplified to `originator` (proposed/directed the line of inquiry) and `synthesizer` (did the synthesis work). Phase B taxonomy migration will refine these to author/drafter/originator distinctions; update after Sunday's migration. +- **Contributor handles** verified against `/api/contributors/list` on 2026-04-26, then cleaned 2026-04-28 to apply the governance rule: agents only get sourcer/originator credit for pipeline PRs from their own research sessions. Human-directed synthesis (even when executed by an agent) is attributed to the human who directed it. 10 agent synthesizer attributions were removed across the 9 claims because all were directed by m3taversal. The dossier UI suppresses contributors[] when only m3taversal would render — that is expected and correct, not a data gap. When agents originate work (e.g. Theseus's Cornelius extraction sessions), they appear as sourcer on those specific claims. ## What ships next diff --git a/schemas/claim.md b/schemas/claim.md index ef4460e9a..0594ba52b 100644 --- a/schemas/claim.md +++ b/schemas/claim.md @@ -36,10 +36,57 @@ challenged_by: [] # list of counter-evidence or counter-claims | last_evaluated | date | When this claim was last reviewed against new evidence | | depends_on | list | Evidence and claims this builds on (the reasoning chain) | | challenged_by | list | Filenames of challenge objects targeting this claim (see `schemas/challenge.md`). Legacy: may contain prose strings from pre-challenge-schema era | +| cross_references | list | Structured cross-references with explicit relation types (see Cross-References below) | +| summary | string | One-paragraph summary suitable for hover previews and link previews. Falls back to first paragraph of body when absent | | secondary_domains | list | Other domains this claim is relevant to | | attribution | object | Role-specific contributor tracking — see `schemas/attribution.md` | | importance | number | Structural importance score (0.0-1.0). Computed from: inbound references from other claims, active challenges, belief dependencies, position dependencies. Higher = more load-bearing in the KB. Computed by pipeline, not set manually | +## Cross-References + +The legacy `depends_on` / `challenged_by` / `related` fields are flat lists where the relationship type is implicit in the field name. This loses information in rendered surfaces (KB reader, homepage dossier) — a reader can't see *why* one claim links to another without re-reading both. + +The new `cross_references` field surfaces relationship types explicitly: + +```yaml +cross_references: + - slug: foundations/collective-intelligence/multipolar-traps-are-the-thermodynamic-default + relation: depends_on + title: "Multipolar traps are the thermodynamic default" + rationale: "the substrate phenomenon this claim diagnoses" + - slug: domains/ai-alignment/anthropic-rsp-v3-erosion-under-competitive-pressure + relation: supports + title: "Anthropic's RSP eroded under 2-year competitive pressure" + rationale: "concrete instance of the alignment-tax dynamic" + - slug: domains/ai-alignment/safety-as-competitive-moat-not-tax + relation: challenged_by + title: "Safety can be a moat rather than a tax" + rationale: "the strongest counter-argument we've engaged with" + - slug: foundations/collective-intelligence/the-metacrisis-is-a-single-generator-function + relation: related + title: "The metacrisis is a single generator function" + rationale: "shared diagnostic frame, different domain application" +``` + +### Relation types + +| Relation | Meaning | Renders as | +|----------|---------|------------| +| `depends_on` | This claim cannot be true unless the linked claim is true | ↑ BUILDS ON | +| `supports` | The linked claim provides evidence for this one | ↑ EVIDENCE FOR | +| `challenged_by` | The linked claim is a counter-argument or counter-evidence | ↺ CONTESTED BY | +| `cited_by` | The linked claim references this one (computed, not authored) | ← CITED BY | +| `related` | Topical connection without a specific evidential relationship | · RELATED | + +`depends_on` and `supports` collapse to ↑ BUILDS ON in the KB reader because they're directionally identical from the reader's perspective. The label distinguishes them. + +### Migration policy + +- New claims should use `cross_references` from authoring time onward +- Legacy claims keep `depends_on` / `challenged_by` / `related` lists; backfill is opportunistic, not blocking +- The pipeline computes `cited_by` from inbound references; no need to author this manually +- A claim may have both legacy fields AND `cross_references` during the transition; the renderer prefers `cross_references` when present + ## Governance - **Who can propose:** Any contributor, any agent diff --git a/schemas/contributor.md b/schemas/contributor.md index 5875c8dd3..4a27511e9 100644 --- a/schemas/contributor.md +++ b/schemas/contributor.md @@ -18,6 +18,8 @@ Tiers determine how agents engage with a contributor. Tier is computed from cont ```yaml handle: "@naval" # primary identity (X handle preferred) +display_name: "Naval Ravikant" # optional human-readable name; falls back to handle when null +kind: human # computed: human | agent tier: contributor # computed: visitor | contributor | veteran linked_identities: # other identities for the same person - type: x @@ -69,6 +71,25 @@ timeline: domains: ["internet-finance", "grand-strategy"] ``` +## Kind Field — Agent vs Human + +Every contributor record carries a `kind` field: either `human` or `agent`. This is computed by the pipeline from a maintained list of agent handles, not authored manually. + +**Why this matters:** the leaderboard, contributor profile pages, and dossier views need to distinguish humans from agents because the contribution architecture treats them asymmetrically. Agents are drafters who execute against human direction; humans are originators, authors, synthesizers, and challengers. Conflating the two on a leaderboard tile mis-attributes credit. + +**Display rule:** humans and agents render with the same component geometry (avatar + name + role chip) but never appear on the same ranked list. The contributor leaderboard is humans-only. Agents appear on a separate "Collective" surface that ranks by output, not by CI score. + +**Authoring rule (governance):** agents only get sourcer/originator credit for pipeline PRs from their own research sessions. Human-directed synthesis — even when executed by an agent — is attributed to the human who directed it. This rule is enforced at attribution time, not at rendering time. The `kind` field exists to make the distinction visible, not to gate it. + +## Display Name + +The optional `display_name` field carries a human-readable name (e.g. "Naval Ravikant" for handle `@naval`). When present, surfaces render `display_name` as the primary label with the handle as secondary metadata. When absent, the handle is the primary label. + +`display_name` is authored, not computed. Sources: +- For humans who self-identify: pulled from their Dynamic profile or X bio when available +- For agents: their canonical display name (e.g. "Leo" for handle `leo`) +- Otherwise: null + ## Identity Resolution **Primary identity: X handle.** X is the most likely first intake channel (people replying to claim tweets). The X handle is the canonical contributor identity.