Las Collections son un primitivo separado de los Proyectos. Un Project es un loop de ejecución donde un agente recorre un board; una Collection es data operacional que un humano opera, aumentada por IA. Coexisten, y ninguno se construye sobre el otro.
Los tres arquetipos
Todo caso de uso colapsa en una de tres formas:- Pipeline: los records fluyen por un ciclo de vida de
statusen un board: leads, bugs, tickets de soporte, campañas de ads. - Analysis: un record es un artefacto anclado a una fuente que puede entrar en drift (la fuente cambió) frente a decaer (sin actividad): análisis de llamadas, seguimiento de competidores, auditorías SEO.
- Content: un record con un ciclo de vida de publicación (draft → published): posts de blog, copy de producto. El artefacto publicado vive en tu sitio/CMS; la collection rastrea el trabajo.
Qué contiene una Collection
record_schema: las definiciones de campos tipados (las columnas). Tipos de campo:text,long_text,number,currency,date,datetime,select,multi_select,status,relation,user,url,email,phone,file,anchor_ref,ai_field. Un campostatusllevastages[], el ciclo de vida por el que fluye un record.views: vistas guardadas sobre los records:board,table,list,calendar,gallery, cada una congroup_by,filter,sortyvisible_fields.criterion_rel_slugs: los Topics de Knowledge que el trabajo lee antes de actuar. Esta es la costura que baja: un pipeline de leads leehow-we-selleicp, así el trabajo ocurre con los criterios del equipo.distill_policy: un campo de configuración de cómo un record terminal debería destilarse de vuelta en una Nota (la costura que sube): cerrar un bug o ganar un deal puede dejar un aprendizaje durable en el vault.
Un Record
Un Record es una fila: susfields son los valores tipados (indexados por las field keys de la Collection), y su status se valida contra los stages propios de la Collection. Cada Collection define su propio ciclo de vida, así que un record solo puede estar en un stage que su Collection declara.
Entities
Un Record es una fila dentro de una Collection. Una Entity es una identidad que puede abarcar varias Collections: el mismo cliente que aparece como lead en el pipeline de ventas y como ticket en soporte. Una entity no es una fila de una Collection; es un objeto aparte al que los Records apuntan. Una entity lleva:kind: el tipo de identidad (por ejemplocompany,person).name: su nombre para mostrar.dedup_key: la clave estable que la hace única dentro de sukind.attributes: valores tipados de forma libre.
(kind, dedup_key): escribir el mismo par dos veces actualiza la entity en vez de crear un duplicado. Un Record se enlaza a una entity al setear su entity_id, así varios Records de distintas Collections pueden resolver a una sola identidad.
Las entities están disponibles en tres superficies: la CLI (driftless collection entity add|list), MCP (driftless_entity, action: list | get | upsert) y REST (/workspaces/:slug/entities).
El
import de conector (vía el Broker) mapea los records espejados de un provider a Records de Collection. Eso es distinto del index del Broker, que materializa connector documents para retrieve, no Records de Collection. Ver Broker: lecturas y materialización.Usar collections
Desde la CLI (la superficie también existe en MCP comodriftless_collection y driftless_collection_record):
Recuperar antes de actuar: la costura en una sola llamada
Antes de trabajar un record, un agente lee el Knowledge de criterion de la collection: loscriterion_rel_slugs resueltos en los topics reales (how-we-sell, icp),
así el trabajo ocurre con los criterios del equipo, no desde cero.
La acción retrieve entrega las dos mitades de la costura de una vez: los records
relevantes y el criterion para leer primero:
criterion es el Knowledge del equipo a aplicar; criterion_missing marca cualquier
slug de criterion que no resuelve (una brecha por cerrar). Los records paginan por keyset
(nextCursor). Lee el criterion, luego actúa sobre un record con
driftless_collection_record action:'update'. Para solo el criterion (sin records),
usa driftless_collection action:'context'.
Esto refleja el retrieve de topics: una sola llamada devuelve qué leer y
en qué trabajar, en lugar de encadenar a mano una lista y una búsqueda de criterion aparte.