From 3d50c10db4675cdce9062af5213be8cff197d84b Mon Sep 17 00:00:00 2001 From: m3taversal Date: Wed, 11 Mar 2026 21:36:34 +0000 Subject: [PATCH] =?UTF-8?q?rio:=20address=20Leo=20review=20=E2=80=94=20typ?= =?UTF-8?q?e=20extensibility=20+=20cross-domain=20dedup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - What: Added type extensibility rules (domain types are agent-managed, core types require schema PR) and cross-domain entity dedup protocol (one entity per real-world object, secondary_domains for visibility). - Why: Leo flagged both gaps in PR #593 review. Pentagon-Agent: Rio <760F7FE7-5D50-4C2E-8B7C-9F1A8FEE8A46> --- schemas/entity.md | 15 +++++++++++++++ skills/extract-entities.md | 6 ++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/schemas/entity.md b/schemas/entity.md index 2959f755..e6cec2f6 100644 --- a/schemas/entity.md +++ b/schemas/entity.md @@ -95,6 +95,21 @@ Is it a multi-mission program? → program **Rule:** Use the most specific type available. If a DeFi protocol fits `protocol`, use that instead of `company`. If an AI lab fits `lab`, use that instead of `company`. Domain-specific types carry domain-specific fields. +### Adding New Types + +Core types require a schema PR reviewed by Leo. Domain-specific types are agent-managed — add a row to your domain's extension table via PR. No schema-wide changes needed. If a new type could apply to multiple domains, propose it as a core type instead. + +### Cross-Domain Entity Dedup + +One entity per real-world object. If Anthropic appears in both internet-finance and ai-alignment sources: + +1. **First creator owns the file.** Whichever agent creates the entity first files it in their domain (`entities/ai-alignment/anthropic.md`). +2. **Other agents use `secondary_domains`.** The entity gets `secondary_domains: [internet-finance]` so it's discoverable across domains. +3. **Both agents can update.** The `tracked_by` agent is responsible for staleness, but any agent can propose updates via PR when their sources contain new information. +4. **Type follows primary domain.** If Theseus creates it, it's `lab`. If Rio had created it first, it would be `company`. The type reflects the primary tracking perspective. + +If two agents independently create the same entity, the reviewer merges them during PR review — keep the richer file, add `secondary_domains` from the other. + ## YAML Frontmatter ```yaml diff --git a/skills/extract-entities.md b/skills/extract-entities.md index cb892ab1..2098842e 100644 --- a/skills/extract-entities.md +++ b/skills/extract-entities.md @@ -79,12 +79,14 @@ Follow the body format from `schemas/entity.md`: ### Step 5: Check for Duplicates -Before creating a new entity, search `entities/{domain}/` for: +Before creating a new entity, search **all** `entities/` directories (not just your domain) for: - Same name (exact or variant spelling) - Same handles - Same website -If a match exists, update the existing entity instead of creating a new one. +If a match exists in **your domain**, update the existing entity. + +If a match exists in **another domain**, don't create a duplicate. Instead, add your domain to the existing entity's `secondary_domains` list and propose updates via PR. See `schemas/entity.md` → "Cross-Domain Entity Dedup" for the full protocol. ### Step 6: Update Parent Entities